This patch creates a new function, rootfs_remove_unneeded(), that will
be called after rootfs_*_do_rootfs is called and which will handle
delayed postinstalls in a generic fashion, for all backends in the same
way.

Signed-off-by: Laurentiu Palcu <laurentiu.pa...@intel.com>
---
 meta/classes/image.bbclass |   33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 04db533..380ed8e 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -303,6 +303,9 @@ fakeroot do_rootfs () {
 
        rootfs_${IMAGE_PKGTYPE}_do_rootfs
 
+       # remove unneeded packages/files from the final image
+       rootfs_remove_unneeded
+
        insert_feed_uris
 
        if [ "x${LDCONFIGDEPEND}" != "x" ]; then
@@ -463,6 +466,36 @@ rootfs_install_complementary() {
     fi
 }
 
+rootfs_remove_unneeded () {
+       if ${@base_contains("IMAGE_FEATURES", "package-management", "false", 
"true", d)}; then
+               if [ -z "$(delayed_postinsts)" ]; then
+                       # All packages were successfully configured.
+                       # 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
+                       rootfs_remove_packages update-rc.d base-passwd 
${ROOTFS_BOOTSTRAP_INSTALL}
+
+                       # 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
+               else
+                       # Some packages were not successfully configured, save 
them only
+                       # if we have run-postinsts script present. Otherwise, 
they're
+                       # useless
+                       if [ -e 
${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts ]; then
+                               save_postinsts
+                       fi
+               fi
+
+               # Since no package manager is present in the image the metadata 
is not needed
+               remove_packaging_data_files
+       fi
+}
+
 # set '*' as the root password so the images
 # can decide if they want it or not
 zap_root_password () {
-- 
1.7.9.5

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to