aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/rootfs_ipk.bbclass
diff options
context:
space:
mode:
authorPhil Blundell <pb@pbcl.net>2011-06-01 11:41:11 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-02 14:47:26 +0100
commit87780fc09b066525e47d0f50ee5497db54d304cd (patch)
tree181b102d2c8bab90b449e8b513356a9c10d42400 /meta/classes/rootfs_ipk.bbclass
parentb90e9c2318fc421f37c57788ece54ce791a90b62 (diff)
downloadopenembedded-core-contrib-87780fc09b066525e47d0f50ee5497db54d304cd.tar.gz
rootfs_ipk: delete opkg metadata if package management not required and all packages are configured
If all the postinsts were successfully run in offline mode, and package-management hasn't been requested as an IMAGE_FEATURE, the opkg metadata is now redundant and can safely be deleted. Also, the update-rc.d and base-passwd packages can be removed since they will serve no further purpose in this situation. If some packages are still unconfigured at this point then we need to keep their metadata around so that either opkg or the awk script can configure the packages at boot time. In theory it would be possible to strip out the data for packages that have already been configured, but right now we just hold on to the whole status file in that situation. Signed-off-by: Phil Blundell <philb@gnu.org>
Diffstat (limited to 'meta/classes/rootfs_ipk.bbclass')
-rw-r--r--meta/classes/rootfs_ipk.bbclass11
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index edd84fb40d..3b4b4da43d 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -82,6 +82,17 @@ fakeroot rootfs_ipk_do_rootfs () {
rm -f ${IMAGE_ROOTFS}${opkglibdir}/lists/*
+ if ${@base_contains("IMAGE_FEATURES", "package-management", "false", "true", d)}; then
+ if [ $runtime_script_required -eq 0 ]; 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
+
+ # Also delete the status files
+ rm -rf ${IMAGE_ROOTFS}${opkglibdir}
+ fi
+ fi
+
log_check rootfs
}