Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: return support for network-scripts for Fedora 40 #480

Merged
merged 1 commit into from
Apr 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 104 additions & 2 deletions initscripts.spec
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ BuildRequires: make
BuildRequires: systemd

Obsoletes: %{name} < 10.16-1
Obsoletes: network-scripts < 10.21-1

# === PATCHES =================================================================

Expand Down Expand Up @@ -116,6 +115,57 @@ This package provides service command.

# ---------------

%package -n network-scripts
Summary: Legacy scripts for manipulating of network devices
Requires: %{name}%{?_isa} = %{version}-%{release}

%shared_requirements

Requires: bc
Requires: dbus
Requires: dbus-tools
Requires: gawk
Requires: grep
Requires: hostname
Requires: iproute
Requires: ipcalc
Requires: kmod
Requires: procps-ng
Requires: sed
Requires: systemd

Requires(post): chkconfig
Requires(preun): chkconfig

Requires(post): %{_sbindir}/update-alternatives
Requires(postun): %{_sbindir}/update-alternatives

Obsoletes: %{name} < 9.82-2

# This is legacy and deprecated, so nobody should depend on this!
# If ifcfg-style configuration is still desired, NetworkManager can do this.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we sure about this? I know that NM at least planned to drop support for ifcfg files

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right now NetworkManager-initscripts-ifcfg-rh still exists in all current branches. I think there is an intent to retire it eventually, though. It is not installed by default since https://fedoraproject.org/wiki/Changes/NoIfcfgFiles (F36).

# Thus, mark this as deprecated to ensure people know to not depend on it.
# Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/
Provides: deprecated()

%description -n network-scripts
This package contains the legacy scripts for activating & deactivating of most
network interfaces. It also provides a legacy version of 'network' service.

The 'network' service is enabled by default after installation of this package,
and if the network-scripts are installed alongside NetworkManager, then the
ifup/ifdown commands from network-scripts take precedence over the ones provided
by NetworkManager.

If user has both network-scripts & NetworkManager installed, and wishes to
use ifup/ifdown from NetworkManager primarily, then they has to run command:
$ update-alternatives --config ifup

Please note that running the command above will also disable the 'network'
service.

# ---------------

%package -n netconsole-service
Summary: Service for initializing of network console logging
Requires: %{name} = %{version}-%{release}
Expand Down Expand Up @@ -175,11 +225,25 @@ Please use systemd-volatile-root functionality instead, if possible.
# ---------------

%install
%make_install NO_NETWORK_SCRIPTS=true
%make_install

# This installs the NLS language files:
%find_lang %{name}

%ifnarch s390 s390x
rm -f %{buildroot}%{_sysconfdir}/sysconfig/network-scripts/ifup-ctc
%endif

# Additional ways to access documentation:
install -m 0755 -d %{buildroot}%{_docdir}/network-scripts

ln -s %{_docdir}/%{name}/sysconfig.txt %{buildroot}%{_docdir}/network-scripts/
ln -sr %{_mandir}/man8/ifup.8 %{buildroot}%{_mandir}/man8/ifdown.8

# We are now using alternatives approach to better co-exist with NetworkManager:
touch %{buildroot}%{_sbindir}/ifup
touch %{buildroot}%{_sbindir}/ifdown

# =============================================================================

%post
Expand All @@ -193,6 +257,24 @@ Please use systemd-volatile-root functionality instead, if possible.

# ---------------

%post -n network-scripts
chkconfig --add network > /dev/null 2>&1 || :

[ -L %{_sbindir}/ifup ] || rm -f %{_sbindir}/ifup
[ -L %{_sbindir}/ifdown ] || rm -f %{_sbindir}/ifdown

%{_sbindir}/update-alternatives --install %{_sbindir}/ifup ifup %{_sysconfdir}/sysconfig/network-scripts/ifup 90 \
--slave %{_sbindir}/ifdown ifdown %{_sysconfdir}/sysconfig/network-scripts/ifdown \
--initscript network

%preun -n network-scripts
if [ $1 -eq 0 ]; then
chkconfig --del network > /dev/null 2>&1 || :
%{_sbindir}/update-alternatives --remove ifup %{_sysconfdir}/sysconfig/network-scripts/ifup
fi

# ---------------

%post -n netconsole-service
%systemd_post netconsole.service

Expand Down Expand Up @@ -273,6 +355,26 @@ Please use systemd-volatile-root functionality instead, if possible.

# ---------------

%files -n network-scripts
%doc doc/examples/
%dir %{_sysconfdir}/sysconfig/network-scripts

%{_sysconfdir}/rc.d/init.d/network
%{_sysconfdir}/sysconfig/network-scripts/*

%config(noreplace) %{_sysconfdir}/sysconfig/network-scripts/ifcfg-lo

%ghost %{_sbindir}/ifup
%ghost %{_sbindir}/ifdown
%attr(4755,root,root) %{_sbindir}/usernetctl

%{_mandir}/man8/ifup.*
%{_mandir}/man8/ifdown.*
%{_mandir}/man8/usernetctl.*
%{_docdir}/network-scripts/*

# ---------------

%files -n netconsole-service
%config(noreplace) %{_sysconfdir}/sysconfig/netconsole

Expand Down