[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7507/8267] lib/oe/package: Improve filedeprunner subprocess handling
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7507/8267] lib/oe/package: Improve filedeprunner subprocess handling
- Date: Sun, 17 Dec 2017 06:20:43 +0000 (UTC)
commit 55f0493e26881123c6317edfb9dc7af738d3d2d5
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: 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.
(From OE-Core rev: ce11cb449222bc47fea4f6d66ff1cc7cdc529ab9)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
meta/lib/oe/package.py | 11 +++--------
1 files 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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]