Skip to content

Commit 61026a1

Browse files
nixos/dbus: add package options (#347923)
2 parents 75269f6 + cfc0d6b commit 61026a1

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

nixos/modules/services/system/dbus.nix

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ let
66

77
cfg = config.services.dbus;
88

9-
homeDir = "/run/dbus";
10-
11-
configDir = pkgs.makeDBusConf {
9+
configDir = pkgs.makeDBusConf.override {
1210
inherit (cfg) apparmor;
11+
dbus = cfg.dbusPackage;
1312
suidHelper = "${config.security.wrapperDir}/dbus-daemon-launch-helper";
1413
serviceDirectories = cfg.packages;
1514
};
@@ -37,6 +36,10 @@ in
3736
'';
3837
};
3938

39+
dbusPackage = lib.mkPackageOption pkgs "dbus" {};
40+
41+
brokerPackage = lib.mkPackageOption pkgs "dbus-broker" {};
42+
4043
implementation = mkOption {
4144
type = types.enum [ "dbus" "broker" ];
4245
default = "dbus";
@@ -46,7 +49,6 @@ in
4649
performance and reliability, while keeping compatibility to the D-Bus
4750
reference implementation.
4851
'';
49-
5052
};
5153

5254
packages = mkOption {
@@ -94,7 +96,7 @@ in
9496
users.users.messagebus = {
9597
uid = config.ids.uids.messagebus;
9698
description = "D-Bus system message bus daemon user";
97-
home = homeDir;
99+
home = "/run/dbus";
98100
homeMode = "0755";
99101
group = "messagebus";
100102
};
@@ -103,16 +105,16 @@ in
103105

104106
# Install dbus for dbus tools even when using dbus-broker
105107
environment.systemPackages = [
106-
pkgs.dbus
108+
cfg.dbusPackage
107109
];
108110

109111
# You still need the dbus reference implementation installed to use dbus-broker
110112
systemd.packages = [
111-
pkgs.dbus
113+
cfg.dbusPackage
112114
];
113115

114116
services.dbus.packages = [
115-
pkgs.dbus
117+
cfg.dbusPackage
116118
config.system.path
117119
];
118120

@@ -125,14 +127,15 @@ in
125127
boot.initrd.systemd = {
126128
users.messagebus = { };
127129
groups.messagebus = { };
128-
contents."/etc/dbus-1".source = pkgs.makeDBusConf {
130+
contents."/etc/dbus-1".source = pkgs.makeDBusConf.override {
129131
inherit (cfg) apparmor;
132+
dbus = cfg.dbusPackage;
130133
suidHelper = "/bin/false";
131-
serviceDirectories = [ pkgs.dbus config.boot.initrd.systemd.package ];
134+
serviceDirectories = [ cfg.dbusPackage config.boot.initrd.systemd.package ];
132135
};
133-
packages = [ pkgs.dbus ];
136+
packages = [ cfg.dbusPackage ];
134137
storePaths = [
135-
"${pkgs.dbus}/bin/dbus-daemon"
138+
"${cfg.dbusPackage}/bin/dbus-daemon"
136139
"${config.boot.initrd.systemd.package}/share/dbus-1/system-services"
137140
"${config.boot.initrd.systemd.package}/share/dbus-1/system.d"
138141
];
@@ -142,7 +145,7 @@ in
142145

143146
(mkIf (cfg.implementation == "dbus") {
144147
security.wrappers.dbus-daemon-launch-helper = {
145-
source = "${pkgs.dbus}/libexec/dbus-daemon-launch-helper";
148+
source = "${cfg.dbusPackage}/libexec/dbus-daemon-launch-helper";
146149
owner = "root";
147150
group = "messagebus";
148151
setuid = true;
@@ -181,11 +184,11 @@ in
181184

182185
(mkIf (cfg.implementation == "broker") {
183186
environment.systemPackages = [
184-
pkgs.dbus-broker
187+
cfg.brokerPackage
185188
];
186189

187190
systemd.packages = [
188-
pkgs.dbus-broker
191+
cfg.brokerPackage
189192
];
190193

191194
# Just to be sure we don't restart through the unit alias

pkgs/top-level/all-packages.nix

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8889,10 +8889,7 @@ with pkgs;
88898889
dbus-sharp-glib-1_0 = callPackage ../development/libraries/dbus-sharp-glib/dbus-sharp-glib-1.0.nix { };
88908890
dbus-sharp-glib-2_0 = callPackage ../development/libraries/dbus-sharp-glib { };
88918891

8892-
makeDBusConf = { suidHelper, serviceDirectories, apparmor ? "disabled" }:
8893-
callPackage ../development/libraries/dbus/make-dbus-conf.nix {
8894-
inherit suidHelper serviceDirectories apparmor;
8895-
};
8892+
makeDBusConf = callPackage ../development/libraries/dbus/make-dbus-conf.nix { };
88968893

88978894
dee = callPackage ../development/libraries/dee {
88988895
autoreconfHook = buildPackages.autoreconfHook269;

0 commit comments

Comments
 (0)