about summary refs log tree commit diff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/alpine/REQUIRED_PACKAGES2
-rwxr-xr-xcontrib/debian/REQUIRED_PACKAGES4
-rwxr-xr-xcontrib/fedora/REQUIRED_PACKAGES21
-rw-r--r--contrib/fedora/rpm/NetworkManager.spec175
-rwxr-xr-xcontrib/fedora/rpm/build.sh15
-rwxr-xr-xcontrib/fedora/rpm/build_clean.sh137
-rwxr-xr-xcontrib/fedora/rpm/configure-for-system.sh277
-rwxr-xr-xcontrib/fedora/rpm/release.sh30
-rwxr-xr-xcontrib/fedora/utils/makerepo.sh6
-rwxr-xr-xcontrib/scripts/checkpatch.pl2
-rwxr-xr-xcontrib/scripts/nm-ci-run.sh219
-rwxr-xr-xcontrib/scripts/nm-copr-build.sh2
12 files changed, 227 insertions, 663 deletions
diff --git a/contrib/alpine/REQUIRED_PACKAGES b/contrib/alpine/REQUIRED_PACKAGES
index f05147eb..358214fd 100755
--- a/contrib/alpine/REQUIRED_PACKAGES
+++ b/contrib/alpine/REQUIRED_PACKAGES
@@ -7,7 +7,6 @@ apk update
 apk add \
     'alpine-sdk' \
     'autoconf' \
-    'automake' \
     'bash' \
     'clang' \
     'curl-dev' \
@@ -31,7 +30,6 @@ apk add \
     'libteam-dev' \
     'libtool' \
     'linux-headers' \
-    'make' \
     'meson' \
     'mobile-broadband-provider-info' \
     'modemmanager-dev' \
diff --git a/contrib/debian/REQUIRED_PACKAGES b/contrib/debian/REQUIRED_PACKAGES
index 1c7186d7..fa73b21a 100755
--- a/contrib/debian/REQUIRED_PACKAGES
+++ b/contrib/debian/REQUIRED_PACKAGES
@@ -32,9 +32,6 @@ install_ignore_missing() {
 
 install \
     \
-    autoconf \
-    automake \
-    autopoint \
     clang \
     dbus \
     dbus-x11 \
@@ -67,7 +64,6 @@ install \
     libtool \
     libudev-dev \
     locales \
-    make \
     meson \
     mobile-broadband-provider-info \
     pkg-config \
diff --git a/contrib/fedora/REQUIRED_PACKAGES b/contrib/fedora/REQUIRED_PACKAGES
index 38ca9026..d47e6098 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.
@@ -52,7 +46,7 @@ install \
     clang \
     dbus-devel \
     dbus-x11 \
-    dhclient \
+    ethtool \
     firewalld-filesystem \
     gcc-c++ \
     gettext-devel \
@@ -69,7 +63,6 @@ install \
     libselinux-devel \
     libtool \
     libuuid-devel \
-    make \
     meson \
     mobile-broadband-provider-info-devel \
     newt-devel \
@@ -83,17 +76,18 @@ install \
     readline-devel \
     rpm-build \
     systemd-devel \
-    teamd-devel \
     util-linux \
     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 \
+# 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 \
+    dhclient \
     iproute-tc \
     libasan \
     libpsl-devel \
@@ -104,5 +98,6 @@ install_ignore_missing \
     python-gobject-base \
     python36-pexpect \
     qt-devel \
+    teamd-devel \
     vala-devel \
-    #end
+    "${EXTRA_PACKAGES[@]}"
diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec
index 3c44d7f9..2af0f446 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -49,10 +49,8 @@
 
 ###############################################################################
 %if 0%{?fedora} > 40 || 0%{?rhel} >= 10
-%bcond_without meson
 %bcond_with dhclient
 %else
-%bcond_with    meson
 %bcond_without dhclient
 %endif
 %bcond_without adsl
@@ -206,6 +204,8 @@ Requires: dbus >= %{dbus_version}
 Requires: glib2 >= %{glib2_version}
 Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release}
 
+Recommends: iputils
+
 %if 0%{?rhel} == 8
 # Older libndp versions use select() (rh#1933041). On well known distros,
 # choose a version that has the necessary fix.
@@ -252,16 +252,10 @@ Conflicts: NetworkManager-initscripts-ifcfg-rh <= 1:1.47.5-3
 Conflicts: NetworkManager-dispatcher-routing-rules <= 1:1.47.5-3
 %endif
 
-BuildRequires: make
 BuildRequires: gcc
 BuildRequires: libtool
 BuildRequires: pkgconfig
-%if %{with meson}
 BuildRequires: meson
-%else
-BuildRequires: automake
-BuildRequires: autoconf
-%endif
 BuildRequires: gettext-devel >= 0.19.8
 
 BuildRequires: dbus-devel >= %{dbus_version}
@@ -521,6 +515,7 @@ Group: System Environment/Base
 %if %{with split_ifcfg_rh}
 Requires: %{name}-initscripts-ifcfg-rh
 %endif
+Requires: ipcalc
 BuildArch: noarch
 Provides: %{name}-config-routing-rules = %{epoch}:%{version}-%{release}
 Obsoletes: %{name}-config-routing-rules < 1:1.31.0
@@ -594,7 +589,6 @@ Preferably use nmcli instead.
 
 
 %build
-%if %{with meson}
 %meson \
 	-Db_ndebug=false \
 	--warnlevel 2 \
@@ -608,7 +602,6 @@ Preferably use nmcli instead.
 %else
 	-Ddhclient=no \
 %endif
-	-Ddhcpcanon=no \
 	-Ddhcpcd=no \
 	-Dcrypto=gnutls \
 %if %{with debug}
@@ -727,158 +720,8 @@ Preferably use nmcli instead.
 
 %meson_build
 
