]> code.ossystems Code Review - openembedded-core.git/commitdiff
image.bbclass: uninstall package only if it's already installed
authorChen Qi <Qi.Chen@windriver.com>
Sun, 22 Sep 2013 09:34:18 +0000 (09:34 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 24 Sep 2013 10:46:48 +0000 (11:46 +0100)
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 <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/image.bbclass

index 246a4db7fcf31bbc678c2309b24ce87481394dc6..7650594f8c2ca230921f20e7904c36505601b147 100644 (file)
@@ -513,7 +513,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.