diff --git a/pkgs/development/libraries/dbus/make-dbus-conf.nix b/pkgs/development/libraries/dbus/make-dbus-conf.nix new file mode 100644 index 000000000000..7e35a9162c8d --- /dev/null +++ b/pkgs/development/libraries/dbus/make-dbus-conf.nix @@ -0,0 +1,27 @@ +{ runCommand, libxslt, dbus, serviceDirectories ? [], suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper" }: + +/* DBus has two configuration parsers -- normal and "trivial", which is used + * for suid helper. Unfortunately the latter doesn't support + * directive. That means that we can't just place our configuration to + * *-local.conf -- it needs to be in the main configuration file. + */ +runCommand "dbus-1" + { + buildInputs = [ libxslt ]; + inherit serviceDirectories suidHelper; + } + '' + mkdir -p $out + + xsltproc \ + --stringparam serviceDirectories "$serviceDirectories" \ + --stringparam suidHelper "$suidHelper" \ + --path ${dbus.doc}/share/xml/dbus \ + ${./make-system-conf.xsl} ${dbus}/share/dbus-1/system.conf \ + > $out/system.conf + xsltproc \ + --stringparam serviceDirectories "$serviceDirectories" \ + --path ${dbus.doc}/share/xml/dbus \ + ${./make-session-conf.xsl} ${dbus}/share/dbus-1/session.conf \ + > $out/session.conf + '' diff --git a/pkgs/development/libraries/dbus/make-session-conf.xsl b/pkgs/development/libraries/dbus/make-session-conf.xsl new file mode 100644 index 000000000000..bc73369af944 --- /dev/null +++ b/pkgs/development/libraries/dbus/make-session-conf.xsl @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + /share/dbus-1/services + /etc/dbus-1/session.d + + + + + diff --git a/pkgs/development/libraries/dbus/make-system-conf.xsl b/pkgs/development/libraries/dbus/make-system-conf.xsl new file mode 100644 index 000000000000..3d8b823437d6 --- /dev/null +++ b/pkgs/development/libraries/dbus/make-system-conf.xsl @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + /share/dbus-1/system-services + /etc/dbus-1/system.d + + + + + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3ba672c477d7..0dadf9b99ffc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7094,6 +7094,11 @@ with pkgs; dbus_libs = dbus; dbus_daemon = dbus.daemon; + makeDBusConf = { suidHelper, serviceDirectories }: + callPackage ../development/libraries/dbus/make-dbus-conf.nix { + inherit suidHelper serviceDirectories; + }; + dee = callPackage ../development/libraries/dee { }; dhex = callPackage ../applications/editors/dhex { };