From 715ec20c433cb4ed5fde938c33a42b2a296e4e56 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 16 Oct 2018 14:32:04 +0100 Subject: 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 ] Signed-off-by: Ross Burton --- meta/lib/oe/package_manager.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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): failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) def remove(self, pkgs, with_dependencies = True): - if len(pkgs) == 0: + if not pkgs: return + self._prepare_pkg_transaction() if with_dependencies: @@ -1353,6 +1354,9 @@ class OpkgPM(OpkgDpkgPM): (cmd, e.returncode, e.output.decode("utf-8"))) def remove(self, pkgs, with_dependencies=True): + if not pkgs: + return + if with_dependencies: cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \ (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) @@ -1663,6 +1667,9 @@ class DpkgPM(OpkgDpkgPM): def remove(self, pkgs, with_dependencies=True): + if not pkgs: + return + if with_dependencies: os.environ['APT_CONFIG'] = self.apt_conf_file cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs)) -- cgit 1.2.3-korg