diff options
author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2016-03-31 02:20:11 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-31 13:18:20 +0100 |
commit | e3b881d4168e5b02ff00f5c470ba472ab8bbc747 (patch) | |
tree | 3d03f7c72bc8af7e8735a126c6e4965181b7f30f /meta/lib/oe | |
parent | 4d949da965a99ab33798af49e5584c8bb9f0f626 (diff) | |
download | openembedded-core-e3b881d4168e5b02ff00f5c470ba472ab8bbc747.tar.gz openembedded-core-e3b881d4168e5b02ff00f5c470ba472ab8bbc747.tar.bz2 openembedded-core-e3b881d4168e5b02ff00f5c470ba472ab8bbc747.zip |
image.bbclass: Make unneeded packages for a read-only rootfs configurable
Previously the list of packages that are considered unneeded for a
read-only rootfs was hardcoded. This made it impossible to, e.g., have
shadow installed on a system with a read-only rootfs, but where /etc
is mounted writable.
This also lists ${VIRTUAL-RUNTIME_update-alternatives} rather than
update-alternatives (as was previously the case) since this should
actually remove the intended package.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r-- | meta/lib/oe/rootfs.py | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 0f835d311b..bfae1d8e89 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py @@ -238,28 +238,13 @@ class Rootfs(object): self.d.getVar('IMAGE_ROOTFS', True), "run-postinsts", "remove"]) - runtime_pkgmanage = bb.utils.contains("IMAGE_FEATURES", "package-management", - True, False, self.d) - sysvcompat_in_distro = bb.utils.contains("DISTRO_FEATURES", [ "systemd", "sysvinit" ], - True, False, self.d) image_rorfs = bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", - True, False, self.d) - if sysvcompat_in_distro and not image_rorfs: - pkg_to_remove = "" - else: - pkg_to_remove = "update-rc.d" + True, False, self.d) if image_rorfs: # Remove components that we don't need if it's a read-only rootfs + unneeded_pkgs = self.d.getVar("ROOTFS_RO_UNNEEDED", True).split() pkgs_installed = image_list_installed_packages(self.d) - pkgs_to_remove = list() - for pkg in pkgs_installed: - if pkg in ["update-rc.d", - "base-passwd", - "shadow", - "update-alternatives", pkg_to_remove, - self.d.getVar("ROOTFS_BOOTSTRAP_INSTALL", True) - ]: - pkgs_to_remove.append(pkg) + pkgs_to_remove = [pkg for pkg in pkgs_installed if pkg in unneeded_pkgs] if len(pkgs_to_remove) > 0: self.pm.remove(pkgs_to_remove, False) @@ -273,6 +258,8 @@ class Rootfs(object): post_uninstall_cmds = self.d.getVar("ROOTFS_POSTUNINSTALL_COMMAND", True) execute_pre_post_process(self.d, post_uninstall_cmds) + runtime_pkgmanage = bb.utils.contains("IMAGE_FEATURES", "package-management", + True, False, self.d) if not runtime_pkgmanage: # Remove the package manager data files self.pm.remove_packaging_data() |