diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index e0458021844..936646a5fd7 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -44,8 +44,10 @@ in
message bus. Specifically, files in the following directories
will be included into their respective DBus configuration paths:
pkg/etc/dbus-1/system.d
+ pkg/share/dbus-1/system.d
pkg/share/dbus-1/system-services
pkg/etc/dbus-1/session.d
+ pkg/share/dbus-1/session.d
pkg/share/dbus-1/services
'';
};
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index abc32b90c6b..616ad869d57 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,92 +1,105 @@
-{ stdenv, lib, fetchurl, pkgconfig, expat, systemd
-, libX11 ? null, libICE ? null, libSM ? null, x11Support ? (stdenv.isLinux || stdenv.isDarwin) }:
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, expat
+, systemd
+, libX11 ? null
+, libICE ? null
+, libSM ? null
+, x11Support ? (stdenv.isLinux || stdenv.isDarwin)
+, dbus
+}:
-assert x11Support -> libX11 != null
- && libICE != null
- && libSM != null;
+assert
+ x11Support ->
+ libX11 != null && libICE != null && libSM != null;
-let
+stdenv.mkDerivation rec {
+ pname = "dbus";
version = "1.12.16";
- sha256 = "107ckxaff1cv4q6kmfdi2fb1nlsv03312a7kf6lb4biglhpjv8jl";
-self = stdenv.mkDerivation {
- name = "dbus-${version}";
- inherit version;
-
- src = fetchurl {
- url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
- inherit sha256;
- };
-
- patches = lib.optional stdenv.isSunOS ./implement-getgrouplist.patch;
- postPatch = ''
- substituteInPlace tools/Makefile.in \
- --replace 'install-localstatelibDATA:' 'disabled:' \
- --replace 'install-data-local:' 'disabled:' \
- --replace 'installcheck-local:' 'disabled:'
- substituteInPlace bus/Makefile.in \
- --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
- '' + /* cleanup of runtime references */ ''
- substituteInPlace ./dbus/dbus-sysdeps-unix.c \
- --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
- substituteInPlace ./tools/dbus-launch.c \
- --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"'
- '';
-
- outputs = [ "out" "dev" "lib" "doc" ];
-
- nativeBuildInputs = [ pkgconfig ];
- propagatedBuildInputs = [ expat ];
- buildInputs = lib.optional stdenv.isLinux systemd
- ++ lib.optionals x11Support [ libX11 libICE libSM ];
- # ToDo: optional selinux?
-
- configureFlags = [
- "--localstatedir=/var"
- "--sysconfdir=/etc"
- "--with-session-socket-dir=/tmp"
- "--with-system-pid-file=/run/dbus/pid"
- "--with-system-socket=/run/dbus/system_bus_socket"
- "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
- "--with-systemduserunitdir=$(out)/etc/systemd/user"
- "--enable-user-session"
- "--datadir=/etc"
- "--libexecdir=$(out)/libexec"
- ] ++ lib.optional (!x11Support) "--without-x";
-
- # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
- # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
- # problems building without x11Support so disabled in that case for now
- NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
- NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed";
-
- enableParallelBuilding = true;
-
- doCheck = true;
-
- installFlags = [ "sysconfdir=$(out)/etc" "datadir=$(out)/share" ];
-
- postInstall = ''
- mkdir -p "$out/share/xml/dbus"
- cp doc/*.dtd "$out/share/xml/dbus"
- '';
-
- # it's executed from $lib by absolute path
- postFixup = ''
- moveToOutput bin/dbus-launch "$lib"
- ln -s "$lib/bin/dbus-launch" "$out/bin/"
- '';
-
- passthru = {
- dbus-launch = "${self.lib}/bin/dbus-launch";
- daemon = self.out;
- };
-
- meta = with stdenv.lib; {
- description = "Simple interprocess messaging system";
- homepage = http://www.freedesktop.org/wiki/Software/dbus/;
- license = licenses.gpl2Plus; # most is also under AFL-2.1
- platforms = platforms.unix;
- };
+ src = fetchurl {
+ url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
+ sha256 = "107ckxaff1cv4q6kmfdi2fb1nlsv03312a7kf6lb4biglhpjv8jl";
};
-in self
+
+ patches = lib.optional stdenv.isSunOS ./implement-getgrouplist.patch;
+
+ postPatch = ''
+ substituteInPlace tools/Makefile.in \
+ --replace 'install-localstatelibDATA:' 'disabled:' \
+ --replace 'install-data-local:' 'disabled:' \
+ --replace 'installcheck-local:' 'disabled:'
+ substituteInPlace bus/Makefile.in \
+ --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
+ '' + /* cleanup of runtime references */ ''
+ substituteInPlace ./dbus/dbus-sysdeps-unix.c \
+ --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
+ substituteInPlace ./tools/dbus-launch.c \
+ --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"'
+ '';
+
+ outputs = [ "out" "dev" "lib" "doc" ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ propagatedBuildInputs = [
+ expat
+ ];
+
+ buildInputs = lib.optionals x11Support [
+ libX11
+ libICE
+ libSM
+ ] ++ lib.optional stdenv.isLinux systemd;
+ # ToDo: optional selinux?
+
+ configureFlags = [
+ "--enable-user-session"
+ "--libexecdir=${placeholder ''out''}/libexec"
+ "--localstatedir=/var"
+ "--runstatedir=/run"
+ "--sysconfdir=/etc"
+ "--with-session-socket-dir=/tmp"
+ "--with-system-pid-file=/run/dbus/pid"
+ "--with-system-socket=/run/dbus/system_bus_socket"
+ "--with-systemdsystemunitdir=${placeholder ''out''}/etc/systemd/system"
+ "--with-systemduserunitdir=${placeholder ''out''}/etc/systemd/user"
+ ] ++ lib.optional (!x11Support) "--without-x";
+
+ # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
+ # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
+ # problems building without x11Support so disabled in that case for now
+ NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+ NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed";
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ installFlags = [
+ "sysconfdir=${placeholder ''out''}/etc"
+ "datadir=${placeholder ''out''}/share"
+ ];
+
+ # it's executed from $lib by absolute path
+ postFixup = ''
+ moveToOutput bin/dbus-launch "$lib"
+ ln -s "$lib/bin/dbus-launch" "$out/bin/"
+ '';
+
+ passthru = {
+ dbus-launch = "${dbus.lib}/bin/dbus-launch";
+ daemon = dbus.out;
+ };
+
+ meta = with stdenv.lib; {
+ description = "Simple interprocess messaging system";
+ homepage = http://www.freedesktop.org/wiki/Software/dbus/;
+ license = licenses.gpl2Plus; # most is also under AFL-2.1
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/development/libraries/dbus/make-dbus-conf.nix b/pkgs/development/libraries/dbus/make-dbus-conf.nix
index 5d441c5d133..e714b96b7e9 100644
--- a/pkgs/development/libraries/dbus/make-dbus-conf.nix
+++ b/pkgs/development/libraries/dbus/make-dbus-conf.nix
@@ -22,7 +22,7 @@ runCommand "dbus-1"
+ rewritePrefix="file://${dbus}/share/xml/dbus-1/"/>
'';
nativeBuildInputs = [ libxslt.bin ];
diff --git a/pkgs/development/libraries/dbus/make-session-conf.xsl b/pkgs/development/libraries/dbus/make-session-conf.xsl
index 9544aa13db5..6a19ee14a22 100644
--- a/pkgs/development/libraries/dbus/make-session-conf.xsl
+++ b/pkgs/development/libraries/dbus/make-session-conf.xsl
@@ -24,6 +24,7 @@
/share/dbus-1/services
/etc/dbus-1/session.d
+ /share/dbus-1/session.d
diff --git a/pkgs/development/libraries/dbus/systemd.patch b/pkgs/development/libraries/dbus/systemd.patch
deleted file mode 100644
index 7e6cb1f87d0..00000000000
--- a/pkgs/development/libraries/dbus/systemd.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 24fcc9e..98e0459 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1167,7 +1167,8 @@ else
- PKG_CHECK_MODULES(SYSTEMD,
- [libsystemd-login >= 32, libsystemd-daemon >= 32],
- have_systemd=yes,
-- have_systemd=no)
-+ have_systemd=yes)
-+ AC_MSG_NOTICE([NixOS: do not care whether we found systemd or not])
- fi
-
- if test x$have_systemd = xyes; then