summary refs log tree commit diff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/alpine/REQUIRED_PACKAGES1
-rwxr-xr-xcontrib/debian/REQUIRED_PACKAGES2
-rw-r--r--contrib/fedora/rpm/NetworkManager.spec236
-rwxr-xr-xcontrib/fedora/rpm/build_clean.sh2
-rwxr-xr-xcontrib/fedora/rpm/configure-for-system.sh41
-rwxr-xr-xcontrib/fedora/rpm/release.sh31
6 files changed, 118 insertions, 195 deletions
diff --git a/contrib/alpine/REQUIRED_PACKAGES b/contrib/alpine/REQUIRED_PACKAGES
index 1b299b2e..f05147eb 100755
--- a/contrib/alpine/REQUIRED_PACKAGES
+++ b/contrib/alpine/REQUIRED_PACKAGES
@@ -12,7 +12,6 @@ apk add \
     'clang' \
     'curl-dev' \
     'dbus' \
-    'dbus-glib-dev' \
     'elogind-dev' \
     'eudev-dev' \
     'gcc' \
diff --git a/contrib/debian/REQUIRED_PACKAGES b/contrib/debian/REQUIRED_PACKAGES
index 7b9df123..1c7186d7 100755
--- a/contrib/debian/REQUIRED_PACKAGES
+++ b/contrib/debian/REQUIRED_PACKAGES
@@ -86,8 +86,8 @@ install \
 
 install_ignore_missing \
     python-setuptools \
-    polkitd \
     policykit-1 \
+    polkitd \
     \
     #end
 
diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec
index 9e17053a..3c44d7f9 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -1,5 +1,5 @@
 # SPEC file to build NetworkManager for testing. It aims for a similar
-# configuration as rhel-7.0 and Fedora rawhide
+# configuration as RHEL and Fedora Rawhide
 #
 # This spec file is not used as is to create official packages for RHEL, Fedora or any
 # other distribution.
@@ -48,10 +48,12 @@
 %global systemd_units_cloud_setup nm-cloud-setup.service nm-cloud-setup.timer
 
 ###############################################################################
-%if 0%{?fedora} > 40
+%if 0%{?fedora} > 40 || 0%{?rhel} >= 10
 %bcond_without meson
+%bcond_with dhclient
 %else
 %bcond_with    meson
+%bcond_without dhclient
 %endif
 %bcond_without adsl
 %bcond_without bluetooth
@@ -78,7 +80,7 @@
 %bcond_with    test
 %endif
 %if "%{?bcond_default_lto}" == ""
-%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
+%if 0%{?fedora} || 0%{?rhel} >= 9
 %bcond_without lto
 %else
 %bcond_with    lto
@@ -96,44 +98,21 @@
 %else
 %bcond_with connectivity_fedora
 %endif
-%if 0%{?rhel} && 0%{?rhel} >= 8
+%if 0%{?rhel}
 %bcond_without connectivity_redhat
 %else
 %bcond_with connectivity_redhat
 %endif
-%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8
-%bcond_without crypto_gnutls
-%else
-%bcond_with crypto_gnutls
-%endif
 %if 0%{?rhel}
 %bcond_with iwd
 %else
 %bcond_without iwd
 %endif
-%if 0%{?fedora} >= 32 || 0%{?rhel} >= 8
-%bcond_without firewalld_zone
-%else
-%bcond_with firewalld_zone
-%endif
 
 ###############################################################################
 
-%if 0%{?fedora} || 0%{?rhel} >= 8
 %global dbus_version 1.9.18
 %global dbus_sys_dir %{_datadir}/dbus-1/system.d
-%else
-%global dbus_version 1.1
-%global dbus_sys_dir %{_sysconfdir}/dbus-1/system.d
-%endif
-
-# Older libndp versions use select() (rh#1933041). On well known distros,
-# choose a version that has the necessary fix.
-%if 0%{?rhel} && 0%{?rhel} == 8
-%global libndp_version 1.7-4
-%else
-%global libndp_version %{nil}
-%endif
 
 %if %{with bluetooth} || %{with wwan}
 %global with_modem_manager_1 1
