summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Blundell <philb@gnu.org>2012-09-21 20:42:38 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-09-24 11:30:36 +0100
commite36751cdcd6b2a3db31f4597a0b4dd22d5c54330 (patch)
tree5b1903bc4acfeb308ae31cc5e5c722296fec195e
parente46be72a8e5d064b4b46d5b0c37d67bbb2ccae55 (diff)
downloadpoky-e36751cdcd6b2a3db31f4597a0b4dd22d5c54330.tar.gz
poky-e36751cdcd6b2a3db31f4597a0b4dd22d5c54330.tar.bz2
poky-e36751cdcd6b2a3db31f4597a0b4dd22d5c54330.zip
rootfs_ipk: Avoid leaving run-postinsts around if online package management is disabled
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>
-rw-r--r--meta/classes/rootfs_ipk.bbclass14
1 files changed, 12 insertions, 2 deletions
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 6cdd8f6062..46e8d60918 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -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}