-%else
-# autotools
-%if %{with regen_docs}
-gtkdocize
-%endif
-autoreconf --install --force
-%configure \
-	--with-runstatedir=%{_rundir} \
-	--enable-silent-rules=no \
-	--enable-static=no \
-	--with-nft=%{_sbindir}/nft \
-	--with-iptables=%{_sbindir}/iptables \
-%if %{with dhclient}
-	--with-dhclient=%{_sbindir}/dhclient \
-%else
-	--with-dhclient=no \
-%endif
-	--with-dhcpcd=no \
-	--with-dhcpcanon=no \
-	--with-crypto=gnutls \
-%if %{with sanitizer}
-	--with-address-sanitizer=exec \
-	--enable-undefined-sanitizer=yes \
-%else
-	--with-address-sanitizer=no \
-	--enable-undefined-sanitizer=no \
-%endif
-%if %{with debug}
-	--enable-more-logging=yes \
-	--with-more-asserts=10000 \
-%else
-	--enable-more-logging=no \
-	--with-more-asserts=0 \
-%endif
-	--enable-ld-gc=yes \
-%if %{with lto}
-	--enable-lto=yes \
-%else
-	--enable-lto=no \
-%endif
-	--with-libaudit=yes-disabled-by-default \
-%if 0%{?with_modem_manager_1}
-	--with-modem-manager-1=yes \
-%else
-	--with-modem-manager-1=no \
-%endif
-%if %{with wifi}
-	--enable-wifi=yes \
-%if 0%{?fedora}
-	--with-wext=yes \
-%else
-	--with-wext=no \
-%endif
-%else
-	--enable-wifi=no \
-%endif
-%if %{with iwd}
-	--with-iwd=yes \
-%else
-	--with-iwd=no \
-%endif
-%if %{with bluetooth}
-	--enable-bluez5-dun=yes \
-%else
-	--enable-bluez5-dun=no \
-%endif
-%if %{with nmtui}
-	--with-nmtui=yes \
-%else
-	--with-nmtui=no \
-%endif
-%if %{with nm_cloud_setup}
-	--with-nm-cloud-setup=yes \
-%else
-	--with-nm-cloud-setup=no \
-%endif
-	--enable-vala=yes \
-	--enable-introspection=yes \
-%if %{with regen_docs}
-	--enable-gtk-doc=yes \
-%else
-	--enable-gtk-doc=no \
-%endif
-%if %{with team}
-	--enable-teamdctl=yes \
-%else
-	--enable-teamdctl=no \
-%endif
-%if %{with ovs}
-	--enable-ovs=yes \
-%else
-	--enable-ovs=no \
-%endif
-	--with-selinux=yes \
-	--enable-polkit=yes \
-	--enable-modify-system=yes \
-	--enable-concheck=yes \
-%if 0%{?fedora}
-	--with-libpsl=yes \
-%else
-	--with-libpsl=no \
-%endif
-	--with-ebpf=%{ebpf_enabled} \
-	--with-session-tracking=systemd \
-	--with-suspend-resume=systemd \
-	--with-systemdsystemunitdir=%{_unitdir} \
-	--with-system-ca-path=/etc/pki/tls/cert.pem \
-	--with-dbus-sys-dir=%{dbus_sys_dir} \
-	--with-tests=yes \
-%if %{with test}
-	--enable-more-warnings=error \
-%else
-	--enable-more-warnings=yes \
-%endif
-	--with-valgrind=no \
-%if %{with ifcfg_rh}
-	--enable-ifcfg-rh=yes \
-%else
-	--enable-ifcfg-rh=no \
-%endif
-	--enable-ifupdown=no \
-%if %{with ppp}
-	--enable-ppp=yes \
-	--with-pppd="%{_sbindir}/pppd" \
-	--with-pppd-plugin-dir="%{_libdir}/pppd/%{ppp_version}" \
-%else
-	--enable-ppp=no \
-%endif
-	--enable-firewalld-zone=yes \
-	--with-dist-version=%{version}-%{release} \
-%if %{with default_ifcfg_rh}
-	--with-config-plugins-default=ifcfg-rh \
-%endif
-%if %{with ifcfg_migrate}
-	--with-config-migrate-ifcfg-rh-default=yes \
-%endif
-	--with-resolvconf=no \
-	--with-netconfig=no \
-	--with-config-dns-rc-manager-default=%{dns_rc_manager_default} \
-	--with-config-logging-backend-default=journal \
-	--disable-autotools-deprecation
-
-%make_build
-
-%endif
-
 %install
-%if %{with meson}
 %meson_install
-%else
-%make_install
-%endif
 
 cp %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/
 