@@ -141,51 +120,39 @@
 %global with_modem_manager_1 0
 %endif
 
-%if 0%{?fedora} >= 31 || 0%{?rhel} >= 8
-%global dhcp_default internal
-%else
-%global dhcp_default dhclient
-%endif
-
-%if 0%{?fedora} || 0%{?rhel} >= 8
-%global logging_backend_default journal
 %if 0%{?fedora} || 0%{?rhel} >= 9
 %global dns_rc_manager_default auto
 %else
 %global dns_rc_manager_default symlink
 %endif
-%else
-%global logging_backend_default syslog
-%global dns_rc_manager_default file
-%endif
 
 %if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
-%global config_plugins_default_ifcfg_rh 0
+%bcond_with default_ifcfg_rh
 %else
-%global config_plugins_default_ifcfg_rh 1
+%bcond_without default_ifcfg_rh
 %endif
 
-%if 0%{?rhel} >= 10
-%global with_ifcfg_rh 0
-%global split_ifcfg_rh 0
+%if 0%{?rhel} >= 10 || 0%{?fedora} >= 41
+%bcond_with ifcfg_rh
+%bcond_with split_ifcfg_rh
 %elif 0%{?fedora} >= 36
-%global with_ifcfg_rh 1
-%global split_ifcfg_rh 1
+%bcond_without ifcfg_rh
+%bcond_without split_ifcfg_rh
 %else
-%global with_ifcfg_rh 1
-%global split_ifcfg_rh 0
+%bcond_without ifcfg_rh
+%bcond_with split_ifcfg_rh
 %endif
 
 %if (0%{?fedora} >= 36 && 0%{?fedora} < 39) || 0%{?rhel} == 9
-%global ifcfg_warning 1
+%bcond_without ifcfg_warning
 %else
-%global ifcfg_warning 0
+%bcond_with ifcfg_warning
 %endif
 
-%if 0%{?fedora} >= 39
-%global ifcfg_migrate 1
+%if %{with ifcfg_rh} && 0%{?fedora} >= 39
+%bcond_without ifcfg_migrate
 %else
-%global ifcfg_migrate 0
+%bcond_with ifcfg_migrate
 %endif
 
 %if 0%{?fedora}
@@ -229,9 +196,7 @@ Source9: readme-ifcfg-rh-migrated.txt
 #Patch1: 0001-some.patch
 
 Requires(post): systemd
-%if 0%{?fedora} || 0%{?rhel} >= 8
 Requires(post): systemd-udev
-%endif
 Requires(post): /usr/sbin/update-alternatives
 Requires(preun): systemd
 Requires(preun): /usr/sbin/update-alternatives
@@ -240,23 +205,38 @@ Requires(postun): systemd
 Requires: dbus >= %{dbus_version}
 Requires: glib2 >= %{glib2_version}
 Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release}
-%if "%{libndp_version}" != ""
-Requires: libndp >= %{libndp_version}
+
+%if 0%{?rhel} == 8
+# Older libndp versions use select() (rh#1933041). On well known distros,
+# choose a version that has the necessary fix.
+Requires: libndp >= 1.7-4
 %endif
+
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 Obsoletes: NetworkManager < %{obsoletes_ppp_plugin}
 Obsoletes: NetworkManager-wimax < 1:1.2
-%if 0%{?rhel} && 0%{?rhel} == 8
+%if 0%{?rhel} == 8
 Suggests: NetworkManager-initscripts-updown
 %endif
 Obsoletes: NetworkManager < %{obsoletes_initscripts_updown}
-%if 0%{?split_ifcfg_rh}
+%if %{with split_ifcfg_rh}
 Obsoletes: NetworkManager < %{obsoletes_ifcfg_rh}
 %endif
 
