summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-10-31 15:11:58 +0100
committerLudovic Courtès <ludo@gnu.org>2015-10-31 15:11:58 +0100
commitd9b9454c9865c148afc8498837e077581e43037d (patch)
tree528563f334c36e0c98981f5a41d23dbb948f6fff
parent375c610844c7776470edb88eafb18c48c6c90187 (diff)
parent3c3e69728c10bcdffa0c597b2b80a482361aea14 (diff)
downloadguix-d9b9454c9865c148afc8498837e077581e43037d.tar.gz
Merge branch 'dbus-update'
-rw-r--r--gnu-system.am10
-rw-r--r--gnu/packages/audio.scm59
-rw-r--r--gnu/packages/cmake.scm4
-rw-r--r--gnu/packages/curl.scm6
-rw-r--r--gnu/packages/fontutils.scm4
-rw-r--r--gnu/packages/freedesktop.scm5
-rw-r--r--gnu/packages/gl.scm27
-rw-r--r--gnu/packages/glib.scm114
-rw-r--r--gnu/packages/gnome.scm57
-rw-r--r--gnu/packages/gtk.scm73
-rw-r--r--gnu/packages/image.scm21
-rw-r--r--gnu/packages/inkscape.scm6
-rw-r--r--gnu/packages/linux.scm56
-rw-r--r--gnu/packages/mail.scm12
-rw-r--r--gnu/packages/music.scm8
-rw-r--r--gnu/packages/ocaml.scm5
-rw-r--r--gnu/packages/patches/bluez-tests.patch25
-rw-r--r--gnu/packages/patches/dbus-helper-search-path.patch18
-rw-r--r--gnu/packages/patches/dbus-localstatedir.patch30
-rw-r--r--gnu/packages/patches/eudev-rules-directory.patch18
-rw-r--r--gnu/packages/patches/glib-tests-desktop.patch18
-rw-r--r--gnu/packages/patches/guitarix-c++11.patch297
-rw-r--r--gnu/packages/patches/libdrm-symbol-check.patch195
-rw-r--r--gnu/packages/patches/librsvg-tests.patch27
-rw-r--r--gnu/packages/patches/unzip-CVE-2015-7696.patch35
-rw-r--r--gnu/packages/patches/unzip-CVE-2015-7697.patch28
-rw-r--r--gnu/packages/patches/unzip-fix-overflows-and-infloop.patch108
-rw-r--r--gnu/packages/patches/unzip-overflow-on-invalid-input.patch40
-rw-r--r--gnu/packages/pdf.scm9
-rw-r--r--gnu/packages/pulseaudio.scm2
-rw-r--r--gnu/packages/python.scm11
-rw-r--r--gnu/packages/qemu.scm29
-rw-r--r--gnu/packages/qt.scm4
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/xdisorg.scm7
-rw-r--r--gnu/packages/xfce.scm2
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/packages/zip.scm4
-rw-r--r--gnu/services/dbus.scm105
-rw-r--r--gnu/services/desktop.scm50
40 files changed, 1089 insertions, 448 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 575c6f53f6..3b7e62ce7d 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -410,6 +410,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/binutils-ld-new-dtags.patch		\
   gnu/packages/patches/binutils-loongson-workaround.patch	\
   gnu/packages/patches/bitlbee-configure-doc-fix.patch		\
+  gnu/packages/patches/bluez-tests.patch			\
   gnu/packages/patches/boost-mips-avoid-m32.patch		\
   gnu/packages/patches/calibre-drop-unrar.patch			\
   gnu/packages/patches/calibre-no-updates-dialog.patch		\
@@ -426,7 +427,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/cssc-missing-include.patch               \
   gnu/packages/patches/clucene-contribs-lib.patch               \
   gnu/packages/patches/cursynth-wave-rand.patch			\
-  gnu/packages/patches/dbus-localstatedir.patch			\
+  gnu/packages/patches/dbus-helper-search-path.patch		\
   gnu/packages/patches/dealii-p4est-interface.patch		\
   gnu/packages/patches/diffutils-gets-undeclared.patch		\
   gnu/packages/patches/dfu-programmer-fix-libusb.patch		\
@@ -494,6 +495,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/guile-present-coding.patch		\
   gnu/packages/patches/guile-relocatable.patch			\
   gnu/packages/patches/guile-rsvg-pkgconfig.patch		\
+  gnu/packages/patches/guitarix-c++11.patch			\
   gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
   gnu/packages/patches/hop-bigloo-4.0b.patch			\
   gnu/packages/patches/hop-linker-flags.patch			\
@@ -520,6 +522,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \
   gnu/packages/patches/libbonobo-activation-test-race.patch	\
   gnu/packages/patches/libcanberra-sound-theme-freedesktop.patch \
+  gnu/packages/patches/libdrm-symbol-check.patch		\
   gnu/packages/patches/libevent-dns-tests.patch			\
   gnu/packages/patches/libmtp-devices.patch			\
   gnu/packages/patches/liboop-mips64-deplibs-fix.patch		\
@@ -528,6 +531,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/libmad-armv7-thumb-pt2.patch		\
   gnu/packages/patches/libmad-frame-length.patch		\
   gnu/packages/patches/libmad-mips-newgcc.patch			\
+  gnu/packages/patches/librsvg-tests.patch			\
   gnu/packages/patches/libtheora-config-guess.patch		\
   gnu/packages/patches/libtool-skip-tests2.patch		\
   gnu/packages/patches/libssh-CVE-2014-0017.patch		\
@@ -647,9 +651,11 @@ dist_patch_DATA =						\
   gnu/packages/patches/unzip-CVE-2014-8140.patch		\
   gnu/packages/patches/unzip-CVE-2014-8141.patch		\
   gnu/packages/patches/unzip-CVE-2014-9636.patch		\
+  gnu/packages/patches/unzip-CVE-2015-7696.patch		\
+  gnu/packages/patches/unzip-CVE-2015-7697.patch		\
   gnu/packages/patches/unzip-allow-greater-hostver-values.patch	\
   gnu/packages/patches/unzip-attribs-overflow.patch		\
-  gnu/packages/patches/unzip-fix-overflows-and-infloop.patch	\
+  gnu/packages/patches/unzip-overflow-on-invalid-input.patch	\
   gnu/packages/patches/unzip-format-secure.patch		\
   gnu/packages/patches/unzip-initialize-symlink-flag.patch	\
   gnu/packages/patches/unzip-overflow-long-fsize.patch		\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index a35ef278ee..92ece7a47e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -152,13 +152,11 @@ streams from live audio.")
                          libdir "/vamp" "\"]"))))
      #t))
 
