systemd: split networkd into its own package

Support of images with different network management implementations
without having to recompile systemd and other components.

Fedora does this as well since systemd version 246.6-2:
https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/systemd.spec#_578
This proves that it is technically possible and officially supported by
systemd.

(From OE-Core rev: 3664d14ef97281961d166f16e7d47996370e405d)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Adrian Freihofer
2024-12-12 16:55:26 +01:00
committed by Richard Purdie
parent efa5f65c22
commit 4920a08a2b

View File

@@ -415,6 +415,7 @@ PACKAGE_BEFORE_PN = "\
${PN}-journal-remote \ ${PN}-journal-remote \
${PN}-kernel-install \ ${PN}-kernel-install \
${PN}-mime \ ${PN}-mime \
${PN}-networkd \
${PN}-rpm-macros \ ${PN}-rpm-macros \
${PN}-udev-rules \ ${PN}-udev-rules \
${PN}-vconsole-setup \ ${PN}-vconsole-setup \
@@ -443,6 +444,7 @@ SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfm
${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)} \
" "
SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service" SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service"
@@ -451,12 +453,13 @@ USERADD_PACKAGES = "${PN} \
${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)} \
" "
GROUPADD_PARAM:${PN} = "-r systemd-journal;" GROUPADD_PARAM:${PN} = "-r systemd-journal;"
GROUPADD_PARAM:udev = "-r render" GROUPADD_PARAM:udev = "-r render"
GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}" GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}"
USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}" USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}"
USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /sbin/nologin systemd-network;', '', d)}" USERADD_PARAM:${PN}-networkd = "--system -d / -M --shell /sbin/nologin systemd-network"
USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${datadir}/polkit-1 polkitd;', '', d)}" USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${datadir}/polkit-1 polkitd;', '', d)}"
USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}" USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}"
USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}" USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}"
@@ -623,6 +626,27 @@ FILES:${PN}-extra-utils = "\
FILES:${PN}-mime = "${MIMEDIR}" FILES:${PN}-mime = "${MIMEDIR}"
RRECOMMENDS:${PN} += "${PN}-mime" RRECOMMENDS:${PN} += "${PN}-mime"
FILES:${PN}-networkd = "\
${bindir}/networkctl \
${datadir}/dbus-1/system-services/org.freedesktop.network1.service \
${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
${datadir}/polkit-1/actions/org.freedesktop.network1.policy \
${nonarch_libdir}/sysusers.d/systemd-network.conf \
${nonarch_libdir}/tmpfiles.d/systemd-network.conf \
${sysconfdir}/systemd/networkd.conf \
${systemd_system_unitdir}/systemd-networkd* \
${systemd_unitdir}/network/*.network \
${systemd_unitdir}/network/*.network.example \
${systemd_unitdir}/networkd.conf \
${systemd_unitdir}/systemd-networkd* \
"
# systemd-networkd-persistent-storage.service BindsTo=systemd-networkd.service
# systemd-networkd.service has Also=systemd-networkd-wait-online.service
SYSTEMD_SERVICE:${PN}-networkd = "systemd-networkd.service"
CONFFILES:${PN}-networkd = "${sysconfdir}/systemd/networkd.conf"
RDEPENDS:${PN}-networkd += "${PN}"
RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '${PN}-networkd', '', d)}"
FILES:${PN}-udev-rules = "\ FILES:${PN}-udev-rules = "\
${nonarch_libdir}/udev/rules.d/70-uaccess.rules \ ${nonarch_libdir}/udev/rules.d/70-uaccess.rules \
${nonarch_libdir}/udev/rules.d/71-seat.rules \ ${nonarch_libdir}/udev/rules.d/71-seat.rules \
@@ -633,7 +657,6 @@ FILES:${PN}-udev-rules = "\
CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \ CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
${sysconfdir}/systemd/journald.conf \ ${sysconfdir}/systemd/journald.conf \
${sysconfdir}/systemd/logind.conf \ ${sysconfdir}/systemd/logind.conf \
${sysconfdir}/systemd/networkd.conf \
${sysconfdir}/systemd/pstore.conf \ ${sysconfdir}/systemd/pstore.conf \
${sysconfdir}/systemd/resolved.conf \ ${sysconfdir}/systemd/resolved.conf \
${sysconfdir}/systemd/sleep.conf \ ${sysconfdir}/systemd/sleep.conf \
@@ -701,7 +724,6 @@ FILES:${PN} = " ${base_bindir}/* \
${nonarch_libdir}/modprobe.d/README \ ${nonarch_libdir}/modprobe.d/README \
${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \
${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '${datadir}/dbus-1/system.d/org.freedesktop.hostname1_no_polkit.conf', '', d)} \