All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Cappa <stefano.cappa.ks89@gmail.com>
To: yocto@yoctoproject.org
Subject: Re: Cannot use "LICENSE_CREATE_PACKAGE = 1" when building the image with mdns
Date: Fri, 4 Oct 2019 17:17:25 +0200	[thread overview]
Message-ID: <CAKRytNw4-7j0jX1QidCEgcYhAPh1FTFmm4curuSrMdf8LGDQ+g@mail.gmail.com> (raw)
In-Reply-To: <CAKRytNw20PnVr8iNesH4FxPMxVBK-7S4Dfb1Tmpjm6EvWSAr4w@mail.gmail.com>

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

Oh, another update to integrate the previous email.

Inside the source code of mDNSResponder (
https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.260.1.tar.gz)
I found in "mDNSPosix/Makefile" this:

"
# Check the nsswitch.conf file.
# If 'mdns' does not already appear on the "hosts:" line, then add it right
before 'dns'
cp -f /etc/nsswitch.conf /etc/nsswitch.conf.pre-mdns
sed -e '/mdns/!s/^\(hosts:.*\)dns\(.*\)/\1mdns dns\2/'
/etc/nsswitch.conf.pre-mdns > /etc/nsswitch.conf
"

Probably, It's better to use this "sed -e
'/mdns/!s/^\(hosts:.*\)dns\(.*\)/\1mdns dns\2/' /etc/nsswitch.conf.pre-mdns
> /etc/nsswitch.conf" instead of the existing one.

What do you think?


Il giorno ven 4 ott 2019 alle ore 17:04 Stefano Cappa <
stefano.cappa.ks89@gmail.com> ha scritto:

