doc: "filesystem" -> "file system"
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
index 2d7c206..19e982d 100644 (file)
@@ -2,20 +2,27 @@
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
+;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +65,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -79,7 +87,6 @@
   #: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 networking)
   #:use-module (gnu packages password-utils)
   #: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)
-  #:use-module (gnu packages texlive)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
@@ -163,6 +169,55 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public dia
+  ;; This version from GNOME's repository includes fixes for compiling with
+  ;; recent versions of the build tools.  The latest activity on the
+  ;; pre-GNOME version has been in 2014, while GNOME has continued applying
+  ;; fixes in 2016.
+  (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
+    (package
+      (name "dia")
+      (version (string-append "0.97.2-" (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.gnome.org/browse/dia")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("glib" ,glib "bin")
+         ("pango" ,pango)
+         ("gdk-pixbuf" ,gdk-pixbuf)
+         ("gtk+" ,gtk+-2)
+         ("libxml2" ,libxml2)
+         ("freetype" ,freetype)
+         ("libart-lgpl" ,libart-lgpl)))
+      (native-inputs
+       `(("intltool" ,intltool)
+         ("pkg-config" ,pkg-config)
+         ("automake" ,automake)
+         ("autoconf" ,autoconf)
+         ("libtool" ,libtool)
+         ("perl" ,perl)
+         ("python-wrapper" ,python-wrapper)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'run-autogen
+             (lambda _
+               (system* "sh" "autogen.sh"))))))
+      (home-page "https://wiki.gnome.org/Apps/Dia")
+      (synopsis "Diagram creation for GNOME")
+      (description "Dia can be used to draw different types of diagrams, and
+includes support for UML static structure diagrams (class diagrams), entity
+relationship modeling, and network diagrams.  The program supports various file
+formats like PNG, SVG, PDF and EPS.")
+      (license license:gpl2+))))
+
 (define-public gnome-common
   (package
     (name "gnome-common")
@@ -683,7 +738,8 @@ database is translated at Transifex.")
        ("libpng" ,libpng)))
     (native-inputs
       `(("pkg-config" ,pkg-config)
-        ("glib" ,glib "bin")))
+        ("glib" ,glib "bin")
+        ("gobject-introspection" ,gobject-introspection)))
     (home-page "https://developer-next.gnome.org/libnotify/")
     (synopsis
      "GNOME desktop notification library")
@@ -709,11 +765,11 @@ some form of information without getting in the user's way.")
         "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("atk" ,atk)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)))
+     `(("gtk+" ,gtk+)
+       ("glade" ,glade3)
+       ("libxml2" ,libxml2) ; XXX: required by gladeui-2.0.pc
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib:bin" ,glib "bin")
@@ -735,7 +791,7 @@ the API.")
     (version "1.2.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/project/gtkglext/gtkglext/"
+              (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
                                   version "/gtkglext-" version ".tar.gz"))
               (sha256
                (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
@@ -1533,7 +1589,7 @@ Hints specification (EWMH).")
 (define-public gnumeric
   (package
     (name "gnumeric")
-    (version "1.12.28")
+    (version "1.12.31")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1541,7 +1597,7 @@ Hints specification (EWMH).")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1fsdp7r6fhc0m3fb4ly4xwh83v3hp2zrv9d0713g4lcy709svm02"))))
+                "1rvadlgikklwb6rccqc3rlhqv3m9qx27rchm7znxr062fn7fgb68"))))
     (build-system gnu-build-system)
     (arguments
      `(;; The gnumeric developers don't worry much about failing tests.
@@ -1676,7 +1732,9 @@ passwords in the GNOME keyring.")
                        (setenv "CC" "gcc")
                        ;; For missing '/etc/machine-id'.
                        (setenv "DBUS_FATAL_WARNINGS" "0")
-                       #t)))))
+                       #t)))
+       ;; Build the Vala API generator
+       #:configure-flags '("--enable-vapigen")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("flex" ,flex)
@@ -1735,6 +1793,39 @@ gnome-terminal, but can also be used to embed a console/terminal in games,
 editors, IDEs, etc.")
     (license license:lgpl2.1+)))
 
