diff options
author | Ross Burton <ross.burton@intel.com> | 2018-10-16 14:32:04 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-18 23:26:35 +0100 |
commit | 1de82d5fc0dd7f9f472815bde47f3a0eead36583 (patch) | |
tree | eff055bdf1a107d19717adf7a26452a64f5a70c4 /meta/lib/oe | |
parent | 4ef016683d986cc5291e494789ff5a49b28030eb (diff) | |
download | poky-1de82d5fc0dd7f9f472815bde47f3a0eead36583.tar.gz |
package_manager: handle remove() with no packages
If remove() is called with an empty package list, ensure we do nothing instead
of calling the underlying package manager with an invalid command line.
[ YOCTO #12900 ]
(From OE-Core rev: 715ec20c433cb4ed5fde938c33a42b2a296e4e56)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r-- | meta/lib/oe/package_manager.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 5964c61338..2cc1c752b3 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py | |||
@@ -864,8 +864,9 @@ class RpmPM(PackageManager): | |||
864 | failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) | 864 | failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) |
865 | 865 | ||
866 | def remove(self, pkgs, with_dependencies = True): | 866 | def remove(self, pkgs, with_dependencies = True): |
867 | if len(pkgs) == 0: | 867 | if not pkgs: |
868 | return | 868 | return |
869 | |||
869 | self._prepare_pkg_transaction() | 870 | self._prepare_pkg_transaction() |
870 | 871 | ||
871 | if with_dependencies: | 872 | if with_dependencies: |
@@ -1353,6 +1354,9 @@ class OpkgPM(OpkgDpkgPM): | |||
1353 | (cmd, e.returncode, e.output.decode("utf-8"))) | 1354 | (cmd, e.returncode, e.output.decode("utf-8"))) |
1354 | 1355 | ||
1355 | def remove(self, pkgs, with_dependencies=True): | 1356 | def remove(self, pkgs, with_dependencies=True): |
1357 | if not pkgs: | ||
1358 | return | ||
1359 | |||
1356 | if with_dependencies: | 1360 | if with_dependencies: |
1357 | cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \ | 1361 | cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \ |
1358 | (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) | 1362 | (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) |
@@ -1663,6 +1667,9 @@ class DpkgPM(OpkgDpkgPM): | |||
1663 | 1667 | ||
1664 | 1668 | ||
1665 | def remove(self, pkgs, with_dependencies=True): | 1669 | def remove(self, pkgs, with_dependencies=True): |
1670 | if not pkgs: | ||
1671 | return | ||
1672 | |||
1666 | if with_dependencies: | 1673 | if with_dependencies: |
1667 | os.environ['APT_CONFIG'] = self.apt_conf_file | 1674 | os.environ['APT_CONFIG'] = self.apt_conf_file |
1668 | cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs)) | 1675 | cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs)) |