All of lore.kernel.org
 help / color / mirror / Atom feed
From: nick83ola <nick83ola@gmail.com>
To: Qi.Chen@windriver.com
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [meta-oe][poky][PATCH v2] systemd: resolved linked even if the option is disabled
Date: Tue, 17 Jul 2018 11:05:39 +0100	[thread overview]
Message-ID: <CABPh3UPFvQPxLzOCkGbr==exY6563k8aQankndPjN_wQs09H7g@mail.gmail.com> (raw)
In-Reply-To: <30a8009d-b30f-b55b-bb31-ac1330273835@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 8672 bytes --]

Hi

commit 00e4662e55f66570cae29240c22b4d74b79d3ca5
> Author: Maxin B. John <maxin.john@intel.com> <maxin.john@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.
>
>
This part of the patch does nothing with the current version of systemd (or
does the wrong thing)


        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

the check here was

     if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true',
'false', d)}; then
apart from the part that the check is REVERSED ...
if the PACKAGECONFIG doesn't contain the resolved option systemd-resolved
is not build and no modification is done on the /lib/tmpfiles/etc/conf

see
https://github.com/systemd/systemd/blob/46659f7deb962f55c728e70597e37c2a3ab6326d/tmpfiles.d/etc.conf.m4#L16
m4_ifdef(`ENABLE_RESOLVE',
L! /etc/resolv.conf - - - - ../run/systemd/resolve/stub-resolv.conf
)m4_dnl

So the else branch can be safely removed.



>   commit 669edd04432f8e76e32bd7f34f4d9aa63eef4038
> Author: Khem Raj <raj.khem@gmail.com> <raj.khem@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@gmail.com> <raj.khem@gmail.com>
>     Signed-off-by: Ross Burton <ross.burton@intel.com>
> <ross.burton@intel.com>
>     Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> <richard.purdie@linuxfoundation.org>
>
>
So here the error was introduced!!!!! read this patch carefully
If you read the deleted comment it was saying:
*if resolved is disabled*,
But this patch reverse it to

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

        if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true',
'false', d)}; then
-               # *if resolved is disabled*, it won't handle the link of
resolv.conf, so
-               # set it up ourselves
-               ln -s ../run/resolv.conf ${D}${sysconfdir}/resolv.conf
-               echo '*L! ${sysconfdir}/resolv.conf - - - -
../run/resolv.conf'* >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
-               echo 'f /run/resolv.conf 0644 root root'
>>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+               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
+       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
        fi
        install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON
${D}${systemd_unitdir}/systemd-sysv-install
 }







> commit b80da02ce9b683f96393fe0ea1f5f1a5f1a07c89
> Author: Christopher Larson <chris_larson@mentor.com>
> <chris_larson@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.
>
>
+       if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true',
'false', d)}; then
+               # if resolved is disabled, it won't handle the link of
resolv.conf, so
+               # set it up ourselves
+               ln -s ../run/resolv.conf ${D}${sysconfdir}/resolv.conf
+               echo 'L! ${sysconfdir}/resolv.conf - - - -
../run/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
+               echo 'f /run/resolv.conf 0644 root root'
>>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+       fi
        install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON
${D}${systemd_unitdir}/systemd-sysv-install
 }

This patch was the right one the following
669edd04432f8e76e32bd7f34f4d9aa63eef4038 reversed the sense of the switch

Regards
Nicola Lunghi


> Best Regards,
> Chen Qi
>
>
> On 07/16/2018 04:17 PM, Nicola Lunghi wrote:
>
> From: Nicola Lunghi <nicola.lunghi@jci.com> <nicola.lunghi@jci.com>
>
> if resolved option is not selected the package systemd-resolved
> is not installed so it cannot provide an alternative for
> resolv.conf
>
> In this recipe the previous check was instead reversing the check (note the !).
>
> This patch avoid messing with resol.conf link if resolved is disabled in
> the package config.
>
> This in particular if we compile systemd with musl where systemd-resolved
> cannot be compiled.
>
> Signed-off-by: Nicola Lunghi <nicola.lunghi@jci.com> <nicola.lunghi@jci.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 3efca33e73..bd6dcef637 100644
> --- a/meta/recipes-core/systemd/systemd_237.bb
> +++ b/meta/recipes-core/systemd/systemd_237.bb
> @@ -258,14 +258,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
>
> @@ -539,7 +536,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"
> @@ -565,6 +562,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)}" <$%7B@bb.utils.contains('PACKAGECONFIG','resolved','resolv-conf','',d)%7D>
>  ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd"
>  ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf"
>  ALTERNATIVE_PRIORITY[resolv-conf] ?= "50"
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 13964 bytes --]

  parent reply	other threads:[~2018-07-17 10:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-16  8:17 [meta-oe][poky][PATCH v2] systemd: resolved linked even if the option is disabled Nicola Lunghi
2018-07-16  9:12 ` ChenQi
2018-07-17  9:26   ` nick83ola
2018-07-17 10:05   ` nick83ola [this message]
2018-07-18  3:14     ` ChenQi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABPh3UPFvQPxLzOCkGbr==exY6563k8aQankndPjN_wQs09H7g@mail.gmail.com' \
    --to=nick83ola@gmail.com \
    --cc=Qi.Chen@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.