From 3e23ec44503df219b8a705357eafd1f3960f34d9 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 16 Feb 2017 14:55:38 +0300 Subject: makeDBusConf: init Use XSLT transform to modify stock dbus configuration file. This is needed because some dbus components doesn't support so we need to put our core configuration in the main file. --- pkgs/development/libraries/dbus/make-dbus-conf.nix | 27 +++++++++++++++++ .../libraries/dbus/make-session-conf.xsl | 30 +++++++++++++++++++ .../libraries/dbus/make-system-conf.xsl | 34 ++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 pkgs/development/libraries/dbus/make-dbus-conf.nix create mode 100644 pkgs/development/libraries/dbus/make-session-conf.xsl create mode 100644 pkgs/development/libraries/dbus/make-system-conf.xsl (limited to 'pkgs/development/libraries/dbus') 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 00000000000..7e35a9162c8 --- /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 00000000000..bc73369af94 --- /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 00000000000..3d8b823437d --- /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 + + + + + -- cgit 1.4.1