]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
package_manager.py: Move logic from DpkgPkgsList to DpkgPM
authorAndreas Oberritter <obi@opendreambox.org>
Wed, 28 Mar 2018 19:42:16 +0000 (21:42 +0200)
committerAndreas Oberritter <obi@opendreambox.org>
Thu, 2 Jul 2020 13:10:00 +0000 (15:10 +0200)
This mimics the behavior of RPM and allows accessing the
newly set admindir variable of DpkgPM.

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
meta/lib/oe/package_manager.py

index 7a20772ac658feb72f17f6d508f6cd45e0b7f6d5..cfe9f5d676eb28554c2b96807c19ba35359e6d60 100644 (file)
@@ -356,21 +356,8 @@ class OpkgPkgsList(PkgsList):
 
 
 class DpkgPkgsList(PkgsList):
-
     def list_pkgs(self):
-        cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"),
-               "--admindir=%s/var/lib/dpkg" % self.rootfs_dir,
-               "-W"]
-
-        cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\nProvides: ${Provides}\n\n")
-
-        try:
-            cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
-        except subprocess.CalledProcessError as e:
-            bb.fatal("Cannot get the installed packages list. Command '%s' "
-                     "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
-
-        return opkg_query(cmd_output)
+        return DpkgPM(self.d, self.rootfs_dir, self.d.getVar('PACKAGE_ARCHS'), self.d.getVar('DPKG_ARCH')).list_installed()
 
 
 class PackageManager(object, metaclass=ABCMeta):
@@ -1741,7 +1728,19 @@ class DpkgPM(OpkgDpkgPM):
                      "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
 
     def list_installed(self):
-        return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
+        cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"),
+               "--admindir=%s" % self.admindir,
+               "-W"]
+
+        cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\nProvides: ${Provides}\n\n")
+
+        try:
+            cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
+        except subprocess.CalledProcessError as e:
+            bb.fatal("Cannot get the installed packages list. Command '%s' "
+                     "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+
+        return opkg_query(cmd_output)
 
     def package_info(self, pkg):
         """