@@ -918,7 +761,7 @@ rm -f %{buildroot}%{_libdir}/pppd/%{ppp_version}/*.la
 rm -f %{buildroot}%{nmplugindir}/*.la
 
 # Ensure the documentation timestamps are constant to avoid multilib conflicts
-find %{buildroot}%{_datadir}/gtk-doc -exec touch --reference configure.ac '{}' \+
+find %{buildroot}%{_datadir}/gtk-doc -exec touch --reference meson.build '{}' \+
 
 %if 0%{?__debug_package} && ! 0%{?flatpak}
 mkdir -p %{buildroot}%{_prefix}/src/debug/NetworkManager-%{real_version}
@@ -932,21 +775,11 @@ touch %{buildroot}%{_sbindir}/ifdown
 
 
 %check
-%if %{with meson}
 %if %{with test}
 %meson_test
 %else
 %ninja_test -C %{_vpath_builddir} || :
 %endif
-%else
-# autotools
-%if %{with test}
-make -k %{?_smp_mflags} check
-%else
-make -k %{?_smp_mflags} check || :
-%endif
-%endif
-
 
 %pre
 if [ -f "%{_unitdir}/network-online.target.wants/NetworkManager-wait-online.service" ] ; then
diff --git a/contrib/fedora/rpm/build.sh b/contrib/fedora/rpm/build.sh
index 8160b915..f46b9ba5 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.
@@ -76,14 +78,7 @@ abs_path() {
 }
 
 get_version() {
-    local major minor micro
-    local F="${1:-"$GITDIR/configure.ac"}"
-
-    vars="$(sed -n 's/^m4_define(\[nm_\(major\|minor\|micro\)_version\], *\[\([0-9]\+\)\]) *$/local \1='\''\2'\''/p' "$F" 2>/dev/null)"
-    eval "$vars"
-
-    [[ -n "$major" && -n "$minor" && "$micro" ]] || return 1
-    echo "$major.$minor.$micro"
+    grep -E -m1 '^\s+version:' "$GITDIR/meson.build" | cut -d"'" -f2
 }
 
 write_changelog() {
@@ -122,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"
@@ -269,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 37436c1b..b1944d77 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
@@ -18,11 +20,9 @@ usage() {
     echo "  -f|--force: force build, even if working directory is not clean and has local modifications"
     echo "  -c|--clean: run \`git-clean -fdx :/\` before build"
     echo "  -S|--srpm: only build the SRPM"
-    echo "  -g|--git: create tarball from current git HEAD (skips make dist)"
+    echo "  -g|--git: create tarball from current git HEAD (skips meson dist)"
     echo "  -Q|--quick: only create the distribution tarball, without running checks"
-    echo "  -N|--no-dist: skip creating the source tarball if you already did \`make dist\`"
-    echo "  -m|--meson: (default) use meson to create the source tarball"
-    echo "  -A|--autotools: use autotools to create the source tarball"
+    echo "  -N|--no-dist: skip creating the source tarball if you already did \`meson dist\`"
     echo "  -w|--with \$OPTION: pass --with \$OPTION to rpmbuild. For example --with debug"
     echo "  -W|--without \$OPTION: pass --without \$OPTION to rpmbuild. For example --without debug"
     echo "  -s|--snapshot TEXT: use TEXT as the snapshot version for the new package (overwrites \$NM_BUILD_SNAPSHOT environment)"
@@ -99,14 +99,6 @@ while [[ $# -gt 0 ]]; do
             IGNORE_DIRTY=1
             SOURCE_FROM_GIT=1
             ;;
-        -m|--meson)
-            [ "$USE_AUTOTOOLS" = 1 ] && die "conflicting argument: $A when building with autotools is requested";
-            USE_MESON=1
-            ;;
-        -A|--autotools)
-            [ "$USE_MESON" = 1 ] && die "conflicting argument: $A when building with meson is explicitly requested";
-            USE_AUTOTOOLS=1
-            ;;
         -Q|--quick)
             QUICK=1
             ;;
@@ -199,100 +191,53 @@ 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
-    if [[ $USE_AUTOTOOLS != 1 ]]; then
-            meson setup "$GITDIR/build" \
-                --prefix=/usr \
-                --bindir=/usr/bin \
-                --sbindir=/usr/sbin \
-                --sysconfdir=/etc \
-                --datadir=/usr/share \
-                --includedir=/usr/include \
-                --libdir=/usr/lib \
-                --libexecdir=/usr/libexec \
-                --localstatedir=/var \
-                --sharedstatedir=/var/lib \
-                --mandir=/usr/share/man \
-                --infodir=/usr/share/info \
-                -Ddocs=true \
-                -Dintrospection=true \
-                -Difcfg_rh=true \
-                -Difupdown=true \
-                -Dconfig_logging_backend_default=syslog \
-                -Dconfig_wifi_backend_default=wpa_supplicant \
-                -Dlibaudit=yes-disabled-by-default \
-                -Dpolkit=true \
-                -Dnm_cloud_setup=true \
-                -Ddhclient=/usr/sbin/dhclient \
-                -Dconfig_dhcp_default=internal \
-                -Dconfig_dns_rc_manager_default=auto \
-                -Diptables=/usr/sbin/iptables \
-                -Dnft=/usr/bin/nft \
-                || die "Error meson setup"
-
-            VERSION="${VERSION:-$(get_version_meson || die "Could not read $VERSION")}"
-            if [[ $QUICK == 1 ]]; then
-                meson dist --allow-dirty -C "$GITDIR/build/" --no-tests || die "Error meson dist"
-            else
-                meson dist --allow-dirty -C "$GITDIR/build/" || die "Error meson dist with tests"
-            fi
-            export SOURCE="$(ls -1 "$GITDIR/build/meson-dist/NetworkManager-${VERSION}.tar.xz" 2>/dev/null | head -n1)"
-    else
-        ./autogen.sh \
-            --with-runstatedir=/run \
-            --program-prefix= \
-            --prefix=/usr \
-            --exec-prefix=/usr \
-            --bindir=/usr/bin \
-            --sbindir=/usr/sbin \
-            --sysconfdir=/etc \
-            --datadir=/usr/share \
-            --includedir=/usr/include \
-            --libdir=/usr/lib \
-            --libexecdir=/usr/libexec \
-            --localstatedir=/var \
-            --sharedstatedir=/var/lib \
-            --mandir=/usr/share/man \
-            --infodir=/usr/share/info \
-            \
-            --disable-dependency-tracking \
-            --enable-gtk-doc \
-            --enable-introspection \
-            --enable-ifcfg-rh \
-            --enable-ifupdown \
-            --with-config-logging-backend-default=syslog \
-            --with-config-wifi-backend-default=wpa_supplicant \
-            --with-libaudit=yes-disabled-by-default \
-            --enable-polkit=yes \
-            --with-nm-cloud-setup=yes \
-            --with-dhclient=yes \
-            --with-config-dhcp-default=internal \
-            --with-config-dns-rc-manager-default=auto \
-            \
-            --with-iptables=/usr/sbin/iptables \
-            --with-nft=/usr/sbin/nft \
-            --disable-autotools-deprecation \
-            \
-            || die "Error autogen.sh"
-        if [[ $QUICK == 1 ]]; then
-            make dist -j 7 || die "Error make dist"
-        else
-            make distcheck -j 7 || die "Error make distcheck"
-        fi
+    meson setup "$GITDIR/build" \
+        --prefix=/usr \
+        --bindir=/usr/bin \
+        --sbindir=/usr/sbin \
+        --sysconfdir=/etc \
+        --datadir=/usr/share \
+        --includedir=/usr/include \
+        --libdir=/usr/lib \
+        --libexecdir=/usr/libexec \
+        --localstatedir=/var \
+        --sharedstatedir=/var/lib \
+        --mandir=/usr/share/man \
+        --infodir=/usr/share/info \
+        -Ddocs=true \
+        -Dintrospection=true \
+        -Difcfg_rh=true \
+        -Difupdown=true \
+        -Dconfig_logging_backend_default=syslog \
+        -Dconfig_wifi_backend_default=wpa_supplicant \
+        -Dlibaudit=yes-disabled-by-default \
+        -Dpolkit=true \
+        -Dnm_cloud_setup=true \
+        -Ddhclient=/usr/sbin/dhclient \
+        -Dconfig_dhcp_default=internal \
+        -Dconfig_dns_rc_manager_default=auto \
+        -Diptables=/usr/sbin/iptables \
+        -Dnft=/usr/bin/nft \
+        || die "Error meson setup"
+
+    VERSION="${VERSION:-$(get_version_meson || die "Could not read VERSION")}"
+    TEST_FLAG=""
+    if [[ $QUICK == 1 ]]; then
+        TEST_FLAG="--no-tests"
     fi
+    meson dist --allow-dirty -C "$GITDIR/build/" $TEST_FLAG || die "Error meson dist"
+    export SOURCE="$(ls -1 "$GITDIR/build/meson-dist/NetworkManager-${VERSION}.tar.xz" 2>/dev/null | head -n1)"
 fi
 
 if [[ "$ADD_WITH_TEST" == 1 ]]; then
     WITH_LIST=("${WITH_LIST[@]}" "--with" "test")
 fi
 
-if [[ "$USE_AUTOTOOLS" != 1 ]]; then
-    WITH_LIST=("${WITH_LIST[@]}" "--with" "meson")
-fi
-
 export SOURCE_FROM_GIT
 export BUILDTYPE
 export NM_RPMBUILD_ARGS="${WITH_LIST[@]}"
diff --git a/contrib/fedora/rpm/configure-for-system.sh b/contrib/fedora/rpm/configure-for-system.sh
index 37966ae4..fff426bc 100755
--- a/contrib/fedora/rpm/configure-for-system.sh
+++ b/contrib/fedora/rpm/configure-for-system.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # Run configure/meson for NetworkManager in a way similar to how an RPM build does it.
-# The effect is, that if you do `make install`, that it will overwrite the files that
+# The effect is, that if you do `meson install`, that it will overwrite the files that
 # you'd usually get by installing the NetworkManager RPM. Also, it means you can afterwards
 # systemctl restart NetworkManager.
 
@@ -30,10 +30,10 @@ vars_with_vals() {
 }
 
 usage() {
-    echo "$ $0 [-m|--meson <builddir>] [-a|--autotools] [-s|--show] [-B|--no-build] [-h|--help]"
+    echo "$ $0 [-m|--meson <builddir>] [-s|--show] [-B|--no-build] [-h|--help]"
     echo ""
     echo "Configure NetworkManager in a way that is similar to when building"
-    echo "RPMs of NetworkManager for Fedora/RHEL. The effect is that \`make install\`"
+    echo "RPMs of NetworkManager for Fedora/RHEL. The effect is that \`meson install\`"
     echo "will overwrite the files in /usr that you installed via the package management"
     echo "systemd. Also, subsequent \`systemctl restart NetworkManager\` works."
     echo "You don't want to do this on your real system, because it messes up your"
@@ -44,14 +44,7 @@ usage() {
 }
 
 get_version() {
-    local major minor micro
-    local F="./configure.ac"
-
-    vars="$(sed -n 's/^m4_define(\[nm_\(major\|minor\|micro\)_version\], *\[\([0-9]\+\)\]) *$/local \1='\''\2'\''/p' "$F" 2>/dev/null)"
-    eval "$vars"
-
-    [[ -n "$major" && -n "$minor" && "$micro" ]] || return 1
-    echo "$major.$minor.$micro"
+    grep -E -m1 '^\s+version:' meson.build | cut -d"'" -f2
 }
 
 bool() {
@@ -149,7 +142,6 @@ P_NOBUILD="${NOBUILD-0}"
 
 P_DEBUG="${DEBUG-1}"
 
-P_BUILD_TYPE="${BUILD_TYPE-meson}"
 P_MESON_BUILDDIR="${MESON_BUILDDIR-./build}"
 [ -n "$MESON_BUILDDIR" ] && P_MESON_BUILDDIR_FORCE=1
 P_CFLAGS="${CFLAGS-}"
@@ -313,14 +305,10 @@ while [[ $# -gt 0 ]] ; do
     shift
     case "$A" in
         --meson|-m)
-            P_BUILD_TYPE=meson
             P_MESON_BUILDDIR="$1"
             P_MESON_BUILDDIR_FORCE=1
             shift
             ;;
-        --autotools|-a)
-            P_BUILD_TYPE=autotools
-            ;;
         -s|--show)
             SHOW_CMD=show_cmd
             ;;
@@ -338,7 +326,7 @@ while [[ $# -gt 0 ]] ; do
     esac
 done
 
-if [ "$P_BUILD_TYPE" = meson -a "$P_MESON_BUILDDIR_FORCE" != 1 ]; then
+if [ "$P_MESON_BUILDDIR_FORCE" != 1 ]; then
     if [ -d "$P_MESON_BUILDDIR" ]; then
         echo "Build directory '$P_MESON_BUILDDIR' chosen by default, but it exists and will be overwritten." \
              "If you really want that, pass '--meson \"$P_MESON_BUILDDIR\"'." >&2
@@ -348,181 +336,88 @@ fi
 
 vars_with_vals
 
-if [ "$P_BUILD_TYPE" == meson ] ; then
-    MESON_RECONFIGURE=
-    if test -d "$P_MESON_BUILDDIR" ; then
-        MESON_RECONFIGURE="--reconfigure"
-    fi
-
-    $SHOW_CMD \
-    env \
-    CC="$P_CC" \
-    CFLAGS="$P_CFLAGS" \
-    meson setup\
-        $MESON_RECONFIGURE \
-        --buildtype=plain \
-        --prefix="$D_PREFIX" \
-        --libdir="$D_LIBDIR" \
-        --libexecdir="$D_LIBEXECDIR" \
-        --bindir="$D_BINDIR" \
-        --sbindir="$D_SBINDIR" \
-        --includedir="$D_INCLUDEDIR" \
-        --datadir="$D_DATADIR" \
-        --mandir="$D_MANDIR" \
-        --infodir="$D_INFODIR" \
-        --localedir="$D_DATADIR"/locale \
-        --sysconfdir="$D_SYSCONFDIR" \
-        --localstatedir="$D_LOCALSTATEDIR" \
-        --sharedstatedir="$D_SHAREDSTATEDIR" \
-        --wrap-mode=nodownload \
-        --auto-features=enabled \
-        -Db_ndebug=false \
-        --warnlevel 2 \
-        $(args_enable "$P_TEST" --werror) \
-        -Dnft="${D_SBINDIR}/nft" \
-        -Diptables="${D_SBINDIR}/iptables" \
-        -Ddhclient="${D_SBINDIR}/dhclient" \
-        -Ddhcpcanon=no \
-        -Ddhcpcd=no \
-        -Dconfig_dhcp_default="$P_DHCP_DEFAULT" \
-        "-Dcrypto=$P_CRYPTO" \
-        $(args_enable "$P_DEBUG"                    -Dmore_logging=true  -Dmore_asserts=10000) \
-        $(args_enable "$(bool_not_true "$P_DEBUG")" -Dmore_logging=false -Dmore_asserts=0    ) \
-        -Dld_gc=true \
-        -Db_lto="$(bool_true "$P_LTO")" \
-        -Dlibaudit=yes-disabled-by-default \
-        -Dmodem_manager="$(bool_true "$P_MODEM_MANAGER_1")" \
-        $(args_enable "$P_WIFI"                    -Dwifi=true  -Dwext="$(bool_true "$P_FEDORA")") \
-        $(args_enable "$(bool_not_true "$P_WIFI")" -Dwifi=false                                  ) \
-        -Diwd="$(bool_true "$P_IWD")" \
-        -Dbluez5_dun="$(bool_true "$P_BLUETOOTH")" \
-        -Dnmtui="$(bool_true "$P_NMTUI")" \
-        -Dnm_cloud_setup="$(bool_true "$P_NM_CLOUD_SETUP")" \
-        -Dvapi=true \
-        -Dintrospection=true \
-        -Ddocs="$(bool_true "$P_REGEN_DOCS")" \
-        -Dteamdctl="$(bool_true "$P_TEAM")" \
-        -Dovs="$(bool_true "$P_OVS")" \
-        -Dselinux=true \
-        -Dpolkit=true  \
-        -Dconfig_auth_polkit_default=true \
-        -Dmodify_system=true \
-        -Dconcheck=true \
-        -Dlibpsl="$(bool_true "$P_FEDORA")" \
-        -Debpf="$(bool_true "$P_EBPF_ENABLED")" \
-        -Dsession_tracking=systemd \
-        -Dsuspend_resume=systemd \
-        -Dsystemdsystemunitdir=/usr/lib/systemd/system \
-        -Dsystem_ca_path=/etc/pki/tls/cert.pem \
-        -Ddbus_conf_dir="$P_DBUS_SYS_DIR" \
-        -Dtests=yes \
-        -Dvalgrind=no \
-        -Difcfg_rh=true \
-        -Difupdown=false \
-        $(args_enable "$P_PPP"                    -Dppp=true  -Dpppd="$D_SBINDIR/pppd" -Dpppd_plugin_dir="$D_LIBDIR/pppd/$P_PPP_VERSION") \
-        $(args_enable "$(bool_not_true "$P_PPP")" -Dppp=false                                                                           ) \
-        -Dfirewalld_zone="$(bool_true "$P_FIREWALLD_ZONE}")" \
-        -Ddist_version="$P_VERSION-$P_RELEASE" \
-        $(args_enable "$P_CONFIG_PLUGINS_DEFAULT_IFCFG_RH" -Dconfig_plugins_default=ifcfg-rh) \
-        -Dresolvconf=no \
-        -Dnetconfig=no \
-        -Dconfig_dns_rc_manager_default="$P_DNS_RC_MANAGER_DEFAULT" \
-        -Dconfig_logging_backend_default="$P_LOGGING_BACKEND_DEFAULT" \
-        \
-        "$P_MESON_BUILDDIR" \
-        ;
-else
-    if ! test -x ./configure ; then
-        if [ -z "$SHOW_CMD" ]; then
-            NOCONFIGURE=yes ./autogen.sh
-        fi
-    fi
-    $SHOW_CMD \
-    ./configure \
-        --build=x86_64-redhat-linux-gnu \
-        --host=x86_64-redhat-linux-gnu \
-        --program-prefix= \
-        --prefix="$D_PREFIX" \
-        --exec-prefix=/usr \
-        --bindir="$D_BINDIR" \
-        --sbindir="$D_SBINDIR" \
-        --sysconfdir="$D_SYSCONFDIR" \
-        --datadir="$D_DATADIR" \
-        --includedir="$D_INCLUDEDIR" \
-        --libdir="$D_LIBDIR" \
-        --libexecdir="$D_LIBEXECDIR" \
-        --localstatedir="$D_LOCALSTATEDIR" \
-        --sharedstatedir="$D_SHAREDSTATEDIR" \
-        --mandir="$D_MANDIR" \
-        --infodir="$D_INFODIR" \
-        \
-        CC="$P_CC" \
-        CFLAGS="$P_CFLAGS" \
-        \
-        --enable-dependency-tracking=yes \
-        \
-        --with-runstatedir="$D_RUNDIR" \
-        --enable-silent-rules="$(bool_yes "$P_SILENT_RULES")" \
-        --enable-static=no \
-        --with-nft="${D_SBINDIR}/nft" \
-        --with-iptables="${D_SBINDIR}/iptables" \
-        --with-dhclient="${D_SBINDIR}/dhclient" \
-        --with-dhcpcd=no \
-        --with-dhcpcanon=no \
-        --with-config-dhcp-default="$P_DHCP_DEFAULT" \
-        --with-crypto="$P_CRYPTO" \
-        $(args_enable "$P_SANITIZER"                    --with-address-sanitizer=exec --enable-undefined-sanitizer="$( (bool "$P_FEDORA" || test "$P_RHEL" -ge 8) && echo yes || echo no)" ) \
-        $(args_enable "$(bool_not_true "$P_SANITIZER")" --with-address-sanitizer=no   --enable-undefined-sanitizer=no                                                                            ) \
-        $(args_enable "$P_DEBUG"                    --enable-more-logging=yes --with-more-asserts=10000) \
-        $(args_enable "$(bool_not_true "$P_DEBUG")" --enable-more-logging=no  --with-more-asserts=0    ) \
-        --enable-ld-gc=yes \
-        --enable-lto="$(bool_yes "$P_LTO")" \
-        --with-libaudit=yes-disabled-by-default \
-        --with-modem-manager-1="$(bool_yes "$P_MODEM_MANAGER_1")" \
-        $(args_enable "$P_WIFI"                    --enable-wifi=yes --with-wext="$(bool_yes "$P_FEDORA")") \
-        $(args_enable "$(bool_not_true "$P_WIFI")" --enable-wifi=no                                       ) \
-        --with-iwd="$(bool_yes "$P_IWD")" \
-        --enable-bluez5-dun="$(bool_yes "$P_BLUETOOTH")" \
-        --with-nmtui="$(bool_yes "$P_NMTUI")" \
-        --with-nm-cloud-setup="$(bool_yes "$P_NM_CLOUD_SETUP")" \
-        --enable-vala=yes \
-        --enable-introspection=yes \
-        --enable-gtk-doc="$(bool_yes "$P_REGEN_DOCS")" \
-        --enable-teamdctl="$(bool_yes "$P_TEAM")" \
-        --enable-ovs="$(bool_yes "$P_OVS")" \
-        --with-selinux=yes \
-        --enable-polkit=yes \
-        --enable-modify-system=yes \
-        --enable-concheck=yes \
-        --with-libpsl="$(bool_yes "$P_FEDORA")" \
-        --with-ebpf="$(bool_yes "$P_EBPF_ENABLED")" \
-        --with-session-tracking=systemd \
-        --with-suspend-resume=systemd \
-        --with-systemdsystemunitdir=/usr/lib/systemd/system \
-        --with-system-ca-path=/etc/pki/tls/cert.pem \
-        --with-dbus-sys-dir="$P_DBUS_SYS_DIR" \
-        --with-tests=yes \
-        --enable-more-warnings="$(bool "$P_TEST" && echo error || echo yes)" \
-        --with-valgrind=no \
-        --enable-ifcfg-rh=yes \
-        --enable-ifupdown=no \
-        $(args_enable "$P_PPP"                    --enable-ppp=yes --with-pppd="$D_SBINDIR/pppd" --with-pppd-plugin-dir="$D_LIBDIR/pppd/$P_PPP_VERSION") \
-        $(args_enable "$(bool_not_true "$P_PPP")" --enable-ppp=no                                                                                      ) \
-        --enable-firewalld-zone="$(bool_yes "$P_FIREWALLD_ZONE")" \
-        --with-dist-version="$P_VERSION-$P_RELEASE" \
-        $(args_enable "$P_CONFIG_PLUGINS_DEFAULT_IFCFG_RH" --with-config-plugins-default=ifcfg-rh) \
-        --with-resolvconf=no \
-        --with-netconfig=no \
-        --with-config-dns-rc-manager-default="$P_DNS_RC_MANAGER_DEFAULT" \
-        --with-config-logging-backend-default="$P_LOGGING_BACKEND_DEFAULT" \
-        --disable-autotools-deprecation \
-        ;
+MESON_RECONFIGURE=
+if test -d "$P_MESON_BUILDDIR" ; then
+    MESON_RECONFIGURE="--reconfigure"
 fi
 
+$SHOW_CMD \
+env \
+CC="$P_CC" \
+CFLAGS="$P_CFLAGS" \
+meson setup\
+    $MESON_RECONFIGURE \
+    --buildtype=plain \
+    --prefix="$D_PREFIX" \
+    --libdir="$D_LIBDIR" \
+    --libexecdir="$D_LIBEXECDIR" \
+    --bindir="$D_BINDIR" \
+    --sbindir="$D_SBINDIR" \
+    --includedir="$D_INCLUDEDIR" \
+    --datadir="$D_DATADIR" \
+    --mandir="$D_MANDIR" \
+    --infodir="$D_INFODIR" \
+    --localedir="$D_DATADIR"/locale \
+    --sysconfdir="$D_SYSCONFDIR" \
+    --localstatedir="$D_LOCALSTATEDIR" \
+    --sharedstatedir="$D_SHAREDSTATEDIR" \
+    --wrap-mode=nodownload \
+    --auto-features=enabled \
+    -Db_ndebug=false \
+    --warnlevel 2 \
+    $(args_enable "$P_TEST" --werror) \
+    -Dnft="${D_SBINDIR}/nft" \
+    -Diptables="${D_SBINDIR}/iptables" \
+    -Ddhclient="${D_SBINDIR}/dhclient" \
+    -Ddhcpcd=no \
+    -Dconfig_dhcp_default="$P_DHCP_DEFAULT" \
+    "-Dcrypto=$P_CRYPTO" \
+    $(args_enable "$P_DEBUG"                    -Dmore_logging=true  -Dmore_asserts=10000) \
+    $(args_enable "$(bool_not_true "$P_DEBUG")" -Dmore_logging=false -Dmore_asserts=0    ) \
+    -Dld_gc=true \
+    -Db_lto="$(bool_true "$P_LTO")" \
+    -Dlibaudit=yes-disabled-by-default \
+    -Dmodem_manager="$(bool_true "$P_MODEM_MANAGER_1")" \
+    $(args_enable "$P_WIFI"                    -Dwifi=true  -Dwext="$(bool_true "$P_FEDORA")") \
+    $(args_enable "$(bool_not_true "$P_WIFI")" -Dwifi=false                                  ) \
+    -Diwd="$(bool_true "$P_IWD")" \
+    -Dbluez5_dun="$(bool_true "$P_BLUETOOTH")" \
+    -Dnmtui="$(bool_true "$P_NMTUI")" \
+    -Dnm_cloud_setup="$(bool_true "$P_NM_CLOUD_SETUP")" \
+    -Dvapi=true \
+    -Dintrospection=true \
+    -Ddocs="$(bool_true "$P_REGEN_DOCS")" \
+    -Dteamdctl="$(bool_true "$P_TEAM")" \
+    -Dovs="$(bool_true "$P_OVS")" \
+    -Dselinux=true \
+    -Dpolkit=true  \
+    -Dconfig_auth_polkit_default=true \
+    -Dmodify_system=true \
+    -Dconcheck=true \
+    -Dlibpsl="$(bool_true "$P_FEDORA")" \
+    -Debpf="$(bool_true "$P_EBPF_ENABLED")" \
+    -Dsession_tracking=systemd \
+    -Dsuspend_resume=systemd \
+    -Dsystemdsystemunitdir=/usr/lib/systemd/system \
+    -Dsystem_ca_path=/etc/pki/tls/cert.pem \
+    -Ddbus_conf_dir="$P_DBUS_SYS_DIR" \
+    -Dtests=yes \
+    -Dvalgrind=no \
+    -Difcfg_rh=true \
+    -Difupdown=false \
+    $(args_enable "$P_PPP"                    -Dppp=true  -Dpppd="$D_SBINDIR/pppd" -Dpppd_plugin_dir="$D_LIBDIR/pppd/$P_PPP_VERSION") \
+    $(args_enable "$(bool_not_true "$P_PPP")" -Dppp=false                                                                           ) \
+    -Dfirewalld_zone="$(bool_true "$P_FIREWALLD_ZONE}")" \
+    -Ddist_version="$P_VERSION-$P_RELEASE" \
+    $(args_enable "$P_CONFIG_PLUGINS_DEFAULT_IFCFG_RH" -Dconfig_plugins_default=ifcfg-rh) \
+    -Dresolvconf=no \
+    -Dnetconfig=no \
+    -Dconfig_dns_rc_manager_default="$P_DNS_RC_MANAGER_DEFAULT" \
+    -Dconfig_logging_backend_default="$P_LOGGING_BACKEND_DEFAULT" \
+    \
+    "$P_MESON_BUILDDIR" \
+    ;
+
 if ! bool "$P_NOBUILD" ; then
-    if [ "$P_BUILD_TYPE" == meson ] ; then
-        $SHOW_CMD ninja -C "$P_MESON_BUILDDIR"
-    else
-        $SHOW_CMD make -j 10
-    fi
+    $SHOW_CMD ninja -C "$P_MESON_BUILDDIR"
 fi
diff --git a/contrib/fedora/rpm/release.sh b/contrib/fedora/rpm/release.sh
index 32e5e7d1..5a7e0c16 100755
--- a/contrib/fedora/rpm/release.sh
+++ b/contrib/fedora/rpm/release.sh
@@ -99,14 +99,17 @@ do_command() {
     fi
 }
 
+SCRIPTDIR="$(dirname "$(readlink -f "$0")")"
+GITDIR="$(cd "$SCRIPTDIR" && git rev-parse --show-toplevel || die "Could not get GITDIR")"
+
 parse_version() {
-    local MAJ="$(sed -n '1,20 s/^m4_define(\[nm_major_version\], \[\([0-9]\+\)\])$/\1/p' ./configure.ac)"
-    local MIN="$(sed -n '1,20 s/^m4_define(\[nm_minor_version\], \[\([0-9]\+\)\])$/\1/p' ./configure.ac)"
-    local MIC="$(sed -n '1,20 s/^m4_define(\[nm_micro_version\], \[\([0-9]\+\)\])$/\1/p' ./configure.ac)"
+    local VERSION=$(grep -E -m1 '^\s+version:' "$GITDIR/meson.build" \
+                    | cut -d"'" -f2 \
+                    | sed 's/\./ /g')
 
     re='^(0|[1-9][0-9]*) (0|[1-9][0-9]*) (0|[1-9][0-9]*)$'
-    [[ "$MAJ $MIN $MIC" =~ $re ]] || return 1
-    echo "$MAJ $MIN $MIC"
+    [[ "$VERSION" =~ $re ]] || return 1
+    echo "$VERSION"
 }
 
 number_is_even() {
@@ -150,25 +153,12 @@ check_gitlab_pipeline() {
     return 0
 }
 
-set_version_number_autotools() {
-    sed -i \
-        -e '1,20 s/^m4_define(\[nm_major_version\], \[\([0-9]\+\)\])$/m4_define([nm_major_version], ['"$1"'])/' \
-        -e '1,20 s/^m4_define(\[nm_minor_version\], \[\([0-9]\+\)\])$/m4_define([nm_minor_version], ['"$2"'])/' \
-        -e '1,20 s/^m4_define(\[nm_micro_version\], \[\([0-9]\+\)\])$/m4_define([nm_micro_version], ['"$3"'])/' \
-        ./configure.ac
-}
-
-set_version_number_meson() {
+set_version_number() {
     sed -i \
         -e '1,20 s/^\( *version: *'\''\)[0-9]\+\.[0-9]\+\.[0-9]\+\('\'',\)$/\1'"$1.$2.$3"'\2/' \
         meson.build
 }
 
-set_version_number() {
-    set_version_number_autotools "$@" &&
-    set_version_number_meson "$@"
-}
-
 check_news() {
     local mode="$1"
     shift
@@ -377,7 +367,7 @@ if [ -n "$RELEASE_BRANCH" ]; then
 fi
 
 if [ "$ALLOW_LOCAL_BRANCHES" != 1 ]; then
-    cmp <(git show "$ORIGIN/nm-1-50:contrib/fedora/rpm/release.sh") "$BASH_SOURCE_ABSOLUTE" || die "$BASH_SOURCE is not identical to \`git show \"$ORIGIN/nm-1-50:contrib/fedora/rpm/release.sh\"\`"
+    cmp <(git show "$ORIGIN/main:contrib/fedora/rpm/release.sh") "$BASH_SOURCE_ABSOLUTE" || die "$BASH_SOURCE is not identical to \`git show \"$ORIGIN/main:contrib/fedora/rpm/release.sh\"\`"
 fi
 
 if ! check_news "$RELEASE_MODE" "@{VERSION_ARR[@]}" ; then
diff --git a/contrib/fedora/utils/makerepo.sh b/contrib/fedora/utils/makerepo.sh
index 266aac8f..e81c478b 100755
--- a/contrib/fedora/utils/makerepo.sh
+++ b/contrib/fedora/utils/makerepo.sh
@@ -262,6 +262,12 @@ detect_dirname() {
         # the unpacked tarball (that is, stripping the suffix).
         for T in $(ls -1 "$BUILD_TYPE"*"$suffix" 2>/dev/null); do
             D="${T%$suffix}"
+            # At some point FEDPKG changed the behavior of "prep" command
+            # now it generates the directory with "-build" suffix and the
+            # real directory inside. We just move it out.
+            rm -rf $D
+            mv $D-build/$D .
+            rm -rf $D-build
             [[ -d "$D" ]] && DIRS=("${DIRS[@]}" "$D")
         done
     done
diff --git a/contrib/scripts/checkpatch.pl b/contrib/scripts/checkpatch.pl
index c24db35e..2b4669c0 100755
--- a/contrib/scripts/checkpatch.pl
+++ b/contrib/scripts/checkpatch.pl
@@ -203,7 +203,7 @@ complain ("Don't use g_direct_equal() for hash tables, pass NULL for pointer equ
 complain ("Prefer nm_pint_hash()/nm_pint64_hash()/nm_pdouble_hash() over g_int_hash()/g_int64_hash()/g_double_hash(). Those use siphash24") if $line =~ /\b(g_int_hash|g_int64_hash|g_double_hash)\b/;
 complain ("Prefer nm_pint_equal()/nm_pint64_equal()/nm_pdouble_equal() over g_int_equal()/g_int64_equal()/g_double_equal(). Those names mirror our nm_p*_hash() functions") if $line =~ /\b(g_int_equal|g_int64_equal|g_double_equal)\b/;
 complain ("Avoid g_clear_pointer() and use nm_clear_pointer() (or nm_clear_g_free(), g_clear_object(), etc.)") if $line =~ /\b(g_clear_pointer)\b/;
-complain ("Define setting properties with _nm_setting_property_define_direct_*() API") if $line =~ /g_param_spec_/ and $filename =~ /\/libnm-core-impl\/nm-setting/;
+complain ("Define setting properties with _nm_setting_property_define_direct_*() API") if $line =~ /g_param_spec_/ and $filename =~ /\/libnm-core-impl\/nm-setting/ and (not $filename =~ /\/nm-setting-ip-config.c$/);
 complain ("Use nm_g_array_{index,first,last,index_p}() instead of g_array_index(), as it nm_assert()s for valid element size and out-of-bound access") if $line =~ /\bg_array_index\b/;
 complain ("Use spaces instead of tabs") if $line =~ /\t/;
 complain ("Prefer implementing private pointers via _NM_GET_PRIVATE() or _NM_GET_PRIVATE_PTR() (the latter, if the private data has an opqaue pointer in the header file)") if $line =~ /\b(g_type_class_add_private|G_TYPE_INSTANCE_GET_PRIVATE)\b/;
diff --git a/contrib/scripts/nm-ci-run.sh b/contrib/scripts/nm-ci-run.sh
index 162b9da1..3864620f 100755
--- a/contrib/scripts/nm-ci-run.sh
+++ b/contrib/scripts/nm-ci-run.sh
@@ -3,7 +3,6 @@
 # Arguments via environment variables:
 #  - CI
 #  - CC
-#  - BUILD_TYPE
 #  - CFLAGS
 #  - WITH_DOCS
 
@@ -50,23 +49,13 @@ grep -q '^NAME=.*\(Alpine\)' /etc/os-release && IS_ALPINE=1
 
 ###############################################################################
 
-if [ "$BUILD_TYPE" == meson ]; then
-    _TRUE=true
-    _FALSE=false
-elif [ "$BUILD_TYPE" == autotools ]; then
-    _TRUE=yes
-    _FALSE=no
-else
-    die "invalid \$BUILD_TYPE \"$BUILD_TYPE\""
-fi
-
 _WITH_CRYPTO="gnutls"
 _WITH_WERROR=1
-_WITH_LIBTEAM="$_TRUE"
-_WITH_DOCS="$_TRUE"
-_WITH_SYSTEMD_LOGIND="$_TRUE"
+_WITH_LIBTEAM="true"
+_WITH_DOCS="true"
+_WITH_SYSTEMD_LOGIND="true"
 if [ $IS_ALPINE = 1 ]; then
-    _WITH_SYSTEMD_LOGIND="$_FALSE"
+    _WITH_SYSTEMD_LOGIND="false"
 fi
 
 if [ -z "${NMTST_SEED_RAND+x}" ]; then
@@ -92,9 +81,9 @@ fi
 
 if [ "$WITH_DOCS" != "" ]; then
     if _is_true "$WITH_DOCS"; then
-        _WITH_DOCS="$_TRUE"
+        _WITH_DOCS="true"
     else
-        _WITH_DOCS="$_FALSE"
+        _WITH_DOCS="false"
     fi
 fi
 
@@ -149,149 +138,71 @@ _print_test_logs() {
     fi
 }
 
-run_autotools() {
-    NOCONFIGURE=1 ./autogen.sh
-    mkdir ./build
-    if [ "$_WITH_WERROR" == 1 ]; then
-        _WITH_WERROR_VAL="error"
-    else
-        _WITH_WERROR_VAL="yes"
-    fi
-    DISABLE_DEPENDENCY_TRACKING=
-    if [ $IS_ALPINE = 1 ]; then
-        DISABLE_DEPENDENCY_TRACKING='--disable-dependency-tracking'
-    fi
-    pushd ./build
-        ../configure \
-            --prefix="$PWD/INST" \
-            $DISABLE_DEPENDENCY_TRACKING \
-            \
-            --enable-introspection=$_WITH_DOCS \
-            --enable-gtk-doc=$_WITH_DOCS \
-            --with-systemd-logind=$_WITH_SYSTEMD_LOGIND \
-            --enable-more-warnings="$_WITH_WERROR_VAL" \
-            --enable-tests=yes \
-            --with-crypto=$_WITH_CRYPTO \
-            \
-            --with-ebpf=no \
-            \
-            --with-iwd=yes \
-            --with-ofono=yes \
-            --enable-teamdctl=$_WITH_LIBTEAM \
-            \
-            --with-dhcpcanon=yes \
-            --with-dhcpcd=yes \
-            --with-dhclient=yes \
-            \
-            --with-netconfig=/bin/nowhere/netconfig \
-            --with-resolvconf=/bin/nowhere/resolvconf \
-            \
-            --enable-ifcfg-rh=yes \
-            --enable-ifupdown=yes \
-            --disable-autotools-deprecation \
-            \
-            #end
-
-        if [ "$CONFIGURE_ONLY" != 1 ]; then
-            make -j 6
-            make install
-
-            export NM_TEST_CLIENT_CHECK_L10N=1
-
-            if ! make check -j 6 -k ; then
-                _print_test_logs "first-test"
-                echo ">>>> RUN SECOND TEST (start)"
-                NMTST_DEBUG="debug,TRACE,no-expect-message" make check -k || :
-                echo ">>>> RUN SECOND TEST (done)"
-                _print_test_logs "second-test"
-                die "autotools test failed"
-            fi
-
-            if _with_valgrind; then
-                if ! NMTST_USE_VALGRIND=1 make check -j 3 -k ; then
-                    _print_test_logs "(valgrind test)"
-                    die "autotools+valgrind test failed"
-                fi
-            fi
-        fi
-    popd
-}
-
 ###############################################################################
 
-run_meson() {
-    if [ "$_WITH_WERROR" == 1 ]; then
-        _WITH_WERROR_VAL="--werror"
-    else
-        _WITH_WERROR_VAL=""
-    fi
-    meson setup build \
-        \
-        -Dprefix="$PWD/INST" \
-        \
-        --warnlevel 2 \
-        $_WITH_WERROR_VAL \
-        \
-        -D ld_gc=false \
-        -D session_tracking=no \
-        -D systemdsystemunitdir=no \
-        -D systemd_journal=false \
-        -D selinux=false \
-        -D libaudit=no \
-        -D libpsl=false \
-        -D vapi=false \
-        -D introspection=$_WITH_DOCS \
-        -D qt=false \
-        -D crypto=$_WITH_CRYPTO \
-        -D docs=$_WITH_DOCS \
-        \
-        -D ebpf=false \
-        \
-        -D iwd=true \
-        -D ofono=true \
-        -D teamdctl=$_WITH_LIBTEAM \
-        \
-        -D dhclient=/bin/nowhere/dhclient \
-        -D dhcpcanon=/bin/nowhere/dhcpcanon \
-        -D dhcpcd=/bin/nowhere/dhcpd \
-        \
-        -D netconfig=/bin/nowhere/netconfig \
-        -D resolvconf=/bin/nowhere/resolvconf \
-        \
-        -D ifcfg_rh=false \
-        -D ifupdown=true \
-        \
-        #end
-
-    export NM_TEST_CLIENT_CHECK_L10N=1
-
-    if [ "$CONFIGURE_ONLY" != 1 ]; then
-        ninja -C build -v
-        ninja -C build install
+if [ "$_WITH_WERROR" == 1 ]; then
+    _WITH_WERROR_VAL="--werror"
+else
+    _WITH_WERROR_VAL=""
+fi
 
-        if ! meson test -C build -v --print-errorlogs ; then
-            echo ">>>> RUN SECOND TEST (start)"
-            NMTST_DEBUG="debug,TRACE,no-expect-message" \
-            meson test -C build -v --print-errorlogs || :
-            echo ">>>> RUN SECOND TEST (done)"
-            die "meson test failed"
-        fi
+meson setup build \
+    \
+    -Dprefix="$PWD/INST" \
+    \
+    --warnlevel 2 \
+    $_WITH_WERROR_VAL \
+    \
+    -D ld_gc=false \
+    -D session_tracking=no \
+    -D systemdsystemunitdir=no \
+    -D systemd_journal=false \
+    -D selinux=false \
+    -D libaudit=no \
+    -D libpsl=false \
+    -D vapi=false \
+    -D introspection=$_WITH_DOCS \
+    -D qt=false \
+    -D crypto=$_WITH_CRYPTO \
+    -D docs=$_WITH_DOCS \
+    \
+    -D ebpf=false \
+    \
+    -D iwd=true \
+    -D ofono=true \
+    -D teamdctl=$_WITH_LIBTEAM \
+    \
+    -D dhclient=/bin/nowhere/dhclient \
+    -D dhcpcd=/bin/nowhere/dhcpd \
+    \
+    -D netconfig=/bin/nowhere/netconfig \
+    -D resolvconf=/bin/nowhere/resolvconf \
+    \
+    -D ifcfg_rh=false \
+    -D ifupdown=true \
+    \
+    #end
+
+export NM_TEST_CLIENT_CHECK_L10N=1
+
+if [ "$CONFIGURE_ONLY" != 1 ]; then
+    ninja -C build -v
+    ninja -C build install
+
+    if ! meson test -C build -v --print-errorlogs ; then
+        echo ">>>> RUN SECOND TEST (start)"
+        NMTST_DEBUG="debug,TRACE,no-expect-message" \
+        meson test -C build -v --print-errorlogs || :
+        echo ">>>> RUN SECOND TEST (done)"
+        die "meson test failed"
+    fi
 
-        if _with_valgrind; then
-            if ! NMTST_USE_VALGRIND=1 meson test -C build -v --print-errorlogs ; then
-                _print_test_logs "(valgrind test)"
-                die "meson+valgrind test failed"
-            fi
+    if _with_valgrind; then
+        if ! NMTST_USE_VALGRIND=1 meson test -C build -v --print-errorlogs ; then
+            _print_test_logs "(valgrind test)"
+            die "meson+valgrind test failed"
         fi
     fi
-}
-
-###############################################################################
-
-if [ "$BUILD_TYPE" == autotools ]; then
-    run_autotools
-elif [ "$BUILD_TYPE" == meson ]; then
-    run_meson
 fi
 
 if [ "$USE_CCACHE" = 1 ]; then
diff --git a/contrib/scripts/nm-copr-build.sh b/contrib/scripts/nm-copr-build.sh
index 94c804fb..93dcc083 100755
--- a/contrib/scripts/nm-copr-build.sh
+++ b/contrib/scripts/nm-copr-build.sh
@@ -70,7 +70,7 @@ get_nm_git_bundle() {
         if [ -n "${NM_GIT_BUNDLE+x}" ]; then
             return 0
         fi
-        NM_GIT_BUNDLE='https://download.copr.fedorainfracloud.org/results/networkmanager/NetworkManager-main/fedora-38-x86_64/06008259-nm-git-bundle/nm-git-bundle-20230606-102458.noarch.rpm'
+        NM_GIT_BUNDLE='https://download.copr.fedorainfracloud.org/results/networkmanager/NetworkManager-main/fedora-41-x86_64/08367599-nm-git-bundle/nm-git-bundle-20241209-150540.noarch.rpm'
     fi
     mkdir nm-git-bundle
     pushd nm-git-bundle