Patchwork package.bbclass: make do_split_packages handle non-existent root directories

login
register
mail settings
Submitter Ross Burton
Date Dec. 6, 2012, 12:53 p.m.
Message ID <1354798394-27513-1-git-send-email-ross.burton@intel.com>
Download mbox | patch
Permalink /patch/40579/
State Accepted
Commit 937101e3fdd6afd00f6f8a8be411a67110c4ae78
Headers show

Comments

Ross Burton - Dec. 6, 2012, 12:53 p.m.
This function has different behaviour if the split directory doesn't exist
depending on the recursive argument: non-recursive uses os.listdirs which throws
an exception, recursive uses os.walk which doesn't.

do_split_packages should silently handle non-existent directories because it's
mainly used for plugin directories, which may end up being empty though changing
the distro configuration (for example, connman without wifi distro feature).

So, add an early exit if the split root doesn't exist.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 meta/classes/package.bbclass |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 993ce98..8a94e30 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -116,6 +116,13 @@  def do_split_packages(d, root, file_regex, output_pattern, description, postinst
 
     """
 
+    dvar = d.getVar('PKGD', True)
+
+    # If the root directory doesn't exist, don't error out later but silently do
+    # no splitting.
+    if not os.path.exists(dvar + root):
+        return
+
     ml = d.getVar("MLPREFIX", True)
     if ml:
         if not output_pattern.startswith(ml):
@@ -130,7 +137,6 @@  def do_split_packages(d, root, file_regex, output_pattern, description, postinst
         if newdeps:
             extra_depends = " ".join(newdeps)
 
-    dvar = d.getVar('PKGD', True)
 
     packages = d.getVar('PACKAGES', True).split()