-%if 0%{?rhel} && 0%{?rhel} <= 7
-# Kept for RHEL to ensure that wired 802.1x works out of the box
-Requires: wpa_supplicant >= 1:1.1
+%if 0%{?rhel} >= 10
+%if 0%{without team}
+Obsoletes: NetworkManager-team < 1:1.47.5-3
+%endif
+Obsoletes: NetworkManager-initscripts-ifcfg-rh < 1:1.47.5-3
+Obsoletes: NetworkManager-dispatcher-routing-rules < 1:1.47.5-3
+%endif
+
+%if 0%{?fedora} >= 41
+%if %{without ifcfg_rh}
+Obsoletes: NetworkManager-initscripts-ifcfg-rh < 1:1.49-3.1
+Obsoletes: NetworkManager-dispatcher-routing-rules < 1:1.49.3-1
+Obsoletes: NetworkManager-initscripts-updown < 1:1.49.3-1
+%endif
 %endif
 
 Conflicts: NetworkManager-vpnc < 1:0.7.0.99-1
@@ -264,6 +244,13 @@ Conflicts: NetworkManager-openvpn < 1:0.7.0.99-1
 Conflicts: NetworkManager-pptp < 1:0.7.0.99-1
 Conflicts: NetworkManager-openconnect < 0:0.7.0.99-1
 Conflicts: kde-plasma-networkmanagement < 1:0.9-0.49.20110527git.nm09
+%if 0%{?rhel} >= 10
+%if 0%{without team}
+Conflicts: NetworkManager-team <= 1:1.47.5-3
+%endif
+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
@@ -283,11 +270,7 @@ BuildRequires: gobject-introspection-devel >= 0.10.3
 %if %{with ppp}
 BuildRequires: ppp-devel >= 2.4.5
 %endif
-%if %{with crypto_gnutls}
 BuildRequires: gnutls-devel >= 2.12
-%else
-BuildRequires: nss-devel >= 3.11.7
-%endif
 BuildRequires: readline-devel
 BuildRequires: audit-libs-devel
 %if %{with regen_docs}
@@ -325,17 +308,11 @@ BuildRequires: polkit-devel
 BuildRequires: jansson-devel
 %if %{with sanitizer}
 BuildRequires: libasan
-%if 0%{?fedora} || 0%{?rhel} >= 8
 BuildRequires: libubsan
 %endif
-%endif
-%if %{with firewalld_zone}
 BuildRequires: firewalld-filesystem
-%endif
 BuildRequires: iproute
-%if 0%{?fedora} || 0%{?rhel} >= 8
 BuildRequires: iproute-tc
-%endif
 
 Provides: %{name}-dispatcher%{?_isa} = %{epoch}:%{version}-%{release}
 
@@ -378,12 +355,7 @@ Summary: Bluetooth device plugin for NetworkManager
 Group: System Environment/Base
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
 Requires: NetworkManager-wwan = %{epoch}:%{version}-%{release}
-%if 0%{?rhel} && 0%{?rhel} <= 7
-# No Requires:bluez to prevent it being installed when updating
-# to the split NM package
-%else
 Requires: bluez >= 4.101-5
-%endif
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 
 %description bluetooth
@@ -398,12 +370,10 @@ Group: System Environment/Base
 BuildRequires: teamd-devel
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
-%if 0%{?fedora} || 0%{?rhel} >= 8
 # Team was split from main NM binary between 0.9.10 and 1.0
 # We need this Obsoletes in addition to the one above
 # (git:3aede801521ef7bff039e6e3f1b3c7b566b4338d).
 Obsoletes: NetworkManager < 1:1.0.0
-%endif
 
 %description team
 This package contains NetworkManager support for team devices.
@@ -422,13 +392,10 @@ Requires: wireless-regdb
 Requires: crda
 %endif
 
-%if %{with iwd} && (0%{?fedora} >= 25 || 0%{?rhel} >= 8)
+%if %{with iwd}
 Requires: (wpa_supplicant >= %{wpa_supplicant_version} or iwd)
 Suggests: wpa_supplicant
 %else
-# Just require wpa_supplicant on platforms that don't support boolean
-# dependencies even though the plugin supports both supplicant and
-# iwd backend.
 Requires: wpa_supplicant >= %{wpa_supplicant_version}
 %endif
 
@@ -444,12 +411,7 @@ This package contains NetworkManager support for Wifi and OLPC devices.
 Summary: Mobile broadband device plugin for NetworkManager
 Group: System Environment/Base
 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
