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