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

2019-07-04 Thread Peter Kjellerstedt
> -Original Message-
> From: ChenQi 
> Sent: den 3 juli 2019 03:49
> To: Peter Kjellerstedt ; openembedded-
> c...@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH V2 1/1] image.bbclass: fix
> systemd_preset_all
> 
> On 07/03/2019 05:04 AM, Peter Kjellerstedt wrote:
> >> -Original Message-
> >> From: openembedded-core-boun...@lists.openembedded.org
>  >> core-boun...@lists.openembedded.org> On Behalf Of ChenQi
> >> Sent: den 2 juli 2019 03:39
> >> To: Peter Kjellerstedt ; openembedded-
> >> c...@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-boun...@lists.openembedded.org
> >>  >>>> core-boun...@lists.openembedded.org> On Behalf Of Chen Qi
> >>>> Sent: den 1 juli 2019 06:16
> >>>> To: openembedded-core@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 
> >>>> ---
> >>>>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".
> 
> In current OE, ${systemd_unitdir} = ${root_prefix}/lib/systemd.
> And in systemd recipe, we have:
> [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
> It does not write as `ln -s ${systemd_unitdir}/systemd/systemd'.
> I don't want to use a directory whose name indicates 'unit' when
> checking a binary.

Well, the name of the systemd_unitdir variable is misleading, as it 
does not in fact refer to a unit directory. The corresponding name in 
the systemd.pc file is systemdutildir, which I guess would have been 
a better name for the variable too (albeit a bit late to change it now).

Anyway, it is not very likely that the path to the systemd binary will  
change, so if you prefer to use the ${root_prefix}/lib/systemd path 
instead of ${systemd_unitdir}, then go ahead. 

> Regards,
> Chen Qi
> 
> >> 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

//Peter

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2019-07-02 Thread ChenQi

On 07/03/2019 05:04 AM, Peter Kjellerstedt wrote:

-Original Message-
From: openembedded-core-boun...@lists.openembedded.org  On Behalf Of ChenQi
Sent: den 2 juli 2019 03:39
To: Peter Kjellerstedt ; openembedded-
c...@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-boun...@lists.openembedded.org


core-boun...@lists.openembedded.org> On Behalf Of Chen Qi
Sent: den 1 juli 2019 06:16
To: openembedded-core@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 
---
   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".


In current OE, ${systemd_unitdir} = ${root_prefix}/lib/systemd.
And in systemd recipe, we have:
[ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
It does not write as `ln -s ${systemd_unitdir}/systemd/systemd'.
I don't want to use a directory whose name indicates 'unit' when 
checking a binary.


Regards,
Chen Qi


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




--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2019-07-02 Thread Peter Kjellerstedt
> -Original Message-
> From: openembedded-core-boun...@lists.openembedded.org  core-boun...@lists.openembedded.org> On Behalf Of ChenQi
> Sent: den 2 juli 2019 03:39
> To: Peter Kjellerstedt ; openembedded-
> c...@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-boun...@lists.openembedded.org
>  >> core-boun...@lists.openembedded.org> On Behalf Of Chen Qi
> >> Sent: den 1 juli 2019 06:16
> >> To: openembedded-core@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 
> >> ---
> >>   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

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2019-07-01 Thread ChenQi

On 07/02/2019 07:34 AM, Peter Kjellerstedt wrote:

-Original Message-
From: openembedded-core-boun...@lists.openembedded.org  On Behalf Of Chen Qi
Sent: den 1 juli 2019 06:16
To: openembedded-core@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 
---
  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




--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2019-07-01 Thread Peter Kjellerstedt
> -Original Message-
> From: openembedded-core-boun...@lists.openembedded.org  core-boun...@lists.openembedded.org> On Behalf Of Chen Qi
> Sent: den 1 juli 2019 06:16
> To: openembedded-core@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 
> ---
>  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).

> + 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

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2019-06-30 Thread Chen Qi
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 
---
 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
+   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

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core