Quellcode durchsuchen

linux-raspberrypi-dev: use static SRCREV when not selected with PREFERRED_PROVIDER_virtual/kernel

* the anonymous python function was supposed to prevent AUTOREV
  being parsed when not selected, but that doesn't work, use
  the same trick with static SRCREV as linux-yocto-dev is using:
  https://git.openembedded.org/openembedded-core/commit/?id=5e8cf6e568ab90365894478a272b5c28dc941031

* Use LINUX_RPI_KMETA_BRANCH yocto-5.10 instead of master, because that's
  where static SRCREV_meta is contained.

* fixes "git ls-remote git://git.yoctoproject.org/yocto-kernel-cache"
  being called to resolve AUTOREV in SRCPV even when PREFERRED_PROVIDER_virtual/kernel
  is set to linux-raspberrypi not linux-raspberrypi-dev.

* I've noticed this in a build which was stuck in parsing for 15 minutes before
  the connection timeout:

Loaded 0 entries from dependency cache.
Parsing recipes...ERROR: ExpansionError during parsing /jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
Traceback (most recent call last):
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7f8422b58e80>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: read error: Connection timed out

* it's easily reproducible locally by adding git.yoctoproject.org to /etc/hosts (e.g. in this case 127.0.1.1),
  then it refuses the connection immediately instead of getting stuck waiting for timeout:

oe-core$ bitbake -k linux-raspberrypi
Loading cache: 100% |                                                                                                                                                                                                                                                                 | ETA:  --:--:--
Loaded 0 entries from dependency cache.
ERROR: ExpansionError during parsing /OE/build/oe-core/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb                                                                                                                                                                  | ETA:  0:00:14
Traceback (most recent call last):
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7ff35dfb4fa0>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 127.0.1.1]: errno=Connection refused

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Martin Jansa vor 4 Jahren
Ursprung
Commit
0e2baa7656
1 geänderte Dateien mit 8 neuen und 3 gelöschten Zeilen
  1. 8 3
      recipes-kernel/linux/linux-raspberrypi-dev.bb

+ 8 - 3
recipes-kernel/linux/linux-raspberrypi-dev.bb

@@ -7,10 +7,15 @@ python __anonymous() {
 
 LINUX_VERSION ?= "5.10.y"
 LINUX_RPI_BRANCH ?= "rpi-5.10.y"
-LINUX_RPI_KMETA_BRANCH ?= "master"
+LINUX_RPI_KMETA_BRANCH ?= "yocto-5.10"
 
-SRCREV_machine = "${AUTOREV}"
-SRCREV_meta = "${AUTOREV}"
+# Set default SRCREVs. Both the machine and meta SRCREVs are statically set
+# to the as in 5.10 recipe, and hence prevent network access during parsing. If
+# linux-yocto-dev is the preferred provider, they will be overridden to
+# AUTOREV in following anonymous python routine and resolved when the
+# variables are finalized.
+SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-raspberrypi-dev", "${AUTOREV}", "89399e6e7e33d6260a954603ca03857df594ffd3", d)}'
+SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-raspberrypi-dev", "${AUTOREV}", "a19886b00ea7d874fdd60d8e3435894bb16e6434", d)}'
 
 KMETA = "kernel-meta"