]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_manager: handle remove() with no packages
authorRoss Burton <ross.burton@intel.com>
Tue, 16 Oct 2018 13:32:04 +0000 (14:32 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 18 Oct 2018 10:03:12 +0000 (11:03 +0100)
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 <ross.burton@intel.com>
meta/lib/oe/package_manager.py

index 5964c61338d04779fa03329a35a3f8a8ee5aa09e..2cc1c752b379aa8b393ea75d235b4069a80e7f05 100644 (file)
@@ -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))