All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] lib/oe/package: Improve filedeprunner subprocess handling
@ 2017-09-01 14:20 Richard Purdie
  2017-09-01 14:20 ` [PATCH 2/3] lib/oe/utils: Handle exceptions in multiprocess_exec Richard Purdie
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Richard Purdie @ 2017-09-01 14:20 UTC (permalink / raw)
  To: openembedded-core

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@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)
 
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-09-01 16:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-01 14:20 [PATCH 1/3] lib/oe/package: Improve filedeprunner subprocess handling Richard Purdie
2017-09-01 14:20 ` [PATCH 2/3] lib/oe/utils: Handle exceptions in multiprocess_exec Richard Purdie
2017-09-01 14:20 ` [PATCH 3/3] staging: Fix a logic error which caused dependency removal Richard Purdie
2017-09-01 16:32 ` [PATCH 1/3] lib/oe/package: Improve filedeprunner subprocess handling Peter Kjellerstedt
2017-09-01 16:45   ` Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.