-(define-public ardour-3
+(define-public ardour
   (package
     (name "ardour")
-    (version "3.5.403")
+    (version "4.2")
     (source (origin
-              ;; The project only provides tarballs upon individual request
-              ;; (or after payment) so we take the code from git.
               (method git-fetch)
               (uri (git-reference
                     (url "git://git.ardour.org/ardour/ardour.git")
@@ -171,14 +169,15 @@ streams from live audio.")
                     "libs/ardour/revision.cc"
                   (lambda (port)
                     (format port "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
+namespace ARDOUR { const char* revision = \"4.2\" ; }"))))
               (sha256
                (base32
-                "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
+                "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00"))
               (file-name (string-append name "-" version))))
     (build-system waf-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("--cxx11") ; required by gtkmm
+       #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'set-rpath-in-LDFLAGS
@@ -230,35 +229,6 @@ record, edit, mix and master audio and MIDI projects.  It is targeted at audio
 engineers, musicians, soundtrack editors and composers.")
     (license license:gpl2+)))
 
-(define-public ardour
-  (package (inherit ardour-3)
-    (name "ardour")
-    (version "4.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "git://git.ardour.org/ardour/ardour.git")
-                    (commit version)))
-              (snippet
-               ;; Ardour expects this file to exist at build time.  It can be
-               ;; created from a git checkout with:
-               ;;   ./waf create_stored_revision
-               '(call-with-output-file
-                    "libs/ardour/revision.cc"
-                  (lambda (port)
-                    (format port "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"4.2\" ; }"))))
-              (sha256
-               (base32
-                "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00"))
-              (file-name (string-append name "-" version))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments ardour-3)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'set-rpath-in-LDFLAGS
-                    ,(ardour-rpath-phase (version-prefix version 1)))))))))
-
 (define-public azr3
   (package
     (name "azr3")
@@ -566,7 +536,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
                    version ".tar.bz2"))
              (sha256
               (base32
-               "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx"))))
+               "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx"))
+             (patches (list (search-patch "guitarix-c++11.patch")))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -574,7 +545,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        #:configure-flags
        (list
         ;; Add the output lib directory to the RUNPATH.
-        (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
+        (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
+        "--cxxflags=-std=c++11")))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("boost" ,boost)
@@ -745,7 +717,16 @@ synchronous execution of all clients, and low latency operation.")
                (base32
                 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
     (build-system waf-build-system)
-    (arguments `(#:tests? #f)) ; no check target
+    (arguments
+     `(#:tests? #f ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+          'configure 'set-flags
+          (lambda _
+            ;; Compile with C++11, required by gtkmm.
+            (setenv "CXXFLAGS" "-std=c++11")
+            #t)))))
     (inputs
      `(("lv2" ,lv2)
        ("lilv" ,lilv)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 128f0370dd..9b8ebde761 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -36,7 +36,7 @@
 (define-public cmake
   (package
     (name "cmake")
-    (version "3.3.1")
+    (version "3.3.2")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -44,7 +44,7 @@
                    (version-major+minor version)
                    "/cmake-" version ".tar.gz"))
              (sha256
-              (base32 "1mp32dqywk4dfw7zmpgp31axszv7h74yk69g273z21q7d8n04rfd"))
+              (base32 "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7"))
              (patches (list (search-patch "cmake-fix-tests.patch")))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index f7c9f083b7..3e435f4b13 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
@@ -39,14 +39,14 @@
 (define-public curl
   (package
    (name "curl")
-   (version "7.44.0")
+   (version "7.45.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://curl.haxx.se/download/curl-"
                                 version ".tar.lzma"))
             (sha256
              (base32
-              "0gjnaav9vmwwwza451na1643br7i0kxgd4002pwqh3xk5ywvdap7"))))
+              "0bamqik0mi2rmai016iakwrwmsz0s5xad1ghkbwsd3zkv08rgkcn"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "doc"))                             ;1.2 MiB of man3 pages
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 3db8f9f11d..f31b905156 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -203,7 +203,7 @@ applications should be.")
 (define-public graphite2
   (package
    (name "graphite2")
-   (version "1.3.1")
+   (version "1.3.3")
    (source
      (origin
        (method url-fetch)
@@ -212,7 +212,7 @@ applications should be.")
               version ".tgz"))
        (sha256
          (base32
-           "0xvhmlyyxg2qmbwyl8k2f9w7mrbjyl59823pnjd8xmxpyl6976d5"))))
+           "1n22vvi4jl83m4sqhvd7v31bhyhyd8j6c3yjgh4zjfyrvid16jrg"))))
    (build-system cmake-build-system)
    (native-inputs
     `(("python" ,python-2) ; because of "import imap" in tests
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 0f836d3c01..ee94db440a 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -157,7 +157,10 @@ the freedesktop.org XDG Base Directory specification.")
                             (assoc-ref %build-inputs "libcap"))
              (string-append "--with-udevrulesdir="
                             (assoc-ref %outputs "out")
-                            "/lib/udev/rules.d"))
+                            "/lib/udev/rules.d")
+             ;; XXX: fail with:
+             ;;  src/shared/clean-ipc.c:315: undefined reference to `mq_unlink'
+             "LDFLAGS=-lrt")
        #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
     (native-inputs
      `(("intltool" ,intltool)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index e8003f88a3..c7bece868d 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -26,6 +26,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (gnu packages autotools)
@@ -74,14 +75,15 @@ as ASCII text.")
 (define-public freeglut
   (package
     (name "freeglut")
-    (version "2.8.1")
+    (version "3.0.0")
     (source (origin
 	     (method url-fetch)
 	     (uri (string-append "mirror://sourceforge/project/freeglut/freeglut/"
 				  version "/freeglut-" version ".tar.gz"))
 	     (sha256
-	      (base32 "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x"))))
-    (build-system gnu-build-system)
+	      (base32 "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra"))))
+    (build-system cmake-build-system)
+    (arguments '(#:tests? #f)) ; no test target
     (inputs `(("mesa" ,mesa)
 	      ("libx11" ,libx11)
 	      ("libxi" ,libxi)
@@ -185,7 +187,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "10.5.4")
+    (version "11.0.3")
     (source
       (origin
         (method url-fetch)
@@ -193,7 +195,7 @@ also known as DXTn or DXTC) for Mesa.")
                             version "/mesa-" version ".tar.xz"))
         (sha256
          (base32
-          "00v89jna7m6r2w1yrnx09isc97r2bd1hkn4jib445n1078zp47mm"))))
+          "1mikw0biw0wxq0fn3cp18bm6kjrkd66fy84774yc5b91rvp94adb"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("glproto" ,glproto)
@@ -257,12 +259,10 @@ also known as DXTn or DXTC) for Mesa.")
                             "src/mesa/main/texcompress_s3tc.c")
                         (("\"libtxc_dxtn\\.so")
                          (string-append "\"" s2tc "/lib/libtxc_dxtn.so")))
-                      (substitute* "src/gallium/targets/egl-static/egl_st.c"
-                        (("\"libglapi\"")
-                         (string-append "\"" out "/lib/libglapi\"")))
                       (substitute* "src/loader/loader.c"
-                        (("dlopen\\(\"libudev\\.so")
-                         (string-append "dlopen(\"" udev "/lib/libudev.so")))
+                        (("udev_handle = dlopen\\(name")
+                         (string-append "udev_handle = dlopen(\""
+                                        udev "/lib/libudev.so\"")))
                       (substitute* "src/glx/dri_common.c"
                         (("dlopen\\(\"libGL\\.so")
                          (string-append "dlopen(\"" out "/lib/libGL.so")))
@@ -327,7 +327,12 @@ emulation to complete hardware acceleration for modern GPUs.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     '(#:phases
+     '(;; XXX: fails to build against latest mesa:
+       ;;   eglut.c: error: 'EGL_SCREEN_BIT_MESA' undeclared
+       ;;
+       ;; <https://bugs.freedesktop.org/show_bug.cgi?id=91643>
+       #:configure-flags '("--disable-egl")
+       #:phases
        (modify-phases %standard-phases
          (replace
           'install
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 2e8797560b..f7e67ba9ec 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -57,36 +57,44 @@
 (define dbus
   (package
     (name "dbus")
-    (version "1.8.16")
+    (version "1.10.0")
     (source (origin
-             (method url-fetch)
-             (uri
-              (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-"
-                             version ".tar.gz"))
-             (sha256
-              (base32
-               "01rba8mp8kqvmy6ibdmi806kjr3m14swnskqk02gyhykxxl54ybz"))
-             (patches (list (search-patch "dbus-localstatedir.patch")))))
+              ;; TODO: Apply patch from DBUS/ACTIVATION below.
+              (method url-fetch)
+              (uri (string-append
+                    "http://dbus.freedesktop.org/releases/dbus/dbus-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags (list ;; Install the system bus socket under /var.
-                               "--localstatedir=/var"
-
-                               ;; XXX: Fix the following to allow system-wide
-                               ;; config.
-                               ;; "--sysconfdir=/etc"
-
-                               "--with-session-socket-dir=/tmp")
-       #:phases (alist-cons-after
-                 'install 'post-install
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; 'dbus-launch' bails out if the 'session.d' directory
-                   ;; below is missing, so create it along with its companion.
-                   (let ((out (assoc-ref outputs "out")))
-                     (mkdir (string-append out "/etc/dbus-1/session.d"))
-                     (mkdir (string-append out "/etc/dbus-1/system.d"))
-                     #t))
-                 %standard-phases)))
+     '(#:configure-flags
+       (list
+        ;; Install the system bus socket under /var.
+        "--localstatedir=/var"
+
+        ;; Install the session bus socket under /tmp.
+        "--with-session-socket-dir=/tmp"
+
+        ;; Use /etc/dbus-1 for system-wide config.
+        ;; Look for configuration file under
+        ;; /etc/dbus-1.  This is notably required by
+        ;; 'dbus-daemon-launch-helper', which looks for
+        ;; the 'system.conf' file in that place,
+        ;; regardless of what '--config-file' was
+        ;; passed to 'dbus-daemon' on the command line;
+        ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>.
+        "--sysconfdir=/etc")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+                  (lambda _
+                    ;; Don't try to create /var and /etc.
+                    (system* "make"
+                             "localstatedir=/tmp/dummy"
+                             "sysconfdir=/tmp/dummy"
+                             "install"))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -116,10 +124,21 @@ 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")
-   (version "2.44.1")
+   (version "2.46.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/"
@@ -127,7 +146,7 @@ shared NFS home directories.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "01yabrfp64i11mrks3p1gcks99lw0zm7f5vhkc53sl4amyndw4c8"))
+              "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss"))
             (patches (list (search-patch "glib-tests-homedir.patch")
                            (search-patch "glib-tests-desktop.patch")
                            (search-patch "glib-tests-prlimit.patch")
@@ -207,14 +226,18 @@ dynamic loading, and an object system.")
 (define gobject-introspection
   (package
     (name "gobject-introspection")
-    (version "1.44.0")
+    (version "1.46.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/"
                    "gobject-introspection/" (version-major+minor version)
                    "/gobject-introspection-" version ".tar.xz"))
              (sha256
-              (base32 "1b972qg2yb51sdavfvb6kc19akwc15c1bwnbg81vadxamql2q33g"))
+              (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36"))
+             (modules '((guix build utils)))
+             (snippet
+              '(substitute* "tools/g-ir-tool-template.in"
+                 (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")))
              (patches (list
                        (search-patch "gobject-introspection-cc.patch")
                        (search-patch
@@ -258,7 +281,7 @@ bindings to call into the C library.")
 (define intltool
   (package
     (name "intltool")
-    (version "0.50.2")
+    (version "0.51.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://launchpad.net/intltool/trunk/"
@@ -266,7 +289,7 @@ bindings to call into the C library.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7"))))
+               "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"))))
     (build-system gnu-build-system)
     (inputs
      `(("file" ,file)))
@@ -382,7 +405,7 @@ by GDBus included in Glib.")
 (define libsigc++
   (package
     (name "libsigc++")
-    (version "2.4.1")
+    (version "2.6.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/libsigc++/"
@@ -390,7 +413,7 @@ by GDBus included in Glib.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1v0rvkzglzmf67y9nkcppwjwi68j1cy5yhldvcq7xrv8594l612l"))))
+               "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("m4" ,m4)))
@@ -409,7 +432,7 @@ has an ease of use unmatched by other C++ callback libraries.")
 (define glibmm
   (package
     (name "glibmm")
-    (version "2.44.0")
+    (version "2.46.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/glibmm/"
@@ -417,7 +440,7 @@ has an ease of use unmatched by other C++ callback libraries.")
                                  "/glibmm-" version ".tar.xz"))
              (sha256
               (base32
-               "1a1fczy7hcpn24fglyn4i79f4yjc8s50is70q03mb294bm1c02hv"))))
+               "1an4v1yk06svlmcyp1psk2a3bsn29s1a4gdx0ai2w788q6bfaiwn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (alist-cons-before
@@ -491,7 +514,7 @@ useful for C++.")
 (define-public python-pygobject
   (package
     (name "python-pygobject")
-    (version "3.16.1")
+    (version "3.18.0")
     (source
      (origin
        (method url-fetch)
@@ -500,7 +523,7 @@ useful for C++.")
                            "/pygobject-" version ".tar.xz"))
        (sha256
         (base32
-         "1hqyma73w0lnjcgx68kawhnq84aq92xlkdqphrlc2ppia38dm5kx"))))
+         "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)
@@ -551,7 +574,18 @@ useful for C++.")
          "telepathy-glib-" version ".tar.gz"))
        (sha256
         (base32
-         "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))))
+         "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))
+       (patches
+        (list
+         ;; Don't use the same test name for multiple tests.
+         ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245>
+         (origin
+           (method url-fetch)
+           (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608")
+           (file-name (string-append "telepathy-glib-duplicate-tests.patch"))
+           (sha256
+            (base32
+             "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib" ,glib "bin") ; uses glib-mkenums
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5440433402..488d46cc70 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -446,7 +446,7 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "3.16.0")
+    (version "3.18.0")
     (source
      (origin
       (method url-fetch)
@@ -455,7 +455,7 @@ on the GNOME Desktop with a single simple application.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "02dp1hl38k16m9abydfca1n236mdazqdz0p3n92s7haf9mdqsf16"))))
+        "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs"))))
     (build-system gnu-build-system)
     (inputs
      `(("glib" ,glib)))
@@ -821,7 +821,7 @@ dealing with different structured file formats.")
 (define-public librsvg
   (package
     (name "librsvg")
-    (version "2.40.10")
+    (version "2.40.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -829,7 +829,9 @@ dealing with different structured file formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y9lvnb9ij9mjg8cyp7xysi0c5ms5v4q1zrhx42b546f71s80p4n"))))
+                "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1"))
+              (patches
+               (list (search-patch "librsvg-tests.patch")))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1204,6 +1206,8 @@ creating interactive structured graphics.")
                (base32
                 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm
     (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
     (native-inputs
      `(("gtkmm-2" ,gtkmm-2)
@@ -1625,7 +1629,7 @@ passwords in the GNOME keyring.")
 (define-public vala
   (package
     (name "vala")
-    (version "0.28.0")
+    (version "0.30.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1633,14 +1637,16 @@ passwords in the GNOME keyring.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zwpzhkhfk3piya14m7p2hl2vaabahprphppfm46ci91z39kp7hd"))))
+                "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'set-cc
+         (add-before 'check 'pre-check
                      (lambda _
                        (setenv "CC" "gcc")
+                       ;; For missing '/etc/machine-id'.
+                       (setenv "DBUS_FATAL_WARNINGS" "0")
                        #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1771,7 +1777,7 @@ configuration storage systems.")
 (define-public json-glib
   (package
     (name "json-glib")
-    (version "1.0.2")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1779,7 +1785,14 @@ configuration storage systems.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "02k66lpc4cmgygj66n8zcy59bggy7yzm3v4hni9xqplgva9d2yw8"))))
+                "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Don't duplicate test names.
+               ;; <https://bugzilla.gnome.org/show_bug.cgi?id=755977>.
+               '(substitute* "json-glib/tests/builder.c"
+                  (("\"/builder/complex\", test_builder_empty")
+                   "\"/builder/empty\", test_builder_empty")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib" ,glib "bin")              ;for glib-mkenums and glib-genmarshal
@@ -1871,7 +1884,7 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.44.0")
+    (version "2.46.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/glib-networking/"
@@ -1879,7 +1892,7 @@ library.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ij33bhvn7y5gagx4sbrw906dsjjjs9dllxn73pzv6x97c6k92lg"))
+                "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym"))
               (patches
                (list (search-patch "glib-networking-ssl-cert-file.patch")))))
     (build-system gnu-build-system)
@@ -1953,7 +1966,7 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.50.0")
+    (version "2.52.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -1961,18 +1974,14 @@ libxml to ease remote use of the RESTful API.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0yv61y5vfar1rfksa6f53zhfw9wcb39zjix8gqc1ff5gqid3c08y"))))
+                "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-html-dir="
                             (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html")
-             ;; To find GIO modules from glib-networking.
-             (string-append "GIO_EXTRA_MODULES="
-                            (assoc-ref %build-inputs "glib-networking")
-                            "/lib/gio/modules"))
+                            "/share/gtk-doc/html"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'disable-unconnected-socket-test
@@ -1990,13 +1999,22 @@ libxml to ease remote use of the RESTful API.")
                        ;; The ca-certificates.crt is not available in the build
                        ;; environment.
                        (setenv "SSL_CERT_FILE" "/dev/null")
