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.k...@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.k...@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.k...@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.k...@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.k...@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. >>>>> >>>>
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto