summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-11-26 09:34:59 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-12 23:31:40 +0000
commit5aae19959a443c6ac4b0feef10715c8acf3c6376 (patch)
treed1f9b58d287386707db8162948a24cccd8d1929a
parent59c6c13a8fa1bfc8e0615463e00ccdef04a87a47 (diff)
downloadopenembedded-core-5aae19959a443c6ac4b0feef10715c8acf3c6376.tar.gz
openembedded-core-5aae19959a443c6ac4b0feef10715c8acf3c6376.tar.bz2
openembedded-core-5aae19959a443c6ac4b0feef10715c8acf3c6376.zip
rootfs.py: Change logic to unistall packages
In the current state some of the base utils (update-rc.d, base-passwd, shadow, and update-alternatives) are unistalled when there is no package manager in the image. Checking for previous commits, the unistall of these utils were to be done in a read-only filesystem. It is a valid option to have these utils without a package manager, and also make sense to remove them when building a read-only filesystem. This changes the check logic from having a package mananger to if is a read-only filesystem to remove the utils. Another change implemented with this patch is that delayed post installs now doesn't depend if there is a package manager. Also it is a valid option to have post install scripts without package manger. [YOCTO #8235] Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/lib/oe/rootfs.py41
1 files changed, 21 insertions, 20 deletions
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index c004a5b5dd..a2af3325ee 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -239,26 +239,27 @@ class Rootfs(object):
pkg_to_remove = ""
else:
pkg_to_remove = "update-rc.d"
- if not runtime_pkgmanage:
- # Remove components that we don't need if we're not going to install
- # additional packages at runtime
- if delayed_postinsts is None:
- pkgs_installed = image_list_installed_packages(self.d)
- pkgs_to_remove = list()
- for pkg in pkgs_installed.split():
- 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)
-
- if len(pkgs_to_remove) > 0:
- self.pm.remove(pkgs_to_remove, False)
-
- else:
- self._save_postinsts()
+ if image_rorfs:
+ # Remove components that we don't need if it's a read-only rootfs
+ pkgs_installed = image_list_installed_packages(self.d)
+ pkgs_to_remove = list()
+ for pkg in pkgs_installed.split():
+ 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)
+
+ if len(pkgs_to_remove) > 0:
+ self.pm.remove(pkgs_to_remove, False)
+
+ if delayed_postinsts:
+ self._save_postinsts()
+ if image_rorfs:
+ bb.warn("There are post install scripts "
+ "in a read-only rootfs")
post_uninstall_cmds = self.d.getVar("ROOTFS_POSTUNINSTALL_COMMAND", True)
execute_pre_post_process(self.d, post_uninstall_cmds)