-%if 0%{?rhel} && 0%{?rhel} <= 7
-# No Requires:ModemManager to prevent it being installed when updating
-# to the split NM package
-%else
 Requires: ModemManager
-%endif
 Obsoletes: NetworkManager < %{obsoletes_device_plugins}
 
 %description wwan
@@ -552,11 +514,11 @@ This package is intended to be installed by default for server
 deployments.
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %package dispatcher-routing-rules
 Summary: NetworkManager dispatcher file for advanced routing rules
 Group: System Environment/Base
-%if 0%{?split_ifcfg_rh}
+%if %{with split_ifcfg_rh}
 Requires: %{name}-initscripts-ifcfg-rh
 %endif
 BuildArch: noarch
@@ -584,7 +546,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
 %endif
 
 
-%if 0%{?split_ifcfg_rh}
+%if %{with split_ifcfg_rh}
 %package initscripts-ifcfg-rh
 Summary: NetworkManager plugin for reading and writing connections in ifcfg-rh format
 Group: System Environment/Base
@@ -611,7 +573,7 @@ like Aliyun, Azure, EC2, GCP are supported.
 %endif
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %package initscripts-updown
 Summary: Legacy ifup/ifdown scripts for NetworkManager that replace initscripts (network-scripts)
 Group: System Environment/Base
@@ -626,6 +588,7 @@ This is only for backward compatibility with initscripts (network-scripts).
 Preferably use nmcli instead.
 %endif
 
+
 %prep
 %autosetup -p1 -n NetworkManager-%{real_version}
 
@@ -640,15 +603,14 @@ Preferably use nmcli instead.
 %endif
 	-Dnft=%{_sbindir}/nft \
 	-Diptables=%{_sbindir}/iptables \
+%if %{with dhclient}
 	-Ddhclient=%{_sbindir}/dhclient \
+%else
+	-Ddhclient=no \
+%endif
 	-Ddhcpcanon=no \
 	-Ddhcpcd=no \
-	-Dconfig_dhcp_default=%{dhcp_default} \
-%if %{with crypto_gnutls}
 	-Dcrypto=gnutls \
-%else
-	-Dcrypto=nss \
-%endif
 %if %{with debug}
 	-Dmore_logging=true \
 	-Dmore_asserts=10000 \
@@ -738,7 +700,7 @@ Preferably use nmcli instead.
 	-Ddbus_conf_dir=%{dbus_sys_dir} \
 	-Dtests=yes \
 	-Dvalgrind=no \
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 	-Difcfg_rh=true \
 %else
 	-Difcfg_rh=false \
@@ -751,22 +713,17 @@ Preferably use nmcli instead.
 %else
 	-Dppp=false \
 %endif
-%if %{with firewalld_zone}
-	-Dfirewalld_zone=true \
-%else
-	-Dfirewalld_zone=false \
-%endif
 	-Ddist_version=%{version}-%{release} \
-%if %{?config_plugins_default_ifcfg_rh}
+%if %{with default_ifcfg_rh}
 	-Dconfig_plugins_default=ifcfg-rh \
 %endif
-%if %{?ifcfg_migrate}
+%if %{with ifcfg_migrate}
 	-Dconfig_migrate_ifcfg_rh_default=true \
 %endif
 	-Dresolvconf=no \
 	-Dnetconfig=no \
 	-Dconfig_dns_rc_manager_default=%{dns_rc_manager_default} \
-	-Dconfig_logging_backend_default=%{logging_backend_default}
+	-Dconfig_logging_backend_default=journal
 
 %meson_build
 
@@ -782,23 +739,18 @@ autoreconf --install --force
 	--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-config-dhcp-default=%{dhcp_default} \
-%if %{with crypto_gnutls}
 	--with-crypto=gnutls \
-%else
-	--with-crypto=nss \
-%endif
 %if %{with sanitizer}
 	--with-address-sanitizer=exec \
-%if 0%{?fedora} || 0%{?rhel} >= 8
 	--enable-undefined-sanitizer=yes \
 %else