+(define-public vte-ng
+  (package
+    (inherit vte)
+    (name "vte-ng")
+    (version "0.44.1.b")
+    (native-inputs
+     `(("gtk-doc" ,gtk-doc)
+       ("gperf" ,gperf)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ,@(package-native-inputs vte)))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/thestinger/"
+                                  name "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1mhz4i1qkdlrs49vgm7nsrb60lry9v6wsgwsmji7fln1nyrp1pag"))))
+    (arguments
+      `(#:configure-flags '("CXXFLAGS=-Wformat=0")
+        #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'bootstrap
+                    (lambda _
+                      (setenv "NOCONFIGURE" "true")
+                      (zero? (system* "sh" "autogen.sh")))))))
+  (synopsis "Enhanced VTE terminal widget")
+  (description
+   "VTE is a library (libvte) implementing a terminal emulator widget for
+GTK+, this fork provides additional functions exposed for keyboard text
+selection and URL hints.")))
+
 ;; provides vte 2.90, required for some terminal emulators
 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
@@ -1768,7 +1859,10 @@ editors, IDEs, etc.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))))
+                "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
+              (patches (search-patches
+                         "vte-CVE-2012-2738-pt1.patch"
+                         "vte-CVE-2012-2738-pt2.patch"))))
     (arguments
      '(#:configure-flags '("--disable-python")))
     (native-inputs
@@ -2329,7 +2423,7 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.4.3")
+    (version "2.4.4")
     (source
      (origin
        (method url-fetch)
@@ -2338,7 +2432,7 @@ output devices.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd"))
+         "0p1ibjf5vzjsahw5xif2si3lj6a00sxhll008jk7w1hj1jfznhww"))
        (patches (search-patches "geoclue-config.patch"))))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -2860,7 +2954,11 @@ GL based interactive canvas library.")
                (base32
                 "1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (arguments '(#:configure-flags '("--enable-vala")))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (propagated-inputs
      `(("libsoup" ,libsoup)
        ("sqlite" ,sqlite)
@@ -2882,7 +2980,7 @@ such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
 (define-public gom
   (package
     (name "gom")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
@@ -2891,7 +2989,7 @@ such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1x9qgviszzh59d009jd13k0pdxzv9w4dmwp3wszbsk3qxr3fnlbr"))))
+         "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -2911,6 +3009,42 @@ write applications that need to store structured data as well as make complex
 queries upon that data.")
     (license license:lgpl2.1+)))
 
+(define-public libgames-support
+  (package
+    (name "libgames-support")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0rms2ksiv7j9944km7r87q22nh05si1fisn5xm3z4zy5vpcfi5mh"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; tests require a writable HOME.
+             (setenv "HOME" (getcwd))
+             #t)))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (propagated-inputs
+     ;; Required by libgames-support-1.0.pc
+     `(("gtk+" ,gtk+)
+       ("libgee" ,libgee)))
+    (home-page "https://www.gnome.org/")
+    (synopsis "Useful functionality shared among GNOME games")
+    (description
+     "libgames-support is a small library intended for internal use by
+GNOME Games, but it may be used by others.")
+    (license license:lgpl3+)))
+
 (define-public gnome-klotski
   (package
     (name "gnome-klotski")
@@ -2932,6 +3066,7 @@ queries upon that data.")
        ("xmllint" ,libxml2)))
     (inputs
      `(("gtk+" ,gtk+)
+       ("libgames-support" ,libgames-support)
        ("librsvg" ,librsvg)))
     (home-page "https://wiki.gnome.org/Apps/Klotski")
     (synopsis "Sliding block puzzles")
@@ -2945,7 +3080,7 @@ as possible!")
 (define-public grilo
   (package
     (name "grilo")
-    (version "0.2.15")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
@@ -2954,7 +3089,7 @@ as possible!")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "05b8sqfmywg45b9frya6xmw5l3c8vf5a1nhy51nyfs0a4n1japbg"))))
+         "0q5wcvnckpfks48hy0gvlfdmvqm67vnblm3912rssmkgc1ysil8z"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-mkenums and glib-genmarshal
@@ -2996,7 +3131,7 @@ for application developers.")
 (define-public grilo-plugins
   (package
     (name "grilo-plugins")
-    (version "0.2.17")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -3005,7 +3140,7 @@ for application developers.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "109pf4sz320jiqs1nzszpj2flkwrgwfsm64kza24mxnxih4njxik"))))
+         "1akd7q6pqnkcnayrdfjb0qx5w5yyl06kxzwhqp2gxm4y1b208pb0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")     ; for glib-mkenums and glib-genmarshal
@@ -3014,6 +3149,7 @@ for application developers.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("grilo" ,grilo)
+       ("nettle" ,nettle) ; XXX: required by libgrlpls-0.3.la
        ("glib" ,glib)
        ("libxml2" ,libxml2)
        ("sqlite" ,sqlite)
@@ -3057,7 +3193,8 @@ for application developers.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "09swnhp46cyy2svqx02fzy555pjgc61lyjw56v9rz1mfc41lh8kg"))))
+         "09swnhp46cyy2svqx02fzy555pjgc61lyjw56v9rz1mfc41lh8kg"))
+       (patches (search-patches "totem-debug-format-fix.patch"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -3127,7 +3264,7 @@ which can read a large number of file formats.")
 (define-public rhythmbox
  (package
    (name "rhythmbox")
-   (version "3.2.1")
+   (version "3.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3135,7 +3272,7 @@ which can read a large number of file formats.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz"))))
+              "1347747m90aiz47wny1f8rdk5195qf2ph0554c6y91711sm951gg"))))
    (build-system glib-or-gtk-build-system)
    (arguments
     `(#:configure-flags
@@ -3153,11 +3290,13 @@ which can read a large number of file formats.")
            (let ((out               (assoc-ref outputs "out"))
                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
                  (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
-                 (grl-plugin-path   (getenv "GRL_PLUGIN_PATH")))
+                 (grl-plugin-path   (getenv "GRL_PLUGIN_PATH"))
+                 (python-path       (getenv "PYTHONPATH")))
              (wrap-program (string-append out "/bin/rhythmbox")
                `("GI_TYPELIB_PATH"        ":" prefix (,gi-typelib-path))
                `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
-               `("GRL_PLUGIN_PATH"        ":" prefix (,grl-plugin-path))))
+               `("GRL_PLUGIN_PATH"        ":" prefix (,grl-plugin-path))
+               `("PYTHONPATH"             ":" prefix (,python-path))))
            #t)))))
    (propagated-inputs
     `(("dconf" ,dconf)))
@@ -3203,7 +3342,6 @@ which can read a large number of file formats.")
       ;; TODO:
       ;;  * libgpod
       ;;  * mx
-      ;;  * webkit
       ("brasero" ,brasero)))
    (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
    (synopsis "Music player for GNOME")
@@ -3292,7 +3430,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
 (define-public gvfs
   (package
     (name "gvfs")
-    (version "1.28.1")
+    (version "1.28.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3300,7 +3438,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "16bry61hg681bwb0pih86cjayzvc5f89ip5xd8fydcy16nnfbksf"))))
+                "05xxy0ids310qy24vmkyl3hc6mq05p39aa8mkr5fzxkhhnv4r325"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f)) ; XXX: requiring `pidof'
@@ -3331,9 +3469,9 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("nettle" ,nettle) ; XXX: required by libarchive.pc
        ("udisks" ,udisks)))
     (home-page "https://wiki.gnome.org/gvfs/")
-    (synopsis "Userspace virtual filesystem for GIO")
+    (synopsis "Userspace virtual file system for GIO")
     (description
-     "GVFS is a userspace virtual filesystem designed to work with the I/O
+     "GVFS is a userspace virtual file system designed to work with the I/O
 abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support
 to all applications using the GIO API.  It also supports exposing the GVFS
 mounts to non-GIO applications using FUSE.
@@ -3390,7 +3528,7 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.19.91")
+    (version "3.21.90")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://launchpad.net/simple-scan/"
@@ -3399,7 +3537,7 @@ USB transfers with your high-level application or system daemon.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1c5glf5vxgld41w4jxfqcv17q76qnh43fawpv33hncgh8d283xkf"))))
+                "0dmsvq3vviky6851rqiik898r84c7744i7md672ckic3mdv21ap3"))))
     (build-system glib-or-gtk-build-system)
     (inputs
      `(("gtk" ,gtk+)
@@ -3407,10 +3545,9 @@ USB transfers with your high-level application or system daemon.")
        ("cairo" ,cairo)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("gusb" ,gusb)
-       ("libgudev" ,libgudev)
        ("libsane" ,sane-backends)))
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("gettext" ,gnu-gettext)
        ("itstool" ,itstool)
        ("colord" ,colord)
        ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
@@ -3444,7 +3581,7 @@ work and the interface is well tested.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "3.20.1")
+    (version "3.20.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3452,7 +3589,7 @@ work and the interface is well tested.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ry9z6d51gjbv5n8kspwdyfrdai2hrin2ixdicmyiq6xbryzcwbi"))))
+                "18i4nk4k4q2yaj4zw0gbyp7ja2g67pm05p56bbras52cnjyy37ad"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      ;; FIXME: tests run under Xvfb, but fail with:
@@ -3592,7 +3729,8 @@ to format Docbook and Mallard documents.")
     (propagated-inputs
      `(("dconf" ,dconf)))
     (inputs
-     `(("libxslt" ,libxslt)
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libxslt" ,libxslt)
        ("sqlite" ,sqlite)
        ("webkitgtk" ,webkitgtk)
        ("yelp-xsl" ,yelp-xsl)))
