[OE-core] [PATCH 1/1] update-rc.d.bbclass: change RRECOMMENDS to RDEPENDS

ChenQi Qi.Chen at windriver.com
Thu Sep 12 11:18:12 UTC 2013


On 09/12/2013 06:25 PM, Martin Jansa wrote:
> On Thu, Sep 12, 2013 at 05:43:55PM +0800, Qi.Chen at windriver.com wrote:
>> From: Chen Qi <Qi.Chen at windriver.com>
>>
>> If a package inherits update-rc.d.bbclass, it actually needs it to
>> update the symlinks under /etc/rc?.d/ directories. This is a runtime
>> dependency. For example, if we try to upgrade the dropbear on target,
>> its postinst process will need the update-rc.d utility available,
>> otherwise, the upgrade process will fail.
>>
>> Besides, if we only recommend update-rc.d, the do_rootfs process will
>> fail once NO_RRECOMMENDATIONS is enabled. Because in OE, we try to do
>> the postinsts at rootfs time.
> IIRC it was changed to allow systemd images to be built completely
> without update-rc.d (with BAD_RECOMMENDATIONS += "update-rc.d") and it's
> IMHO still valid use-case as update-rc.d is inherited even when systemd
> is used.
>

Now that the 'rm_sysvinit_initdir' function has been added to the 
systemd.bbclass, I think we can safely use RDEPENDS here. Because
1) If the /etc/init is removed, update-rc.d command in postinst has no 
real effect.
2) If the /etc/init is not removed, that means symlinks under 
/etc/rc?.d/ should be set up.

So I think there's no negative effect if update-rc.d is installed in 
case of a systemd system.

Also, I don't think adding update-rc.d to BAD_RECOMMENDATIONS is a good 
idea.
For example, we have a systemd based image running and we are installing 
a new package to that image. That package has an init script but no 
corresponding service file. If we only recommend update-rc.d and it's in 
BAD_RECOMMENDATIONS, the install process will fail. This is not what 
user might expect.

So I'd like to suggest that we change it back to RDEPENDS.

Best Regards,
Chen Qi

>> This patch fixes this problem by changing the RRECOMMENDS to RDEPENDS
>> to let the packages actually rdepend on update-rc.d.
>>
>> [YOCTO #5169]
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> ---
>>   meta/classes/update-rc.d.bbclass |    2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass
>> index 5588569..3dee13a 100644
>> --- a/meta/classes/update-rc.d.bbclass
>> +++ b/meta/classes/update-rc.d.bbclass
>> @@ -6,7 +6,7 @@ UPDATERCD_virtclass-cross = ""
>>   UPDATERCD_class-native = ""
>>   UPDATERCD_class-nativesdk = ""
>>   
>> -RRECOMMENDS_${UPDATERCPN}_append = " ${UPDATERCD}"
>> +RDEPENDS_${UPDATERCPN}_append = " ${UPDATERCD}"
>>   
>>   INITSCRIPT_PARAMS ?= "defaults"
>>   
>> -- 
>> 1.7.9.5
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list