gnu: Adjust formatting as recommended by 'guix lint'.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
index b392399..4bd9d9c 100644 (file)
@@ -10,6 +10,7 @@
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages calendar)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages enchant)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages polkit)
@@ -60,6 +65,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
@@ -69,6 +75,7 @@
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages geeqie)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages qt)  ; for libxkbcommon
   #:use-module (gnu packages compression)
@@ -86,6 +93,7 @@
   #:use-module (gnu packages video)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages readline)
   #:use-module (srfi srfi-1))
 
 (define-public brasero
              (sha256
               (base32
                "09vi2hyhl0bz7imv3ky6h7x5m3d546n968wcghydwrkvwm9ylpls"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list
                           (string-append "--with-girdir="
@@ -162,7 +170,7 @@ commonly used macros.")
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
-    (version "3.16.0")
+    (version "3.18.1")
     (source
      (origin
       (method url-fetch)
@@ -171,18 +179,21 @@ commonly used macros.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "05lvik5cdh51xqd332qingph09zdhiaa1kqy9k2sk1simz4pvf8m"))))
+        "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("itstool" ,itstool)
+     `(("gobject-introspection" ,gobject-introspection)
+       ("itstool" ,itstool)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
+    (propagated-inputs
+     ;; Required by gnome-desktop-3.0.pc.
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
@@ -236,7 +247,7 @@ and keep up to date translations of documentation.")
 (define-public gcr
   (package
     (name "gcr")
-    (version "3.16.0")
+    (version "3.18.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -244,7 +255,7 @@ and keep up to date translations of documentation.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0xfhi0w358lvca1jjx24x2gm67mif33dsnmi9cv5i0f83ks8vzpc"))))
+               "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does
@@ -263,7 +274,9 @@ and keep up to date translations of documentation.")
      `(("python" ,python-2) ;for tests
        ("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")
-       ("intltool" ,intltool)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("xsltproc" ,libxslt)))
     ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
     (propagated-inputs
      `(("p11-kit" ,p11-kit)
@@ -378,7 +391,7 @@ forgotten when the session ends.")
 (define-public evince
   (package
     (name "evince")
-    (version "3.16.1")
+    (version "3.18.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -386,7 +399,7 @@ forgotten when the session ends.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6"))))
+               "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--disable-nautilus")
@@ -442,7 +455,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)
@@ -451,7 +464,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)))
@@ -665,7 +678,7 @@ some form of information without getting in the user's way.")
 (define-public libpeas
   (package
     (name "libpeas")
-    (version "1.12.1")
+    (version "1.16.0")
     (source
      (origin
       (method url-fetch)
@@ -674,7 +687,7 @@ some form of information without getting in the user's way.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476"))))
+        "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh"))))
     (build-system gnu-build-system)
     (inputs
      `(("atk" ,atk)
@@ -784,7 +797,7 @@ XML/CSS rendering engine.")
 (define-public libgsf
   (package
     (name "libgsf")
-    (version "1.14.30")
+    (version "1.14.34")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -792,7 +805,7 @@ XML/CSS rendering engine.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0w2v1a9sxsymd1mcy4mwsz4r6za9iwq69rj86nb939p41d4c6j6b"))))
+                "0a5m1i5gp4m2z0cn2x1rrdm8wgrr04bzv65l8pgp6jipw13s9zph"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -817,7 +830,7 @@ dealing with different structured file formats.")
 (define-public librsvg
   (package
     (name "librsvg")
-    (version "2.40.9")
+    (version "2.40.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -825,7 +838,9 @@ dealing with different structured file formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0fplymmqqr28y24vcnb01szn62pfbqhk8p1ngns54x9m6mflr5hk"))))
+                "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1"))
+              (patches
+               (list (search-patch "librsvg-tests.patch")))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -915,23 +930,26 @@ functionality was designed to be as reusable and portable as possible.")
     (source (origin
               (method url-fetch)
               (uri (let ((upstream-name "ORBit2"))
-                    (string-append "mirror://gnome/sources/" upstream-name "/"
+                     (string-append "mirror://gnome/sources/" upstream-name "/"
                                     (version-major+minor version) "/"
                                     upstream-name "-" version ".tar.bz2")))
               (sha256
-               (base32 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
+               (base32
+                "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
     (build-system gnu-build-system)
     (arguments
-     ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
-     `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
-                         ;; ... which they then completly ignore !!
-                         #:phases
-                         (alist-cons-before
-                          'configure 'ignore-deprecations
-                          (lambda _
-                            (substitute* "linc2/src/Makefile.in"
-                              (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
-                          %standard-phases)))
+     `(#:configure-flags
+       ;; The programmer kindly gives us a hook to turn off deprecation
+       ;; warnings ...
+       '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
+       ;; ... which they then completly ignore !!
+       #:phases
+       (alist-cons-before
+        'configure 'ignore-deprecations
+        (lambda _
+          (substitute* "linc2/src/Makefile.in"
+            (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
+        %standard-phases)))
     (inputs `(("glib" ,glib)
               ("libidl" ,libidl)))
     (native-inputs
@@ -940,9 +958,9 @@ functionality was designed to be as reusable and portable as possible.")
     (synopsis "CORBA 2.4-compliant Object Request Broker")
     (description  "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
 featuring mature C, C++ and Python bindings.")
-    ;; Licence notice is unclear.  The Web page simply say "GPL" without giving a version.
-    ;; SOME of the code files have licence notices for GPLv2+
-    ;; The tarball contains files of the text of GPLv2 and LGPLv2
+    ;; Licence notice is unclear.  The Web page simply say "GPL" without giving
+    ;; a version.  SOME of the code files have licence notices for GPLv2+.
+    ;; The tarball contains files of the text of GPLv2 and LGPLv2.
     (license license:gpl2+)))
 
 
@@ -999,9 +1017,9 @@ use in GNOME applications, built on top of CORBA.")
     (version "3.2.6")
     (source (origin
               (method url-fetch)
-             (uri
-              (let ((upstream-name "GConf"))
-                (string-append "mirror://gnome/sources/" upstream-name "/"
+              (uri
+               (let ((upstream-name "GConf"))
+                 (string-append "mirror://gnome/sources/" upstream-name "/"
                                 (version-major+minor version) "/"
                                 upstream-name "-" version ".tar.xz")))
               (sha256
@@ -1200,6 +1218,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)
@@ -1223,11 +1243,11 @@ creating interactive structured graphics.")
                 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
     (build-system gnu-build-system)
     ;; Mentioned as Required in the .pc file
-    (propagated-inputs `(("libgnome" ,libgnome)
+    (propagated-inputs `(("libbonoboui" ,libbonoboui)
+                         ("libgnome" ,libgnome)
+                         ("libgnomecanvas" ,libgnomecanvas)
                          ("libgnome-keyring" ,libgnome-keyring)))
-    (inputs `(("libgnomecanvas" ,libgnomecanvas)
-              ("libbonoboui" ,libbonoboui)
-              ("libjpeg" ,libjpeg)
+    (inputs `(("libjpeg" ,libjpeg)
               ("popt" ,popt)
               ("libbonobo" ,libbonobo)
               ("libxml2" ,libxml2)
@@ -1257,9 +1277,10 @@ ported to GTK+.")
                 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
     (build-system gnu-build-system)
     (inputs
+     `(("python" ,python))) ;; needed for the optional libglade-convert program
+    (propagated-inputs
      `(("gtk+-2" ,gtk+-2)
-       ("libxml2" ,libxml2)
-       ("python" ,python))) ;; needed for the optional libglade-convert program
+       ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://developer.gnome.org/libglade")
@@ -1542,9 +1563,7 @@ engineering.")
 (define-public gnome-themes-standard
   (package
     (name "gnome-themes-standard")
-    ;; The version of this package should be the same as the version of
-    ;; gnome-desktop.
-    (version (package-version gnome-desktop))
+    (version "3.18.0")
     (source
      (origin
        (method url-fetch)
@@ -1553,7 +1572,7 @@ engineering.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "0kyrbfrgl6g6wm6zpllldz36fclvl8vwmn1snwk18kf7f6ncpsac"))))
+         "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6"))))
     (build-system gnu-build-system)
     (inputs
      `(("gtk+" ,gtk+)
@@ -1620,7 +1639,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 "/"
@@ -1628,14 +1647,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)
@@ -1766,7 +1787,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 "/"
@@ -1774,7 +1795,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
@@ -1866,7 +1894,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/"
@@ -1874,7 +1902,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)
@@ -1911,15 +1939,15 @@ library.")
 library.")
     (license license:lgpl2.0+)))
 
-(define-public librest
+(define-public rest
   (package
-    (name "librest")
+    (name "rest")
     (version "0.7.93")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/rest/"
-                                  (version-major+minor version)  "/"
-                                  "rest-" version ".tar.xz"))
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
               (sha256
                (base32
                 "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
@@ -1948,7 +1976,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/"
@@ -1956,18 +1984,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
@@ -1985,13 +2009,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)
@@ -2205,6 +2238,7 @@ keyboard shortcuts.")
        ("lcms" ,lcms)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
+       ("libgudev" ,libgudev)
        ("libusb" ,libusb)
        ("sqlite" ,sqlite)
        ("polkit" ,polkit)
@@ -2277,8 +2311,7 @@ permission from user.")
     (arguments
      `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't
        ;; work for the builder.  Punt.
-       #:tests? #f
-       ))
+       #:tests? #f))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
        ("gobject-introspection" ,gobject-introspection)
@@ -2301,14 +2334,14 @@ faster results and to avoid unnecessary server load.")
 (define-public upower
   (package
     (name "upower")
-    (version "0.99.2")
+    (version "0.99.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://upower.freedesktop.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0vwlh20jmaf01m38kfn8yx2869a3clmkzlycrj99rf4nvwx4bp79"))
+                "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9"))
               (patches (list (search-patch "upower-builddir.patch")))))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -2331,7 +2364,8 @@ faster results and to avoid unnecessary server load.")
                        (substitute* "src/linux/integration-test"
                          (("/usr/bin/python3") (which "python3"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
        ("python" ,python)))
     (inputs
@@ -2350,7 +2384,7 @@ service via the system message bus.")
 (define-public libgweather
   (package
     (name "libgweather")
-    (version "3.16.0")
+    (version "3.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -2358,22 +2392,26 @@ service via the system message bus.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x1z6wv7hdw2ivlkifcbd940zyrnvqvc4zh2drgvd2r6jmd7bjza"))))
+                "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll"))))
     (build-system gnu-build-system)
     (arguments
-     `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't
-       ;; work for the builder.  Punt.
-       #:tests? #f
-       #:configure-flags
-       `(;; No introspection for now, as it wants to install to
-         ;; gobject-introspection's own directory and I don't know how to easily
-         ;; override this.
-         "--enable-introspection=no"
-         ,(string-append "--with-zoneinfo-dir="
-                            (assoc-ref %build-inputs "tzdata")
-                            "/share/zoneinfo"))))
+     `(#:configure-flags
+       `(,(string-append "--with-zoneinfo-dir="
+                         (assoc-ref %build-inputs "tzdata")
+                         "/share/zoneinfo"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+          'check 'pre-check
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "data/check-timezones.sh"
+              (("/usr/share/zoneinfo/zone.tab")
+               (string-append (assoc-ref inputs "tzdata")
+                              "/share/zoneinfo/zone.tab")))
+            #t)))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (propagated-inputs
@@ -2550,7 +2588,7 @@ throughout GNOME for API documentation).")
 (define-public cogl
   (package
     (name "cogl")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -2559,7 +2597,7 @@ throughout GNOME for API documentation).")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0aqrj7gc0x7v536vdycgn2i23fj3nx3qwdd3mwgx7rr9b14kb7kj"))))
+         "14daxqrid5039xmq9yl4pk86awng1n9zgl6ysblhc4gw2ifzp7b8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")     ; for glib-mkenums
@@ -2617,7 +2655,7 @@ without stepping on each others toes.")
 (define-public clutter
   (package
     (name "clutter")
-    (version "1.22.2")
+    (version "1.24.2")
     (source
      (origin
        (method url-fetch)
@@ -2626,8 +2664,10 @@ without stepping on each others toes.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
+         "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn"))))
     (build-system gnu-build-system)
+    (outputs '("out"
+               "doc"))                            ;9 MiB of gtk-doc HTML pages
     (native-inputs
      `(("glib:bin" ,glib "bin")     ; for glib-genmarshal
        ("gobject-introspection" ,gobject-introspection)
@@ -2648,7 +2688,12 @@ without stepping on each others toes.")
      `(("libxkbcommon" ,libxkbcommon)
        ("udev" ,eudev)))
     (arguments
-     `(#:configure-flags '("--enable-x11-backend=yes")
+     `(#:configure-flags (list "--enable-x11-backend=yes"
+
+                               ;; This produces share/doc/{clutter,cally}.
+                               (string-append "--with-html-dir="
+                                              (assoc-ref %outputs "doc")
+                                              "/share/doc"))
        ;; XXX FIXME: Get test suite working.  It would probably fail in the
        ;; same way the cogl tests fail, since clutter is based on cogl.
        #:tests? #f))
@@ -2719,6 +2764,38 @@ implements the ClutterGstPlayer interface using playbin.  Clutter is an Open
 GL based interactive canvas library.")
     (license license:lgpl2.0+)))
 
+(define-public libchamplain
+  (package
+    (name "libchamplain")
+    (version "0.12.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "019b8scnx7d3wdylmpk9ihzh06w25b63x9cn8nhj6kjx82rcwlxz"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("libsoup" ,libsoup)
+       ("sqlite" ,sqlite)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("glib:bin" ,glib "bin")                   ;glib-mkenums, etc.
+       ("cairo" ,cairo)
+       ("gtk+3" ,gtk+)
+       ("glib" ,glib)))
+    (home-page "http://projects.gnome.org/libchamplain/")
+    (synopsis "C library providing a ClutterActor to display maps")
+    (description
+     "libchamplain is a C library providing a ClutterActor to display maps.
+It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python
+and Perl bindings are also available.  It supports numerous free map sources
+such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
+    (license license:lgpl2.1+)))
+
 (define-public gom
   (package
     (name "gom")
@@ -3218,7 +3295,7 @@ DAV, and others.")
                       (and (zero? (system* "gtkdocize"))
                            (zero? (system* "autoreconf" "-vif"))))))))
     (home-page "https://github/hughsie/libgusb")
-    (synopsis "GLib binding for libusb1")
+    (synopsis "GLib binding for libusb1")
     (description
      "GUsb is a GObject wrapper for libusb1 that makes it easy to do
 asynchronous control, bulk and interrupt transfers with proper cancellation
@@ -3370,3 +3447,628 @@ principles are simplicity and standards compliance.")
      "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
 of running programs and invoke methods on those interfaces.")
     (license license:gpl2+)))
+
+(define-public yelp-xsl
+  (package
+    (name "yelp-xsl")
+    (version "3.16.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0jhpni4mmfvj3xf57rjm61nc8d0x66hz9gd1ywws5lh39g6fx59j"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("xmllint" ,libxml2)))
+    (home-page "https://wiki.gnome.org/Apps/Yelp")
+    (synopsis "XSL stylesheets for Yelp")
+    (description
+     "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
+to format Docbook and Mallard documents.")
+    (license license:gpl2+)))
+
+(define-public yelp
+  (package
+    (name "yelp")
+    (version "3.16.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1jk7aad1srykhgc3x0hd3q3dnlshmy1ak00alwjzaasxvy6hp0b0"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (inputs
+     `(("libxslt" ,libxslt)
+       ("sqlite" ,sqlite)
+       ("webkitgtk" ,webkitgtk-2.4)
+       ("yelp-xsl" ,yelp-xsl)
+       ;; XXX: need by libwebkitgtk-3.0.la.
+       ("icu4c" ,(@ (gnu packages icu4c) icu4c))))
+    (home-page "https://wiki.gnome.org/Apps/Yelp")
+    (synopsis "GNOME help browser")
+    (description
+     "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,
+man, info, and HTML documents.  It can locate documents according to the
+freedesktop.org help system specification.")
+    (license license:gpl2+)))
+
+(define-public yelp-tools
+  (package
+    (name "yelp-tools")
+    (version "3.16.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "177qzvj5w019isdp41qxqcys2kc4sq2x6dqhqn6l9ipib8a6rxml"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
+     `(("itstool" ,itstool)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("yelp-xsl" ,yelp-xsl)))
+    (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
+    (synopsis "Yelp documentation tools")
+    (description
+     "Yelp-tools is a collection of scripts and build utilities to help create,
+manage, and publish documentation for Yelp and the web.  Most of the heavy
+lifting is done by packages like yelp-xsl and itstool.  This package just
+wraps things up in a developer-friendly way.")
+    (license license:gpl2+)))
+
+(define-public libgee
+  (package
+    (name "libgee")
+    (version "0.18.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "16a34js81w9m2bw4qd8csm4pcgr3zq5z87867j4b8wfh6zwrxnaa"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-introspection-install-dir
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (substitute* "gee/Makefile.in"
+                (("@INTROSPECTION_GIRDIR@")
+                 (string-append out "/share/gir-1.0/"))
+                (("@INTROSPECTION_TYPELIBDIR@")
+                 (string-append out "/lib/girepository-1.0/")))))))))
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)))
+    (home-page "https://wiki.gnome.org/Projects/Libgee")
+    (synopsis "GObject collection library")
+    (description
+     "Libgee is a utility library providing GObject-based interfaces and
+classes for commonly used data structures.")
+    (license license:lgpl2.1+)))
+
+(define-public gexiv2
+  (package
+    (name "gexiv2")
+    (version "0.10.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "121r5lv6l82pjr0ycdf2b01mdwy7sxwca2r068zrzylpc6bgn31r"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; Listed in "Requires" section of gexiv2.pc
+     `(("exiv2" ,exiv2)))
+    (inputs
+     `(("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)))
+    (home-page "https://wiki.gnome.org/Projects/gexiv2")
+    (synopsis "GObject wrapper around the Exiv2 photo metadata library")
+    (description
+     "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It
+allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
+metadata in photo and video files of various formats.")
+    (license license:gpl2+)))
+
+(define-public shotwell
+  (package
+    (name "shotwell")
+    (version "0.22.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0cgqaaikrb10plhf6zxbgqy32zqpiwyi9dpx3g8yr261q72r5c81"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f ;no "check" target
+       #:make-flags '("CC=gcc")
+       #:configure-flags '("--disable-gsettings-convert-install")
+       #:out-of-source? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gettext" ,gnu-gettext)
+       ("m4" ,m4)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("vala" ,vala)
+       ("which" ,which)
+       ("gnome-doc-utils" ,gnome-doc-utils)
+       ;; FIXME: I only added python2-libxml2 because xml2po needs it at
+       ;; runtime.  It should be propagated.
+       ("python2-libxml2" ,python2-libxml2)
+       ("python2" ,python-2)))
+    (inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("libgee" ,libgee)
+       ("gexiv2" ,gexiv2)
+       ("libraw" ,libraw)
+       ("json-glib" ,json-glib)
+       ("rest" ,rest)
+       ("webkitgtk" ,webkitgtk-2.4)
+       ("sqlite" ,sqlite)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
+       ("gtk+" ,gtk+)
+       ("libgudev" ,libgudev)
+       ("libgphoto2" ,libgphoto2)))
+    (home-page "https://wiki.gnome.org/Apps/Shotwell")
+    (synopsis "Photo manager for GNOME 3")
+    (description
+     "Shotwell is a digital photo manager designed for the GNOME desktop
+environment.  It allows you to import photos from disk or camera, organize
+them by keywords and events, view them in full-window or fullscreen mode, and
+share them with others via social networking and more.")
+    (license license:lgpl2.1+)))
+
+(define-public file-roller
+  (package
+    (name "file-roller")
+    (version "3.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "04sg4yzz4c3hzgxhbgx2dc36lq5hjrnrmal2q0amfvhl0jcvp2fq"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    ;; TODO: Add libnautilus.
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("json-glib" ,json-glib)
+       ("libarchive" ,libarchive)
+       ("libnotify" ,libnotify)
+       ("nettle" ,nettle)
+       ("itstool" ,itstool)
+       ("libxml2" ,libxml2)))
+    (synopsis "Graphical archive manager for GNOME")
+    (description "File Roller is an archive manager for the GNOME desktop
+environment that allows users to view, unpack, and create compressed archives
+such as gzip tarballs.")
+    (home-page "http://fileroller.sourceforge.net/")
+    (license license:gpl2+)))
+
+(define-public gnome-session
+  (package
+    (name "gnome-session")
+    (version "3.18.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("gnome-desktop" ,gnome-desktop)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("libsm" ,libsm)
+       ("libxcomposite" ,libxcomposite)
+       ("libxtst" ,libxtst)
+       ("mesa" ,mesa)
+       ("upower" ,upower)
+       ("xtrans" ,xtrans)))
+    (synopsis "Session manager for GNOME")
+    (description
+     "This package contains the GNOME session manager, as well as a
+configuration program to choose applications starting on login.")
+    (home-page "https://wiki.gnome.org/Projects/SessionManagement")
+    (license license:gpl2+)))
+
+(define-public gjs
+  (package
+    (name "gjs")
+    (version "1.44.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "106fgpr4y99sj68l72pnfa2za11ps4bn6p9z28fr79j7mpv61jc8"))
+              (modules '((guix build utils)))
+              (snippet '(substitute* "test/run-with-dbus"
+                          (("/bin/rm") "rm")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before
+          'check 'pre-check
+          (lambda _
+            ;; For the missing /etc/machine-id.
+            (setenv "DBUS_FATAL_WARNINGS" "0")
+            #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)
+       ;; For testing
+       ("dbus-launch" ,dbus)
+       ("uuidgen" ,util-linux)
+       ("xvfb" ,xorg-server)))
+    (propagated-inputs
+     ;; These are all in the Requires.private field of gjs-1.0.pc.
+     `(("gobject-introspection" ,gobject-introspection)
+       ("mozjs" ,mozjs-24)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("readline" ,readline)))
+    (synopsis "Javascript bindings for GNOME")
+    (home-page "http://live.gnome.org/Gjs")
+    (description
+     "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey
+javascript engine and the GObject introspection framework.")
+    (license license:gpl2+)))
+
+(define-public gedit
+  (package
+    (name "gedit")
+    (version "3.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1kb3hglcppap7fdy7i7w2wk746kfz77jzs2lq6vrna8a3fqaxmas"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after
+          'install 'wrap-gedit
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((out               (assoc-ref outputs "out"))
+                  (gtksourceview     (assoc-ref inputs "gtksourceview"))
+                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+              (wrap-program (string-append out "/bin/gedit")
+                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                ;; For language-specs.
+                `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
+                                                              "/share")))))
+            #t)))))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool", itstool)
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("libpeas" ,libpeas)
+       ("libxml2" ,libxml2)
+       ("enchant" ,enchant)
+       ("iso-codes" ,iso-codes)
+       ("python-pygobject" ,python-pygobject)
+       ("python" ,python)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libx11" ,libx11)
+       ("vala" ,vala)
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("libsoup" ,libsoup)
+       ("gnome-desktop" ,gnome-desktop)))
+    (home-page "https://wiki.gnome.org/Apps/Gedit")
+    (synopsis "GNOME text editor")
+    (description "While aiming at simplicity and ease of use, gedit is a
+powerful general purpose text editor.")
+    (license license:gpl2+)))
+
+(define-public zenity
+  (package
+    (name "zenity")
+    (version "3.18.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gnu-gettext)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libnotify" ,libnotify)
+       ("webkitgtk" ,webkitgtk)))
+    (synopsis "Display graphical dialog boxes from shell scripts")
+    (home-page "http://www.gnome.org")
+    (description
+     "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
+to display dialog boxes from the commandline and shell scripts.")
+    (license license:lgpl2.0+)))
+
+(define-public mutter
+  (package
+    (name "mutter")
+    (version "3.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       ;; XXX: build fails with [-Werror]:
+       ;;    backends/meta-cursor-renderer.c:112:5: error:
+       ;;      implicit declaration of function ?roundf?
+       '("--enable-compile-warnings=minimum")))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; libmutter.pc refers to all these.
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("clutter" ,clutter)))
+    (inputs
+     `(("gnome-desktop" ,gnome-desktop)
+       ("libcanberra-gtk" ,libcanberra)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxkbfile" ,libxkbfile)
+       ("mesa-headers" ,mesa-headers)
+       ("startup-notification" ,startup-notification)
+       ("upower-glib" ,upower)
+       ("xkeyboard-config" ,xkeyboard-config)
+       ("zenity" ,zenity)))
+    (synopsis "Window and compositing manager")
+    (home-page "http://www.gnome.org")
+    (description
+     "Mutter is a window and compositing manager that displays and manages your
+desktop via OpenGL.  Mutter combines a sophisticated display engine using the
+Clutter toolkit with solid window-management logic inherited from the Metacity
+window manager.")
+    (license license:gpl2+)))
+
+(define-public gnome-online-accounts
+  (package
+    (name "gnome-online-accounts")
+    (version "3.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
+    (propagated-inputs
+     `(("glib" ,glib)           ; required by goa-1.0.pc
+       ("gtk+" ,gtk+)))         ; required by goa-backend-1.0.pc
+    (inputs
+     `(("docbook-xsl" ,docbook-xsl)
+       ("json-glib" ,json-glib)
+       ("libsecret" ,libsecret)
+       ("rest" ,rest)
+       ("telepathy-glib" ,telepathy-glib)
+       ("webkitgtk" ,webkitgtk)))
+    (synopsis "Single sign-on framework for GNOME")
+    (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
+    (description
+     "GNOME Online Accounts provides interfaces so that applications and
+libraries in GNOME can access the user's online accounts.  It has providers for
+Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
+Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
+    (license license:lgpl2.0+)))
+
+(define-public evolution-data-server
+  (package
+    (name "evolution-data-server")
+    (version "3.18.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(;; XXX: fails with:
+       ;;   /Fixture/Calendar0: cleaning up pid xxxx
+       ;;   t status: 139)
+       #:tests? #f
+       #:configure-flags
+       (let ((nss  (assoc-ref %build-inputs "nss"))
+             (nspr (assoc-ref %build-inputs "nspr")))
+         (list "--disable-uoa"    ; disable Ubuntu Online Accounts support
+               "--disable-google" ; disable Google Contacts support
+               (string-append "--with-nspr-includes=" nspr "/include/nspr")
+               (string-append "--with-nss-includes=" nss "/include/nss")
+               (string-append "--with-nss-libs=" nss "/lib/nss")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+          (lambda _
+            (substitute* "tests/test-server-utils/e-test-server-utils.c"
+              (("/bin/rm") (which "rm")))
+            #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("gperf" ,gperf)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (propagated-inputs
+     ;; These are all in the Requires field of .pc files.
+     `(("gtk+" ,gtk+)
+       ("libical" ,libical)
+       ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
+       ("nss" ,nss)
+       ("sqlite" ,sqlite)))
+    (inputs
+     `(("bdb" ,bdb)
+       ("gcr" ,gcr)
+       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("libgweather" ,libgweather)))
+    (synopsis "Store address books and calendars")
+    (home-page "https://wiki.gnome.org/Apps/Evolution")
+    (description
+     "This package provides a unified backend for programs that work with
+contacts, tasks, and calendar information.  It was originally developed for
+Evolution (hence the name), but is now used by other packages as well.")
+    (license license:lgpl2.0)))
+
+(define-public caribou
+  (package
+    (name "caribou")
+    (version "0.4.19")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before
+          'build 'pre-build
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              ;; Use absolute shared library path in Caribou-1.0.typelib.
+              (substitute* "libcaribou/Makefile"
+                (("--shared-library=libcaribou.so")
+                 (string-append "--shared-library="
+                                out "/lib/libcaribou.so")))
+              #t)))
+         (add-after 'install 'wrap-programs
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (python-path (getenv "PYTHONPATH"))
+                   (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+              (for-each
+               (lambda (prog)
+                 (wrap-program prog
+                   `("PYTHONPATH"      ":" prefix (,python-path))
+                   `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+               (list (string-append out "/bin/caribou-preferences")
+                     (string-append out "/libexec/antler-keyboard"))))
+            #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2) ; incompatible with Python 3 (print syntax)
+       ("vala" ,vala)
+       ("xsltproc" ,libxslt)))
+    (propagated-inputs
+     ;; caribou-1.0.pc refers to all these.
+     `(("libgee" ,libgee)
+       ("libxklavier" ,libxklavier)
+       ("libxtst" ,libxtst)
+       ("gtk+" ,gtk+)))
+    (inputs
+     `(("clutter" ,clutter)
+       ("dconf" ,dconf)
+       ("gtk+-2" ,gtk+-2)
+       ("python-pygobject" ,python2-pygobject)))
+    (synopsis "Text entry and UI navigation application")
+    (home-page "https://wiki.gnome.org/Projects/Caribou")
+    (description
+     "Caribou is an input assistive technology intended for switch and pointer
+users.")
+    (license license:lgpl2.1)))