diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index bc91d1284a9..6e050fd174e 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -20,8 +20,6 @@ let
"${d}/etc/dbus-1/session.d"
]));
- daemonArgs = "--address=systemd: --nofork --nopidfile --systemd-activation";
-
configDir = pkgs.runCommand "dbus-conf"
{ preferLocalBuild = true;
allowSubstitutes = false;
@@ -31,6 +29,9 @@ let
cp ${pkgs.dbus.out}/share/dbus-1/{system,session}.conf $out
+ # avoid circular includes
+ sed -ri 's@(/etc/dbus-1/(system|session)\.conf)@@g' $out/{system,session}.conf
+
# include by full path
sed -ri "s@/etc/dbus-1/(system|session)-@$out/\1-@" $out/{system,session}.conf
@@ -95,6 +96,11 @@ in
environment.systemPackages = [ pkgs.dbus.daemon pkgs.dbus ];
+ environment.etc = singleton
+ { source = configDir;
+ target = "dbus-1";
+ };
+
users.extraUsers.messagebus = {
uid = config.ids.uids.messagebus;
description = "D-Bus system message bus daemon user";
@@ -125,10 +131,6 @@ in
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [ configDir ];
- serviceConfig.ExecStart = [
- "" # Default dbus.service has two entries, we need to override both.
- "${lib.getBin pkgs.dbus}/bin/dbus-daemon --config-file=/run/current-system/dbus/system.conf ${daemonArgs}"
- ];
};
systemd.user = {
@@ -136,18 +138,10 @@ in
# Don't restart dbus-daemon. Bad things tend to happen if we do.
reloadIfChanged = true;
restartTriggers = [ configDir ];
- serviceConfig.ExecStart = [
- "" # Default dbus.service has two entries, we need to override both.
- "${lib.getBin pkgs.dbus}/bin/dbus-daemon --config-file=/run/current-system/dbus/session.conf ${daemonArgs}"
- ];
};
sockets.dbus.wantedBy = mkIf cfg.socketActivated [ "sockets.target" ];
};
environment.pathsToLink = [ "/etc/dbus-1" "/share/dbus-1" ];
-
- system.extraSystemBuilderCmds = ''
- ln -s ${configDir} $out/dbus
- '';
};
}