-	--enable-undefined-sanitizer=no \
-%endif
-%else
 	--with-address-sanitizer=no \
 	--enable-undefined-sanitizer=no \
 %endif
@@ -890,10 +842,10 @@ autoreconf --install --force
 	--enable-more-warnings=yes \
 %endif
 	--with-valgrind=no \
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 	--enable-ifcfg-rh=yes \
 %else
-        --enable-ifcfg-rh=no \
+	--enable-ifcfg-rh=no \
 %endif
 	--enable-ifupdown=no \
 %if %{with ppp}
@@ -903,22 +855,18 @@ autoreconf --install --force
 %else
 	--enable-ppp=no \
 %endif
-%if %{with firewalld_zone}
 	--enable-firewalld-zone=yes \
-%else
-	--enable-firewalld-zone=no \
-%endif
 	--with-dist-version=%{version}-%{release} \
-%if %{?config_plugins_default_ifcfg_rh}
+%if %{with default_ifcfg_rh}
 	--with-config-plugins-default=ifcfg-rh \
 %endif
-%if %{?ifcfg_migrate}
+%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=%{logging_backend_default} \
+	--with-config-logging-backend-default=journal \
 	--disable-autotools-deprecation
 
 %make_build
@@ -950,14 +898,14 @@ cp %{SOURCE7} %{buildroot}%{_sysctldir}
 cp %{SOURCE6} %{buildroot}%{nmlibdir}/conf.d/
 %endif
 
-%if 0%{?ifcfg_warning}
+%if %{with ifcfg_warning}
 cp %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/network-scripts
 %endif
-%if 0%{?ifcfg_migrate}
+%if %{with ifcfg_migrate}
 cp %{SOURCE9} %{buildroot}%{_sysconfdir}/sysconfig/network-scripts/readme-ifcfg-rh.txt
 %endif
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 cp examples/dispatcher/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/
 ln -s ../no-wait.d/10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/pre-up.d/
 ln -s ../10-ifcfg-rh-routes.sh %{buildroot}%{nmlibdir}/dispatcher.d/no-wait.d/
@@ -977,11 +925,12 @@ mkdir -p %{buildroot}%{_prefix}/src/debug/NetworkManager-%{real_version}
 cp valgrind.suppressions %{buildroot}%{_prefix}/src/debug/NetworkManager-%{real_version}
 %endif
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 touch %{buildroot}%{_sbindir}/ifup
 touch %{buildroot}%{_sbindir}/ifdown
 %endif
 
+
 %check
 %if %{with meson}
 %if %{with test}
@@ -1016,14 +965,12 @@ if [ -S /run/udev/control ]; then
     /usr/bin/udevadm control --reload-rules || :
     /usr/bin/udevadm trigger --subsystem-match=net || :
 fi
-%if %{with firewalld_zone}
 %firewalld_reload
-%endif
 
 %systemd_post %{systemd_units}
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %post initscripts-updown
 if [ -f %{_sbindir}/ifup -a ! -L %{_sbindir}/ifup ]; then
     # initscripts package too old, won't let us set an alternative
@@ -1052,7 +999,7 @@ fi
 %systemd_preun NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %preun initscripts-updown
 if [ $1 -eq 0 ]; then
     /usr/sbin/update-alternatives --remove ifup %{_libexecdir}/nm-ifup >/dev/null 2>&1 || :
@@ -1069,19 +1016,11 @@ fi
 %postun
 /usr/bin/udevadm control --reload-rules || :
 /usr/bin/udevadm trigger --subsystem-match=net || :
-%if %{with firewalld_zone}
 %firewalld_reload
-%endif
 
 %systemd_postun %{systemd_units}
 
 
-%if (0%{?fedora} && 0%{?fedora} < 28) || 0%{?rhel}
-%post   libnm -p /sbin/ldconfig
-%postun libnm -p /sbin/ldconfig
-%endif
-
-
 %if %{with nm_cloud_setup}
 %postun cloud-setup
 %systemd_postun %{systemd_units_cloud_setup}
