From f9bea77ebc650320941b00ee958d1b10fcb7226d Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Sun, 3 May 2026 19:11:46 +0200 Subject: [PATCH] iwd: install D-Bus activation services Upstream's Makefile.am gates installation of net.connman.iwd.service and net.connman.ead.service behind the systemd-service build conditional, alongside the systemd unit. With --disable-systemd-service (which Void uses) these activation files are dropped, even though they are not systemd-specific. Without them, dbus-daemon cannot launch iwd/ead on demand, so clients like NetworkManager (with wifi.backend=iwd) fail to bring up the wireless device unless the runit service happens to already be running. This causes intermittent boot-time failures depending on iwd vs. NetworkManager startup ordering. Install our own activation files (with Exec= pointing at the binaries directly, and no SystemdService= line) so D-Bus activation works on non-systemd Void. --- srcpkgs/iwd/files/net.connman.ead.service | 4 ++++ srcpkgs/iwd/files/net.connman.iwd.service | 4 ++++ srcpkgs/iwd/template | 11 ++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/iwd/files/net.connman.ead.service create mode 100644 srcpkgs/iwd/files/net.connman.iwd.service diff --git a/srcpkgs/iwd/files/net.connman.ead.service b/srcpkgs/iwd/files/net.connman.ead.service new file mode 100644 index 00000000000000..2cb053b393a8b7 --- /dev/null +++ b/srcpkgs/iwd/files/net.connman.ead.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=net.connman.ead +Exec=/usr/libexec/ead +User=root diff --git a/srcpkgs/iwd/files/net.connman.iwd.service b/srcpkgs/iwd/files/net.connman.iwd.service new file mode 100644 index 00000000000000..338ac43a6da865 --- /dev/null +++ b/srcpkgs/iwd/files/net.connman.iwd.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=net.connman.iwd +Exec=/usr/libexec/iwd +User=root diff --git a/srcpkgs/iwd/template b/srcpkgs/iwd/template index 84aefcbee73146..2452e438193983 100644 --- a/srcpkgs/iwd/template +++ b/srcpkgs/iwd/template @@ -1,7 +1,7 @@ # Template file for 'iwd' pkgname=iwd version=3.12 -revision=1 +revision=2 build_style=gnu-configure configure_args="--disable-systemd-service --enable-pie --enable-dbus-policy --enable-wired" @@ -26,4 +26,13 @@ make_check_pre="dbus-run-session" post_install() { vsv ead vsv iwd + # D-Bus activation files: upstream gates these behind the systemd-service + # build conditional, so they aren't installed when --disable-systemd-service + # is passed. Install them manually so NetworkManager (and other clients) + # can D-Bus-activate iwd/ead on demand without needing the runit services + # to be enabled. + vinstall ${FILESDIR}/net.connman.iwd.service 644 \ + usr/share/dbus-1/system-services + vinstall ${FILESDIR}/net.connman.ead.service 644 \ + usr/share/dbus-1/system-services }