summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-01-11 15:49:43 +0100
committerThomas Haller <thaller@redhat.com>2022-01-24 17:40:17 +0100
commit3f0ec856343b2c2a2f73c894306f452a7e171c28 (patch)
tree866f2b9e60edf2428b70d0563c612a3b998726a6
parent26c43e4bccfeedc0028606794139c1749fdaf49f (diff)
contrib/rpm: split ifup/ifdown compat scripts to new package NetworkManager-initscripts-updown
Previously (on RHEL<=8 and Fedora<=35), NetworkManager package contains the compat scripts nm-ifup/nm-ifdown. If initscripts package (not network-scripts!) is installed, then a RPM trigger links them as alternatives for the ifup/ifdown commands. One problem is that `dnf provides /usr/sbin/ifup` lists the NetworkManager package. Which is technically true, but on RHEL9 where initscripts is not installed by default, `dnf install NetworkManager` does not actually create those scripts. Solve that by moving those scripts to a new subpackage NetworkManager-initscripts-updown. The %post script now always creates the alternatives links, regardless whether initscripts package is installed. Note that on RHEL8, NetworkManager package not only Obsoletes: but also Suggests: the new package. The name "initscripts-updown" is chosen because in the future we might have additonal initscripts/ifcfg related subpackages to contain the ifcfg-rh plugin (NetworkManager-initscripts-ifcfg) or ifcfg-rh migration tools (NetworkManager-initscripts-tools). https://bugzilla.redhat.com/show_bug.cgi?id=2022418 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1061
-rw-r--r--contrib/fedora/rpm/NetworkManager.spec46
1 files changed, 37 insertions, 9 deletions
diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec
index 7630b82182..e0dcbeb47b 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -19,8 +19,9 @@
%global snapshot __SNAPSHOT__
%global git_sha __COMMIT__
-%global obsoletes_device_plugins 1:0.9.9.95-1
-%global obsoletes_ppp_plugin 1:1.5.3
+%global obsoletes_device_plugins 1:0.9.9.95-1
+%global obsoletes_ppp_plugin 1:1.5.3
+%global obsoletes_initscripts_updown 1:1.35.4
%global systemd_dir %{_prefix}/lib/systemd/system
%global sysctl_dir %{_prefix}/lib/sysctl.d
@@ -214,6 +215,10 @@ Requires: libndp >= %{libndp_version}
Obsoletes: NetworkManager < %{obsoletes_device_plugins}
Obsoletes: NetworkManager < %{obsoletes_ppp_plugin}
Obsoletes: NetworkManager-wimax < 1.2
+%if 0%{?rhel} && 0%{?rhel} <= 8
+Suggests: NetworkManager-initscripts-updown
+%endif
+Obsoletes: NetworkManager < %{obsoletes_initscripts_updown}
%if 0%{?rhel} && 0%{?rhel} <= 7
# Kept for RHEL to ensure that wired 802.1x works out of the box
@@ -561,6 +566,20 @@ This tool is still experimental.
%endif
+%package initscripts-updown
+Summary: Legacy ifup/ifdown scripts for NetworkManager that replace initscripts (network-scripts)
+Group: System Environment/Base
+BuildArch: noarch
+Requires: NetworkManager
+Requires: /usr/bin/nmcli
+Obsoletes: NetworkManager < %{obsoletes_initscripts_updown}
+
+%description initscripts-updown
+Installs alternative ifup/ifdown scripts that talk to NetworkManager.
+This is only for backward compatibility with initscripts (network-scripts).
+Preferably use nmcli instead.
+
+
%prep
%autosetup -p1 -n NetworkManager-%{real_version}
@@ -874,7 +893,8 @@ mkdir -p %{buildroot}%{_prefix}/src/debug/NetworkManager-%{real_version}
cp valgrind.suppressions %{buildroot}%{_prefix}/src/debug/NetworkManager-%{real_version}
%endif
-touch %{buildroot}%{_sbindir}/ifup %{buildroot}%{_sbindir}/ifdown
+touch %{buildroot}%{_sbindir}/ifup
+touch %{buildroot}%{_sbindir}/ifdown
%check
@@ -917,7 +937,8 @@ fi
%systemd_post %{systemd_units}
-%triggerin -- initscripts
+
+%post initscripts-updown
if [ -f %{_sbindir}/ifup -a ! -L %{_sbindir}/ifup ]; then
# initscripts package too old, won't let us set an alternative
/usr/sbin/update-alternatives --remove ifup %{_libexecdir}/nm-ifup >/dev/null 2>&1 || :
@@ -940,10 +961,14 @@ if [ $1 -eq 0 ]; then
# Don't kill networking entirely just on package remove
#/bin/systemctl stop NetworkManager.service >/dev/null 2>&1 || :
+fi
+%systemd_preun NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service
+
+%preun initscripts-updown
+if [ $1 -eq 0 ]; then
/usr/sbin/update-alternatives --remove ifup %{_libexecdir}/nm-ifup >/dev/null 2>&1 || :
fi
-%systemd_preun NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service
%if %{with nm_cloud_setup}
@@ -994,10 +1019,6 @@ fi
%config(noreplace) %{_sysconfdir}/%{name}/NetworkManager.conf
%ghost %{_sysconfdir}/%{name}/VPN
%{_bindir}/nm-online
-%{_libexecdir}/nm-ifup
-%ghost %attr(755, root, root) %{_sbindir}/ifup
-%{_libexecdir}/nm-ifdown
-%ghost %attr(755, root, root) %{_sbindir}/ifdown
%{_libexecdir}/nm-dhcp-helper
%{_libexecdir}/nm-dispatcher
%{_libexecdir}/nm-initrd-generator
@@ -1163,5 +1184,12 @@ fi
%endif
+%files initscripts-updown
+%{_libexecdir}/nm-ifup
+%ghost %attr(755, root, root) %{_sbindir}/ifup
+%{_libexecdir}/nm-ifdown
+%ghost %attr(755, root, root) %{_sbindir}/ifdown
+
+
%changelog
__CHANGELOG__