diff options
author | Andreas Oberritter <obi@opendreambox.org> | 2018-03-28 21:42:16 +0200 |
---|---|---|
committer | Andreas Oberritter <obi@opendreambox.org> | 2020-07-02 15:10:00 +0200 |
commit | 1800b5b0eb5e6361d88e64c80545b3a3342fe49b (patch) | |
tree | 6f24e427a23a90b90b5713602f34568891a7769e | |
parent | 69864eb0e3a9e3d139c5bebf3e71c9fa8a8f3f81 (diff) | |
download | openembedded-core-contrib-1800b5b0eb5e6361d88e64c80545b3a3342fe49b.tar.gz |
package_manager.py: Move logic from DpkgPkgsList to DpkgPM
This mimics the behavior of RPM and allows accessing the
newly set admindir variable of DpkgPM.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-rw-r--r-- | meta/lib/oe/package_manager.py | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 7a20772ac6..cfe9f5d676 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -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): """ |