diff options
author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2014-02-10 13:08:59 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-11 11:53:44 +0000 |
commit | b2c7cc7fe54a55706f2b0d22b5102c75db3c5f92 (patch) | |
tree | eb93e4e213c1a1954908c6cac61a0b606aed5cc7 /meta/lib | |
parent | 12f47c23df8c109676f66d580d666a3147f3b046 (diff) | |
download | poky-b2c7cc7fe54a55706f2b0d22b5102c75db3c5f92.tar.gz |
image.py, package_manager.py, rootfs.py: dump command output on error
Print the entire command output in case of errors.
(From OE-Core rev: 2253c9ac2caa61dee0bd4fea04d4d77b79be7b36)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/image.py | 4 | ||||
-rw-r--r-- | meta/lib/oe/package_manager.py | 81 | ||||
-rw-r--r-- | meta/lib/oe/rootfs.py | 2 |
3 files changed, 44 insertions, 43 deletions
diff --git a/meta/lib/oe/image.py b/meta/lib/oe/image.py index ccc849da29..54f7c84cf7 100644 --- a/meta/lib/oe/image.py +++ b/meta/lib/oe/image.py | |||
@@ -13,8 +13,8 @@ def generate_image(arg): | |||
13 | try: | 13 | try: |
14 | subprocess.check_output(create_img_cmd) | 14 | subprocess.check_output(create_img_cmd) |
15 | except subprocess.CalledProcessError as e: | 15 | except subprocess.CalledProcessError as e: |
16 | return("Error: The image creation script %s returned %d!" % | 16 | return("Error: The image creation script '%s' returned %d:\n%s" % |
17 | (e.cmd, e.returncode)) | 17 | (e.cmd, e.returncode, e.output)) |
18 | 18 | ||
19 | return None | 19 | return None |
20 | 20 | ||
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 49b5ac8e75..9884c3a712 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py | |||
@@ -16,8 +16,8 @@ def create_index(arg): | |||
16 | bb.note("Executing '%s' ..." % index_cmd) | 16 | bb.note("Executing '%s' ..." % index_cmd) |
17 | subprocess.check_output(index_cmd, shell=True) | 17 | subprocess.check_output(index_cmd, shell=True) |
18 | except subprocess.CalledProcessError as e: | 18 | except subprocess.CalledProcessError as e: |
19 | return("Index creation command %s failed with return code %d!" % | 19 | return("Index creation command '%s' failed with return code %d:\n%s" % |
20 | (e.cmd, e.returncode)) | 20 | (e.cmd, e.returncode, e.output)) |
21 | 21 | ||
22 | return None | 22 | return None |
23 | 23 | ||
@@ -110,7 +110,8 @@ class PackageManager(object): | |||
110 | complementary_pkgs = subprocess.check_output(cmd) | 110 | complementary_pkgs = subprocess.check_output(cmd) |
111 | except subprocess.CalledProcessError as e: | 111 | except subprocess.CalledProcessError as e: |
112 | bb.fatal("Could not compute complementary packages list. Command " | 112 | bb.fatal("Could not compute complementary packages list. Command " |
113 | "%s returned %d!" % (' '.join(cmd), e.returncode)) | 113 | "'%s' returned %d:\n%s" % |
114 | (' '.join(cmd), e.returncode, e.output)) | ||
114 | 115 | ||
115 | self.install(complementary_pkgs.split(), attempt_only=True) | 116 | self.install(complementary_pkgs.split(), attempt_only=True) |
116 | 117 | ||
@@ -211,7 +212,7 @@ class RpmPM(PackageManager): | |||
211 | return complementary_pkgs | 212 | return complementary_pkgs |
212 | except subprocess.CalledProcessError as e: | 213 | except subprocess.CalledProcessError as e: |
213 | bb.fatal("Could not invoke smart. Command " | 214 | bb.fatal("Could not invoke smart. Command " |
214 | "%s returned %d!" % (cmd, e.returncode)) | 215 | "'%s' returned %d:\n%s" % (cmd, e.returncode, e.output)) |
215 | 216 | ||
216 | ''' | 217 | ''' |
217 | Translate the RPM/Smart format names to the OE multilib format names | 218 | Translate the RPM/Smart format names to the OE multilib format names |
@@ -390,8 +391,8 @@ class RpmPM(PackageManager): | |||
390 | try: | 391 | try: |
391 | subprocess.check_output(cmd, shell=True) | 392 | subprocess.check_output(cmd, shell=True) |
392 | except subprocess.CalledProcessError as e: | 393 | except subprocess.CalledProcessError as e: |
393 | bb.fatal("Create rpm database failed. Command %s " | 394 | bb.fatal("Create rpm database failed. Command '%s' " |
394 | "returned %d" % (cmd, e.returncode)) | 395 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
395 | 396 | ||
396 | # Configure smart | 397 | # Configure smart |
397 | bb.note("configuring Smart settings") | 398 | bb.note("configuring Smart settings") |
@@ -513,8 +514,8 @@ class RpmPM(PackageManager): | |||
513 | output = subprocess.check_output(cmd.split()) | 514 | output = subprocess.check_output(cmd.split()) |
514 | bb.note(output) | 515 | bb.note(output) |
515 | except subprocess.CalledProcessError as e: | 516 | except subprocess.CalledProcessError as e: |
516 | bb.fatal("Unable to install packages. Command %s " | 517 | bb.fatal("Unable to install packages. Command '%s' " |
517 | "returned %d" % (cmd, e.returncode)) | 518 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
518 | 519 | ||
519 | ''' | 520 | ''' |
520 | Remove pkgs with smart, the pkg name is smart/rpm format | 521 | Remove pkgs with smart, the pkg name is smart/rpm format |
@@ -543,8 +544,8 @@ class RpmPM(PackageManager): | |||
543 | output = subprocess.check_output(cmd, shell=True) | 544 | output = subprocess.check_output(cmd, shell=True) |
544 | bb.note(output) | 545 | bb.note(output) |
545 | except subprocess.CalledProcessError as e: | 546 | except subprocess.CalledProcessError as e: |
546 | bb.note("Unable to remove packages. Command %s " | 547 | bb.note("Unable to remove packages. Command '%s' " |
547 | "returned %d" % (cmd, e.returncode)) | 548 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
548 | 549 | ||
549 | def upgrade(self): | 550 | def upgrade(self): |
550 | bb.note('smart upgrade') | 551 | bb.note('smart upgrade') |
@@ -623,8 +624,8 @@ class RpmPM(PackageManager): | |||
623 | tmp_output = subprocess.check_output(cmd, shell=True).strip() | 624 | tmp_output = subprocess.check_output(cmd, shell=True).strip() |
624 | self._unlock_rpm_db() | 625 | self._unlock_rpm_db() |
625 | except subprocess.CalledProcessError as e: | 626 | except subprocess.CalledProcessError as e: |
626 | bb.fatal("Cannot get the installed packages list. Command %s " | 627 | bb.fatal("Cannot get the installed packages list. Command '%s' " |
627 | "returned %d" % (cmd, e.returncode)) | 628 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
628 | 629 | ||
629 | output = list() | 630 | output = list() |
630 | for line in tmp_output.split('\n'): | 631 | for line in tmp_output.split('\n'): |
@@ -678,8 +679,8 @@ class RpmPM(PackageManager): | |||
678 | if '@' in pkg: | 679 | if '@' in pkg: |
679 | install_pkgs.append(pkg) | 680 | install_pkgs.append(pkg) |
680 | except subprocess.CalledProcessError as e: | 681 | except subprocess.CalledProcessError as e: |
681 | bb.note("Unable to dump install packages. Command %s " | 682 | bb.note("Unable to dump install packages. Command '%s' " |
682 | "returned %d" % (cmd, e.returncode)) | 683 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
683 | # Recovery rpmsys channel | 684 | # Recovery rpmsys channel |
684 | self._invoke_smart('channel --enable rpmsys') | 685 | self._invoke_smart('channel --enable rpmsys') |
685 | return install_pkgs | 686 | return install_pkgs |
@@ -720,8 +721,8 @@ class RpmPM(PackageManager): | |||
720 | if '@' in pkg: | 721 | if '@' in pkg: |
721 | available_pkgs.append(pkg.strip()) | 722 | available_pkgs.append(pkg.strip()) |
722 | except subprocess.CalledProcessError as e: | 723 | except subprocess.CalledProcessError as e: |
723 | bb.note("Unable to list all available packages. Command %s " | 724 | bb.note("Unable to list all available packages. Command '%s' " |
724 | "returned %d" % (cmd, e.returncode)) | 725 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
725 | 726 | ||
726 | self.fullpkglist = available_pkgs | 727 | self.fullpkglist = available_pkgs |
727 | 728 | ||
@@ -753,8 +754,8 @@ class RpmPM(PackageManager): | |||
753 | os.chmod(saved_dir, 0755) | 754 | os.chmod(saved_dir, 0755) |
754 | self._unlock_rpm_db() | 755 | self._unlock_rpm_db() |
755 | except subprocess.CalledProcessError as e: | 756 | except subprocess.CalledProcessError as e: |
756 | bb.fatal("Invoke save_rpmpostinst failed. Command %s " | 757 | bb.fatal("Invoke save_rpmpostinst failed. Command '%s' " |
757 | "returned %d" % (cmd, e.returncode)) | 758 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
758 | 759 | ||
759 | '''Write common configuration for target usage''' | 760 | '''Write common configuration for target usage''' |
760 | def rpm_setup_smart_target_config(self): | 761 | def rpm_setup_smart_target_config(self): |
@@ -900,8 +901,8 @@ class OpkgPM(PackageManager): | |||
900 | subprocess.check_output(cmd.split()) | 901 | subprocess.check_output(cmd.split()) |
901 | except subprocess.CalledProcessError as e: | 902 | except subprocess.CalledProcessError as e: |
902 | self.deploy_dir_unlock() | 903 | self.deploy_dir_unlock() |
903 | bb.fatal("Unable to update the package index files. Command %s " | 904 | bb.fatal("Unable to update the package index files. Command '%s' " |
904 | "returned %d" % (cmd, e.returncode)) | 905 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
905 | 906 | ||
906 | self.deploy_dir_unlock() | 907 | self.deploy_dir_unlock() |
907 | 908 | ||
@@ -924,8 +925,8 @@ class OpkgPM(PackageManager): | |||
924 | subprocess.check_output(cmd.split()) | 925 | subprocess.check_output(cmd.split()) |
925 | except subprocess.CalledProcessError as e: | 926 | except subprocess.CalledProcessError as e: |
926 | (bb.fatal, bb.note)[attempt_only]("Unable to install packages. " | 927 | (bb.fatal, bb.note)[attempt_only]("Unable to install packages. " |
927 | "Command %s returned %d" % | 928 | "Command '%s' returned %d:\n%s" % |
928 | (cmd, e.returncode)) | 929 | (cmd, e.returncode, e.output)) |
929 | 930 | ||
930 | def remove(self, pkgs, with_dependencies=True): | 931 | def remove(self, pkgs, with_dependencies=True): |
931 | if with_dependencies: | 932 | if with_dependencies: |
@@ -938,8 +939,8 @@ class OpkgPM(PackageManager): | |||
938 | try: | 939 | try: |
939 | subprocess.check_output(cmd.split()) | 940 | subprocess.check_output(cmd.split()) |
940 | except subprocess.CalledProcessError as e: | 941 | except subprocess.CalledProcessError as e: |
941 | bb.fatal("Unable to remove packages. Command %s " | 942 | bb.fatal("Unable to remove packages. Command '%s' " |
942 | "returned %d" % (e.cmd, e.returncode)) | 943 | "returned %d:\n%s" % (e.cmd, e.returncode, e.output)) |
943 | 944 | ||
944 | def write_index(self): | 945 | def write_index(self): |
945 | arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS", | 946 | arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS", |
@@ -1014,8 +1015,8 @@ class OpkgPM(PackageManager): | |||
1014 | try: | 1015 | try: |
1015 | output = subprocess.check_output(cmd, shell=True).strip() | 1016 | output = subprocess.check_output(cmd, shell=True).strip() |
1016 | except subprocess.CalledProcessError as e: | 1017 | except subprocess.CalledProcessError as e: |
1017 | bb.fatal("Cannot get the installed packages list. Command %s " | 1018 | bb.fatal("Cannot get the installed packages list. Command '%s' " |
1018 | "returned %d" % (cmd, e.returncode)) | 1019 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
1019 | 1020 | ||
1020 | if format == "file": | 1021 | if format == "file": |
1021 | tmp_output = "" | 1022 | tmp_output = "" |
@@ -1046,8 +1047,8 @@ class OpkgPM(PackageManager): | |||
1046 | try: | 1047 | try: |
1047 | output = subprocess.check_output(pkg_info.split()).strip() | 1048 | output = subprocess.check_output(pkg_info.split()).strip() |
1048 | except subprocess.CalledProcessError as e: | 1049 | except subprocess.CalledProcessError as e: |
1049 | bb.fatal("Cannot get package info. Command %s " | 1050 | bb.fatal("Cannot get package info. Command '%s' " |
1050 | "returned %d" % (pkg_info, e.returncode)) | 1051 | "returned %d:\n%s" % (pkg_info, e.returncode, e.output)) |
1051 | 1052 | ||
1052 | if output == "": | 1053 | if output == "": |
1053 | bb.note("Requested ignored recommendation $i is " | 1054 | bb.note("Requested ignored recommendation $i is " |
@@ -1142,8 +1143,8 @@ class DpkgPM(PackageManager): | |||
1142 | (suffix[1].lower(), pkg_name)) | 1143 | (suffix[1].lower(), pkg_name)) |
1143 | subprocess.check_output(p_full) | 1144 | subprocess.check_output(p_full) |
1144 | except subprocess.CalledProcessError as e: | 1145 | except subprocess.CalledProcessError as e: |
1145 | bb.note("%s for package %s failed with %d" % | 1146 | bb.note("%s for package %s failed with %d:\n%s" % |
1146 | (suffix[1], pkg_name, e.returncode)) | 1147 | (suffix[1], pkg_name, e.returncode, e.output)) |
1147 | failed_pkgs.append(pkg_name) | 1148 | failed_pkgs.append(pkg_name) |
1148 | break | 1149 | break |
1149 | 1150 | ||
@@ -1160,8 +1161,8 @@ class DpkgPM(PackageManager): | |||
1160 | try: | 1161 | try: |
1161 | subprocess.check_output(cmd.split()) | 1162 | subprocess.check_output(cmd.split()) |
1162 | except subprocess.CalledProcessError as e: | 1163 | except subprocess.CalledProcessError as e: |
1163 | bb.fatal("Unable to update the package index files. Command %s " | 1164 | bb.fatal("Unable to update the package index files. Command '%s' " |
1164 | "returned %d" % (e.cmd, e.returncode)) | 1165 | "returned %d:\n%s" % (e.cmd, e.returncode, e.output)) |
1165 | 1166 | ||
1166 | self.deploy_dir_unlock() | 1167 | self.deploy_dir_unlock() |
1167 | 1168 | ||
@@ -1179,8 +1180,8 @@ class DpkgPM(PackageManager): | |||
1179 | subprocess.check_output(cmd.split()) | 1180 | subprocess.check_output(cmd.split()) |
1180 | except subprocess.CalledProcessError as e: | 1181 | except subprocess.CalledProcessError as e: |
1181 | (bb.fatal, bb.note)[attempt_only]("Unable to install packages. " | 1182 | (bb.fatal, bb.note)[attempt_only]("Unable to install packages. " |
1182 | "Command %s returned %d" % | 1183 | "Command '%s' returned %d:\n%s" % |
1183 | (cmd, e.returncode)) | 1184 | (cmd, e.returncode, e.output)) |
1184 | 1185 | ||
1185 | # rename *.dpkg-new files/dirs | 1186 | # rename *.dpkg-new files/dirs |
1186 | for root, dirs, files in os.walk(self.target_rootfs): | 1187 | for root, dirs, files in os.walk(self.target_rootfs): |
@@ -1210,8 +1211,8 @@ class DpkgPM(PackageManager): | |||
1210 | try: | 1211 | try: |
1211 | subprocess.check_output(cmd.split()) | 1212 | subprocess.check_output(cmd.split()) |
1212 | except subprocess.CalledProcessError as e: | 1213 | except subprocess.CalledProcessError as e: |
1213 | bb.fatal("Unable to remove packages. Command %s " | 1214 | bb.fatal("Unable to remove packages. Command '%s' " |
1214 | "returned %d" % (e.cmd, e.returncode)) | 1215 | "returned %d:\n%s" % (e.cmd, e.returncode, e.output)) |
1215 | 1216 | ||
1216 | def write_index(self): | 1217 | def write_index(self): |
1217 | tmpdir = self.d.getVar('TMPDIR', True) | 1218 | tmpdir = self.d.getVar('TMPDIR', True) |
@@ -1328,8 +1329,8 @@ class DpkgPM(PackageManager): | |||
1328 | try: | 1329 | try: |
1329 | subprocess.check_output(cmd.split()) | 1330 | subprocess.check_output(cmd.split()) |
1330 | except subprocess.CalledProcessError as e: | 1331 | except subprocess.CalledProcessError as e: |
1331 | bb.fatal("Cannot fix broken dependencies. Command %s " | 1332 | bb.fatal("Cannot fix broken dependencies. Command '%s' " |
1332 | "returned %d" % (cmd, e.returncode)) | 1333 | "returned %d:\n%s" % (cmd, e.returncode, e.output)) |
1333 | 1334 | ||
1334 | def list_installed(self, format=None): | 1335 | def list_installed(self, format=None): |
1335 | cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"), | 1336 | cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"), |
@@ -1348,8 +1349,8 @@ class DpkgPM(PackageManager): | |||
1348 | try: | 1349 | try: |
1349 | output = subprocess.check_output(cmd).strip() | 1350 | output = subprocess.check_output(cmd).strip() |
1350 | except subprocess.CalledProcessError as e: | 1351 | except subprocess.CalledProcessError as e: |
1351 | bb.fatal("Cannot get the installed packages list. Command %s " | 1352 | bb.fatal("Cannot get the installed packages list. Command '%s' " |
1352 | "returned %d" % (' '.join(cmd), e.returncode)) | 1353 | "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output)) |
1353 | 1354 | ||
1354 | if format == "file": | 1355 | if format == "file": |
1355 | tmp_output = "" | 1356 | tmp_output = "" |
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 7455a865a4..b6baf7780d 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py | |||
@@ -57,7 +57,7 @@ class Rootfs(object): | |||
57 | try: | 57 | try: |
58 | subprocess.check_output(exec_cmd) | 58 | subprocess.check_output(exec_cmd) |
59 | except subprocess.CalledProcessError as e: | 59 | except subprocess.CalledProcessError as e: |
60 | return("Command %s returned %d!" % (e.cmd, e.returncode)) | 60 | return("Command '%s' returned %d:\n%s" % (e.cmd, e.returncode, e.output)) |
61 | 61 | ||
62 | return None | 62 | return None |
63 | 63 | ||