From f70df0b275b21700371994fef9c5bfc358c14bbf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 8 Jun 2007 18:56:55 +0000 Subject: [PATCH] * Added a job to start the D-Bus system-wide message bus daemon. svn path=/nixos/trunk/; revision=8848 --- system/options.nix | 10 +++++++ upstart-jobs/dbus.nix | 56 ++++++++++++++++++++++++++++++++++++++++ upstart-jobs/default.nix | 6 +++++ 3 files changed, 72 insertions(+) create mode 100644 upstart-jobs/dbus.nix diff --git a/system/options.nix b/system/options.nix index 11ec89bb601..2364d91c9e0 100644 --- a/system/options.nix +++ b/system/options.nix @@ -792,6 +792,16 @@ } + { + name = ["services" "dbus" "enable"]; + default = true; + description = " + Whether to start the D-Bus message bus daemon. It is required + by the HAL service. + "; + } + + { name = ["installer" "nixpkgsURL"]; default = ""; diff --git a/upstart-jobs/dbus.nix b/upstart-jobs/dbus.nix new file mode 100644 index 00000000000..58357ad1aab --- /dev/null +++ b/upstart-jobs/dbus.nix @@ -0,0 +1,56 @@ +{stdenv, dbus}: + +let + + homeDir = "/var/run/dbus"; + + # Take the standard system configuration file, except that we don't + # want to fork (Upstart will monitor the daemon). + configFile = stdenv.mkDerivation { + name = "dbus-conf"; + buildCommand = " + ensureDir $out + ensureDir $out/system.d + substitute ${dbus}/etc/dbus-1/system.conf $out/system.conf \\ + --replace '' '' + "; + }; + +in + +{ + name = "dbus"; + + users = [ + { name = "messagebus"; + uid = (import ../system/ids.nix).uids.messagebus; + description = "D-Bus system message bus daemon user"; + home = homeDir; + } + ]; + + job = " +description \"D-Bus system message bus daemon\" + +start on startup +stop on shutdown + +start script + + mkdir -m 0755 -p ${homeDir} + chown messagebus ${homeDir} + + mkdir -m 0755 -p /var/lib/dbus + ${dbus}/bin/dbus-uuidgen --ensure + +end script + +respawn + +script + rm -f ${homeDir}/pid + exec ${dbus}/bin/dbus-daemon --config-file=${configFile}/system.conf +end script + "; + +} diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 91267d89b6a..9cab516539d 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -182,6 +182,12 @@ import ../upstart-jobs/gather.nix { inherit (pkgs) alsaUtils; }) + # D-Bus system-wide daemon. + ++ optional ["services" "dbus" "enable"] + (import ../upstart-jobs/dbus.nix { + inherit (pkgs) stdenv dbus; + }) + # Handles the reboot/halt events. ++ (map (event: makeJob (import ../upstart-jobs/halt.nix {