[oe-commits] Laurentiu Palcu : image.bbclass: remove unneeded files from the image

git at git.openembedded.org git at git.openembedded.org
Tue Jun 11 14:31:52 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: d3d810faf8e93ce2d3faaa70da6deeb25b1cec26
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=d3d810faf8e93ce2d3faaa70da6deeb25b1cec26

Author: Laurentiu Palcu <laurentiu.palcu at intel.com>
Date:   Tue May 21 14:27:49 2013 +0300

image.bbclass: remove unneeded files from the image

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.palcu at intel.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 meta/classes/image.bbclass |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

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 () {



More information about the Openembedded-commits mailing list