From ad9cfa229d3d20e8519422ee9717d9044a990db3 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 8 May 2024 11:32:17 +0200 Subject: [PATCH] networkmanager: add withSystemd option --- pkgs/tools/networking/networkmanager/default.nix | 15 +++++++++++---- .../networking/networkmanager/fix-paths.patch | 13 ------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix index e0d1b5946059..3c338ddc10cb 100644 --- a/pkgs/tools/networking/networkmanager/default.nix +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -6,7 +6,6 @@ , pkg-config , dbus , gnome -, systemd , libuuid , polkit , gnutls @@ -51,6 +50,9 @@ , runtimeShell , buildPackages , nixosTests +, systemd +, udev +, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd }: let @@ -74,7 +76,8 @@ stdenv.mkDerivation rec { # System paths "--sysconfdir=/etc" "--localstatedir=/var" - "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system" + (lib.mesonOption "systemdsystemunitdir" + (if withSystemd then "${placeholder "out"}/etc/systemd/system" else "no")) # to enable link-local connections "-Dudev_dir=${placeholder "out"}/lib/udev" "-Ddbus_conf_dir=${placeholder "out"}/share/dbus-1/system.d" @@ -82,7 +85,8 @@ stdenv.mkDerivation rec { # Platform "-Dmodprobe=${kmod}/bin/modprobe" - "-Dsession_tracking=systemd" + (lib.mesonOption "session_tracking" (if withSystemd then "systemd" else "no")) + (lib.mesonBool "systemd_journal" withSystemd) "-Dlibaudit=yes-disabled-by-default" "-Dpolkit_agent_helper_1=/run/wrappers/bin/polkit-agent-helper-1" @@ -130,7 +134,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - systemd + (if withSystemd then systemd else udev) libselinux audit libpsl @@ -182,6 +186,9 @@ stdenv.mkDerivation rec { # TODO: submit upstream substituteInPlace meson.build \ --replace "'vala', req" "'vala', native: false, req" + '' + lib.optionalString withSystemd '' + substituteInPlace data/NetworkManager.service.in \ + --replace-fail /usr/bin/busctl ${systemd}/bin/busctl ''; preBuild = '' diff --git a/pkgs/tools/networking/networkmanager/fix-paths.patch b/pkgs/tools/networking/networkmanager/fix-paths.patch index 2a1cc23e3079..e2010d8e64eb 100644 --- a/pkgs/tools/networking/networkmanager/fix-paths.patch +++ b/pkgs/tools/networking/networkmanager/fix-paths.patch @@ -10,19 +10,6 @@ index 148acade5c..6395fbfbe5 100644 +PROGRAM="@runtimeShell@ -c '@ethtool@/bin/ethtool -i $$1 |@gnused@/bin/sed -n s/^driver:\ //p' -- $env{INTERFACE}", ENV{ID_NET_DRIVER}="%c" LABEL="nm_drivers_end" -diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in -index f09ae86ceb..b2ecb405ef 100644 ---- a/data/NetworkManager.service.in -+++ b/data/NetworkManager.service.in -@@ -9,7 +9,7 @@ BindsTo=dbus.service - [Service] - Type=dbus - BusName=org.freedesktop.NetworkManager --ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0 -+ExecReload=@systemd@/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager Reload u 0 - #ExecReload=/bin/kill -HUP $MAINPID - ExecStart=@sbindir@/NetworkManager --no-daemon - Restart=on-failure diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index a9e8c08508..875d6cc2cd 100644 --- a/src/core/devices/nm-device.c