diff options
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/packages/glib.scm | 12 | ||||
| -rw-r--r-- | gnu/packages/patches/dbus-helper-search-path.patch | 18 | 
2 files changed, 30 insertions, 0 deletions
| diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 6ef64e4b73..e4bf6ad0fc 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -59,6 +59,7 @@      (name "dbus")      (version "1.10.0")      (source (origin +              ;; TODO: Apply patch from DBUS/ACTIVATION below.                (method url-fetch)                (uri (string-append                      "http://dbus.freedesktop.org/releases/dbus/dbus-" @@ -123,6 +124,17 @@ or through unencrypted TCP/IP suitable for use behind a firewall with  shared NFS home directories.")      (license license:gpl2+)))                     ; or Academic Free License 2.1 +(define-public dbus/activation +  ;; D-Bus with a patch to fix service activation. +  ;; TODO: Merge with DBUS above. +  (package +    (inherit dbus) +    (version (string-append (package-version dbus) ".a")) +    (source (origin +              (inherit (package-source dbus)) +              (patches +               (list (search-patch "dbus-helper-search-path.patch"))))))) +  (define glib    (package     (name "glib") diff --git a/gnu/packages/patches/dbus-helper-search-path.patch b/gnu/packages/patches/dbus-helper-search-path.patch new file mode 100644 index 0000000000..30c142312b --- /dev/null +++ b/gnu/packages/patches/dbus-helper-search-path.patch @@ -0,0 +1,18 @@ +The setuid helper of D-Bus is responsible for "service activation". +It looks for '.service' files in fixed locations, but the default locations +make no sense (see below), so replace them with /etc/dbus-1/system-services. + +--- dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c	2015-10-22 00:07:03.829251854 +0200 ++++ dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c	2015-10-22 00:07:14.893445175 +0200 +@@ -1410,10 +1410,7 @@ _dbus_get_standard_system_servicedirs (D +    * be available. +    */ +   static const char standard_search_path[] = +-    "/usr/local/share:" +-    "/usr/share:" +-    DBUS_DATADIR ":" +-    "/lib"; ++    "/etc"; +   DBusString servicedir_path; +  +   _dbus_string_init_const (&servicedir_path, standard_search_path); | 
