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

Peter Kjellerstedt peter.kjellerstedt at axis.com
Tue Jul 2 21:04:19 UTC 2019


> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org <openembedded-
> core-bounces at lists.openembedded.org> On Behalf Of ChenQi
> Sent: den 2 juli 2019 03:39
> To: Peter Kjellerstedt <peter.kjellerstedt at axis.com>; openembedded-
> core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH V2 1/1] image.bbclass: fix
> systemd_preset_all
> 
> 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.

Right, my bad. Still, then the path above should be
"${IMAGE_ROOTFS}${systemd_unitdir}/systemd".

> 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

//Peter



More information about the Openembedded-core mailing list