In order to save spaces in target rootfs, the user wants to remove dnf and keep rpm, in this situation, we should remove dnf database only
If rpm was installed, keep rpm database, after applying this commit: Edit conf/local.conf ... IMAGE_FEATURES:remove = "package-management" IMAGE_INSTALL:append= " rpm" ... Build image and boot, run rpm -qa on target: Without this commit ... root@intel-x86-64:~# rpm -qa | wc -l 0 ... Apply this commit ... root@intel-x86-64:~# rpm -qa | wc -l 1865 ... With this commit, the rpm -qa works as expected. It does not make sense to keep dnf and remove rpm, so this commit does not consider the scenario Signed-off-by: Hongxu Jia <hongxu....@windriver.com> --- meta/lib/oe/package_manager/rpm/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meta/lib/oe/package_manager/rpm/__init__.py b/meta/lib/oe/package_manager/rpm/__init__.py index b392581069..dce5912329 100644 --- a/meta/lib/oe/package_manager/rpm/__init__.py +++ b/meta/lib/oe/package_manager/rpm/__init__.py @@ -80,7 +80,9 @@ class RpmPM(PackageManager): self.saved_packaging_data = self.d.expand('${T}/saved_packaging_data/%s' % self.task_name) if not os.path.exists(self.d.expand('${T}/saved_packaging_data')): bb.utils.mkdirhier(self.d.expand('${T}/saved_packaging_data')) - self.packaging_data_dirs = ['etc/rpm', 'etc/rpmrc', 'etc/dnf', 'var/lib/rpm', 'var/lib/dnf', 'var/cache/dnf'] + self.packaging_data_rpm_dirs = ['etc/rpm', 'etc/rpmrc', 'var/lib/rpm'] + self.packaging_data_dnf_dirs = ['etc/dnf', 'var/lib/dnf', 'var/cache/dnf'] + self.packaging_data_dirs = self.packaging_data_rpm_dirs + self.packaging_data_dnf_dirs self.solution_manifest = self.d.expand('${T}/saved/%s_solution' % self.task_name) if not os.path.exists(self.d.expand('${T}/saved')): @@ -237,8 +239,11 @@ class RpmPM(PackageManager): self._invoke_dnf(["autoremove"]) def remove_packaging_data(self): + remove_packaging_data_dirs = self.packaging_data_dnf_dirs + if "rpm" not in self.list_installed(): + remove_packaging_data_dirs += self.packaging_data_rpm_dirs self._invoke_dnf(["clean", "all"]) - for dir in self.packaging_data_dirs: + for dir in remove_packaging_data_dirs: bb.utils.remove(oe.path.join(self.target_rootfs, dir), True) def backup_packaging_data(self): -- 2.27.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#160688): https://lists.openembedded.org/g/openembedded-core/message/160688 Mute This Topic: https://lists.openembedded.org/mt/88527238/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-