Patchwork [v3] rootfs_ipk: delete opkg metadata if package management not required and all packages are configured

login
register
mail settings
Submitter Phil Blundell
Date June 1, 2011, 10:41 a.m.
Message ID <1306924871.2529.33.camel@phil-desktop>
Download mbox | patch
Permalink /patch/5199/
State New, archived
Headers show

Comments

Phil Blundell - June 1, 2011, 10:41 a.m.
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>
---
 meta/classes/rootfs_ipk.bbclass |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
Saul Wold - June 3, 2011, 12:12 a.m.
On 06/01/2011 03:41 AM, Phil Blundell wrote:
> 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>
> ---
>   meta/classes/rootfs_ipk.bbclass |   11 +++++++++++
>   1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
> index edd84fb..3b4b4da 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 	
>   }
>
Merged into oe-core

Thanks
	Sau!

Patch

diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index edd84fb..3b4b4da 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 	
 }