From: Chen Qi <[email protected]>

Remove a package from rootfs only if it's already installed. Also,
if a package is uninstalled, remove it from installed_pkgs.txt.

[YOCTO #5169]

Signed-off-by: Chen Qi <[email protected]>
---
 meta/classes/image.bbclass |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 889547a..b4be509 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -510,7 +510,17 @@ rootfs_uninstall_unneeded () {
                        if [ -e 
${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
                                remove_run_postinsts=true
                        fi
-                       rootfs_uninstall_packages update-rc.d base-passwd 
${ROOTFS_BOOTSTRAP_INSTALL}
+
+                       # Remove package only if it's installed
+                       pkgs_to_remove="update-rc.d base-passwd 
${ROOTFS_BOOTSTRAP_INSTALL}"
+                       for pkg in $pkgs_to_remove; do
+                           # regexp for pkg, to be used in grep and sed
+                           pkg_regexp="^`echo $pkg | sed 's/\./\\\./'` "
+                           if grep -q "$pkg_regexp" 
${WORKDIR}/installed_pkgs.txt; then
+                               rootfs_uninstall_packages $pkg
+                               sed -i "/$pkg_regexp/d" 
${WORKDIR}/installed_pkgs.txt
+                           fi
+                       done
 
                        # Need to remove rc.d files for run-postinsts by hand 
since opkg won't
                        # call postrm scripts in offline root mode.
-- 
1.7.9.5

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to