[OE-core] [PATCH V2 1/1] image.bbclass: fix systemd_preset_all

ChenQi Qi.Chen at windriver.com
Tue Jul 2 01:38:34 UTC 2019


On 07/02/2019 07:34 AM, Peter Kjellerstedt wrote:
>> -----Original Message-----
>> From: openembedded-core-bounces at lists.openembedded.org <openembedded-
>> core-bounces at lists.openembedded.org> On Behalf Of Chen Qi
>> Sent: den 1 juli 2019 06:16
>> To: openembedded-core at lists.openembedded.org
>> Subject: [OE-core] [PATCH V2 1/1] image.bbclass: fix systemd_preset_all
>>
>> Check the existence of systemd before using systemctl to preset units.
>> This is because even if 'systemd' is in DISTRO_FEATURES, it's possible
>> that systemd is not even installed. e.g. container-test-image in
>> meta-selftest layer.
>>
>> As systemd DEPENDS on systemd-systemctl-native, the existence of systemd
>> also ensures the existence of systemd-systemctl-native.
>>
>> This would fix the following test case when using systemd as the init
>> manager.
>>
>>    containerimage.ContainerImageTests.test_expected_files
>>
>> Also remove the IMAGE_EXTRADEPENDS setting, as nothing references this
>> variable.
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> ---
>>   meta/classes/image.bbclass | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
>> index d2b2fb9..7daa97e 100644
>> --- a/meta/classes/image.bbclass
>> +++ b/meta/classes/image.bbclass
>> @@ -666,10 +666,11 @@ reproducible_final_image_task () {
>>   }
>>
>>   systemd_preset_all () {
>> -    systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all
>> +    if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then
>                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> That should be ${systemd_system_unitdir}, which will also use the correct path
> (it is /lib/systemd/system, not /lib/systemd/systemd).

I'm checking the systemd binary under ${root_prefix}/lib/systemd, not 
the directory holding units.

Regards,
Chen Qi

>> +	systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all
>> +    fi
>>   }
>>
>> -IMAGE_EXTRADEPENDS += "${@ 'systemd-systemctl-native' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''}"
>>   IMAGE_PREPROCESS_COMMAND_append = " ${@ 'systemd_preset_all;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''} reproducible_final_image_task; "
>>
>>   CVE_PRODUCT = ""
>> --
>> 1.9.1
> //Peter
>
>



More information about the Openembedded-core mailing list