@@ -3675,7 +3813,7 @@ classes for commonly used data structures.")
 (define-public gexiv2
   (package
     (name "gexiv2")
-    (version "0.10.3")
+    (version "0.10.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3683,7 +3821,7 @@ classes for commonly used data structures.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "121r5lv6l82pjr0ycdf2b01mdwy7sxwca2r068zrzylpc6bgn31r"))))
+                "190www3b61spfgwx42jw8h5hsz2996jcxky48k63468avjpk33dd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib" ,glib "bin")
@@ -3705,7 +3843,7 @@ metadata in photo and video files of various formats.")
 (define-public shotwell
   (package
     (name "shotwell")
-    (version "0.22.1")
+    (version "0.23.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3713,39 +3851,28 @@ metadata in photo and video files of various formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1a9lx9a7p6fgaf838xlw98f73xxyxmg6jmm29830lsl8ynbhq9bk"))))
+                "0fgs1rgvkmy79bmpxrsvm5w8rvqml4l1vnwma0xqx5zzm02p8a07"))))
     (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))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("itstool" ,itstool)
        ("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)))
+       ("itstool" ,itstool)
+       ("vala" ,vala)))
     (inputs
-     `(("gstreamer" ,gstreamer)
+     `(("glib:bin" ,glib "bin")
+       ("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)
+       ("webkitgtk" ,webkitgtk)
        ("sqlite" ,sqlite)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
-       ("gtk+" ,gtk+)
        ("libgudev" ,libgudev)
        ("libgphoto2" ,libgphoto2)))
     (home-page "https://wiki.gnome.org/Apps/Shotwell")
@@ -3760,7 +3887,7 @@ share them with others via social networking and more.")
 (define-public file-roller
   (package
     (name "file-roller")
-    (version "3.20.1")
+    (version "3.20.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3768,7 +3895,7 @@ share them with others via social networking and more.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0cx3d8mp0pxz9wcsb2ph7g1zy22m8z5x0a4f5vgfzl0jmrcxpcy8"))))
+                "1sa46vjx78d670m6bikpibgz39a5zb6ri8yjmj632lmxqvj2sp3b"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -3944,9 +4071,12 @@ javascript engine and the GObject introspection framework.")
           (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")))
+                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                  (python-path       (getenv "PYTHONPATH")))
               (wrap-program (string-append out "/bin/gedit")
+                ;; For plugins.
                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                `("PYTHONPATH" ":" prefix (,python-path))
                 ;; For language-specs.
                 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
                                                               "/share")))))
@@ -4118,6 +4248,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
          (list "--disable-uoa"    ; disable Ubuntu Online Accounts support
                "--disable-google" ; disable Google Contacts support
                "--disable-google-auth" ; disable Google authentication
+               "--enable-vala-bindings"
                (string-append "--with-nspr-includes=" nspr "/include/nspr")
                (string-append "--with-nss-includes=" nss "/include/nss")
                (string-append "--with-nss-libs=" nss "/lib/nss")))
@@ -4134,6 +4265,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
        ("gperf" ,gperf)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("python" ,python)))
     (propagated-inputs
      ;; These are all in the Requires field of .pc files.
@@ -4224,7 +4356,7 @@ users.")
 (define-public network-manager
   (package
     (name "network-manager")
-    (version "1.0.12")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/NetworkManager/"
@@ -4232,7 +4364,7 @@ users.")
                                   "NetworkManager-" version ".tar.xz"))
               (sha256
                (base32
-                "17jan0g5jzp8mrpklyacwdgnnw016m1c5pc4az5im6qhc260yirs"))))
+                "101axwk3bc1pm9m98vwrnxyjna6w0qgzaskgivldq69xz8qcyiz9"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc")) ; 8 MiB of gtk-doc HTML
@@ -4262,7 +4394,8 @@ users.")
              ;; cope with being already in the Guix build jail as that jail
              ;; lacks some features that they would like to proxy over (like
              ;; a /sys mount).
-             (substitute* '("src/platform/Makefile.in")
+             (substitute* '("src/platform/Makefile.in"
+                            "src/devices/Makefile.in")
                (("SUBDIRS = tests") ""))
              (substitute* '("src/tests/Makefile.in")
                (("\ttest-route-manager-linux") "\t")
@@ -4277,8 +4410,11 @@ users.")
            (lambda _
              (zero? (system* "make"
                              "sysconfdir=/tmp"
-                             "localstatedir=/tmp"
+                             "rundir=/tmp"
+                             "statedir=/tmp"
                              "install")))))))
+    (propagated-inputs
+     `(("glib" ,glib)))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for gdbus-codegen
        ("gobject-introspection" ,gobject-introspection)
