rootfs_ipk: Avoid leaving run-postinsts around if online package management is disabled
authorPhil Blundell <philb@gnu.org>
Fri, 21 Sep 2012 19:42:38 +0000 (20:42 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 24 Sep 2012 10:30:36 +0000 (11:30 +0100)
If all postinsts have already been run during rootfs construction then
there's no point in having run-postinsts in the installed system.
Clean it up at the same time that update-rc.d and suchlike are being
removed.

(From OE-Core rev: b260cf9fbeb6f029c1ce45e77edd03968caa8288)

Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/rootfs_ipk.bbclass

index 6cdd8f6..46e8d60 100644 (file)
@@ -97,8 +97,18 @@ fakeroot rootfs_ipk_do_rootfs () {
        if ${@base_contains("IMAGE_FEATURES", "package-management", "false", "true", d)}; then
                if ! grep Status:.install.ok.unpacked ${STATUS}; then
                        # All packages were successfully configured.
-                       # update-rc.d, base-passwd are no further use, remove them now
-                       opkg-cl ${IPKG_ARGS} --force-depends remove update-rc.d base-passwd || true
+                       # update-rc.d, base-passwd, run-postinsts are no further use, remove them now
+                       remove_run_postinsts=false
+                       if [ -e ${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
+                               remove_run_postinsts=true
+                       fi
+                       opkg-cl ${IPKG_ARGS} --force-depends remove update-rc.d base-passwd ${ROOTFS_BOOTSTRAP_INSTALL} || true
+
+                       # Need to remove rc.d files for run-postinsts by hand since opkg won't
+                       # call postrm scripts in offline root mode.
+                       if $remove_run_postinsts; then
+                               update-rc.d -f -r ${IMAGE_ROOTFS} run-postinsts remove
+                       fi
 
                        # Also delete the status files
                        rm -rf ${IMAGE_ROOTFS}${opkglibdir}