Re: meta-aws warnings: SRCREV_FORMAT variable must be set when multiple SCMs are used
So the main error is:
toggle quoted messageShow quoted text
aws-c-auth-0.6.1-r0 do_packagedata_setscene: ExpansionError('SRCPV', '${@bb.fetch2.get_srcrev(d)}', FetchError('The SRCREV_FORMAT variable must be set when multiple SCMs are used.\nThe SCMs are:\ngit://github.com/awslabs/aws-c-common.git;protocol=https;branch=main;tag=v0.6.8;destsuffix=/home/pokybuild/yocto-worker/meta-aws/build/build/tmp/work/cortexa57-poky-linux/aws-c-auth/0.6.1-r0/git/aws-c-common;name=common\ngit://github.com/awslabs/aws-c-auth.git;protocol=https;branch=main;tag=v0.6.1;destsuffix=/home/pokybuild/yocto-worker/meta-aws/build/build/tmp/work/cortexa57-poky-linux/aws-c-auth/0.6.1-r0/git/aws-c-auth;name=auth', None)) Let's try to dissect: The SRCREV_FORMAT variable must be set when multiple SCMs are used. The SCMs are: git://github.com/awslabs/aws-c-common.git;protocol=https;branch=main;tag=v0.6.8;destsuffix=/home/pokybuild/yocto-worker/meta-aws/build/build/tmp/work/cortexa57-poky-linux/aws-c-auth/0.6.1-r0/git/aws-c-common;name=common git://github.com/awslabs/aws-c-auth.git;protocol=https;branch=main;tag=v0.6.1;destsuffix=/home/pokybuild/yocto-worker/meta-aws/build/build/tmp/work/cortexa57-poky-linux/aws-c-auth/0.6.1-r0/git/aws-c-auth;name=auth I read this like: - we're using two git:// url's in the SRC_URI - bitbake needs one single hash value for SRCREV for the recipe to be 'uniq' - we cannot decide what to use as SRCREV based on this SRC_URI (with multiple git:// entries) I found in meta-arm: SRC_URI = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=https;name=tfa" # Use TF-A for version SRCREV_FORMAT = "tfa" # ^^^^^^^^^^^^^^^^^^^^^^^^ !!!!!!!! tfa = name from above # TF-A v2.1 SRCREV_tfa = "e1286bdb968ee74fc52f96cf303a4218e1ae2950" # # mbed TLS source # Those are used in trusted-firmware-a.inc if TFA_MBEDTLS is set to 1 SRC_URI_MBEDTLS = "git://github.com/ARMmbed/mbedtls.git;name=mbedtls;protocol=https;destsuffix=git/mbedtls;branch=mbedtls-2.16" SRCREV_mbedtls = "d81c11b8ab61fd5b2da8133aa73c5fe33a0633eb" So to apply this to meta-aws, you'd have to pick one which should be the canonical SRCREV of the two for this recipe. E.g. (untested) aws-c-auth_0.6.1.bb : [...] TAG ?= "v${PV}" TAG_COMMON ?= "v0.6.8" SRC_URI = "git://github.com/awslabs/aws-c-common.git;protocol=https;branch=${BRANCH};tag=${TAG_COMMON};destsuffix=${S}/aws-c-common;name=common \ git://github.com/awslabs/aws-c-auth.git;protocol=https;branch=${BRANCH};tag=${TAG};destsuffix=${S}/aws-c-auth;name=auth \ " S= "${WORKDIR}/git" BRANCH ?= "main" # _____________________ SRCREV_FORMAT = "auth" # ^^^^^^^^^^^^^^^^^^^^ But the main question here is: why do you need aws-c-common in SRC_URI ? . aws-c-common has its own recipe, so if it installs the headers properly it can be in DEPENDS and will be pulled automagically. The optimization wrt tag and network / offline that Denis mentioned is important imho as well ! It is really better to use a SRCREV. But yes, it might affect workflow and means bumping SRCREV's. TLDR: a) If possible make aws-c-common a DEPENDS in the auth recipe b) if above does not work, try SRCREV_FORMAT = "auth" (other recipes likewise) c) tag should be optimized to a SRCREV to avoid the enforced network fetch HTH. Best, Jan-Simon ------ Jan-Simon Möller AGL Release Manager The Linux Foundation Visit us at: www.automotivegradelinux.org lists.automotivelinux.org www.linuxfoundation.org Best regards, Jan-Simon ------ Jan-Simon Möller AGL Release Manager The Linux Foundation Visit us at: www.automotivegradelinux.org lists.automotivelinux.org www.linuxfoundation.org On Thu, Feb 3, 2022 at 3:12 PM Alexandre Belloni via lists.yoctoproject.org <alexandre.belloni=bootlin.com@...> wrote:
|
|