about summary refs log tree commit diff
path: root/contrib/fedora/rpm/NetworkManager.spec
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/fedora/rpm/NetworkManager.spec')
-rw-r--r--contrib/fedora/rpm/NetworkManager.spec67
1 files changed, 44 insertions, 23 deletions
diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec
index 73ab88f3..c7521bff 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -42,11 +42,6 @@ Release: __RELEASE_VERSION__%{?dist}
 %global systemd_units_cloud_setup nm-cloud-setup.service nm-cloud-setup.timer
 
 ###############################################################################
-%if 0%{?fedora} > 40 || 0%{?rhel} >= 10
-%bcond_with dhclient
-%else
-%bcond_without dhclient
-%endif
 %bcond_without adsl
 %bcond_without bluetooth
 %bcond_without wwan
@@ -100,7 +95,13 @@ Release: __RELEASE_VERSION__%{?dist}
 %else
 %bcond_without iwd
 %endif
-
+%bcond_without polkit_noauth_group
+%ifarch %{ix86}
+# there is no bpftool in i686
+%bcond_with clat
+%else
+%bcond_without clat
+%endif
 ###############################################################################
 
 %global dbus_version 1.9.18
@@ -164,21 +165,21 @@ Source6: 22-wifi-mac-addr.conf
 Source7: 70-nm-connectivity.conf
 Source8: readme-ifcfg-rh.txt
 Source9: readme-ifcfg-rh-migrated.txt
+Source10: 24-clat-auto.conf
 
 #Patch1: 0001-some.patch
 
 Requires(post): systemd
-Requires(post): systemd-udev
-Requires(post): /usr/sbin/update-alternatives
 Requires(preun): systemd
-Requires(preun): /usr/sbin/update-alternatives
 Requires(postun): systemd
 
 Requires: dbus >= %{dbus_version}
 Requires: glib2 >= %{glib2_version}
 Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release}
 
-Recommends: iputils
+%if %{with clat}
+Requires: libbpf
+%endif
 
 %if 0%{?rhel} == 8
 # Older libndp versions use select() (rh#1933041). On well known distros,
@@ -227,6 +228,7 @@ Conflicts: NetworkManager-dispatcher-routing-rules <= 1:1.47.5-3
 %endif
 
 BuildRequires: gcc
+BuildRequires: clang
 BuildRequires: pkgconfig
 BuildRequires: meson
 BuildRequires: gettext-devel >= 0.19.8
@@ -281,6 +283,10 @@ BuildRequires: firewalld-filesystem
 BuildRequires: iproute
 BuildRequires: iproute-tc
 BuildRequires: libnvme-devel >= 1.5
+%if %{with clat}
+BuildRequires: libbpf-devel
+BuildRequires: bpftool
+%endif
 
 Provides: %{name}-dispatcher%{?_isa} = %{epoch}:%{version}-%{release}
 
@@ -549,6 +555,8 @@ Group: System Environment/Base
 BuildArch: noarch
 Requires: NetworkManager
 Requires: /usr/bin/nmcli
+Requires(post): /usr/sbin/update-alternatives
+Requires(preun): /usr/sbin/update-alternatives
 Obsoletes: NetworkManager < %{obsoletes_initscripts_updown}
 
 %description initscripts-updown
@@ -572,11 +580,6 @@ Preferably use nmcli instead.
 	-Dnft=%{_sbindir}/nft \
 	-Diptables=%{_sbindir}/iptables \
 	-Dip6tables=%{_sbindir}/ip6tables \
-%if %{with dhclient}
-	-Ddhclient=%{_sbindir}/dhclient \
-%else
-	-Ddhclient=no \
-%endif
 	-Ddhcpcd=no \
 	-Dcrypto=gnutls \
 %if %{with debug}
@@ -600,19 +603,20 @@ Preferably use nmcli instead.
 %endif
 %if %{with wifi}
 	-Dwifi=true \