> I fixed this issue in this way:
>
> I modified the recipe replacing this:
> ------------------------------
> pkg_postinst_${PN} () {
>     sed -e '/^hosts:/s/\s*\<mdns\>//' \
>         -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2
> mdns\3\4\5/' \
>         -i $D/etc/nsswitch.conf
> }
>
> pkg_prerm_${PN} () {
>     sed -e '/^hosts:/s/\s*\<mdns\>//' \
>         -e '/^hosts:/s/\s*mdns//' \
>         -i $D/etc/nsswitch.conf
> }------------------------------
>
> with this:
> ------------------------------
> pkg_postinst_ontarget_${PN} () {
>     sed -e '/^hosts:/s/\s*\<mdns\>//' \
>         -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2\3mdns
> \4\5/' \
>         -i $D/etc/nsswitch.conf
> }
>
> pkg_prerm_ontarget_${PN} () {
>     sed -e '/^hosts:/s/\s*\<mdns\>//' \
>         -e '/^hosts:/s/\s*mdns//' \
>         -i $D/etc/nsswitch.conf
> }
> ------------------------------
>
>
> Basically, I added _ontarget_ as suggested by yocto error that says: "...
> If the intention is to defer them to first boot,
> > then please place them into pkg_postinst_ontarget_${PN} ()....".
>
> In this way I can build the final image with LICENSE_CREATE_PACKAGE=1.
> Why? I don't know. I didn't understand why there was this error.
>
> However, the final result on the device when my os is running is
> different, because my nsswitch.conf changes from "hosts:  files myhostname
> mdns dns" to "hosts:  files mdns myhostname  dns". Why? I don't know,
> however I changed the regex in sed from "\1\2 mdns\3\4\5" to "\1\2\3mdns
> \4\5" to restore the original result.
>
> Why is it happening? Honestly, I don't know the reason. My solution
> worked, but since I don't know why, I want to ask to someone more expert
> about nsswitch.conf and in particular about pkg_prerm_ and pkg_postinst_
> because I really don't understand why I cannot change nsswitch without
> those and why without LICENSE_CREATE_PACKAGE they are working also without
> adding ontarget_, but with LICENSE_CREATE_PACKAGE = 1 the ontarget_ is
> required.
>
> Please, can someone help about this? Or at least add in CC someone with
> more experience about these topics.
>
> Thank you.
>
>
> Il giorno ven 4 ott 2019 alle ore 14:26 Stefano Cappa <
> stefano.cappa.ks89@gmail.com> ha scritto:
>
>> I investigated a little bit.
>> Probably, I didn't understand your point.
>>
>> The postinst script modifies nsswitch adding mdns and this is right, but
>> why is this interfering with the license create package?
>>
>> If I remove the postinst I can build with license create package, however
>> I need this change to nsswitch.
>>
>> Is it possibile to change the recipe of mdns to modify nsswitch without
>> interfering with license create package in another xxxx() { }?
>>
>> Thanks
>>
>>
>>
>> Il gio 3 ott 2019, 14:24 Stefano Cappa <stefano.cappa.ks89@gmail.com> ha
>> scritto:
>>
>>> I resend this email because it's not visible in yocto mailing list.
>>>
>>>
>>>
>>> Hi thank you for the answer.
>>>
>>> In my rootfs I have this nsswitch.conf:
>>> -------------------------------------------------------
>>> # /etc/nsswitch.conf
>>> #
>>> # Example configuration of GNU Name Service Switch functionality.
>>> # If you have the `glibc-doc' and `info' packages installed, try:
>>> # `info libc "Name Service Switch"' for information about this file.
>>>
>>> passwd:         compat
>>> group:          compat
>>> shadow:         compat
>>>
>>> hosts:          files myhostname  mdns dns
>>> networks:       files
>>>
>>> protocols:      db files
>>> services:       db files
>>> ethers:         db files
>>> rpc:            db files
>>>
>>> netgroup:       nis
>>> -------------------------------------------------------
>>>
>>> I'm not familiar with this file.
>>> Also changing "hosts: files myhostname  mdns dns" to "hosts: files
>>> mdns4_minimal [NOTFOUND=return] dns" (copied from a raspberry pi 3) I'm
>>> still having the same problem.
>>>
>>> What should I change to fix this issue?
>>>
>>>
>>>
>>>
>>> Il mar 1 ott 2019, 11:29 Stefano Cappa <stefano.cappa.ks89@gmail.com>
>>> ha scritto:
>>>
>>>> Hi thank you for the answer.
>>>>
>>>> In my rootfs I have this nsswitch.conf:
>>>> -------------------------------------------------------
>>>> # /etc/nsswitch.conf
>>>> #
>>>> # Example configuration of GNU Name Service Switch functionality.
>>>> # If you have the `glibc-doc' and `info' packages installed, try:
>>>> # `info libc "Name Service Switch"' for information about this file.
>>>>
>>>> passwd:         compat
>>>> group:          compat
>>>> shadow:         compat
>>>>
>>>> hosts:          files myhostname  mdns dns
>>>> networks:       files
>>>>
>>>> protocols:      db files
>>>> services:       db files
>>>> ethers:         db files
>>>> rpc:            db files
>>>>
>>>> netgroup:       nis
>>>> -------------------------------------------------------
>>>>
>>>> I'm not familiar with this file.
>>>> Also changing "hosts: files myhostname  mdns dns" to "hosts: files
>>>> mdns4_minimal [NOTFOUND=return] dns" (copied from a raspberry pi 3) I'm
>>>> still having the same problem.
>>>>
>>>> What should I change to fix this issue?
>>>>
>>>>
>>>> Il lun 30 set 2019, 22:45 Khem Raj <raj.khem@gmail.com> ha scritto:
>>>>
>>>>>
>>>>>
>>>>> On 9/30/19 8:17 AM, Stefano Cappa wrote:
>>>>> > I saw your last patch to upgrade mdns, so I'm sending this email
>>>>> also to
>>>>> > you to try to get help.
>>>>> >
>>>>> > mdns is working correctly, however, when I try to build my image with
>>>>> > "LICENSE_CREATE_PACKAGE = "1"" in my local.conf as described
>>>>> > here
>>>>> https://www.yoctoproject.org/docs/2.8/dev-manual/dev-manual.html#providing-license-text
>>>>>  I
>>>>> > get this error message:
>>>>> >
>>>>> > ERROR: mydevice-image-1.0-r0 do_rootfs: Postinstall scriptlets of
>>>>> > ['mdns'] have failed. If the intention is to defer them to first
>>>>> boot,
>>>>> > then please place them into pkg_postinst_ontarget_${PN} ().
>>>>> > Deferring to first boot via 'exit 1' is no longer supported.
>>>>> > Details of the failure are in
>>>>> >
>>>>> /home/user/git/poky/build/tmp/work/mydevice1-image-poky-linux-gnueabi/mydevice-image/1.0-r0/temp/log.do_rootfs.
>>>>> > ERROR: mydevice-image-1.0-r0 do_rootfs: Function failed: do_rootfs
>>>>> > ERROR: Logfile of failure stored in:
>>>>> >
>>>>> /home/user/git/poky/build/tmp/work/mydevice1-poky-linux-gnueabi/mydevice-image/1.0-r0/temp/log.do_rootfs.14586
>>>>> > ERROR: Task (MY CUSTOM LAYER
>>>>> > PATH/recipes-core/images/mydevice-image.bb:do_rootfs) failed with
>>>>> exit
>>>>> > code '1'
>>>>> > NOTE: Tasks Summary: Attempted 4871 tasks of which 4654 didn't need
>>>>> to
>>>>> > be rerun and 1 failed.
>>>>> >
>>>>> > Do you have a solution? Why is it happening?
>>>>> >
>>>>>
>>>>> see mdns recipe especially
>>>>>
>>>>> pkg_postinst_${PN} (), that function is not able to execute offline
>>>>> during build. It could be that nsswitch.conf does not exist in your
>>>>> image rootfs
>>>>>
>>>>> > thank u.
>>>>>
>>>>

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

      reply	other threads:[~2019-10-04 15:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-30 15:17 Cannot use "LICENSE_CREATE_PACKAGE = 1" when building the image with mdns Stefano Cappa
2019-09-30 20:45 ` Khem Raj
2019-10-01  9:29   ` Stefano Cappa
2019-10-03 12:24     ` Stefano Cappa
2019-10-04 12:26       ` Stefano Cappa
2019-10-04 15:04         ` Stefano Cappa
2019-10-04 15:17           ` Stefano Cappa [this message]

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=CAKRytNw4-7j0jX1QidCEgcYhAPh1FTFmm4curuSrMdf8LGDQ+g@mail.gmail.com \
    --to=stefano.cappa.ks89@gmail.com \
    --cc=yocto@yoctoproject.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.