X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=scripts%2Flttng-modules%2Fparam-build.sh;h=610bf6158d4fadb766efa7f555bc635e97c26f8f;hb=909c53528c1ec42e56897b3c574ec93de47dad6a;hp=3657fc86a815caf2fdac06f991336e74aa49815d;hpb=6c0b27105576fac689b415ae3fbdb98b8b0d6945;p=lttng-ci.git diff --git a/scripts/lttng-modules/param-build.sh b/scripts/lttng-modules/param-build.sh index 3657fc8..610bf61 100644 --- a/scripts/lttng-modules/param-build.sh +++ b/scripts/lttng-modules/param-build.sh @@ -18,14 +18,23 @@ set -exu # Parameters -arch=${arch:-amd64} +platforms=${platforms:-} +# Derive arch from label if it isn't set +if [ -z "${arch:-}" ] ; then + # Labels may be platform specific, eg. jammy-amd64, deb12-armhf + regex='[[:alnum:]]+-([[:alnum:]]+)' + if [[ "${platforms}" =~ ${regex} ]] ; then + arch="${BASH_REMATCH[1]}" + else + arch="${platforms:-}" + fi +fi cross_arch=${cross_arch:-} ktag=${ktag:-} kgitrepo=${kgitrepo:-} mversion=${mversion:-} mgitrepo=${mgitrepo:-} - ## FUNCTIONS ## # Kernel version compare functions @@ -166,13 +175,21 @@ build_linux_kernel() { # Disable riscv64 config generation, we don't have a toolchain on bionic sed -i 's/riscv64 //' debian.master/etc/kernelconfig + fakeroot debian/rules clean KW_DEFCONFIG_DIR=. + # Hack for kernel Ubuntu-hwe-5.8 - if [ ! -f "debian/compat" ]; then + # The debian/control file is produced by the clean target above, so this + # check needs to happen afterwards. + if [ ! -f "debian/compat" ] && ! grep -q debhelper-compat debian/control; then echo "10" > "debian/compat" fi - fakeroot debian/rules clean KW_DEFCONFIG_DIR=. - fakeroot debian/rules genconfigs KW_DEFCONFIG_DIR=. + # genconfigs check can fail in certain cases, eg. when a more recent + # compiler exposes kernel configuration flags which aren't set in the + # Ubuntu annotations. + # In any case, the configuration will be updated with any missing values + # later in our build script. + fakeroot debian/rules genconfigs KW_DEFCONFIG_DIR=. do_skip_checks=true cp CONFIGS/"${ubuntu_config}" .config ;; @@ -640,20 +657,24 @@ url_hash="$(echo -n "$kgitrepo" | md5sum | awk '{ print $1 }')" obj_name="linux.tar.bz2" if [ "x${cross_arch}" = "x" ]; then - obj_url_prefix="$OBJ_STORE_URL/linux-build/$url_hash/$ktag/$arch/native" + obj_url_prefix="$OBJ_STORE_URL/linux-build/$url_hash/$ktag/platform-${platforms}/$arch/native" else - obj_url_prefix="$OBJ_STORE_URL/linux-build/$url_hash/$ktag/${cross_arch}" + obj_url_prefix="$OBJ_STORE_URL/linux-build/$url_hash/$ktag/platform-${platforms}/${cross_arch}" fi obj_url="$obj_url_prefix/$obj_name" set +e -s3cmd -c "$WORKSPACE/.s3cfg" get "$obj_url" +# In s3cmd 2.3, the return code of get when an object does not exist (64) +# is different than in 2.2 (12). The return codes of 's3cmd info' are +# consistent between 2.2 and 2.3. +s3cmd -c "$WORKSPACE/.s3cfg" info "$obj_url" ret=$? set -e case "$ret" in "0") + s3cmd -c "$WORKSPACE/.s3cfg" get "$obj_url" extract_archive_obj ;;