-                       #t)))))
+                       #t))
+         (replace 'install
+                  (lambda _
+                    (zero?
+                     (system* "make"
+                              ;; Install vala bindings into $out.
+                              (string-append "vapidir=" %output
+                                             "/share/vala/vapi")
+                              "install")))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
+       ("vala" ,vala)
        ;; These are needed for the tests.
        ;; FIXME: Add PHP once available.
        ("curl" ,curl)
@@ -2210,6 +2228,7 @@ keyboard shortcuts.")
        ("lcms" ,lcms)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
+       ("libgudev" ,libgudev)
        ("libusb" ,libusb)
        ("sqlite" ,sqlite)
        ("polkit" ,polkit)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index a01e6d0dd3..3ae2d70af9 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -60,7 +60,7 @@
 (define-public atk
   (package
    (name "atk")
-   (version "2.16.0")
+   (version "2.18.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -68,7 +68,7 @@
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9"))))
+              "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f"))))
    (build-system gnu-build-system)
    (outputs '("out" "doc"))
    (arguments
@@ -144,7 +144,7 @@ affine transformation (scale, rotation, shear, etc.).")
 (define-public harfbuzz
   (package
    (name "harfbuzz")
-   (version "1.0.3")
+   (version "1.0.5")
    (source (origin
              (method url-fetch)
              (uri (string-append "http://www.freedesktop.org/software/"
@@ -152,7 +152,7 @@ affine transformation (scale, rotation, shear, etc.).")
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1xrxlrvgyr6mm9qjxmkif2kvcah082y94gf1vqi0f0bdl1g8gp7b"))))
+               "0h2l362qzkck5dnnj7zlz593hf1ni3k25dfaii9mbjwflp3d56ad"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "bin")) ; 160K, only hb-view depend on cairo
@@ -182,7 +182,7 @@ affine transformation (scale, rotation, shear, etc.).")
 (define-public pango
   (package
    (name "pango")
-   (version "1.36.8")
+   (version "1.38.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/pango/"
@@ -190,7 +190,7 @@ affine transformation (scale, rotation, shear, etc.).")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"))))
+              "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k"))))
    (build-system gnu-build-system)
    (propagated-inputs
     `(("cairo" ,cairo)
@@ -253,8 +253,10 @@ functions which were removed.")
     (build-system waf-build-system)
     (arguments
      `(#:phases (alist-cons-before
-                 'configure 'set-ldflags
+                 'configure 'set-flags
                  (lambda* (#:key outputs #:allow-other-keys)
+                   ;; Compile with C++11, required by gtkmm.
+                   (setenv "CXXFLAGS" "-std=c++11")
                    ;; Allow 'bin/ganv_bench' to find libganv-1.so.
                    (setenv "LDFLAGS"
                            (string-append "-Wl,-rpath="
@@ -381,7 +383,7 @@ in the GNOME project.")
 (define-public at-spi2-core
   (package
    (name "at-spi2-core")
-   (version "2.16.0")
+   (version "2.18.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -389,7 +391,7 @@ in the GNOME project.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"))))
+              "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap"))))
    (build-system gnu-build-system)
    (outputs '("out" "doc"))
    (arguments
@@ -402,6 +404,8 @@ in the GNOME project.")
         (replace 'check
                  ;; Run test-suite under a dbus session.
                  (lambda _
+                   ;; Don't fail on missing  '/etc/machine-id'.
+                   (setenv "DBUS_FATAL_WARNINGS" "0")
                    (zero? (system* "dbus-launch" "make" "check")))))))
    (propagated-inputs
     ;; atspi-2.pc refers to all these.
@@ -424,7 +428,7 @@ is part of the GNOME accessibility project.")
 (define-public at-spi2-atk
   (package
    (name "at-spi2-atk")
-   (version "2.16.0")
+   (version "2.18.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -432,7 +436,7 @@ is part of the GNOME accessibility project.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"))))
+              "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
@@ -440,6 +444,7 @@ is part of the GNOME accessibility project.")
         (replace 'check
                  ;; Run test-suite under a dbus session.
                  (lambda _
+                   (setenv "DBUS_FATAL_WARNINGS" "0")
                    (zero? (system* "dbus-launch" "make" "check")))))))
    (propagated-inputs
     `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
@@ -514,7 +519,7 @@ application suites.")
 (define-public gtk+
   (package (inherit gtk+-2)
    (name "gtk+")
-   (version "3.16.6")
+   (version "3.18.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -522,12 +527,13 @@ application suites.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1gpzlnfrifc17yfk0zki6b2vmsfpf5cmrbh232s6iaan11np44jd"))))
+              "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx"))))
    (propagated-inputs
     `(("at-spi2-atk" ,at-spi2-atk)
       ("atk" ,atk)
       ("gdk-pixbuf" ,gdk-pixbuf)
       ("libepoxy" ,libepoxy)
+      ("libxcursor" ,libxcursor)
       ("libxi" ,libxi)
       ("libxinerama" ,libxinerama)
       ("libxdamage" ,libxdamage)
@@ -535,7 +541,13 @@ application suites.")
    (inputs
     `(("librsvg" ,librsvg)                        ;for gtk-encode-symbolic-svg
       ("libxml2" ,libxml2)
-      ("cups" ,cups)))                            ;for printing support
+      ;; XXX: colord depends on mozjs (through polkit), which fails on
+      ;;      on non-intel systems now.
+      ;;("colord" ,colord)
+      ("cups" ,cups)                            ;for printing support
+      ;; XXX: rest depends on p11-kit, which fails on mips64el now.
+      ;;("rest" ,rest)
+      ("json-glib" ,json-glib)))
    (native-inputs
     `(("perl" ,perl)
       ("glib" ,glib "bin")
@@ -731,14 +743,15 @@ documents.")
 (define-public cairomm
   (package
     (name "cairomm")
-    (version "1.11.2")
+    (version "1.12.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "http://cairographics.org/releases/cairomm-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "138052ybc58q5yl92m2p0br0k0a9g1pi9gfhmn4y220yih4pgxnc"))))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/cairomm/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1rmgs6zjj2vaxh9hsa0944m23fdn1psycqh7bi984qd8jj1xljm5"))))
     (build-system gnu-build-system)
     (arguments
      ;; The examples lack -lcairo.
@@ -759,7 +772,7 @@ library.")
 (define-public pangomm
   (package
     (name "pangomm")
-    (version "2.36.0")
+    (version "2.38.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -767,7 +780,7 @@ library.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1w11d05nkxglzg67rfa81vqghm75xhy6j396xmmp5mq8qx96knd8"))))
+               "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs
@@ -785,7 +798,7 @@ library.")
 (define-public atkmm
   (package
     (name "atkmm")
-    (version "2.22.7")
+    (version "2.24.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -793,7 +806,7 @@ library.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz"))))
+               "08zd6s5c1q90wm8310mdrb5f2lj8v63wxihrybwyw13xlf6ivi16"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs
@@ -808,7 +821,7 @@ toolkit.")
 (define-public gtkmm
   (package
     (name "gtkmm")
-    (version "3.16.0")
+    (version "3.18.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -816,9 +829,10 @@ toolkit.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "036xn22jkaf3akpid7w23b8vkqa3xxqz93mwacmyar5vw7slm3cv"))))
+               "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("glib" ,glib "bin")))      ;for 'glib-compile-resources'
     (propagated-inputs
      `(("pangomm" ,pangomm)
        ("cairomm" ,cairomm)
@@ -849,6 +863,9 @@ extensive documentation, including API reference and a tutorial.")
              (sha256
               (base32
                "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4"))))
+    (arguments
+     '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++
+    (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("pangomm" ,pangomm)
        ("cairomm" ,cairomm)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 58338af5c6..bde327cf91 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -184,14 +184,14 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
 (define-public leptonica
   (package
     (name "leptonica")
-    (version "1.71")
+    (version "1.72")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.leptonica.com/source/leptonica-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0j5qgrff6im5n9waflbi7w643q1p6mahyf2z35gb4vj9h5p76pfc"))
+        (base32 "0mhzvqs0im04y1cpcc1yma70hgdac1frf33h73m9z3356bfymmbr"))
        (modules '((guix build utils)))
        ;; zlib and openjpg should be under Libs, not Libs.private.  See:
        ;; https://code.google.com/p/tesseract-ocr/issues/detail?id=1436
@@ -216,7 +216,8 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
      `(("openjpeg" ,openjpeg)
        ("zlib" ,zlib)))
     (arguments
-     '(#:phases
+     '(#:parallel-tests? #f ; XXX: cause fpix1_reg to fail
+       #:phases
        (modify-phases %standard-phases
          ;; Prevent make from trying to regenerate config.h.in.
          (add-after
@@ -228,7 +229,15 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
           (lambda _
             (substitute* "prog/reg_wrapper.sh"
               ((" /bin/sh ")
-               (string-append " " (which "sh") " "))))))))
+               (string-append " " (which "sh") " "))
+              (("which gnuplot") (which "gnuplot")))))
+         (add-before
+          'check 'disable-failing-tests
+          ;; XXX: 2 of 9 tests from webpio_reg fails.
+          (lambda _
+            (substitute* "prog/webpio_reg.c"
+              ((".*DoWebpTest2.* 90.*") "")
+              ((".*DoWebpTest2.* 100.*") "")))))))
     (home-page "http://www.leptonica.com/")
     (synopsis "Library and tools for image processing and analysis")
     (description
@@ -337,14 +346,14 @@ error-resilience, a Java-viewer for j2k-images, ...")
 (define-public giflib
   (package
     (name "giflib")
-    (version "4.2.3")
+    (version "5.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/giflib/giflib-"
                                   (first (string-split version #\.))
                                   ".x/giflib-" version ".tar.bz2"))
               (sha256
-               (base32 "0rmp7ipzk42r841bggd7bfqk4p8qsssbp4wcck4qnz7p4rkxbj0a"))))
+               (base32 "1z1gzq16sdya8xnl5qjc07634kkwj5m0n3bvvj4v9j11xfn1841r"))))
     (build-system gnu-build-system)
     (outputs '("bin"                    ; utility programs
                "out"))                  ; library
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 76102fab05..b09e84ee08 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -74,7 +74,11 @@
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
     (arguments
-     `(#:phases (alist-cons-after
+     `(;; Add '-std=c++11', required by recent versions of GLibmm & co.
+       ;; Use '-g0' to reduce disk usage during the build.
+       #:configure-flags '("CXXFLAGS=-g0 -O2 -fopenmp -std=c++11")
+
+       #:phases (alist-cons-after
                  'unpack 'fix-test-includes
                  (lambda _
                    (substitute* "src/cxxtests.cpp"
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9b0af0d507..aa2fc0283b 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1570,7 +1570,7 @@ from the module-init-tools project.")
   ;; The post-systemd fork, maintained by Gentoo.
   (package
     (name "eudev")
-    (version "2.1.1")
+    (version "3.1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1578,55 +1578,15 @@ from the module-init-tools project.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva"))
-              (patches (list (search-patch "eudev-rules-directory.patch")))
-              (modules '((guix build utils)))
-              (snippet
-               ;; 'configure' checks uses <linux/btrfs.h> as an indication of
-               ;; whether Linux headers are available, but it doesn't actually
-               ;; use it, and our 'linux-libre-headers' package doesn't
-               ;; provide it.  So just remove that.
-               '(substitute* "configure"
-                  (("linux/btrfs\\.h")
-                   "")))))
+                "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p"))
+              (patches (list (search-patch "eudev-rules-directory.patch")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("gperf" ,gperf)
-       ("glib" ,glib "bin")                       ; glib-genmarshal, etc.
-       ("perl" ,perl)                             ; for the tests
-       ("python" ,python-2)))                     ; ditto
+       ("perl" ,perl)
+       ("gperf" ,gperf)))
     (inputs
-     `(("kmod" ,kmod)
-       ("pciutils" ,pciutils)
-       ("usbutils" ,usbutils)
-       ("util-linux" ,util-linux)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)))
-    (arguments
-     `(#:configure-flags (list "--enable-libkmod"
-
-                               (string-append
-                                "--with-pci-ids-path="
-                                (assoc-ref %build-inputs "pciutils")
-                                "/share/pci.ids.gz")
-
-                               "--with-firmware-path=/no/firmware"
-
-                               ;; Work around undefined reference to
-                               ;; 'mq_getattr' in sc-daemon.c.
-                               "LDFLAGS=-lrt")
-       #:phases
-       (alist-cons-before
-        'build 'pre-build
-        ;; The program 'g-ir-scanner' (part of the package
-        ;; 'gobject-introspection'), to generate .gir files, makes some
-        ;; library pre-processing.  During that phase it looks for the C
-        ;; compiler as either 'cc' or as defined by the environment variable
-        ;; 'CC' (with code in 'giscanner/dumper.py').
-        (lambda* _
-          (setenv "CC" "gcc"))
-        %standard-phases)))
+     `(("kmod" ,kmod)))
     (home-page "http://www.gentoo.org/proj/en/eudev/")
     (synopsis "Userspace device management")
     (description "Udev is a daemon which dynamically creates and removes
@@ -2365,7 +2325,9 @@ applications.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1qphz25hganfnd5ipfscbj7s70anv5favmwqmi9ig2saciaf1zhs"))))
+                "1qphz25hganfnd5ipfscbj7s70anv5favmwqmi9ig2saciaf1zhs"))
+              (patches
+               (list (search-patch "bluez-tests.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 699b8802b7..1a0a42d267 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -304,6 +304,15 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
     (license gpl2+)))
 
+(define %mu-gtester-patch
+  ;; Ensure tests have unique names, to placate GLib 2.6's gtester.
+  (origin
+    (method url-fetch)
+    (uri "https://github.com/djcb/mu/commit/b44039ed.patch")
+    (sha256
+     (base32
+      "165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv"))))
+
 (define-public mu
   (package
     (name "mu")
@@ -315,7 +324,8 @@ repository and Maildir/IMAP as LOCAL repository.")
               (file-name (string-append "mu-" version ".tar.gz"))
               (sha256
                (base32
-                "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51"))))
+                "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51"))
+              (patches (list %mu-gtester-patch))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index c693f0faf0..5dcb5449a2 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -346,6 +346,14 @@ Guile.")
                                                        (%current-system))))
                      '("--disable-sse")
                      '()))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before
+            'configure 'set-flags
+            (lambda _
+              ;; Compile with C++11, required by libsigc++.
+              (setenv "CXXFLAGS" "-std=c++11")
+              #t)))
          #:python ,python-2))
       (inputs
        `(("jack" ,jack-1)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index fc45805958..ee4e7830b6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -460,6 +460,11 @@ provers.")
        ("librsvg" ,librsvg)))
     (arguments
      `(#:tests? #f ; no check target
+
+       ;; Occasionally we would get "Error: Unbound module GtkThread" when
+       ;; compiling 'gtkThInit.ml', with 'make -j'.  So build sequentially.
+       #:parallel-build? #f
+
        #:phases
          (modify-phases %standard-phases
            (replace 'install
diff --git a/gnu/packages/patches/bluez-tests.patch b/gnu/packages/patches/bluez-tests.patch
new file mode 100644
index 0000000000..608ded9be2
--- /dev/null
+++ b/gnu/packages/patches/bluez-tests.patch
@@ -0,0 +1,25 @@
+From 484ad8c9263bb524051a999ce19a994960e69572 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
+Date: Fri, 23 Oct 2015 20:48:57 +0800
+Subject: [PATCH] unit/test-gobex-header: Fix duplicate test names
+
+---
+ unit/test-gobex-header.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unit/test-gobex-header.c b/unit/test-gobex-header.c
+index 6f49312..8705892 100644
+--- a/unit/test-gobex-header.c
++++ b/unit/test-gobex-header.c
+@@ -554,7 +554,7 @@ int main(int argc, char *argv[])
+ 					test_header_encode_name_umlaut);
+ 	g_test_add_func("/gobex/test_header_encode_body",
+ 						test_header_encode_body);
+-	g_test_add_func("/gobex/test_header_encode_connid",
++	g_test_add_func("/gobex/test_header_encode_actionid",
+ 						test_header_encode_actionid);
+ 	g_test_add_func("/gobex/test_header_encode_apparam",
+ 						test_header_encode_apparam);
+-- 
+2.5.0
+
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);
diff --git a/gnu/packages/patches/dbus-localstatedir.patch b/gnu/packages/patches/dbus-localstatedir.patch
deleted file mode 100644
index 61bed91b5c..0000000000
--- a/gnu/packages/patches/dbus-localstatedir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Do not try to create $localstatedir and $sysconfdir since we cannot do this
-when they are /var and /etc.
-
---- dbus-1.6.4/bus/Makefile.in	2013-09-11 16:15:13.000000000 +0200
-+++ dbus-1.6.4/bus/Makefile.in	2013-09-11 16:15:15.000000000 +0200
-@@ -1510,9 +1510,6 @@ clean-local:
- 	/bin/rm *.bb *.bbg *.da *.gcov || true
- 
- install-data-hook:
--	$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
--	$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
--	$(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
- 	$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
- 	$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services
- # Install dbus.socket as default implementation of a D-Bus stack.
-
---- dbus-1.6.4/tools/Makefile.in	2013-09-11 16:10:31.000000000 +0200
-+++ dbus-1.6.4/tools/Makefile.in	2013-09-11 16:10:32.000000000 +0200
-@@ -757,11 +757,6 @@ uninstall-am: uninstall-binPROGRAMS
- 
- 
- # create the /var/lib/dbus directory for dbus-uuidgen
--install-data-local:
--	$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus
--
--installcheck-local:
--	test -d $(DESTDIR)$(localstatedir)/lib/dbus
- 
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch
index 9173e22f76..54fc01c6d5 100644
--- a/gnu/packages/patches/eudev-rules-directory.patch
+++ b/gnu/packages/patches/eudev-rules-directory.patch
@@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed
 the search path to be customized, but eudev no longer has this, hence
 this hack.
 
---- eudev-1.9/src/udev/udev-rules.c	2014-09-13 10:21:59.615980259 +0200
-+++ eudev-1.9/src/udev/udev-rules.c	2014-09-13 10:24:13.839976335 +0200
-@@ -46,15 +46,11 @@
+--- eudev-3.1.5/src/udev/udev-rules.c	2015-10-13 06:22:14.000000000 +0800
++++ eudev-3.1.5/src/udev/udev-rules.c	2015-10-16 20:45:38.491934336 +0800
+@@ -47,15 +47,11 @@
          };
  };
  
@@ -14,23 +14,23 @@ this hack.
 +static const char* rules_dirs[] = {
          UDEV_CONF_DIR "/rules.d",
          UDEV_RULES_DIR,
--        "/run/udev/rules.d",
+-        UDEV_ROOT_RUN "/udev/rules.d",
          UDEV_LIBEXEC_DIR "/rules.d",
 -#ifdef HAVE_SPLIT_USR
 -        "/lib/udev/rules.d",
 -        "/usr/lib/udev/rules.d",
 -#endif
-+	NULL,			  /* placeholder for $EUDEV_RULES_DIRECTORY */
++        NULL,			/* placeholder for $EUDEV_RULES_DIRECTORY */
          NULL};
  
  struct udev_rules {
-@@ -1637,6 +1633,9 @@
+@@ -1704,6 +1700,9 @@
  
          udev_rules_check_timestamp(rules);
  
-+	/* Allow the user to specify an additional rules directory.  */
-+	rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
++        /* Allow the user to specify an additional rules directory.  */
++        rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
 +
          r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs);
          if (r < 0) {
-                 log_error("failed to enumerate rules files: %s", strerror(-r));
+                 log_error_errno(r, "failed to enumerate rules files: %m");
diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch
index 61f48607f7..642234ebbc 100644
--- a/gnu/packages/patches/glib-tests-desktop.patch
+++ b/gnu/packages/patches/glib-tests-desktop.patch
@@ -56,11 +56,12 @@ database, the `update-desktop-database' program, which we don't provide.
 
 -----------------------------
 The hunk below removes tests that depend on `gdbus-testserver.py',
-because that script depends on python-gobject.
+because that script depends on python-gobject.  The second hunk
+disables a test that expects /etc/machine-id in the build environment.
  
---- glib-2.39.1/gio/tests/Makefile.in	2014-01-20 00:18:16.000000000 +0100
-+++ glib-2.39.1/gio/tests/Makefile.in	2014-01-20 00:18:47.000000000 +0100
-@@ -171,20 +171,13 @@ check_PROGRAMS = $(am__EXEEXT_14)
+--- glib-2.46.0/gio/tests/Makefile.in	2015-10-14 14:11:00.928809504 +0200
++++ glib-2.46.0/gio/tests/Makefile.in	2015-10-14 14:12:13.157291092 +0200
+@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16)
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-auth				\
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-bz627724				\
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-close-pending			\
@@ -79,7 +80,16 @@ because that script depends on python-gobject.
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-test-codegen-old			\
 -@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gdbus-threading				\
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gmenumodel				\
+ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	gnotification				\
  @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@	$(NULL)
+@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $
+ am__EXEEXT_1 =
+ @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \
+ @OS_UNIX_TRUE@	gdbus-peer-object-manager$(EXEEXT) \
+-@OS_UNIX_TRUE@	gdbus-unix-addresses$(EXEEXT) \
+ @OS_UNIX_TRUE@	live-g-file$(EXEEXT) socket-address$(EXEEXT) \
+ @OS_UNIX_TRUE@	stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \
+ @OS_UNIX_TRUE@	unix-streams$(EXEEXT) $(am__EXEEXT_1) \
   
 
 The test below depends on the availability /etc/passwd to dbus-daemon.
diff --git a/gnu/packages/patches/guitarix-c++11.patch b/gnu/packages/patches/guitarix-c++11.patch
new file mode 100644
index 0000000000..599855a223
--- /dev/null
+++ b/gnu/packages/patches/guitarix-c++11.patch
@@ -0,0 +1,297 @@
+Work around a C++11 incompatibility when compiling the gperf-generated
+'jsonrpc_methods.cc' with -std=c++11:
+
+  default/src/gx_head/engine/jsonrpc_methods.cc: In function ‘const CmdConnection::methodnames* in_word_set(const char*, unsigned int)’:
+  default/src/gx_head/engine/jsonrpc_methods.cc:211:26: error: reference to ‘hash’ is ambiguous
+	 register int key = hash (str, len);
+			    ^
+The solution is to run 'gperf -L C++' so that it generates code with
+appropriate C++ name-spacing to avoid the ambiguity.
+
+--- guitarix-0.33.0/tools/make_jsonrpc_methods	2015-10-31 12:45:52.756587435 +0100
++++ guitarix-0.33.0/tools/make_jsonrpc_methods	2015-10-31 12:47:02.801103366 +0100
+@@ -14,7 +14,7 @@ def add_enums(template_name, hashtable_n
+     hashtable = open(hashtable_name, "w")
+     hashtable.write(headline)
+     hashtable.flush()
+-    gperf = Popen(gperf_program, stdin=PIPE, stdout=hashtable)
++    gperf = Popen([gperf_program, "-L", "C++"], stdin=PIPE, stdout=hashtable)
+     enumlist = []
+     section = 0
+     in_comment = False
+
+--- guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp	2015-10-31 12:50:33.934647842 +0100
++++ guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp	2015-10-31 12:50:51.238773730 +0100
+@@ -1171,7 +1171,7 @@ bool CmdConnection::request(gx_system::J
+ 	}
+     }
+     jp.next(gx_system::JsonParser::end_object);
+-    const methodnames *p = in_word_set(method.c_str(), method.size());
++    const methodnames *p = Perfect_Hash::in_word_set(method.c_str(), method.size());
+     if (!p) {
+ 	throw RpcError(-32601, Glib::ustring::compose("Method not found -- '%1'", method));
+     }
+
+
+The following part is adapted from an upstream patch for the new libsigc++.
+
+commit 001aa683814a7bf4537882c7c3acf1dafd851cd5
+Author: Hermann Meyer <brummer-@web.de>
+Date:   Sat Oct 31 09:33:16 2015 +0100
+
+     * fix libsigc++ removes sigc::group
+
+diff --git a/src/gx_head/gui/avahi_discover.cpp b/src/gx_head/gui/avahi_discover.cpp
+index c49746e..88993c2 100644
+--- a/src/gx_head/gui/avahi_discover.cpp
++++ b/src/gx_head/gui/avahi_discover.cpp
+@@ -193,7 +193,9 @@ SelectInstance::SelectInstance(gx_system::CmdlineOptions& options, Gtk::Window *
+     win->signal_response().connect(sigc::mem_fun(this, &SelectInstance::on_response));
+     bld->get_widget("treeview", view);
+     view->signal_row_activated().connect(
+-	sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1));
++    sigc::mem_fun(this,&SelectInstance::on_row));
++    //view->signal_row_activated().connect(
++	//sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1));
+     view->set_model(Gtk::ListStore::create(cols));
+     view->get_selection()->set_mode(Gtk::SELECTION_BROWSE);
+     view->get_selection()->signal_changed().connect(
+@@ -242,6 +244,10 @@ void SelectInstance::on_avahi_changed() {
+     }
+ }
+ 
++void SelectInstance::on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column) {
++	on_response(1);
++}
++	
+ void SelectInstance::on_response(int response_id) {
+     if (response_id == 1) {
+ 	Gtk::TreeIter i = view->get_selection()->get_selected();
+diff --git a/src/gx_head/gui/gx_main.cpp b/src/gx_head/gui/gx_main.cpp
+index d1ad329..a207aa6 100644
+--- a/src/gx_head/gui/gx_main.cpp
++++ b/src/gx_head/gui/gx_main.cpp
+@@ -281,8 +281,10 @@ void ErrorPopup::show_msg() {
+     align->set_padding(50,20,0,10);
+     Gtk::VBox *vbox = dynamic_cast<Gtk::VBox *>(dialog->get_child());
+     vbox->set_redraw_on_allocate(true);
+-    vbox->signal_expose_event().connect(
+-	sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false);
++    g_signal_connect(GTK_WIDGET(vbox->gobj()), "expose-event",
++                     G_CALLBACK(gx_cairo::error_box_expose), NULL);
++   // vbox->signal_expose_event().connect(
++	//sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false);
+     dialog->set_title(_("GUITARIX ERROR"));
+     dialog->signal_response().connect(
+ 	sigc::mem_fun(*this, &ErrorPopup::on_response));
+@@ -306,9 +308,11 @@ GxSplashBox::GxSplashBox()
+     : Gtk::Window(Gtk::WINDOW_POPUP) {
+     set_redraw_on_allocate(true);
+     set_app_paintable();
+-    signal_expose_event().connect(
+-        sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()),
+-		    sigc::_1, (void*)0), false);
++    g_signal_connect(GTK_WIDGET(gobj()), "expose-event",
++                     G_CALLBACK(gx_cairo::splash_expose), NULL);
++    //signal_expose_event().connect(
++    //    sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()),
++	//	    sigc::_1, (void*)0), false);
+     set_decorated(false);
+     set_type_hint(Gdk::WINDOW_TYPE_HINT_SPLASHSCREEN);
+     set_position(Gtk::WIN_POS_CENTER );
+diff --git a/src/gx_head/gui/gx_main_window.cpp b/src/gx_head/gui/gx_main_window.cpp
+index 23c9ae6..eb0e201 100644
+--- a/src/gx_head/gui/gx_main_window.cpp
++++ b/src/gx_head/gui/gx_main_window.cpp
+@@ -1303,6 +1303,23 @@ void MainWindow::on_log_activate() {
+         fLoggingWindow.hide();
+     }
+ }
++// show loggingbox
++bool MainWindow::on_log_activated(GdkEventButton* ev) {
++    if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) {
++    if (!actions.loggingbox->get_active()) {
++		actions.loggingbox->set_active(true);
++        gint rxorg, ryorg;
++        window->get_position(rxorg, ryorg);
++        fLoggingWindow.move(rxorg+5, ryorg+272);
++        fLoggingWindow.show_all();
++        on_msg_level_changed();
++    } else {
++        fLoggingWindow.hide();
++        actions.loggingbox->set_active(false);
++    }
++	}
++    return true;
++}
+ 
+ void MainWindow::on_engine_toggled() {
+     gx_engine::GxEngineState s;
+@@ -2119,6 +2136,14 @@ bool MainWindow::on_toggle_mute(GdkEventButton* ev) {
+     return true;
+ }
+ 
++bool MainWindow::on_jackserverconnection(GdkEventButton* ev) {
++    if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) {
++    bool v = actions.jackserverconnection->get_active();
++    actions.jackserverconnection->set_active(!v);
++    }
++    return true;
++}
++
+ void MainWindow::on_msg_level_changed() {
+     switch (fLoggingWindow.get_unseen_msg_level()) {
+     case GxLogger::kWarning: logstate_image->set(pixbuf_log_yellow); break;
+@@ -2683,12 +2708,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt
+     */
+     if (jack) {
+ 	jackd_image->set(pixbuf_jack_disconnected);
+-	jackd_image->get_parent()->signal_button_press_event().connect(
+-	    sigc::bind_return(
+-		sigc::group(
+-		    sigc::ptr_fun(toggle_action),
+-		    actions.jackserverconnection),
+-		true));
++    jackd_image->get_parent()->signal_button_press_event().connect(
++	sigc::mem_fun(*this, &MainWindow::on_jackserverconnection));
++	//jackd_image->get_parent()->signal_button_press_event().connect(
++	//    sigc::bind_return(
++	//	sigc::group(
++	//	    sigc::ptr_fun(toggle_action),
++	//	    actions.jackserverconnection),
++	//	true));
+     } else {
+ 	jackd_image->hide();
+     }
+@@ -2823,11 +2850,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt
+ 	    false));
+     on_msg_level_changed();
+     logstate_image->get_parent()->signal_button_press_event().connect(
+-	sigc::bind_return(
+-	    sigc::group(
+-		sigc::ptr_fun(toggle_action),
+-		actions.loggingbox),
+-	    true));
++    sigc::mem_fun(*this, &MainWindow::on_log_activated));
++    
++    //logstate_image->get_parent()->signal_button_press_event().connect(
++	//sigc::bind_return(
++	//    sigc::group(
++	//	sigc::ptr_fun(toggle_action),
++	//	actions.loggingbox),
++	//    true));
+ 
+     /*
+     ** load plugin definitions into plugin_dict, add to effects_toolpalette
+diff --git a/src/gx_head/gui/gx_portmap.cpp b/src/gx_head/gui/gx_portmap.cpp
+index d8a6ae6..e711ee7 100644
+--- a/src/gx_head/gui/gx_portmap.cpp
++++ b/src/gx_head/gui/gx_portmap.cpp
+@@ -578,12 +578,16 @@ PortMapWindow::PortMapWindow(Glib::RefPtr<gx_gui::GxBuilder> bld, gx_jack::GxJac
+     b->set_name("rack_button");
+     Gtk::VBox *vbox1;
+     bld->find_widget("dialog-vbox1", vbox1);
+-    vbox1->signal_expose_event().connect(
+-	sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false);
++    g_signal_connect(GTK_WIDGET(vbox1->gobj()), "expose-event",
++                     G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL);
++   // vbox1->signal_expose_event().connect(
++	//sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false);
+     Gtk::VBox *vbox2;
+     bld->find_widget("dialog-vbox2", vbox2);
+-    vbox2->signal_expose_event().connect(
+-	sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false);
++    g_signal_connect(GTK_WIDGET(vbox2->gobj()), "expose-event",
++                     G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL);
++  //  vbox2->signal_expose_event().connect(
++//	sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false);
+     vbox1->set_redraw_on_allocate(true);
+     vbox2->set_redraw_on_allocate(true);
+     for (int i = 0; i < number_of_ports; ++i) {
+diff --git a/src/headers/avahi_discover.h b/src/headers/avahi_discover.h
+index 5af5949..b6f523a 100644
+--- a/src/headers/avahi_discover.h
++++ b/src/headers/avahi_discover.h
+@@ -91,6 +91,7 @@ private:
+     } cols;
+ private:
+     void on_response(int response_id);
++    void on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column);
+     void on_avahi_changed();
+     void on_selection_changed();
+ public:
+diff --git a/src/headers/gx_main_window.h b/src/headers/gx_main_window.h
+index 3b54285..e7c02ce 100644
+--- a/src/headers/gx_main_window.h
++++ b/src/headers/gx_main_window.h
+@@ -720,6 +720,7 @@ private:
+     void on_load_ladspa();
+     void delete_select_jack_control();
+     void on_log_activate();
++    bool on_log_activated(GdkEventButton* ev);
+     void do_program_change(int pgm);
+     void on_engine_toggled();
+     void on_engine_state_change(gx_engine::GxEngineState state);
+@@ -728,6 +729,7 @@ private:
+     void setup_tuner_temperament(Gxw::RackTuner& tuner);
+     void setup_tuner(Gxw::RackTuner& tuner);
+     bool on_toggle_mute(GdkEventButton* ev);
++    bool on_jackserverconnection(GdkEventButton* ev);
+     void on_msg_level_changed();
+     void on_ampdetail_switch(bool compress, bool setparam);
+     void on_show_oscilloscope(bool v);
+
+The following is adapted from this upstream patch, which does a whole
+bunch of unrelated things.
+
+commit 44ab541a5a846c0b3832f4225d1ae92183d55550
+Author: Hermann Meyer <brummer-@web.de>
+Date:   Fri Oct 30 08:47:42 2015 +0100
+
+     * add 53 tet tuner option
+     * add online preset download widget (requiers libwebkit-1.0
+     * fix bug #27
+     * fix build fail with c++11 system libs (make c++11 default)
+
+--- a/src/LV2/gx_amp.lv2/gxamp_gui.cpp
++++ b/src/LV2/gx_amp.lv2/gxamp_gui.cpp
+@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin()
+   gtk_rc_parse_string (toparse.c_str());
+ }
+ 
+-inline std::string to_string(long long _Val)
++inline std::string t_string(long long _Val)
+ {   // convert int to string
+         char _Buf[128];
+         sprintf(_Buf, "%lld", _Val);
+@@ -136,7 +136,7 @@ void GXPluginGUI::set_plug_name()
+   // Here the plugin should have different name for different amp.....
+   addKnob = "";
+   plugskin = "amp21.png";
+-  plug_name = "GUITARIXLV2" + to_string(reinterpret_cast<long long>(this));
++  plug_name = "GUITARIXLV2" + t_string(reinterpret_cast<long long>(this));
+   //fprintf(stderr,"%s",plug_name.c_str());
+ }
+ 
+diff --git a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
+index d5947ee..edc1caa 100644
+--- a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
++++ b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
+@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin()
+   gtk_rc_parse_string (toparse.c_str());
+ }
+ 
+-inline std::string to_string(long long _Val)
++inline std::string t_string(long long _Val)
+ {   // convert int to string
+         char _Buf[128];
+         sprintf(_Buf, "%lld", _Val);
+@@ -135,7 +135,7 @@ void GXPluginGUI::set_plug_name()
+ {
+   addKnob = "";
+   plugskin = "amp21.png";
+-  plug_name = "GUITARIXLV2" + to_string(reinterpret_cast<long long>(this));
++  plug_name = "GUITARIXLV2" + t_string(reinterpret_cast<long long>(this));
+ }
+ 
+ GtkWidget* GXPluginGUI::make_gui()
diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch
new file mode 100644
index 0000000000..676024beb4
--- /dev/null
+++ b/gnu/packages/patches/libdrm-symbol-check.patch
@@ -0,0 +1,195 @@
+Augment the list of expected symbols to fix the symbol-check tests on
+mips64el-linux and armhf-linux.
+
+--- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig	2015-09-04 11:07:40.000000000 -0400
++++ libdrm-2.4.65/freedreno/freedreno-symbol-check	2015-10-18 23:57:15.288416229 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ fd_bo_cpu_fini
+ fd_bo_cpu_prep
+ fd_bo_del
+--- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/nouveau/nouveau-symbol-check	2015-10-18 23:55:26.078327118 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ nouveau_bo_map
+ nouveau_bo_name_get
+ nouveau_bo_name_ref
+--- libdrm-2.4.65/libkms/kms-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/libkms/kms-symbol-check	2015-10-18 23:46:10.683869471 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBKMS_H_FILES
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ kms_bo_create
+ kms_bo_destroy
+ kms_bo_get_prop
+--- libdrm-2.4.65/intel/intel-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/intel/intel-symbol-check	2015-10-18 23:55:53.309558508 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ drm_intel_bo_alloc
+ drm_intel_bo_alloc_for_render
+ drm_intel_bo_alloc_tiled
+--- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig	2015-08-17 10:08:11.000000000 -0400
++++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check	2015-10-18 23:56:10.606917723 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ amdgpu_bo_alloc
+ amdgpu_bo_cpu_map
+ amdgpu_bo_cpu_unmap
+--- libdrm-2.4.65/exynos/exynos-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/exynos/exynos-symbol-check	2015-10-18 23:56:32.025486153 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ exynos_bo_create
+ exynos_bo_destroy
+ exynos_bo_from_name
+--- libdrm-2.4.65/omap/omap-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/omap/omap-symbol-check	2015-10-18 23:56:44.834438626 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_omap*HEADERS
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ omap_bo_cpu_fini
+ omap_bo_cpu_prep
+ omap_bo_del
+--- libdrm-2.4.65/tegra/tegra-symbol-check.orig	2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/tegra/tegra-symbol-check	2015-10-18 23:57:00.756759698 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ 
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES
+ 
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ drm_tegra_bo_get_flags
+ drm_tegra_bo_get_handle
+ drm_tegra_bo_get_tiling
diff --git a/gnu/packages/patches/librsvg-tests.patch b/gnu/packages/patches/librsvg-tests.patch
new file mode 100644
index 0000000000..dc5b94e185
--- /dev/null
+++ b/gnu/packages/patches/librsvg-tests.patch
@@ -0,0 +1,27 @@
+From e06fc71a57156123e4e50a39957100a651ab632b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
+Date: Sat, 17 Oct 2015 10:20:33 +0800
+Subject: [PATCH] tests/styles: Don't duplicate test names.
+
+---
+ tests/styles.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/styles.c b/tests/styles.c
+index d09b1f2..a938835 100644
+--- a/tests/styles.c
++++ b/tests/styles.c
+@@ -97,8 +97,8 @@ static const FixtureData fixtures[] =
+     {"/styles/selectors/2 or more selectors (stroke)", "592207", "styles/bug592207.svg", "#target", "stroke", .expected.color = 0xff0000ff},
+     {"/styles/svg-element-style", "615701", "styles/svg-class.svg", "#svg", "fill", .expected.color = 0xff0000ff},
+     {"/styles/presentation attribute in svg element", "620693", "styles/bug620693.svg", "#svg", "stroke", .expected.color = 0xffff0000},
+-    {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
+-    {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
++    {"/styles/!important/1", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
++    {"/styles/!important/2", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
+     {"/styles/!important/class", "614606", "styles/bug614606.svg", "#path6306", "fill", .expected.color = 0xffff0000 /* red */ },
+     {"/styles/!important/element", "614606", "styles/bug614606.svg", "#path6308", "fill", .expected.color = 0xff000000},
+     {"/styles/!important/#id prior than class", NULL, "styles/important.svg", "#red", "fill", .expected.color = 0xffff0000 },
+-- 
+2.5.0
+
diff --git a/gnu/packages/patches/unzip-CVE-2015-7696.patch b/gnu/packages/patches/unzip-CVE-2015-7696.patch
new file mode 100644
index 0000000000..d6a4072673
--- /dev/null
+++ b/gnu/packages/patches/unzip-CVE-2015-7696.patch
@@ -0,0 +1,35 @@
+Copied from Debian.
+
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Mon, 14 Sep 2015 18:23:17 +0200
+Subject: Upstream fix for heap overflow
+Bug-Debian: https://bugs.debian.org/802162
+Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944
+Origin: https://bugzilla.redhat.com/attachment.cgi?id=1073002
+Forwarded: yes
+
+---
+ crypt.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--- a/crypt.c
++++ b/crypt.c
+@@ -465,7 +465,17 @@
+     GLOBAL(pInfo->encrypted) = FALSE;
+     defer_leftover_input(__G);
+     for (n = 0; n < RAND_HEAD_LEN; n++) {
+-        b = NEXTBYTE;
++        /* 2012-11-23 SMS.  (OUSPG report.)
++         * Quit early if compressed size < HEAD_LEN.  The resulting
++         * error message ("unable to get password") could be improved,
++         * but it's better than trying to read nonexistent data, and
++         * then continuing with a negative G.csize.  (See
++         * fileio.c:readbyte()).
++         */
++        if ((b = NEXTBYTE) == (ush)EOF)
++        {
++            return PK_ERR;
++        }
+         h[n] = (uch)b;
+         Trace((stdout, " (%02x)", h[n]));
+     }
diff --git a/gnu/packages/patches/unzip-CVE-2015-7697.patch b/gnu/packages/patches/unzip-CVE-2015-7697.patch
new file mode 100644
index 0000000000..d688b42495
--- /dev/null
+++ b/gnu/packages/patches/unzip-CVE-2015-7697.patch
@@ -0,0 +1,28 @@
+Copied from Debian.
+
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Mon, 14 Sep 2015 18:24:56 +0200
+Subject: fix infinite loop when extracting empty bzip2 data
+Bug-Debian: https://bugs.debian.org/802160
+Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944
+Origin: other, https://bugzilla.redhat.com/attachment.cgi?id=1073339
+
+---
+ extract.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/extract.c
++++ b/extract.c
+@@ -2728,6 +2728,12 @@
+     int repeated_buf_err;
+     bz_stream bstrm;
+ 
++    if (G.incnt <= 0 && G.csize <= 0L) {
++        /* avoid an infinite loop */
++        Trace((stderr, "UZbunzip2() got empty input\n"));
++        return 2;
++    }
++
+ #if (defined(DLL) && !defined(NO_SLIDE_REDIR))
+     if (G.redirect_slide)
+         wsize = G.redirect_size, redirSlide = G.redirect_buffer;
diff --git a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch
deleted file mode 100644
index 33498db95e..0000000000
--- a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Copied from Fedora.
-
-http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e
-
-From bdd4a0cecd745cb4825e4508b5bdf2579731086a Mon Sep 17 00:00:00 2001
-From: Petr Stodulka <pstodulk@redhat.com>
-Date: Mon, 14 Sep 2015 18:23:17 +0200
-Subject: [PATCH 1/3] upstream fix for heap overflow
-
-https://bugzilla.redhat.com/attachment.cgi?id=1073002
----
- crypt.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/crypt.c b/crypt.c
-index 784e411..a8975f2 100644
---- a/crypt.c
-+++ b/crypt.c
-@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd)
-     GLOBAL(pInfo->encrypted) = FALSE;
-     defer_leftover_input(__G);
-     for (n = 0; n < RAND_HEAD_LEN; n++) {
--        b = NEXTBYTE;
-+        /* 2012-11-23 SMS.  (OUSPG report.)
-+         * Quit early if compressed size < HEAD_LEN.  The resulting
-+         * error message ("unable to get password") could be improved,
-+         * but it's better than trying to read nonexistent data, and
-+         * then continuing with a negative G.csize.  (See
-+         * fileio.c:readbyte()).
-+         */
-+        if ((b = NEXTBYTE) == (ush)EOF)
-+        {
-+            return PK_ERR;
-+        }
-         h[n] = (uch)b;
-         Trace((stdout, " (%02x)", h[n]));
-     }
--- 
-2.4.6
-
-
-From 4b48844661ff9569f2ecf582a387d46a5775b5d8 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Mon, 14 Sep 2015 18:24:56 +0200
-Subject: [PATCH 2/3] fix infinite loop when extracting empty bzip2 data
-
-Bug: https://sourceforge.net/p/infozip/patches/23/
----
- extract.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/extract.c b/extract.c
-index 7134bfe..29db027 100644
---- a/extract.c
-+++ b/extract.c
-@@ -2733,6 +2733,12 @@ __GDEF
-     int repeated_buf_err;
-     bz_stream bstrm;
- 
-+    if (G.incnt <= 0 && G.csize <= 0L) {
-+        /* avoid an infinite loop */
-+        Trace((stderr, "UZbunzip2() got empty input\n"));
-+        return 2;
-+    }
-+
- #if (defined(DLL) && !defined(NO_SLIDE_REDIR))
-     if (G.redirect_slide)
-         wsize = G.redirect_size, redirSlide = G.redirect_buffer;
--- 
-2.4.6
-
-
-From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Tue, 22 Sep 2015 18:52:23 +0200
-Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input
-
-Suggested-by: Stefan Cornelius
----
- extract.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/extract.c b/extract.c
-index 29db027..b9ae667 100644
---- a/extract.c
-+++ b/extract.c
-@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk,
-         if (G.lrec.compression_method == STORED) {
-             zusz_t csiz_decrypted = G.lrec.csize;
- 
--            if (G.pInfo->encrypted)
-+            if (G.pInfo->encrypted) {
-+                if (csiz_decrypted <= 12) {
-+                    /* handle the error now to prevent unsigned overflow */
-+                    Info(slide, 0x401, ((char *)slide,
-+                      LoadFarStringSmall(ErrUnzipNoFile),
-+                      LoadFarString(InvalidComprData),
-+                      LoadFarStringSmall2(Inflate)));
-+                    return PK_ERR;
-+                }
-                 csiz_decrypted -= 12;
-+            }
-             if (G.lrec.ucsize != csiz_decrypted) {
-                 Info(slide, 0x401, ((char *)slide,
-                   LoadFarStringSmall2(WrnStorUCSizCSizDiff),
--- 
-2.5.2
-
diff --git a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch
new file mode 100644
index 0000000000..013002a88c
--- /dev/null
+++ b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch
@@ -0,0 +1,40 @@
+Extracted from a patch in Fedora.
+
+http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e
+
+From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Tue, 22 Sep 2015 18:52:23 +0200
+Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input
+
+Suggested-by: Stefan Cornelius
+---
+ extract.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/extract.c b/extract.c
+index 29db027..b9ae667 100644
+--- a/extract.c
++++ b/extract.c
+@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk,
+         if (G.lrec.compression_method == STORED) {
+             zusz_t csiz_decrypted = G.lrec.csize;
+ 
+-            if (G.pInfo->encrypted)
++            if (G.pInfo->encrypted) {
++                if (csiz_decrypted <= 12) {
++                    /* handle the error now to prevent unsigned overflow */
++                    Info(slide, 0x401, ((char *)slide,
++                      LoadFarStringSmall(ErrUnzipNoFile),
++                      LoadFarString(InvalidComprData),
++                      LoadFarStringSmall2(Inflate)));
++                    return PK_ERR;
++                }
+                 csiz_decrypted -= 12;
++            }
+             if (G.lrec.ucsize != csiz_decrypted) {
+                 Info(slide, 0x401, ((char *)slide,
+                   LoadFarStringSmall2(WrnStorUCSizCSizDiff),
+-- 
+2.5.2
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 03ed5113b1..4b30bf09d5 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -52,13 +52,13 @@
 (define-public poppler
   (package
    (name "poppler")
-   (version "0.36.0")
+   (version "0.37.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://poppler.freedesktop.org/poppler-"
                                 version ".tar.xz"))
             (sha256 (base32
-                     "13i440kv873wgmw50rs4d1v05cj0r7bqnghd70hp9vy44dxhdk4k"))))
+                     "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq"))))
    (build-system gnu-build-system)
    ;; FIXME: more dependencies could  be added
    ;;  cairo output:       no (requires cairo >= 1.10.0)
@@ -68,7 +68,7 @@
    ;;  use libcurl:        no
    (inputs `(("fontconfig" ,fontconfig)
              ("freetype" ,freetype)
-             ("libjpeg-8" ,libjpeg-8)
+             ("libjpeg" ,libjpeg)
              ("libpng" ,libpng)
              ("libtiff" ,libtiff)
              ("lcms" ,lcms)
@@ -87,8 +87,7 @@
    (arguments
     `(#:tests? #f ; no test data provided with the tarball
       #:configure-flags
-      '("--enable-libopenjpeg"
-        "--enable-xpdf-headers" ; to install header files
+      '("--enable-xpdf-headers" ; to install header files
         "--enable-zlib")
       #:phases
       (alist-cons-before
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 27b269afc2..fa656b3db6 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -199,6 +199,8 @@ sound server.")
               (base32
                "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm
     (inputs
      `(("libcanberra" ,libcanberra)
        ("gtkmm" ,gtkmm)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 24a342b8d5..b37bb1360f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4248,6 +4248,17 @@ features useful for text console applications.")
        (sha256
         (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before
+          'check 'pre-check
+          (lambda _
+            ;; XXX: For the missing '/etc/machine-id'.
+            (substitute* "test/run-test.sh"
+              (("DBUS_FATAL_WARNINGS=1")
+               "DBUS_FATAL_WARNINGS=0"))
+            #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index fc90346371..71600b2347 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -40,6 +40,28 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages perl))
 
+(define (qemu-patch commit file-name sha256)
+  "Return an origin for COMMIT."
+  (origin
+    (method url-fetch)
+    (uri (string-append
+          "http://git.qemu.org/?p=qemu.git;a=commitdiff_plain;h="
+          commit))
+    (sha256 sha256)
+    (file-name file-name)))
+
+(define %glib-memory-vtable-patch
+  (qemu-patch "deb847bf"
+              "qemu-glib-memory-vtable.patch"
+              (base32
+               "0afb7rvxy14104jxmhr7m02w5baiz0c7vhq3h642h09jgxrcmzzi")))
+
+(define %glib-duplicate-test-patch
+  (qemu-patch "98cf48f6"
+              "qemu-glib-duplicate-test.patch"
+              (base32
+               "1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5")))
+
 (define-public qemu-headless
   ;; This is QEMU without GUI support.
   (package
@@ -52,7 +74,12 @@
              (sha256
               (base32
                "1nqv5p94zpnhcaqkifnn83ap7dd0qrb0qiicswbyhhby0f48pzpc"))
-             (patches (map search-patch '("qemu-CVE-2015-6855.patch")))))
+             (patches (list (search-patch "qemu-CVE-2015-6855.patch")
+
+                            ;; These two patches allow QEMU's tests to run
+                            ;; correctly with 'gtester' from the latest GLib.
+                            %glib-memory-vtable-patch
+                            %glib-duplicate-test-patch))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ab390d37de..9813f5b0fd 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -95,7 +95,7 @@ X11 (yet).")
 (define-public qt
   (package
     (name "qt")
-    (version "5.5.0")
+    (version "5.5.1")
     (source (origin
              (method url-fetch)
              (uri
@@ -107,7 +107,7 @@ X11 (yet).")
                  version ".tar.xz"))
              (sha256
                (base32
-                 "1by2l8wxbqwvs7anb5ggmqhn2cfmhyw3a23bp1yyd240rdpa38ky"))
+                 "0615cn4n3n78v48lnmapqz2jizm2pzrjwvsjlnsf4awrsiiqw0kg"))
              (modules '((guix build utils)))
              (snippet
               '(begin
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index eb9a503ae6..f4b242df87 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -322,7 +322,7 @@ SMPTE 314M.")
 (define-public libva
   (package
     (name "libva")
-    (version "1.5.1")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
@@ -330,7 +330,7 @@ SMPTE 314M.")
              "http://www.freedesktop.org/software/vaapi/releases/libva/libva-"
              version".tar.bz2"))
        (sha256
-        (base32 "01d01mm9fgpwzqycmjjcj3in3vvzcibi3f64icsw2sksmmgb4495"))))
+        (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index f680d253c8..4b5308c665 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)               ;for libgudev
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages linux)
@@ -199,7 +200,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.58")
+    (version "2.4.65")
     (source
       (origin
         (method url-fetch)
@@ -209,7 +210,8 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1pb5lfb3kh36p9axq620daclq68rqb3mhzxpz0pb18y9p7kglmdi"))))
+            "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki"))
+        (patches (list (search-patch "libdrm-symbol-check.patch")))))
     (build-system gnu-build-system)
     (inputs
       `(("libpciaccess" ,libpciaccess)
@@ -605,6 +607,7 @@ Escape key when Left Control is pressed and released on its own.")
     (inputs
      `(("glib" ,glib)
        ("gtk+" ,gtk+)
+       ("libgudev" ,libgudev)
        ("eudev" ,eudev)
        ("libxml2" ,libxml2)))
     (home-page "http://linuxwacom.sourceforge.net/")
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 914012625f..a4987c1b2e 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -111,6 +111,8 @@ Xfce Desktop Environment.")
           ;; Run test-suite under a dbus session.
           (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
                   (string-append %output "/share"))
+          ;; For the missing '/etc/machine-id'.
+          (setenv "DBUS_FATAL_WARNINGS" "0");
           (zero? (system* "dbus-launch" "make" "check")))
         (alist-delete 'check %standard-phases))))
     (native-inputs
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index a891fcc06b..54c15dd8ff 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1129,7 +1129,7 @@ themselves.")
 (define-public libpciaccess
   (package
     (name "libpciaccess")
-    (version "0.13.2")
+    (version "0.13.4")
     (source
       (origin
         (method url-fetch)
@@ -1139,7 +1139,7 @@ themselves.")
                ".tar.bz2"))
         (sha256
           (base32
-            "06fy43n3c450h7xqpn3094bnfn7ca1mrq3i856y8kyqa0lmqraxb"))))
+            "1krgryi9ngjr66242v0v5mczihgv0y7rrvx0563arr318mjn9y07"))))
     (build-system gnu-build-system)
     (inputs
       `(("zlib" ,zlib)))
diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm
index 83c452778c..b7bed0e86d 100644
--- a/gnu/packages/zip.scm
+++ b/gnu/packages/zip.scm
@@ -85,11 +85,13 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
                                    "unzip-CVE-2014-8140.patch"
                                    "unzip-CVE-2014-8141.patch"
                                    "unzip-CVE-2014-9636.patch"
+                                   "unzip-CVE-2015-7696.patch"
+                                   "unzip-CVE-2015-7697.patch"
                                    "unzip-allow-greater-hostver-values.patch"
                                    "unzip-initialize-symlink-flag.patch"
                                    "unzip-remove-build-date.patch"
                                    "unzip-attribs-overflow.patch"
-                                   "unzip-fix-overflows-and-infloop.patch"
+                                   "unzip-overflow-on-invalid-input.patch"
                                    "unzip-format-secure.patch"
                                    "unzip-overflow-long-fsize.patch")))))
     (build-system gnu-build-system)
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index e4ecd961c5..9b0d198683 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,7 +21,7 @@
   #:use-module (gnu services)
   #:use-module (gnu services dmd)
   #:use-module (gnu system shadow)
-  #:use-module (gnu packages glib)
+  #:use-module ((gnu packages glib) #:select (dbus/activation))
   #:use-module (gnu packages admin)
   #:use-module (guix gexp)
   #:use-module (guix records)
@@ -37,13 +38,38 @@
   dbus-configuration make-dbus-configuration
   dbus-configuration?
   (dbus      dbus-configuration-dbus              ;<package>
-             (default dbus))
+             (default dbus/activation))
   (services  dbus-configuration-services          ;list of <package>
              (default '())))
 
-(define (dbus-configuration-directory dbus services)
-  "Return a configuration directory for @var{dbus} that includes the
-@code{etc/dbus-1/system.d} directories of each package listed in
+(define (system-service-directory services)
+  "Return the system service directory, containing @code{.service} files for
+all the services that may be activated by the daemon."
+  (computed-file "dbus-system-services"
+                 #~(begin
+                     (use-modules (guix build utils)
+                                  (srfi srfi-1))
+
+                     (define files
+                       (append-map (lambda (service)
+                                     (find-files (string-append
+                                                  service
+                                                  "/share/dbus-1/system-services")
+                                                 "\\.service$"))
+                                   (list #$@services)))
+
+                     (mkdir #$output)
+                     (for-each (lambda (file)
+                                 (symlink file
+                                          (string-append #$output "/"
+                                                         (basename file))))
+                               files)
+                     #t)
+                 #:modules '((guix build utils))))
+
+(define (dbus-configuration-directory services)
+  "Return a directory contains the @code{system-local.conf} file for DBUS that
+includes the @code{etc/dbus-1/system.d} directories of each package listed in
 @var{services}."
   (define build
     #~(begin
@@ -53,24 +79,27 @@
         (define (services->sxml services)
           ;; Return the SXML 'includedir' clauses for DIRS.
           `(busconfig
+            (servicehelper "/run/setuid-programs/dbus-daemon-launch-helper")
+
+            ;; First, the '.service' files of services subject to activation.
+            ;; We use a fixed location under /etc because the setuid helper
+            ;; looks for them in that location and nowhere else.  See
+            ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92458>.
+            (servicedir "/etc/dbus-1/system-services")
+
             ,@(append-map (lambda (dir)
                             `((includedir
                                ,(string-append dir "/etc/dbus-1/system.d"))
-                              (servicedir         ;for '.service' files
-                               ,(string-append dir "/share/dbus-1/services"))
-                              (servicedir       ;likewise, for auto-activation
-                               ,(string-append
-                                 dir
-                                 "/share/dbus-1/system-services"))))
+                              (servicedir       ;for '.service' files
+                               ,(string-append dir "/share/dbus-1/services"))))
                           services)))
 
         (mkdir #$output)
-        (copy-file (string-append #$dbus "/etc/dbus-1/system.conf")
-                   (string-append #$output "/system.conf"))
 
-        ;; The default 'system.conf' has an <includedir> clause for
-        ;; 'system.d', so create it.
-        (mkdir (string-append #$output "/system.d"))
+        ;; Provide /etc/dbus-1/system-services, which is where the setuid
+        ;; helper looks for system service files.
+        (symlink #$(system-service-directory services)
+                 (string-append #$output "/system-services"))
 
         ;; 'system-local.conf' is automatically included by the default
         ;; 'system.conf', so this is where we stuff our own things.
@@ -81,6 +110,12 @@
 
   (computed-file "dbus-configuration" build))
 
+(define (dbus-etc-files config)
+  "Return a list of FILES for @var{etc-service-type} to build the
+@code{/etc/dbus-1} directory."
+  (list `("dbus-1" ,(dbus-configuration-directory
+                     (dbus-configuration-services config)))))
+
 (define %dbus-accounts
   ;; Accounts used by the system bus.
   (list (user-group (name "messagebus") (system? #t))
@@ -92,6 +127,12 @@
          (home-directory "/var/run/dbus")
          (shell #~(string-append #$shadow "/sbin/nologin")))))
 
+(define dbus-setuid-programs
+  ;; Return the file name of the setuid program that we need.
+  (match-lambda
+    (($ <dbus-configuration> dbus services)
+     (list #~(string-append #$dbus "/libexec/dbus-daemon-launch-helper")))))
+
 (define (dbus-activation config)
   "Return an activation gexp for D-Bus using @var{config}."
   #~(begin
@@ -120,18 +161,15 @@
 
 (define dbus-dmd-service
   (match-lambda
-    (($ <dbus-configuration> dbus services)
-     (let ((conf (dbus-configuration-directory dbus services)))
-       (list (dmd-service
-              (documentation "Run the D-Bus system daemon.")
-              (provision '(dbus-system))
-              (requirement '(user-processes))
-              (start #~(make-forkexec-constructor
-                        (list (string-append #$dbus "/bin/dbus-daemon")
-                              "--nofork"
-                              (string-append "--config-file=" #$conf
-                                             "/system.conf"))))
-              (stop #~(make-kill-destructor))))))))
+    (($ <dbus-configuration> dbus)
+     (list (dmd-service
+            (documentation "Run the D-Bus system daemon.")
+            (provision '(dbus-system))
+            (requirement '(user-processes))
+            (start #~(make-forkexec-constructor
+                      (list (string-append #$dbus "/bin/dbus-daemon")
+                            "--nofork" "--system")))
+            (stop #~(make-kill-destructor)))))))
 
 (define dbus-root-service-type
   (service-type (name 'dbus)
@@ -140,14 +178,15 @@
                                           dbus-dmd-service)
                        (service-extension activation-service-type
                                           dbus-activation)
+                       (service-extension etc-service-type
+                                          dbus-etc-files)
                        (service-extension account-service-type
-                                          (const %dbus-accounts))))
+                                          (const %dbus-accounts))
+                       (service-extension setuid-program-service-type
+                                          dbus-setuid-programs)))
 
                 ;; Extensions consist of lists of packages (representing D-Bus
                 ;; services) that we just concatenate.
-                ;;
-                ;; FIXME: We need 'dbus-daemon-launch-helper' to be
-                ;; setuid-root for auto-activation to work.
                 (compose concatenate)
 
                 ;; The service's parameters field is extended by augmenting
@@ -159,7 +198,7 @@
                             (append (dbus-configuration-services config)
                                     services)))))))
 
-(define* (dbus-service #:key (dbus dbus) (services '()))
+(define* (dbus-service #:key (dbus dbus/activation) (services '()))
   "Return a service that runs the \"system bus\", using @var{dbus}, with
 support for @var{services}.
 
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index f283008c4c..166895663f 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -247,17 +247,6 @@ levels, with the given configuration settings.  It implements the
          (home-directory "/var/empty")
          (shell #~(string-append #$shadow "/sbin/nologin")))))
 
-(define (colord-dmd-service colord)
-  "Return a dmd service for COLORD."
-  ;; TODO: Remove when D-Bus activation works.
-  (list (dmd-service
-         (documentation "Run the colord color management service.")
-         (provision '(colord-daemon))
-         (requirement '(dbus-system udev))
-         (start #~(make-forkexec-constructor
-                   (list (string-append #$colord "/libexec/colord"))))
-         (stop #~(make-kill-destructor)))))
-
 (define colord-service-type
   (service-type (name 'colord)
                 (extensions
@@ -265,8 +254,6 @@ levels, with the given configuration settings.  It implements the
                                           (const %colord-accounts))
                        (service-extension activation-service-type
                                           (const %colord-activation))
-                       (service-extension dmd-root-service-type
-                                          colord-dmd-service)
 
                        ;; Colord is a D-Bus service that dbus-daemon can
                        ;; activate.
@@ -345,23 +332,6 @@ users are allowed."
                               "GEOCLUE_CONFIG_FILE"
                               (geoclue-configuration-file config))))
 
-(define (geoclue-dmd-service config)
-  "Return a GeoClue dmd service for CONFIG."
-  ;; TODO: Remove when D-Bus activation works.
-  (let ((geoclue (geoclue-configuration-geoclue config))
-        (config  (geoclue-configuration-file config)))
-    (list (dmd-service
-           (documentation "Run the GeoClue location service.")
-           (provision '(geoclue-daemon))
-           (requirement '(dbus-system))
-
-           (start #~(make-forkexec-constructor
-                     (list (string-append #$geoclue "/libexec/geoclue"))
-                     #:user "geoclue"
-                     #:environment-variables
-                     (list (string-append "GEOCLUE_CONFIG_FILE=" #$config))))
-           (stop #~(make-kill-destructor))))))
-
 (define %geoclue-accounts
   (list (user-group (name "geoclue") (system? #t))
         (user-account
@@ -377,8 +347,6 @@ users are allowed."
                 (extensions
                  (list (service-extension dbus-root-service-type
                                           geoclue-dbus-service)
-                       (service-extension dmd-root-service-type
-                                          geoclue-dmd-service)
                        (service-extension account-service-type
                                           (const %geoclue-accounts))))))
 
@@ -428,18 +396,6 @@ site} for more information."
 (define %polkit-pam-services
   (list (unix-pam-service "polkitd")))
 
-(define (polkit-dmd-service polkit)
-  "Return the <dmd-service> for POLKIT."
-  ;; TODO: Remove when D-Bus activation works.
-  (list (dmd-service
-         (documentation "Run the polkit privilege management service.")
-         (provision '(polkit-daemon))
-         (requirement '(dbus-system))
-
-         (start #~(make-forkexec-constructor
-                   (list (string-append #$polkit "/lib/polkit-1/polkitd"))))
-         (stop #~(make-kill-destructor)))))
-
 (define polkit-service-type
   ;; TODO: Make it extensible so it can collect policy files from other
   ;; services.
@@ -450,9 +406,7 @@ site} for more information."
                        (service-extension pam-root-service-type
                                           (const %polkit-pam-services))
                        (service-extension dbus-root-service-type
-                                          list)
-                       (service-extension dmd-root-service-type
-                                          polkit-dmd-service)))))
+                                          list)))))
 
 (define* (polkit-service #:key (polkit polkit))
   "Return a service that runs the @command{polkit} privilege management
@@ -603,6 +557,8 @@ the system if the user is logged in locally."
 
 (define (elogind-dmd-service config)
   "Return a dmd service for elogind, using @var{config}."
+  ;; TODO: We could probably rely on service activation but the '.service'
+  ;; file currently contains an erroneous 'Exec' line.
   (let ((config-file (elogind-configuration-file config))
         (elogind     (elogind-package config)))
     (list (dmd-service