From 41e3ddb1128560051a0936740af8c1ae18417677 Mon Sep 17 00:00:00 2001 From: Mark Pryor Date: Tue, 10 Dec 2024 12:25:35 -0800 Subject: [PATCH] add networkd support to systemd.spec Signed-off-by: Mark Pryor --- --- a/systemd.spec 2024-12-10 10:31:04.000000000 -0800 +++ b/systemd.spec 2024-12-10 13:22:44.326167073 -0800 @@ -615,6 +616,30 @@ This package contains systemd-journal-gatewayd, systemd-journal-remote, and systemd-journal-upload. +%package networkd +Summary: System daemon that manages network configurations +Requires: %{name}%{_isa} = %{version}-%{release} +%{?fedora:Recommends: %{name}-udev = %{version}-%{release}} +License: LGPL-2.1-or-later +# https://src.fedoraproject.org/rpms/systemd/pull-request/34 +Obsoletes: systemd < 246.6-2 + +%description networkd +systemd-networkd is a system service that manages networks. It detects and +configures network devices as they appear, as well as creating virtual network +devices. + +%package networkd-defaults +Summary: Configure network interfaces with networkd by default +Requires: %{name}-networkd = %{version}-%{release} +License: MIT-0 +BuildArch: noarch + +%description networkd-defaults +This package contains a set of config files for systemd-networkd that cause it +to configure network interfaces by default. Note that systemd-networkd needs to +enabled for this to have any effect. + %package resolved Summary: Network Name Resolution manager Requires: %{name}%{_isa} = %{version}-%{release} @@ -753,7 +778,8 @@ -Dportabled=false -Dmountfsd=false -Dhomed=disabled - -Dnetworkd=false + -Dnetworkd=true + -Dlink-networkd-shared=true -Dtimesyncd=false -Dcreate-log-dirs=false -Dnsresourced=false @@ -811,6 +837,7 @@ %{buildroot}/etc/systemd/logind.conf \ %{buildroot}/etc/systemd/oomd.conf \ %{buildroot}/etc/systemd/pstore.conf \ + %{buildroot}/etc/systemd/networkd.conf \ %{buildroot}/etc/systemd/resolved.conf \ %{buildroot}/etc/systemd/sleep.conf \ %{buildroot}/etc/systemd/system.conf \ @@ -1050,6 +1077,29 @@ %systemd_postun_with_restart %journal_remote_units_restart %firewalld_reload +%post networkd +# systemd-networkd was split out in systemd-246.6-2. +# Ideally, we would have a trigger scriptlet to record enablement +# state when upgrading from systemd <= systemd-246.6-1. But, AFAICS, +# rpm doesn't allow us to trigger on another package, short of +# querying the rpm database ourselves, which seems risky. For rpm, +# systemd and systemd-networkd are completely unrelated. So let's use +# a hack to detect if an old systemd version is currently present in +# the file system. +# https://bugzilla.redhat.com/show_bug.cgi?id=1943263 +if [ $1 -eq 1 ] && ls /usr/lib/systemd/libsystemd-shared-24[0-6].so &>/dev/null; then + echo "Skipping presets for systemd-networkd.service, seems we are upgrading from old systemd." +else + %systemd_post systemd-networkd.service systemd-networkd-wait-online.service +fi + +%preun networkd +%systemd_preun systemd-networkd.service systemd-networkd-wait-online.service + +%postun networkd +%systemd_postun_with_restart systemd-networkd.service +%systemd_postun systemd-networkd-wait-online.service + %post resolved %systemd_post systemd-resolved.service @@ -1136,6 +1186,10 @@ %files journal-remote -f .file-list-remote +%files networkd -f .file-list-networkd + +%files networkd-defaults -f .file-list-networkd-defaults + %files oomd -f .file-list-oomd %clean