[poky] [PATCH] systemd: resolved linked even if the option is disabled

ChenQi Qi.Chen at windriver.com
Mon Jun 11 18:47:57 PDT 2018


Hi Nicola,

Patches for recipes in oe-core should be sent to 
openembedded-core at lists.openembedded.org.

Back to this patch, I think you need to first check the following three 
commits.

commit 00e4662e55f66570cae29240c22b4d74b79d3ca5
Author: Maxin B. John <maxin.john at intel.com>
Date:   Mon Jun 12 18:10:21 2017 +0300

     systemd: enable resolved and networkd

     Enable systemd-resolved and systemd-networkd by default.
     Make it co-exist with connman and  Fix associated problems
     in read-only rootfs.

     Fixes [YOCTO #11331]

     (From OE-Core rev: d9b6d538e3d81ab0d5e7b7b6adecef555d782217)

     Signed-off-by: Maxin B. John <maxin.john at intel.com>
     Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

commit 669edd04432f8e76e32bd7f34f4d9aa63eef4038
Author: Khem Raj <raj.khem at gmail.com>
Date:   Fri Dec 16 14:07:31 2016 -0800

     systemd: point to correct resolv.conf when resolved is enabled

     latest systemd has changed the resolved defaults which points to
     127.0.0.53 port 53 on local network. If someone wants to use
     host-local IP address then it can be pointed to copy in /lib/systemd

     (From OE-Core rev: 99d1199fd0961f94732a1a533d66472ca17cf6f5)

     Signed-off-by: Khem Raj <raj.khem at gmail.com>
     Signed-off-by: Ross Burton <ross.burton at intel.com>
     Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

commit b80da02ce9b683f96393fe0ea1f5f1a5f1a07c89
Author: Christopher Larson <chris_larson at mentor.com>
Date:   Wed Nov 4 20:19:19 2015 -0700

     systemd: arrange for volatile /etc/resolv.conf

     On sysvinit systems, volatiles is configured to make 
/etc/resolv.conf symlink
     to a file in a volatile path, which lets us write to 
/etc/resolv.conf for
     read-only-rootfs. For systemd, this isn't set up unless we enable
     systemd-resolved, which we don't by default. When it's not enabled, 
create the
     /etc/resolv.conf symlink and ensure the volatile path is created on 
boot with
     tmpfiles.d.

     (From OE-Core rev: 7f087f161e8942bcd35f88999dfca418f01cd7fa)

     Signed-off-by: Christopher Larson <chris_larson at mentor.com>
     Signed-off-by: Ross Burton <ross.burton at intel.com>
     Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

What's the actual build or runtime problem in your case?

Best Regards,
Chen Qi

On 06/11/2018 07:40 PM, nick83ola wrote:
> Hi,
>
> Anyone can look at this?
>
> Thanks
> Nicola Lunghi
>
> On Wed, 6 Jun 2018 at 09:48, nick83ola <nick83ola at gmail.com> wrote:
>> ping
>>
>> On 30 May 2018 at 14:24, nick83ola <nick83ola at gmail.com> wrote:
>>> systemd: resolved linked even if the option is disabled
>>>
>>> in the do_install function in systemd recipe the condition to check
>>> if the resolved option is selected is reversed (wrong !).
>>> This is for example true if we compile systemd with musl instead of
>>> glibc (every poky-image-minimal recipe).
>>>
>>> Also no link should be created if the option is not selected
>>> nor an ALTERNATIVE set.
>>>
>>> Signed-off-by: Nicola Lunghi <nick83ola at gmail.com>
>>> ---
>>>   meta/recipes-core/systemd/systemd_237.bb | 8 +++-----
>>>   1 file changed, 3 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/meta/recipes-core/systemd/systemd_237.bb
>>> b/meta/recipes-core/systemd/systemd_237.bb
>>> index 2e6558ded1..2eea6af508 100644
>>> --- a/meta/recipes-core/systemd/systemd_237.bb
>>> +++ b/meta/recipes-core/systemd/systemd_237.bb
>>> @@ -256,14 +256,11 @@ do_install() {
>>>       if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
>>>           ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e
>>> "\$ad /run/systemd/netif/links 0755 root root -"
>>> ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
>>>       fi
>>> -    if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false',
>>> d)}; then
>>> +    if ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false',
>>> d)}; then
>>>           echo 'L! ${sysconfdir}/resolv.conf - - - -
>>> ../run/systemd/resolve/resolv.conf'
>>>>> ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
>>>           echo 'd /run/systemd/resolve 0755 root root -'
>>>>> ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
>>>           echo 'f /run/systemd/resolve/resolv.conf 0644 root root'
>>>>> ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
>>>           ln -s ../run/systemd/resolve/resolv.conf
>>> ${D}${sysconfdir}/resolv-conf.systemd
>>> -    else
>>> -        sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - -
>>> ../run/systemd/resolve/resolv.conf%g"
>>> ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
>>> -        ln -s ../run/systemd/resolve/resolv.conf
>>> ${D}${sysconfdir}/resolv-conf.systemd
>>>       fi
>>>       install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON
>>> ${D}${systemd_unitdir}/systemd-sysv-install
>>>
>>> @@ -537,7 +534,7 @@ python __anonymous() {
>>>   # TODO:
>>>   # u-a for runlevel and telinit
>>>
>>> -ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel
>>> resolv-conf"
>>> +ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel"
>>>
>>>   ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd"
>>>   ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
>>> @@ -563,6 +560,7 @@ ALTERNATIVE_TARGET[runlevel] =
>>> "${base_bindir}/systemctl"
>>>   ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
>>>   ALTERNATIVE_PRIORITY[runlevel] ?= "300"
>>>
>>> +ALTERNATIVE_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved',
>>> 'resolv-conf', '', d)}"
>>>   ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
>>>   ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
>>>   ALTERNATIVE_PRIORITY[resolv-conf] ?= "50"
>>> --
>>> 2.17.0
>>>
>>>



More information about the poky mailing list