Patchwork [v2] rootfs_ipk: Avoid leaving run-postinsts around if online package management is disabled

login
register
mail settings
Submitter Phil Blundell
Date Sept. 21, 2012, 7:42 p.m.
Message ID <1348256558.4444.194.camel@x121e.pbcl.net>
Download mbox | patch
Permalink /patch/37023/
State New
Headers show

Comments

Phil Blundell - Sept. 21, 2012, 7:42 p.m.
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.

Signed-off-by: Phil Blundell <pb@pbcl.net>
---
v2: per suggestion from Paul Eggleton, don't refer to O_P_M in subject 
line since oe-core doesn't use it anymore

 meta/classes/rootfs_ipk.bbclass |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
Richard Purdie - Sept. 24, 2012, 10:27 a.m.
On Fri, 2012-09-21 at 20:42 +0100, Phil Blundell wrote:
> 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.
> 
> Signed-off-by: Phil Blundell <pb@pbcl.net>
> ---
> v2: per suggestion from Paul Eggleton, don't refer to O_P_M in subject 
> line since oe-core doesn't use it anymore
> 
>  meta/classes/rootfs_ipk.bbclass |   14 ++++++++++++--
>  1 files changed, 12 insertions(+), 2 deletions(-)

Merged to master, thanks.

Richard

Patch

diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 6cdd8f6..46e8d60 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}