[OE-core] [PATCH 1/1] image.bbclass: do not automatically remove update-rc.d

Richard Purdie richard.purdie at linuxfoundation.org
Tue Sep 17 13:25:00 UTC 2013


On Fri, 2013-09-13 at 10:09 +0800, Qi.Chen at windriver.com wrote:
> From: Chen Qi <Qi.Chen at windriver.com>
> 
> In rootfs_uninstall_unneeded function, the update-rc.d package would
> be removed if no 'package-management' and no delayed postinsts.
> 
> However, in update-rc.d.bbclass, the update-rc.d package is only
> recommended. Thus, if NO_RECOMMENDATIONS is enabled or 'update-rc.d'
> is added to BAD_RECOMMENDATIONS, the update-rc.d package will not
> be installed at the first place. Tring to remove it will result in an
> error.
> 
> Also this function assumes that update-rc.d is only used by postinsts.
> This assumption isn't always true. Users may want to write their own
> init scripts and use the update-rc.d tool to manage them.
> 
> [YOCTO #5169]
> 
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
>  meta/classes/image.bbclass |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

This is not correct. The correct behaviour here is to uninstall these
packages *if* they are installed. Just removing it from the list is not
the real fix.

Cheers,

Richard

> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index f1e62f14..f37cd90 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -505,12 +505,12 @@ rootfs_uninstall_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
> +			# 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_uninstall_packages update-rc.d base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}
> +			rootfs_uninstall_packages 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.





More information about the Openembedded-core mailing list