[oe-commits] [openembedded-core] 01/08: lib/oe/package: Improve filedeprunner subprocess handling

git at git.openembedded.org git at git.openembedded.org
Fri Sep 1 14:26:32 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit cc980fb59d1b8c8c1ec3f850161686bed5c7b939
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Fri Sep 1 14:08:08 2017 +0100

    lib/oe/package: Improve filedeprunner subprocess handling
    
    Currently the exit code of the spawned program isn't checked so it can
    fail and the do_package task will continue merrily upon its way.
    
    Use subprocess.check_output() to ensure we check the exit code and
    redirect stderr to stdout so if it fails, we see the error output.
    
    We can then drop the existing exception handling as the subprocess
    exception gives a much better error.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/lib/oe/package.py | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index fcee389..1e5c3aa 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -176,8 +176,7 @@ def filedeprunner(arg):
 
     def process_deps(pipe, pkg, pkgdest, provides, requires):
         file = None
-        for line in pipe:
-            line = line.decode("utf-8")
+        for line in pipe.split("\n"):
 
             m = file_re.match(line)
             if m:
@@ -226,12 +225,8 @@ def filedeprunner(arg):
 
         return provides, requires
 
-    try:
-        dep_popen = subprocess.Popen(shlex.split(rpmdeps) + pkgfiles, stdout=subprocess.PIPE)
-        provides, requires = process_deps(dep_popen.stdout, pkg, pkgdest, provides, requires)
-    except OSError as e:
-        bb.error("rpmdeps: '%s' command failed, '%s'" % (shlex.split(rpmdeps) + pkgfiles, e))
-        raise e
+    output = subprocess.check_output(shlex.split(rpmdeps) + pkgfiles, stderr=subprocess.STDOUT).decode("utf-8")
+    provides, requires = process_deps(output, pkg, pkgdest, provides, requires)
 
     return (pkg, provides, requires)
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list