@@ -4299,6 +4435,7 @@ users.")
        ("libndp" ,libndp)
        ("libnl" ,libnl)
        ("libsoup" ,libsoup)
+       ("modem-manager" ,modem-manager)
        ("polkit" ,polkit)
        ("ppp" ,ppp)
        ("readline" ,readline)
@@ -4313,6 +4450,27 @@ devices, and provides VPN integration with a variety of different VPN
 services.")
     (license license:gpl2+)))
 
+(define-public mobile-broadband-provider-info
+  (package
+    (name "mobile-broadband-provider-info")
+    (version "20151214")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/"
+                    "mobile-broadband-provider-info/" version "/"
+                    "mobile-broadband-provider-info-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1905nab1h8p4hx0m1w0rn4mkg9209x680dcr4l77bngy21pmvr4a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f)) ; No tests
+    (home-page "https://wiki.gnome.org/Projects/NetworkManager")
+    (synopsis "Database of broadband connection configuration")
+    (description "Database of broadband connection configuration.")
+    (license license:public-domain)))
+
 (define-public network-manager-applet
   (package
     (name "network-manager-applet")
@@ -4688,7 +4846,7 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
 (define-public nautilus
   (package
     (name "nautilus")
-    (version "3.20.0")
+    (version "3.20.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4696,7 +4854,7 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "14s234b4l7hsxng1n3kkj4c8sjsq2vl2l2fw0caqfxva9md9k9vw"))))
+                "1s41bsihacs7cywm60vqgv46m22gmga4b0bwxnki4r02jjwhgagj"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags
@@ -4710,8 +4868,8 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     ;; TODO: add gvfs support.
      `(("dconf" ,dconf)
+       ("gvfs" ,gvfs)
        ("exempi" ,exempi)
        ("gnome-desktop" ,gnome-desktop)
        ;; XXX: gtk+ is required by libnautilus-extension.pc
@@ -4793,7 +4951,7 @@ can add your own files to the collection.")
 (define-public gnome-screenshot
   (package
     (name "gnome-screenshot")
-    (version "3.18.0")
+    (version "3.20.1")
     (source
      (origin
        (method url-fetch)
@@ -4802,7 +4960,7 @@ can add your own files to the collection.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0hc8m435q7yzvrw7jpi53kaxpmrd9w59sm7c5wibh2ng9azlv9pb"))))
+         "0hz1ywgb5vbfqr0p0cr20hmz5b11msyi3psanszdnv0lhxl9pa06"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@ -4862,15 +5020,19 @@ software that do not provide their own configuration interface.")
      ;; TODO: Add more packages according to:
      ;;       <https://packages.debian.org/jessie/gnome-core>.
      `(("adwaita-icon-theme"        ,adwaita-icon-theme)
+       ("baobab"                    ,baobab)
        ("font-cantarell"            ,font-cantarell)
        ("at-spi2-core"              ,at-spi2-core)
        ("dbus"                      ,dbus)
        ("dconf"                     ,dconf)
+       ("desktop-file-utils"        ,desktop-file-utils)
        ("eog"                       ,eog)
        ("epiphany"                  ,epiphany)
        ("evince"                    ,evince)
+       ("file-roller"               ,file-roller)
        ("gedit"                     ,gedit)
        ("glib-networking"           ,glib-networking)
+       ("gnome-backgrounds"         ,gnome-backgrounds)
        ("gnome-control-center"      ,gnome-control-center)
        ("gnome-keyring"             ,gnome-keyring)
        ("gnome-session"             ,gnome-session)
@@ -4878,6 +5040,7 @@ software that do not provide their own configuration interface.")
        ("gnome-shell"               ,gnome-shell)
        ("gnome-terminal"            ,gnome-terminal)
        ("gnome-themes-standard"     ,gnome-themes-standard)
+       ("gvfs"                      ,gvfs)
        ("hicolor-icon-theme"        ,hicolor-icon-theme)
        ("nautilus"                  ,nautilus)
        ("pulseaudio"                ,pulseaudio)
@@ -4973,3 +5136,368 @@ specified duration and save it as a GIF encoded animated image file.")
      "Libzapojit is a GLib-based library for accessing online service APIs of
 Microsoft SkyDrive and Hotmail, using their REST protocols.")
     (license license:lgpl2.1+)))
+
+(define-public gnome-calendar
+  (package
+    (name "gnome-calendar")
+    (version "3.20.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1vny8fclwglapdyxd2g9fbwdlk5hhnb993k2hvq3rf0hcgswycpi"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("bdb" ,bdb)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("evolution-data-server" ,evolution-data-server)
+       ("gnome-online-accounts" ,gnome-online-accounts)))
+    (home-page "https://wiki.gnome.org/Apps/Calendar")
+    (synopsis "GNOME's calendar application")
+    (description
+     "GNOME Calendar is a simple calendar application designed to fit the GNOME
+desktop.  It supports multiple calendars, monthly view and yearly view.")
+    (license license:gpl3+)))
+
+(define-public gnome-dictionary
+  (package
+    (name "gnome-dictionary")
+    (version "3.20.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "08b1f5s5aqka3dwxnzmwr2fmyddjm9xw7zmqsf8r5zvfsivn7czg"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)))
+    (home-page "https://wiki.gnome.org/Apps/Dictionary")
+    (synopsis "Look up words in dictionary sources")
+    (description
+     "GNOME Dictionary can look for the definition or translation of a word in
+existing databases over the internet.")
+    (license license:gpl3+)))
+
+(define-public gnome-tweak-tool
+  (package
+    (name "gnome-tweak-tool")
+    (version "3.20.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/gnome-tweak-tool/"
+                                  (version-major+minor version) "/"
+                                  "gnome-tweak-tool-" version ".tar.xz"))
+              (patches (list
+                        (search-patch "gnome-tweak-tool-search-paths.patch")))
+              (sha256
+               (base32
+                "1fj6wjvnjygzm9br3sw9gya6d18yly1rm69yaiar9spfbkvv4wai"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--localstatedir=/tmp"
+                           "--sysconfdir=/tmp")
+       #:imported-modules ((guix build python-build-system)
+                           ,@%gnu-build-system-modules)
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'wrap
+                    (@@ (guix build python-build-system) wrap)))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python" ,python-2)
+       ("python2-pygobject" ,python2-pygobject)))
+    (propagated-inputs
+     `(("libnotify" ,libnotify)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)))
+    (synopsis "Customize advanced GNOME 3 options")
+    (home-page "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool")
+    (description
+     "GNOME Tweak Tool allows adjusting advanced configuration settings in
+GNOME 3.  This includes things like the fonts used in user interface elements,
+alternative user interface themes, changes in window management behavior,
+GNOME Shell appearance and extension, etc.")
+    (license license:gpl3+)))
+
+(define-public gnome-shell-extensions
+  (package
+    (name "gnome-shell-extensions")
+    (version "3.20.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "18rr55krnqx1nzrzlj6kfzh4n67f3crakmwh28rr95y7cg0jwhxw"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--enable-extensions=all")))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib" ,glib "bin")))
+    (synopsis "Extensions for GNOME Shell")
+    (description "GNOME Shell extensions modify and extend GNOME Shell
+functionality and behavior.")
+    (home-page "https://extensions.gnome.org/")
+    (license license:gpl3+)))
+
+(define-public arc-theme
+  (package
+    (name "arc-theme")
+    (version "20160605")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/horst3180/arc-theme"
+                                  "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sq2031xda8jn2ws0x2bvhq77jfh7xy0c3kg86v6vm2kbrrss7y6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'bootstrap
+           (lambda _
+             (zero? (system* "autoreconf" "-vif")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (synopsis "A flat GTK+ theme with transparent elements")
+    (description "Arc is a flat theme with transparent elements for GTK 3, GTK
+2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
+like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
+    (home-page "https://github.com/horst3180/arc-theme")
+    ;; No "or later" language found.
+    (license license:gpl3)))
+
+(define-public moka-icon-theme
+  (package
+    (name "moka-icon-theme")
+    (version "5.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/moka-project"
+                                  "/moka-icon-theme/archive/v"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1lnk7p8dsd9xh6cgz5krvlcr457w8yl4m6p6s5c2g5narsjswzrm"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefile.am
+           (lambda _
+             (substitute* '("Makefile.am")
+               (("\\$\\(DESTDIR\\)/usr/share")
+                "$(datadir)"))
+             #t))
+         (add-after 'patch-makefile.am 'bootstrap
+           (lambda _
+             (zero? (system* "autoreconf" "-vif")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "Moka icon theme")
+    (description "Moka is a stylized desktop icon set, designed to be clear,
+simple and consistent.")
+    (home-page "http://snwh.org/moka")
+    (license license:gpl3+)))
+
+(define-public arc-icon-theme
+  (package
+    (name "arc-icon-theme")
+    (version "20160605")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/horst3180/arc-icon-theme"
+                                  "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1npf0ki0j0llrw9wbffhxxa1cdms0q7b8xlg9m943dd9g7pgdm2p"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'bootstrap
+           (lambda _
+             (zero? (system* "autoreconf" "-vif")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
+    (propagated-inputs
+     `(("moka-icon-theme" ,moka-icon-theme)))
+    (synopsis "Arc icon theme")
+    (description "The Arc icon theme provides a set of icons matching the
+style of the Arc GTK theme.  Icons missing from the Arc theme are provided by
+the Moka icon theme.")
+    (home-page "https://github.com/horst3180/arc-icon-theme")
+    (license license:gpl3+)))
+
+(define-public folks
+  (package
+    (name "folks")
+    (version "0.11.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/"
+                    (version-major+minor version) "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1f51albxgfqxbax57i3pcgv2fx7i419xaapzdvldas6gw100ma1m"))))
+    (build-system glib-or-gtk-build-system)
+    (inputs
+     `(("bdb" ,bdb)
+       ("dbus-glib" ,dbus-glib)
+       ("evolution-data-server" ,evolution-data-server)
+       ("glib" ,glib)
+       ("libgee" ,libgee)
+       ("telepathy-glib" ,telepathy-glib)))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (synopsis "Library to aggregate data about people")
+    (description "Libfolks is a library that aggregates information about people
+from multiple sources (e.g., Telepathy connection managers for IM contacts,
+Evolution Data Server for local contacts, libsocialweb for web service contacts,
+etc.) to create metacontacts.  It's written in Vala, which generates C code when
+compiled.")
+    (home-page "https://wiki.gnome.org/Projects/Folks")
+    (license license:lgpl2.1+)))
+
+(define-public gfbgraph
+  (package
+    (name "gfbgraph")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/"
+                    (version-major+minor version) "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f ; Tests appear to require the network.
+       ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
+       #:configure-flags '("--disable-gtk-doc"
+                           "--disable-static"
+                           "--enable-introspection")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("json-glib" ,json-glib)
+       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("rest" ,rest)))
+    (synopsis "GLib/GObject wrapper for the Facebook API")
+    (description "This library allows you to use the Facebook API from
+GLib/GObject code.")
+    (home-page "https://wiki.gnome.org/Projects/GFBGraph")
+    (license license:lgpl2.1+)))
+
+(define-public libgnomekbd
+  (package
+    (name "libgnomekbd")
+    (version "3.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "02bahnl3vaqyqyr99r9kwka84sxj8qdrz7x0bf97192dysqaa7n4"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib" ,glib "bin")
+       ("intltool" ,intltool)))
+    (propagated-inputs
+     ;; Referred to in .h files and .pc.
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxklavier" ,libxklavier)))
+    (home-page "https://www.gnome.org")
+    (synopsis "GNOME keyboard configuration library")
+    (description
+     "Libgnomekbd is a keyboard configuration library for the GNOME desktop
+environment, which can notably display keyboard layouts.")
+    (license license:lgpl2.0+)))
+
+;;; This package is no longer maintained:
+;;; https://wiki.gnome.org/Attic/LibUnique
+;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
+;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
+(define-public libunique
+  (package
+    (name "libunique")
+    (version "3.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags '("--disable-static"
+                           "--disable-dbus" ; use gdbus
+                           "--enable-introspection")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")
+       ("gtk-doc" ,gtk-doc)))
+    (propagated-inputs
+     ;; Referred to in .h files and .pc.
+     `(("gtk+" ,gtk+)))
+    (home-page "https://wiki.gnome.org/Attic/LibUnique")
+    (synopsis "Library for writing single instance applications")
+    (description
+     "Libunique is a library for writing single instance applications.  If you
+launch a single instance application twice, the second instance will either just
+quit or will send a message to the running instance.  Libunique makes it easy to
+write this kind of application, by providing a base class, taking care of all
+the IPC machinery needed to send messages to a running instance, and also
+handling the startup notification side.")
+    (license license:lgpl2.1+)))