@@ -1092,7 +1031,7 @@ fi
 %{dbus_sys_dir}/org.freedesktop.NetworkManager.conf
 %{dbus_sys_dir}/nm-dispatcher.conf
 %{dbus_sys_dir}/nm-priv-helper.conf
-%if %{?with_ifcfg_rh} && 0%{?split_ifcfg_rh} == 0
+%if %{with ifcfg_rh} && %{without split_ifcfg_rh}
 %{dbus_sys_dir}/nm-ifcfg-rh.conf
 %endif
 %{_sbindir}/%{name}
@@ -1120,7 +1059,7 @@ fi
 %{_libexecdir}/nm-priv-helper
 %dir %{_libdir}/%{name}
 %dir %{nmplugindir}
-%if %{?with_ifcfg_rh} && 0%{?split_ifcfg_rh} == 0
+%if %{with ifcfg_rh} && %{without split_ifcfg_rh}
 %{nmplugindir}/libnm-settings-plugin-ifcfg-rh.so
 %endif
 %if %{with nmtui}
@@ -1142,16 +1081,14 @@ fi
 %{_mandir}/man8/NetworkManager-dispatcher.8*
 %{_mandir}/man8/NetworkManager-wait-online.service.8*
 %dir %{_localstatedir}/lib/NetworkManager
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %dir %{_sysconfdir}/sysconfig/network-scripts
 %endif
 %{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service
 %{_datadir}/dbus-1/system-services/org.freedesktop.nm_priv_helper.service
 %{_datadir}/polkit-1/actions/*.policy
 %{_prefix}/lib/udev/rules.d/*.rules
-%if %{with firewalld_zone}
 %{_prefix}/lib/firewalld/zones/nm-shared.xml
-%endif
 # systemd stuff
 %{_unitdir}/NetworkManager.service
 %{_unitdir}/NetworkManager-wait-online.service
@@ -1159,7 +1096,7 @@ fi
 %{_unitdir}/nm-priv-helper.service
 %dir %{_datadir}/doc/NetworkManager/examples
 %{_datadir}/doc/NetworkManager/examples/server.conf
-%if 0%{?ifcfg_warning} || 0%{?ifcfg_migrate}
+%if %{with ifcfg_warning} || %{with ifcfg_migrate}
 %{_sysconfdir}/sysconfig/network-scripts/readme-ifcfg-rh.txt
 %endif
 %doc NEWS AUTHORS README.md CONTRIBUTING.md
@@ -1259,13 +1196,14 @@ fi
 %{nmlibdir}/conf.d/00-server.conf
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %files dispatcher-routing-rules
 %{nmlibdir}/dispatcher.d/10-ifcfg-rh-routes.sh
 %{nmlibdir}/dispatcher.d/no-wait.d/10-ifcfg-rh-routes.sh
 %{nmlibdir}/dispatcher.d/pre-up.d/10-ifcfg-rh-routes.sh
 %endif
 
+
 %if %{with nmtui}
 %files tui
 %{_bindir}/nmtui
@@ -1276,7 +1214,7 @@ fi
 %endif
 
 
-%if 0%{?split_ifcfg_rh}
+%if %{with split_ifcfg_rh}
 %files initscripts-ifcfg-rh
 %{nmplugindir}/libnm-settings-plugin-ifcfg-rh.so
 %{dbus_sys_dir}/nm-ifcfg-rh.conf
@@ -1295,7 +1233,7 @@ fi
 %endif
 
 
-%if %{?with_ifcfg_rh}
+%if %{with ifcfg_rh}
 %files initscripts-updown
 %{_libexecdir}/nm-ifup
 %ghost %attr(755, root, root) %{_sbindir}/ifup
diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh
index c1b0f408..37436c1b 100755
--- a/contrib/fedora/rpm/build_clean.sh
+++ b/contrib/fedora/rpm/build_clean.sh
@@ -226,6 +226,7 @@ if [[ $NO_DIST != 1 ]]; then
                 -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 \
@@ -267,6 +268,7 @@ if [[ $NO_DIST != 1 ]]; then
             --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 \
             \
diff --git a/contrib/fedora/rpm/configure-for-system.sh b/contrib/fedora/rpm/configure-for-system.sh
index 1af647d5..37966ae4 100755
--- a/contrib/fedora/rpm/configure-for-system.sh
+++ b/contrib/fedora/rpm/configure-for-system.sh
@@ -30,7 +30,7 @@ vars_with_vals() {
 }
 
 usage() {
-    echo "$ $0 [-m|--meson] [-a|--autotools] [-s|--show] [-B|--no-build] [-h|--help]"
+    echo "$ $0 [-m|--meson <builddir>] [-a|--autotools] [-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\`"
@@ -149,7 +149,9 @@ P_NOBUILD="${NOBUILD-0}"
 
 P_DEBUG="${DEBUG-1}"
 
-P_BUILD_TYPE="${BUILD_TYPE-}"
+P_BUILD_TYPE="${BUILD_TYPE-meson}"
+P_MESON_BUILDDIR="${MESON_BUILDDIR-./build}"
+[ -n "$MESON_BUILDDIR" ] && P_MESON_BUILDDIR_FORCE=1
 P_CFLAGS="${CFLAGS-}"
 P_CC="${CC-$((! command -v gcc && command -v clang) &>/dev/null && echo clang || echo gcc)}"
 
@@ -306,22 +308,15 @@ else
     P_CFLAGS="-g -O2 -fexceptions${P_CFLAGS:+ }$P_CFLAGS"
 fi
 
-if [ -z "$P_BUILD_TYPE" ] ; then
-    if [ -d ./build -a ! -f ./configure ] ; then
-        P_BUILD_TYPE=meson
-    elif [ ! -d ./build -a -f ./configure ] ; then
-        P_BUILD_TYPE=autotools
-    else
-        P_BUILD_TYPE=autotools
-    fi
-fi
-
 while [[ $# -gt 0 ]] ; do
     A="$1"
     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
@@ -343,11 +338,19 @@ while [[ $# -gt 0 ]] ; do
     esac
 done
 
+if [ "$P_BUILD_TYPE" = meson -a "$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
+        exit 1
+    fi
+fi
+
 vars_with_vals
 
 if [ "$P_BUILD_TYPE" == meson ] ; then
     MESON_RECONFIGURE=
-    if test -d "./build/" ; then
+    if test -d "$P_MESON_BUILDDIR" ; then
         MESON_RECONFIGURE="--reconfigure"
     fi
 
@@ -355,7 +358,8 @@ if [ "$P_BUILD_TYPE" == meson ] ; then
     env \
     CC="$P_CC" \
     CFLAGS="$P_CFLAGS" \
-    meson \
+    meson setup\
+        $MESON_RECONFIGURE \
         --buildtype=plain \
         --prefix="$D_PREFIX" \
         --libdir="$D_LIBDIR" \
@@ -372,11 +376,6 @@ if [ "$P_BUILD_TYPE" == meson ] ; then
         --sharedstatedir="$D_SHAREDSTATEDIR" \
         --wrap-mode=nodownload \
         --auto-features=enabled \
-        \
-        build \
-        \
-        $MESON_RECONFIGURE \
-        \
         -Db_ndebug=false \
         --warnlevel 2 \
         $(args_enable "$P_TEST" --werror) \
@@ -429,6 +428,8 @@ if [ "$P_BUILD_TYPE" == meson ] ; then
         -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
@@ -520,7 +521,7 @@ fi
 
 if ! bool "$P_NOBUILD" ; then
     if [ "$P_BUILD_TYPE" == meson ] ; then
-        $SHOW_CMD ninja -C build
+        $SHOW_CMD ninja -C "$P_MESON_BUILDDIR"
     else
         $SHOW_CMD make -j 10
     fi
diff --git a/contrib/fedora/rpm/release.sh b/contrib/fedora/rpm/release.sh
index e7997168..fd48f487 100755
--- a/contrib/fedora/rpm/release.sh
+++ b/contrib/fedora/rpm/release.sh
@@ -14,12 +14,11 @@
 #  - "rc"    : further release candidates on RC branch (e.g. from "nm-1-26" branch
 #              tag "1.26-rc2" with version number 1.25.91).
 #  - "major" : on stable branch do a major release (e.g. on "nm-1-26" branch
-#              release "1.26.0", followed by "1.26.1-dev").
+#              release "1.26.0").
 #              You should do a "major-post" release right a "major" release.
 #  - "major-post": after a "major" release, merge the release branch with main and
 #              do another devel snapshot on main (e.g. do "1.27.1-dev" release).
-#  - "minor" : on a stable branch do a minor release (e.g. "1.26.4" on "nm-1-26"
-#              branch and bump to "1.26.5-dev").
+#  - "minor" : on a stable branch do a minor release (e.g. "1.26.4" on "nm-1-26").
 #
 # Requisites:
 #
@@ -296,8 +295,7 @@ RC_VERSION=
 RELEASE_BRANCH=
 case "$RELEASE_MODE" in
     minor)
-        number_is_even "${VERSION_ARR[1]}" &&
-        number_is_odd  "${VERSION_ARR[2]}" || die "cannot do minor release on top of version $VERSION_STR"
+        number_is_even "${VERSION_ARR[1]}" || die "cannot do minor release on top of version $VERSION_STR"
         [ "$CUR_BRANCH" != main ] || die "cannot do a minor release on main"
         ;;
     devel)
@@ -368,8 +366,7 @@ if [ -n "$RELEASE_BRANCH" ]; then
 fi
 
 if [ "$ALLOW_LOCAL_BRANCHES" != 1 ]; then
-    # The release process changed a bit in nm-1-50, so previous versions has to be compared to nm-1-48, not to main
-    cmp <(git show "$ORIGIN/nm-1-48:contrib/fedora/rpm/release.sh") "$BASH_SOURCE_ABSOLUTE" || die "$BASH_SOURCE is not identical to \`git show \"$ORIGIN/nm-1-48: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
@@ -432,19 +429,13 @@ case "$RELEASE_MODE" in
     minor)
         set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 1))
         git commit -m "release: bump version to ${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 1))" -a || die "failed to commit release"
-        set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 2))
-        git commit -m "release: bump version to ${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 2)) (development)" -a || die "failed to commit devel version bump"
 
         b="${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 1))"
-        git tag -s -a -m "Tag $b" "$b" HEAD~ || die "failed to tag release"
+        git tag -s -a -m "Tag $b" "$b" HEAD || die "failed to tag release"
         BRANCHES+=("$b")
         CLEANUP_REFS+=("refs/tags/$b")
         BUILD_TAG="$b"
-        b="${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 2))"
-        git tag -s -a -m "Tag $b (development)" "$b-dev" HEAD || die "failed to tag devel version"
-        BRANCHES+=("$b-dev")
-        CLEANUP_REFS+=("refs/tags/$b-dev")
-        TAR_VERSION="$BUILD_TAG"
+        TAR_VERSION="$b"
         ;;
     devel)
         set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 1))
@@ -483,20 +474,12 @@ case "$RELEASE_MODE" in
         ;;
     major)
         b="${VERSION_ARR[0]}.$((${VERSION_ARR[1]} + 1)).0"
-        b2="${VERSION_ARR[0]}.$((${VERSION_ARR[1]} + 1)).1"
-
         set_version_number "${VERSION_ARR[0]}" "$((${VERSION_ARR[1]} + 1))" 0
         git commit -m "release: bump version to $b" -a || die "failed to commit major version bump"
+
         git tag -s -a -m "Tag $b" "$b" HEAD || die "failed to tag release"
         BRANCHES+=("$b")
         CLEANUP_REFS+=("refs/tags/$b")
-
-        set_version_number "${VERSION_ARR[0]}" "$((${VERSION_ARR[1]} + 1))" 1
-        git commit -m "release: bump version to $b2 (development)" -a || die "failed to commit another bump after major version bump"
-        git tag -s -a -m "Tag $b (development)" "$b2-dev" HEAD || die "failed to tag release"
-        BRANCHES+=("$b2-dev")
-        CLEANUP_REFS+=("refs/tags/$b2-dev")
-
         BUILD_TAG="$b"
         TAR_VERSION="$b"
         ;;