diff options
author | Hongxu Jia <hongxu.jia@windriver.com> | 2014-11-21 16:00:55 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-12-03 12:23:59 +0000 |
commit | 5007319cd2b19c846a19c948109e2cb977f53115 (patch) | |
tree | da0f4803ffe0bd61f34847991fd751343af70d4b /meta/lib/oe/package_manager.py | |
parent | 5030c7fb3ef919ebd98ff9c8b22e070a86e66617 (diff) | |
download | poky-5007319cd2b19c846a19c948109e2cb977f53115.tar.gz |
package_manager.py: check the result of create_index
While invoking create_index failed, there was no error output
and didn't break the build until the package installation.
...
|ERROR: run-postinsts not found in the base feeds (qemux86 i586 x86
noarch any all).
...
The reason is we used multiprocessing to execute create_index, and
did not check its invoking result.
(From OE-Core rev: d8921e4ea68647dfcf02ae046c9e09bf59f3e6e4)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/package_manager.py')
-rw-r--r-- | meta/lib/oe/package_manager.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index e18e071106..3c1e74f43d 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py | |||
@@ -16,11 +16,14 @@ def create_index(arg): | |||
16 | 16 | ||
17 | try: | 17 | try: |
18 | bb.note("Executing '%s' ..." % index_cmd) | 18 | bb.note("Executing '%s' ..." % index_cmd) |
19 | subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True) | 19 | result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True) |
20 | except subprocess.CalledProcessError as e: | 20 | except subprocess.CalledProcessError as e: |
21 | return("Index creation command '%s' failed with return code %d:\n%s" % | 21 | return("Index creation command '%s' failed with return code %d:\n%s" % |
22 | (e.cmd, e.returncode, e.output)) | 22 | (e.cmd, e.returncode, e.output)) |
23 | 23 | ||
24 | if result: | ||
25 | bb.note(result) | ||
26 | |||
24 | return None | 27 | return None |
25 | 28 | ||
26 | 29 | ||
@@ -120,7 +123,10 @@ class RpmIndexer(Indexer): | |||
120 | bb.note("There are no packages in %s" % self.deploy_dir) | 123 | bb.note("There are no packages in %s" % self.deploy_dir) |
121 | return | 124 | return |
122 | 125 | ||
123 | oe.utils.multiprocess_exec(index_cmds, create_index) | 126 | result = oe.utils.multiprocess_exec(index_cmds, create_index) |
127 | if result: | ||
128 | bb.fatal('%s' % ('\n'.join(result))) | ||
129 | |||
124 | 130 | ||
125 | class OpkgIndexer(Indexer): | 131 | class OpkgIndexer(Indexer): |
126 | def write_index(self): | 132 | def write_index(self): |
@@ -156,7 +162,10 @@ class OpkgIndexer(Indexer): | |||
156 | bb.note("There are no packages in %s!" % self.deploy_dir) | 162 | bb.note("There are no packages in %s!" % self.deploy_dir) |
157 | return | 163 | return |
158 | 164 | ||
159 | oe.utils.multiprocess_exec(index_cmds, create_index) | 165 | result = oe.utils.multiprocess_exec(index_cmds, create_index) |
166 | if result: | ||
167 | bb.fatal('%s' % ('\n'.join(result))) | ||
168 | |||
160 | 169 | ||
161 | 170 | ||
162 | class DpkgIndexer(Indexer): | 171 | class DpkgIndexer(Indexer): |
@@ -200,7 +209,10 @@ class DpkgIndexer(Indexer): | |||
200 | bb.note("There are no packages in %s" % self.deploy_dir) | 209 | bb.note("There are no packages in %s" % self.deploy_dir) |
201 | return | 210 | return |
202 | 211 | ||
203 | oe.utils.multiprocess_exec(index_cmds, create_index) | 212 | result = oe.utils.multiprocess_exec(index_cmds, create_index) |
213 | if result: | ||
214 | bb.fatal('%s' % ('\n'.join(result))) | ||
215 | |||
204 | 216 | ||
205 | 217 | ||
206 | class PkgsList(object): | 218 | class PkgsList(object): |