On Sat, Mar 9, 2024 at 12:58 PM <max.oss...@gmail.com> wrote: > > From: Max Krummenacher <max.krummenac...@toradex.com> > > Hello > > If one builds a kernel using AUTOREV invoking bitbake only works once. > Any subsequent bitbake invocation fails parsing the meta data. > > Reproducable with: > - latest poky, b5624ee564 > - Kernel with SRCREV = "AUTOREV", e.g. in local.conf > `SRCREV_machine:pn-linux-yocto:forcevariable = "${AUTOREV}"` > - bitbake virtual/kernel; bitbake virtual/kernel > > On the second invocation parsing fails when the fetcher tries to > evaluate the latest SRCREV: > > | ERROR: ExpansionError during parsing > meta/recipes-kernel/linux/linux-yocto_6.6.bb > | Traceback (most recent call last): > | File "bitbake/lib/bb/fetch2/__init__.py", line 1245, in > srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7f8e26f5f290>, > d=<bb.data_smart.DataSmart object at 0x7f8e26195890>, name='machine'): > | d.setVar("__BBAUTOREV_ACTED_UPON", True) > | > srcrev = ud.method.latest_revision(ud, d, name) > | > | File "bitbake/lib/bb/fetch2/__init__.py", line 1667, in > Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8e26f5f290>, > d=<bb.data_smart.DataSmart object at 0x7f8e26195890>, name='machine'): > | except KeyError: > | > revs[key] = rev = self._latest_revision(ud, d, name) > | return rev > | File "bitbake/lib/bb/fetch2/git.py", line 850, in > Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8e26f5f290>, > d=<bb.data_smart.DataSmart object at 0x7f8e26195890>, name='machine'): > | > | > output = self._lsremote(ud, d, "") > | # Tags of the form ^{} may not work, need to fallback to other > form > | File "bitbake/lib/bb/fetch2/git.py", line 833, in > Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7f8e26f5f290>, > d=<bb.data_smart.DataSmart object at 0x7f8e26195890>, search=''): > | bb.fetch2.check_network_access(d, cmd, repourl) > | > output = runfetchcmd(cmd, d, True) > | if not output: > | File "bitbake/lib/bb/fetch2/__init__.py", line 957, in > runfetchcmd(cmd='export PSEUDO_DISABLED=1; export > DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1003/bus"; export > PATH="build/tmp/sysroots-uninative/x86_64-linux/usr/bin:scripts:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/bin/x86_64-poky-linux:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot/usr/bin/crossscripts:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/sbin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/bin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/sbin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/bin:bitbake/bin:build/tmp/hosttools"; > export HOME="/home/krm"; git -c gc.autoDetach=false -c core.pager=cat -c > safe.bareRepository=all ls-remote > https://git.yoctoproject.org/linux-yocto.git ', d=<bb.data_smart.DataSmart > object at 0x7f8e26195890>, quiet=True, cleanup=[], log=None, workdir=None): > | > | > raise FetchError(error_message) > | > | bb.data_smart.ExpansionError: Failure expanding variable > fetcher_hashes_dummyfunc[vardepvalue], expression was > ${@bb.fetch.get_hashvalue(d)} which triggered exception FetchError: Fetcher > failure: Fetch command export PSEUDO_DISABLED=1; export > DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1003/bus"; export > PATH="build/tmp/sysroots-uninative/x86_64-linux/usr/bin:scripts:/var/home/krm/build/poky/build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/bin/x86_64-poky-linux:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot/usr/bin/crossscripts:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/sbin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/bin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/sbin:build/tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/bin:bitbake/bin:build/tmp/hosttools"; > export HOME="/home/krm"; git -c gc.autoDetach=false -c core.pager=cat -c > safe.bareRepository=all ls-remote > https://git.yoctoproject.org/linux-yocto.git failed with exit code 128, > output: > | fatal: unable to access 'https://git.yoctoproject.org/linux-yocto.git/': > error setting certificate file: > build/tmp/work/x86_64-linux/curl-native/8.6.0/recipe-sysroot-native/etc/ssl/certs/ca-certificates.crt > | > | The variable dependency chain for the failure is: > fetcher_hashes_dummyfunc[vardepvalue] > > Note: > One gets out of that parser error by deleting the git binary in the > kernel's work recipe-sysroot-native > `rm > tmp/work/qemux86_64-poky-linux/linux-yocto/6.6.20+git/recipe-sysroot-native/usr/bin/git` > > Bisecting poky leads to commit > f7fa98cca8 ("kern-tools: depend on git-replacement-native") > Reverting it on top of b5624ee564 makes the parsing pass. > > I assume that `git-replacement-native` does not work with https, the > fetch error also goes away if changing in SRC_URI from https to git. > > Any comments?
I didn't even know that curl was coming into play :) Adding DEPENDS:class-native += "ca-certificates" to the curl recipe should resolve the issue. I also tried exporting the SSL_CERT_DIR in the git-native wrapper, but that didn't help since of course it is curl that is looking for the certs. I also thought we could export the SSL_CERT_DIR from within the kern-tools, but really, it does seem like curl should know that this is a dependency when used as a native tool (it already has ca-certficates as a RRECOMMENDS). I haven't done a patch for it, because the intricacies of the native classes and where we should actually add that depends is someone lost on me. Richard will likely know the right place to fix it .. and then I'm happy to spin a patch. Bruce > > Cheers > Max -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#196873): https://lists.openembedded.org/g/openembedded-core/message/196873 Mute This Topic: https://lists.openembedded.org/mt/104831542/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-