-%if 0%{?fedora}
-	-Dwext=true \
-%else
-	-Dwext=false \
-%endif
 %else
 	-Dwifi=false \
 %endif
+	-Dwext=false \
 %if %{with iwd}
 	-Diwd=true \
 %else
 	-Diwd=false \
 %endif
+%if %{with clat}
+	-Dclat=true \
+%else
+	-Dclat=false \
+%endif
 %if %{with bluetooth}
 	-Dbluez5_dun=true \
 %else
@@ -649,7 +653,9 @@ Preferably use nmcli instead.
 	-Dselinux=true \
 	-Dpolkit=true  \
 	-Dconfig_auth_polkit_default=true \
-	-Dmodify_system=true \
+%if %{with polkit_noauth_group}
+	-Dpolkit_noauth_group=wheel \
+%endif
 	-Dconcheck=true \
 %if 0%{?fedora}
 	-Dlibpsl=true \
@@ -659,6 +665,7 @@ Preferably use nmcli instead.
 	-Dsession_tracking=systemd \
 	-Dsuspend_resume=systemd \
 	-Dsystemdsystemunitdir=%{_unitdir} \
+	-Dsystemdsystemgeneratordir=%{_systemdgeneratordir} \
 	-Dsystem_ca_path=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem \
 	-Ddbus_conf_dir=%{dbus_sys_dir} \
 	-Dtests=yes \
@@ -710,6 +717,9 @@ cp %{SOURCE7} %{buildroot}%{_sysctldir}
 %if 0%{?fedora} >= 40
 cp %{SOURCE6} %{buildroot}%{nmlibdir}/conf.d/
 %endif
+%if 0%{?fedora} >= 45
+cp %{SOURCE10} %{buildroot}%{nmlibdir}/conf.d/
+%endif
 
 %if %{with ifcfg_warning}
 cp %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/network-scripts
@@ -731,6 +741,7 @@ rm -f %{buildroot}%{_libdir}/pppd/%{ppp_version}/*.la
 rm -f %{buildroot}%{nmplugindir}/*.la
 
 # Don't use the *-initrd.service files yet, wait dracut to support them
+rm -f %{buildroot}%{_systemdgeneratordir}/nm-initrd-generator.sh
 rm -f %{buildroot}%{_unitdir}/NetworkManager-config-initrd.service
 rm -f %{buildroot}%{_unitdir}/NetworkManager-initrd.service
 rm -f %{buildroot}%{_unitdir}/NetworkManager-wait-online-initrd.service
@@ -822,8 +833,12 @@ fi
 
 
 %postun
-/usr/bin/udevadm control --reload-rules || :
-/usr/bin/udevadm trigger --subsystem-match=net || :
+# skip triggering if udevd isn't even accessible, e.g. containers or
+# rpm-ostree-based systems
+if [ -S /run/udev/control ]; then
+    /usr/bin/udevadm control --reload-rules || :
+    /usr/bin/udevadm trigger --subsystem-match=net || :
+fi
 %firewalld_reload
 
 %systemd_postun %{systemd_units}
@@ -858,6 +873,9 @@ fi
 %if 0%{?fedora} >= 40
 %{nmlibdir}/conf.d/22-wifi-mac-addr.conf
 %endif
+%if 0%{?fedora} >= 45
+%{nmlibdir}/conf.d/24-clat-auto.conf
+%endif
 %ghost %{_sysconfdir}/%{name}/VPN
 %{_bindir}/nm-online
 %{_libexecdir}/nm-dhcp-helper
@@ -896,6 +914,9 @@ fi
 %{_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
+%if %{with polkit_noauth_group}
+%{_datadir}/polkit-1/rules.d/org.freedesktop.NetworkManager.rules
+%endif
 %{_prefix}/lib/udev/rules.d/*.rules
 %{_prefix}/lib/firewalld/zones/nm-shared.xml
 # systemd stuff