From dcd523a57336b279f2e9e79fc95ed0efc3958c5a Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:18:05 +0100 Subject: [PATCH 1/7] rpm/build_clean: fix an error message --- contrib/fedora/rpm/build_clean.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh index deacf9217d..60a2db7b3d 100755 --- a/contrib/fedora/rpm/build_clean.sh +++ b/contrib/fedora/rpm/build_clean.sh @@ -222,7 +222,7 @@ if [[ $NO_DIST != 1 ]]; then -Dnft=/usr/bin/nft \ || die "Error meson setup" - VERSION="${VERSION:-$(get_version_meson || die "Could not read $VERSION")}" + VERSION="${VERSION:-$(get_version_meson || die "Could not read VERSION")}" TEST_FLAG="" if [[ $QUICK == 1 ]]; then TEST_FLAG="--no-tests" From 6f9ecc762160ec75b9b619cf796199d3ef59d99a Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:20:04 +0100 Subject: [PATCH 2/7] rpm/build_clean: do not use jq It is not available when bootstrapping in beaker. Python is always there. --- contrib/fedora/rpm/build_clean.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh index 60a2db7b3d..309ebae1ab 100755 --- a/contrib/fedora/rpm/build_clean.sh +++ b/contrib/fedora/rpm/build_clean.sh @@ -189,7 +189,8 @@ if [[ $IGNORE_DIRTY != 1 ]]; then fi get_version_meson() { - meson introspect "$GITDIR/build" --projectinfo | jq -r .version + meson introspect "$GITDIR/build" --projectinfo | + python -c 'import json, sys; print(json.load(sys.stdin)["version"])' } if [[ $NO_DIST != 1 ]]; then From 64f8ec6099a4ad1774806cae6e3e2ab046a3e8ae Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:21:43 +0100 Subject: [PATCH 3/7] rpm/build*.sh: trap failures --- contrib/fedora/rpm/build.sh | 6 ++++-- contrib/fedora/rpm/build_clean.sh | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/contrib/fedora/rpm/build.sh b/contrib/fedora/rpm/build.sh index 0ad5f6789f..f46b9ba56e 100755 --- a/contrib/fedora/rpm/build.sh +++ b/contrib/fedora/rpm/build.sh @@ -1,6 +1,8 @@ #!/bin/bash #set -vx +set -e +set -o pipefail # Set arguments via environment variables. # Argument can be omitted and defaults will be detected. @@ -115,7 +117,7 @@ COMMIT="${COMMIT:-$(printf '%s' "$COMMIT_FULL" | sed 's/^\(.\{10\}\).*/\1/' || d BCOND_DEFAULT_DEBUG="${BCOND_DEFAULT_DEBUG:-0}" BCOND_DEFAULT_TEST="${BCOND_DEFAULT_TEST:-0}" BCOND_DEFAULT_LTO="${BCOND_DEFAULT_LTO}" -USERNAME="${USERNAME:-"$(git config user.name) <$(git config user.email)>"}" +USERNAME="${USERNAME:-"$(git config user.name || :) <$(git config user.email || :)>"}" SPECFILE="$(abs_path "$SPECFILE" "$SCRIPTDIR/NetworkManager.spec")" || die "invalid \$SPECFILE argument" SOURCE_FROM_GIT="$(coerce_bool "$SOURCE_FROM_GIT" "")" SOURCE="$(abs_path "$SOURCE")" || die "invalid \$SOURCE argument" @@ -262,7 +264,7 @@ ls -dla \ "$TEMP_LATEST"/RPMS/*/*.rpm \ "$TEMP_LATEST"/SRPMS/ \ "$TEMP_LATEST"/SRPMS/*.rpm \ - 2>/dev/null | sed 's/^/ /' + 2>/dev/null | sed 's/^/ /' || : LOG if [[ "$BUILDTYPE" == "SRPM" ]]; then LOG sudo $(command -v dnf &>/dev/null && echo dnf builddep || echo yum-builddep) $TEMP_LATEST/SRPMS/*.src.rpm diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh index 309ebae1ab..b1944d7780 100755 --- a/contrib/fedora/rpm/build_clean.sh +++ b/contrib/fedora/rpm/build_clean.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e +set -o pipefail die() { echo "$*" >&2 From 593608c6044b6c1f02e29919afa509f33b2177af Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:20:56 +0100 Subject: [PATCH 4/7] fedora/REQUIRED_PACKAGES: make cscope and bash-completion optional We do not actually need them. --- contrib/fedora/REQUIRED_PACKAGES | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/fedora/REQUIRED_PACKAGES b/contrib/fedora/REQUIRED_PACKAGES index 869edcfce5..eb2c1019b5 100755 --- a/contrib/fedora/REQUIRED_PACKAGES +++ b/contrib/fedora/REQUIRED_PACKAGES @@ -88,7 +88,7 @@ install \ vala \ valgrind \ which \ - "${EXTRA_PACKAGES[@]}" + #end # some packages don't exist in certain distributions. Install them one-by-one, and ignore errors. install_ignore_missing \ @@ -105,4 +105,4 @@ install_ignore_missing \ python36-pexpect \ qt-devel \ vala-devel \ - #end + "${EXTRA_PACKAGES[@]}" From 5409d4f5cd4088e40ee5b7077ffca7380fede731 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:19:55 +0100 Subject: [PATCH 5/7] fedora/REQUIRED_PACKAGES: speed up optional packages installation Don't try to install one by one by calling dnf repeatedly. It is slow. Instead, use --skip-broken option. --- contrib/fedora/REQUIRED_PACKAGES | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/contrib/fedora/REQUIRED_PACKAGES b/contrib/fedora/REQUIRED_PACKAGES index eb2c1019b5..15cf2366e1 100755 --- a/contrib/fedora/REQUIRED_PACKAGES +++ b/contrib/fedora/REQUIRED_PACKAGES @@ -25,12 +25,6 @@ install() { fi } -install_ignore_missing() { - for p; do - install "$p" || : - done -} - if test "$NM_NO_EXTRA" != 1; then # these packages are convenient for developing, but not necessary # for CI testing. @@ -90,8 +84,9 @@ install \ which \ #end -# some packages don't exist in certain distributions. Install them one-by-one, and ignore errors. -install_ignore_missing \ +# Some packages don't exist in certain distributions. Ignore errors +# installing them, but still drag them in when available. +install --skip-unavailable \ black \ dbus-python \ iproute-tc \ From dd0b4e72e8906514730ee23c575a396a51aea35b Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 4 Feb 2025 12:18:00 +0100 Subject: [PATCH 6/7] fedora/REQUIRED_PACKAGES: make teamd and dhclient optional They are no longer in RHEL 10 and we can build just fine without them. --- contrib/fedora/REQUIRED_PACKAGES | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/fedora/REQUIRED_PACKAGES b/contrib/fedora/REQUIRED_PACKAGES index 15cf2366e1..d47e60980a 100755 --- a/contrib/fedora/REQUIRED_PACKAGES +++ b/contrib/fedora/REQUIRED_PACKAGES @@ -46,7 +46,6 @@ install \ clang \ dbus-devel \ dbus-x11 \ - dhclient \ ethtool \ firewalld-filesystem \ gcc-c++ \ @@ -77,7 +76,6 @@ install \ readline-devel \ rpm-build \ systemd-devel \ - teamd-devel \ util-linux \ vala \ valgrind \ @@ -89,6 +87,7 @@ install \ install --skip-unavailable \ black \ dbus-python \ + dhclient \ iproute-tc \ libasan \ libpsl-devel \ @@ -99,5 +98,6 @@ install --skip-unavailable \ python-gobject-base \ python36-pexpect \ qt-devel \ + teamd-devel \ vala-devel \ "${EXTRA_PACKAGES[@]}" From 3c8e7bb69d0f464e92b933a1046512d397ce75d4 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Wed, 5 Feb 2025 12:45:39 +0100 Subject: [PATCH 7/7] CI: update images --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6000f905bb..758162961c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -61,9 +61,9 @@ variables: # This is done by running `ci-fairy generate-template` and possibly bumping # ".default_tag". ALPINE_TAG: 'tag-77ec3d923fd6' - CENTOS_TAG: 'tag-3e5d2c24e23c' + CENTOS_TAG: 'tag-8af9c6a05c7b' DEBIAN_TAG: 'tag-ecad19904683' - FEDORA_TAG: 'tag-3e5d2c24e23c' + FEDORA_TAG: 'tag-8af9c6a05c7b' UBUNTU_TAG: 'tag-ecad19904683' ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'