gnu: Add gitg.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
index d13ab8e..428fe1c 100644 (file)
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
+;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
+;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,6 +68,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages cdrom)
        ("libnotify" ,libnotify)
        ("libsm" ,libsm)
        ("libxml2" ,libxml2)
-       ("nettle" ,nettle)
        ("totem-pl-parser" ,totem-pl-parser)))
     (home-page "https://projects.gnome.org/brasero/")
     (synopsis "CD/DVD burning tool for Gnome")
@@ -427,8 +432,7 @@ access the common Google services, and has full asynchronous support.")
      `(("gtk+" ,gtk+)
        ("libjpeg" ,libjpeg-turbo)
        ("lcms" ,lcms)
-       ("libtiff" ,libtiff)
-       ("nettle" ,nettle)))
+       ("libtiff" ,libtiff)))
     (propagated-inputs
      ;; In Requires of libgxps.pc.
      `(("cairo" ,cairo)
@@ -768,7 +772,7 @@ forgotten when the session ends.")
 (define-public evince
   (package
     (name "evince")
-    (version "3.30.2")
+    (version "3.34.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -776,7 +780,7 @@ forgotten when the session ends.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0k7jln6dpg4bpv61niicjzkzyq6fhb3yfld7pc8ck71c8pmvsnx9"))))
+               "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--disable-nautilus")
@@ -817,10 +821,6 @@ forgotten when the session ends.")
        ("libcanberra" ,libcanberra)
        ("libsecret" ,libsecret)
 
-       ;; XXX: 'libarchive.pc' adds '-lnettle' so Nettle should really be
-       ;; propagated from there.
-       ("nettle" ,nettle)
-
        ;; For tests.
        ("dogtail" ,python2-dogtail)))
     (native-inputs
@@ -1398,7 +1398,7 @@ library.")
 (define-public librsvg-next
   (package
     (name "librsvg")
-    (version "2.44.12")
+    (version "2.46.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1406,7 +1406,7 @@ library.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6"))))
+                "1la3az2af2ccm6rp86b6wh0kq7kxzl4n8pli5qxhyic1rd91xj4n"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1424,6 +1424,7 @@ library.")
            (lambda _
              (for-each patch-shebang '("tap-driver.sh" "tap-test"))
              (patch-/usr/bin/file "configure")
+             (patch-makefile-SHELL "po/Makefile.in.in")
              #t))
          (add-before 'configure 'pre-configure
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1461,9 +1462,9 @@ library.")
              #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ;; This is the minimum supported Rust version in Librsvg 2.44.
-       ("rust" ,rust-1.27)
-       ("cargo" ,rust-1.27 "cargo")
+       ;; This is the minimum supported Rust version in Librsvg 2.46.
+       ("rust" ,rust-1.34)
+       ("cargo" ,rust-1.34 "cargo")
        ("vala" ,vala)
        ("glib" ,glib "bin")                               ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
@@ -2061,17 +2062,17 @@ Hints specification (EWMH).")
 (define-public goffice
   (package
     (name "goffice")
-    (version "0.10.44")
+    (version "0.10.45")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/goffice/"
                                   (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
+                                  "goffice-" version ".tar.xz"))
               (sha256
-               (base32 "1fd7cm6j0g0mqgpqs4y22b4gd2ll4mcyvg4d0q22d5ndjapl4q3d"))))
+               (base32 "0iqrygv2bh8kiw98kjx6ay6qdd288v91q5m8n7cvs2zcx5ksaavh"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"))                            ;4.0 MiB of gtk-doc
+               "doc"))                  4.0 MiB of gtk-doc
     (arguments
      '(#:configure-flags (list (string-append "--with-html-dir="
                                               (assoc-ref %outputs "doc")
@@ -2168,7 +2169,7 @@ Hints specification (EWMH).")
      `(("bison" ,bison)
        ("docbook-xml" ,docbook-xml)
        ("intltool" ,intltool)
-       ("itstool" ,itstool)
+       ("itstool" ,itstool/fixed)            ;see <https://bugs.gnu.org/37468>
        ("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (home-page "http://www.gnumeric.org")
@@ -2222,7 +2223,7 @@ engineering.")
 (define-public seahorse
   (package
     (name "seahorse")
-    (version "3.30")
+    (version "3.30.1.1")
     (source
      (origin
        (method url-fetch)
@@ -2231,8 +2232,19 @@ engineering.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "1sbj1czlx1fakm72dwgbn0bwm12j838yaky4mkf6hf8j8afnxmzp"))))
-    (build-system glib-or-gtk-build-system)
+         "12x7xmwh62yl0ax90v8nkx3jqzviaz9hz2g56yml78wzww20gawy"))
+       (patches (search-patches
+                 "seahorse-gkr-use-0-on-empty-flags.patch"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "build-aux/meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
     (inputs
      `(("gtk+" ,gtk+)
        ("gcr" ,gcr)
@@ -2240,13 +2252,15 @@ engineering.")
        ("gpgme" ,gpgme)
        ("openldap" ,openldap)
        ("openssh" ,openssh)
+       ("avahi" ,avahi)
        ("libsecret" ,libsecret)
        ("libsoup" ,libsoup)))
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("xmllint" ,libxml2)))
     (home-page "https://launchpad.net/gnome-themes-standard")
     (synopsis "Manage encryption keys and passwords in the GNOME keyring")
@@ -2338,7 +2352,7 @@ editors, IDEs, etc.")
   (package
     (inherit vte)
     (name "vte-ng")
-    (version "0.56.2.a")
+    (version "0.58.2.a")
     (home-page "https://github.com/thestinger/vte-ng")
     (source (origin
               (method git-fetch)
@@ -2346,20 +2360,13 @@ editors, IDEs, etc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lmba6i0abifmvvfb1q63ql6zh6d38148kp6skmkggiib2hi5dki"))))
+                "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("gtk-doc" ,gtk-doc)
-       ("gperf" ,gperf)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
        ,@(package-native-inputs vte)))
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'bootstrap
-                    (lambda _
-                      (setenv "NOCONFIGURE" "true")
-                      (invoke "sh" "autogen.sh"))))))
+     `(#:configure-flags '("-Ddocs=true")))
   (synopsis "Enhanced VTE terminal widget")
   (description
    "VTE is a library (libvte) implementing a terminal emulator widget for
@@ -2429,7 +2436,10 @@ selection and URL hints.")))
                 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     ;; Disable -Werror and such, to avoid build failures on compilation
+     ;; warnings.
+     '(#:configure-flags '("--enable-compile-warnings=minimum")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'install 'skip-gtk-update-icon-cache
            (lambda _
@@ -2538,24 +2548,40 @@ and objects.")
 (define-public libxklavier
   (package
     (name "libxklavier")
-    (version "5.3")
+    (version "5.4")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
+              ;; Note: There's no tarball at ftp.gnome.org for this version.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://anongit.freedesktop.org/git/libxklavier")
+                    (commit (string-append "libxklavier-" version))))
               (sha256
                (base32
-                "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b"))))
+                "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
+              (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'no-configure
+           (lambda* _
+            (setenv "NOCONFIGURE" "1")
+            #t)))
+       #:configure-flags
        (list (string-append "--with-xkb-base="
                             (assoc-ref %build-inputs "xkeyboard-config")
-                            "/share/X11/xkb"))))
+                            "/share/X11/xkb")
+             "--disable-xmodmap-support")))
     (native-inputs
      `(("glib:bin"              ,glib "bin") ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config"            ,pkg-config)))
+       ("pkg-config"            ,pkg-config)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("which" ,which)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (propagated-inputs
      ;; Required by libxklavier.pc.
      `(("glib"    ,glib)
@@ -2614,7 +2640,7 @@ library.")
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/glib-networking/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "glib-networking-" version ".tar.xz"))
               (sha256
                (base32
                 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
@@ -2672,15 +2698,15 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.66.2")
+    (version "2.68.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libsoup-" version ".tar.xz"))
               (sha256
                (base32
-                "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx"))))
+                "0crr9qprmacr626fx83cx81ggk85zsgxr4mn577kpzj6m40k1bai"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -2688,7 +2714,7 @@ libxml to ease remote use of the RESTful API.")
                   (guix build meson-build-system)
                   (ice-9 popen))
 
-       #:configure-flags '("-Ddoc=true")
+       #:configure-flags '("-Dgtk_doc=true")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'adjust-tests
@@ -2698,6 +2724,16 @@ libxml to ease remote use of the RESTful API.")
              (substitute* "tests/socket-test.c"
                ((".*/sockets/unconnected.*") ""))
 
+             ;; These fail because "subdomain.localhost" does not resolve in
+             ;; the build environment.
+             (substitute* "tests/hsts-test.c"
+               ((".*/hsts/basic.*") "")
+               ((".*/hsts/subdomains.*") "")
+               ((".*/hsts/superdomain.*") "")
+               ((".*/hsts/utf8-address.*") ""))
+             (substitute* "tests/hsts-db-test.c"
+               ((".*/hsts-db/subdomains.*") ""))
+
              ;; Generate a self-signed certificate that has "localhost" as its
              ;; 'dnsName'.  Failing to do that, and starting with GnuTLS
              ;; 3.5.12, tests such as "ssl-tests" fail:
@@ -2766,10 +2802,12 @@ libxml to ease remote use of the RESTful API.")
        ("httpd" ,httpd)))
     (propagated-inputs
      ;; libsoup-2.4.pc refers to all these.
-     `(("glib" ,glib)
+     `(("brotli" ,google-brotli)
+       ("glib" ,glib)
        ("libpsl" ,libpsl)
        ("libxml2" ,libxml2)
-       ("sqlite" ,sqlite)))
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
     (inputs
      `(("glib-networking" ,glib-networking)
        ("mit-krb5" ,mit-krb5)))
@@ -2783,16 +2821,16 @@ and the GLib main loop, to integrate well with GNOME applications.")
 (define-public libsecret
   (package
     (name "libsecret")
-    (version "0.18.8")
+    (version "0.19.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://gnome/sources/libsecret/"
                     (version-major+minor version) "/"
-                    name "-" version ".tar.xz"))
+                    "libsecret-" version ".tar.xz"))
               (sha256
                (base32
-                "058x64689k55wxfkdp4svhnwvv8jmqm7z5mrynybl38f4sfqiyiv"))))
+                "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -2985,15 +3023,14 @@ keyboard shortcuts.")
 (define-public colord
   (package
     (name "colord")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
-                           name "-" version ".tar.xz"))
+                           "colord-" version ".tar.xz"))
        (sha256
-        (base32
-         "1xwxahg9mgmapc16xkb4kgmc40zpadrwav33xqmn6cgaw6g6d3ls"))))
+        (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
     (build-system meson-build-system)
     (arguments
      '(;; FIXME: One test fails:
@@ -3008,13 +3045,12 @@ keyboard shortcuts.")
                                ;; Wants to install to global completion dir;
                                ;; punt.
                                "-Dbash_completion=false"
-                               ;; colord-gtk not packaged yet.
-                               "-Dsession_example=false"
                                "-Ddaemon_user=colord"
                                "-Dsane=true"
-                               ;; Requires spotread
+                               "-Dvapi=true"
+                               ;; Requires spotread.
                                "-Dargyllcms_sensor=false"
-                               ;; TODO: Requires docbook2x
+                               ;; TODO: Requires docbook2x.
                                "-Dman=false")
        #:phases
        (modify-phases %standard-phases
@@ -3025,25 +3061,26 @@ keyboard shortcuts.")
                 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
+     `(("glib:bin" ,glib "bin")         ; for glib-compile-resources, etc.
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
        ("libtool" ,libtool)
-       ("intltool" ,intltool)))
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (propagated-inputs
      ;; colord.pc refers to all these.
      `(("glib" ,glib)
-       ("udev" ,eudev)
-       ("lcms" ,lcms)))
+       ("lcms" ,lcms)
+       ("udev" ,eudev)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
        ("gusb" ,gusb)
        ("libgudev" ,libgudev)
        ("libusb" ,libusb)
-       ("sqlite" ,sqlite)
        ("polkit" ,polkit)
        ("python" ,python-wrapper)
+       ("sqlite" ,sqlite)
        ("sane-backends" ,sane-backends)))
     (home-page "https://www.freedesktop.org/software/colord/")
     (synopsis "Color management service")
@@ -3103,15 +3140,15 @@ permission from user.")
 (define-public geocode-glib
   (package
     (name "geocode-glib")
-    (version "3.26.0")
+    (version "3.26.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/geocode-glib/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "geocode-glib-" version ".tar.xz"))
               (sha256
                (base32
-                "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a"))))
+                "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -3197,7 +3234,7 @@ service via the system message bus.")
 (define-public libgweather
   (package
     (name "libgweather")
-    (version "3.28.2")
+    (version "3.28.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3205,7 +3242,7 @@ service via the system message bus.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708"))))
+                "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f ; one of two tests requires network access
@@ -3331,8 +3368,7 @@ settings, themes, mouse settings, and startup of other daemons.")
       ("libgcrypt" ,libgcrypt)
       ("libxml2" ,libxml2)))
    (inputs
-    `(("nettle" ,nettle)
-      ("libsoup" ,libsoup)))
+    `(("libsoup" ,libsoup)))
    (home-page "https://projects.gnome.org/totem")
    (synopsis "Library to parse and save media playlists for GNOME")
    (description "Totem-pl-parser is a GObjects-based library to parse and save
@@ -3342,7 +3378,7 @@ playlists in a variety of formats.")
 (define-public aisleriot
   (package
     (name "aisleriot")
-    (version "3.22.8")
+    (version "3.22.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/aisleriot/"
@@ -3350,7 +3386,7 @@ playlists in a variety of formats.")
                                   "aisleriot-" version ".tar.xz"))
               (sha256
                (base32
-                "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815"))))
+                "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags
@@ -3378,21 +3414,21 @@ which are easy to play with the aid of a mouse.")
 (define-public amtk
   (package
     (name "amtk")
-    (version "5.0.0")
+    (version "5.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/amtk/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "amtk-" version ".tar.xz"))
               (sha256
                (base32
-                "1zriix7bdwcg0868mfc7jy6zbwjwdmjwbh0ah6dbddrhiabrda8j"))))
+                "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-gtk-doc")))
     (native-inputs
      `(("gobject-introspection" ,gobject-introspection)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("glib:bin" ,glib "bin")         ; for glib-mkenums
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -3441,16 +3477,15 @@ throughout GNOME for API documentation).")
 (define-public cogl
   (package
     (name "cogl")
-    (version "1.22.2")
+    (version "1.22.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
+       (uri (string-append "mirror://gnome/sources/cogl/"
                            (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "cogl-" version ".tar.xz"))
        (sha256
-        (base32
-         "03f0ha3qk7ca0nnkkcr1garrm1n1vvfqhkz9lwjm592fnv6ii9rr"))))
+        (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
     ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
     ;; cogl, corresponding changes may be appropriate in mutter as well.
     (build-system gnu-build-system)
@@ -3696,15 +3731,15 @@ queries upon that data.")
 (define-public libgnome-games-support
   (package
     (name "libgnome-games-support")
-    (version "1.4.2")
+    (version "1.4.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libgnome-games-support-" version ".tar.xz"))
               (sha256
                (base32
-                "02hirpk885jndwarbl3cl5fk7w2z5ziv677csyv1wi2n6rmpn088"))))
+                "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -3787,7 +3822,6 @@ as possible!")
        ("libxml2" ,libxml2)
        ("liboauth" ,liboauth)
        ("libsoup" ,libsoup)
-       ("nettle" ,nettle)
        ("totem-pl-parser" ,totem-pl-parser)))
     (arguments
      `(#:phases
@@ -3836,7 +3870,6 @@ 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)
@@ -3925,7 +3958,6 @@ for application developers.")
        ("totem-pl-parser" ,totem-pl-parser)
        ("grilo" ,grilo)
        ("grilo-plugins" ,grilo-plugins)
-       ("nettle" ,nettle)
        ("vala" ,vala)))
     (arguments
      `(#:glib-or-gtk? #t
@@ -4027,7 +4059,6 @@ which can read a large number of file formats.")
       ("python-pygobject" ,python2-pygobject)
       ("vala" ,vala)
       ("gmime" ,gmime)
-      ("nettle" ,nettle)
       ("adwaita-icon-theme" ,adwaita-icon-theme)
       ("grilo" ,grilo)
       ("grilo-plugins" ,grilo-plugins)
@@ -4122,7 +4153,7 @@ supports image conversion, rotation, and slideshows.")
   ;; 'XDG_DATA_DIRS' appropriately set.
   (package
     (name "eog-plugins")
-    (version "3.26.3")
+    (version "3.26.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/eog-plugins/"
@@ -4130,7 +4161,7 @@ supports image conversion, rotation, and slideshows.")
                                   "eog-plugins-" version ".tar.xz"))
               (sha256
                (base32
-                "06fnjs2p18ad5vk07z685cx26sc7d3azywss00w9xvz794b2i1g3"))))
+                "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
     (build-system gnu-build-system)
     (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
     (synopsis "Extensions for the Eye of GNOME image viewer")
@@ -4197,9 +4228,9 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
     (version "1.40.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/gvfs/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "gvfs-" version ".tar.xz"))
               (sha256
                (base32
                 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
@@ -4243,7 +4274,6 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("libsmbclient" ,samba)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
-       ("nettle" ,nettle) ; XXX: required by libarchive.pc
        ("openssh" ,openssh)
        ("polkit" ,polkit)
        ("udisks" ,udisks)))
@@ -4294,68 +4324,55 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.24.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://launchpad.net/simple-scan/"
-                                  (version-major+minor version) "/"
-                                  version "/+download/simple-scan-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1czg21cdbd2fgqylxfnzfhhzy69gycf816d5bbaq6hb62hmq7bjy"))))
-    (build-system glib-or-gtk-build-system)
+    (version "3.34.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/simple-scan/"
+                           (version-major+minor version) "/"
+                           "simple-scan-" version ".tar.xz"))
+       (sha256
+        (base32 "0glzskxdc7p9z7nwcakqc7qzij4l79adlvvb2cj5fmis731zw9yq"))))
+    (build-system meson-build-system)
+    ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
+    (arguments
+     '(#:glib-or-gtk? #t))
     (inputs
      `(("gtk" ,gtk+)
        ("zlib" ,zlib)
        ("cairo" ,cairo)
+       ("colord" ,colord)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("gusb" ,gusb)
        ("libsane" ,sane-backends)))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("itstool" ,itstool)
-       ("colord" ,colord)
-       ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
+       ("glib" ,glib "bin")             ; glib-compile-schemas, etc.
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
        ("xmllint" ,libxml2)))
-    (arguments
-     '(#:configure-flags '("--disable-packagekit")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'clean
-                    (lambda _
-                      ;; Remove a left-over reference to PackageKit.
-
-                      ;; https://bugs.launchpad.net/simple-scan/+bug/1462769
-
-                      ;; There are some generated C files erroneously
-                      ;; included in the source distribution, and this
-                      ;; one breaks the build by referring to a
-                      ;; non-existent header (packagekit.h)
-                      (delete-file "src/ui.c"))))))
-    (home-page "https://launchpad.net/simple-scan")
+    (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
     (synopsis "Document and image scanner")
-    (description "Simple Scan is an easy-to-use application, designed to let
-users connect their scanner and quickly have the image/document in an
-appropriate format.  Simple Scan is basically a frontend for SANE - which is
-the same backend as XSANE uses. This means that all existing scanners will
-work and the interface is well tested.")
+    (description
+     "Document Scanner is an easy-to-use application that lets you connect your
+scanner and quickly capture images and documents in an appropriate format.  It
+supports any scanner for which a suitable SANE driver is available, which is
+almost all of them.")
     (license license:gpl3+)))
 
 (define-public eolie
   (package
     (name "eolie")
-    (version "0.9.62")
+    (version "0.9.63")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gitlab.gnome.org/World/eolie/"
-                                  "uploads/bb4aad19272cc636bd17f2f6602127fe/"
+                                  "uploads/d42b466752729a0d3fa828a721e25043/"
                                   "eolie-" version ".tar.xz"))
               (sha256
                (base32
-                "06v76hg87fnhw45dil5vvl20myvaa38n1jqsl0lmkkq6af4mk8wx"))))
+                "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -4615,18 +4632,29 @@ 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 yelp-tools/fixed
+  ;; This variant fixes a python-libxml2 crash when processing UTF-8
+  ;; sequences: <https://bugs.gnu.org/37468>.  TODO: Remove this in
+  ;; the next rebuild cycle.
+  (hidden-package
+   (package/inherit
+    yelp-tools
+    (propagated-inputs
+     `(("itstool" ,itstool/fixed)
+       ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
+
 (define-public libgee
   (package
     (name "libgee")
-    (version "0.20.1")
+    (version "0.20.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libgee/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libgee-" version ".tar.xz"))
               (sha256
                (base32
-                "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v"))))
+                "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -4655,7 +4683,7 @@ classes for commonly used data structures.")
 (define-public gexiv2
   (package
     (name "gexiv2")
-    (version "0.10.10")
+    (version "0.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4663,11 +4691,13 @@ classes for commonly used data structures.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1qbcwq89g4r67k1dj4laqj441pj4195c8hzhxn8vc6mmg8adg6kx"))))
+                "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     `(("gcr" ,gcr)
+       ("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (propagated-inputs
      ;; Listed in "Requires" section of gexiv2.pc
      `(("exiv2" ,exiv2)))
@@ -4685,24 +4715,26 @@ metadata in photo and video files of various formats.")
 (define-public shotwell
   (package
     (name "shotwell")
-    (version "0.28.4")
+    (version "0.30.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/shotwell/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "shotwell-" version ".tar.xz"))
               (sha256
                (base32
-                "03k7n2kmzqn11kf3733w7m6xjh2b5q9xr84za2hli11fjymzaxm9"))))
-    (build-system glib-or-gtk-build-system)
+                "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:glib-or-gtk? #t))
     (propagated-inputs
      `(("dconf" ,dconf)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("itstool" ,itstool)
+     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gettext" ,gettext-minimal)
        ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
        ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
      `(("glib:bin" ,glib "bin")
@@ -4755,7 +4787,6 @@ share them with others via social networking and more.")
        ("json-glib" ,json-glib)
        ("libarchive" ,libarchive)
        ("libnotify" ,libnotify)
-       ("nettle" ,nettle)
        ("itstool" ,itstool)
        ("libxml2" ,libxml2)))
     (synopsis "Graphical archive manager for GNOME")
@@ -4801,14 +4832,6 @@ such as gzip tarballs.")
                    (out  (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/gnome-session")
                  `("PATH" ":" prefix (,(string-append glib "/bin"))))
-               #t)))
-         (add-after 'install 'add-absolute-paths-to-desktop-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (substitute* (map (lambda (x)
-                                   (string-append out "/share/xsessions/" x))
-                                 '("gnome.desktop" "gnome-xorg.desktop"))
-                 (("gnome-session") (string-append out "/bin/gnome-session")))
                #t))))
 
        #:configure-flags
@@ -4965,15 +4988,15 @@ powerful general purpose text editor.")
 (define-public zenity
   (package
     (name "zenity")
-    (version "3.30.0")
+    (version "3.32.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/zenity/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "zenity-" version ".tar.xz"))
               (sha256
                (base32
-                "1wipnp46pd238z9ck5rsckbaw7yla6c936fswq5w94k4c6bgcplr"))))
+                "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -5151,15 +5174,16 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
 (define-public evolution-data-server
   (package
     (name "evolution-data-server")
-    (version "3.30.2")
+    (version "3.30.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
+              (patches (search-patches "evolution-data-server-locales.patch"))
               (sha256
                (base32
-                "0h4f71kpf2ypdgifg369z35pk4cq99daw540yzjpax52grav2fjv"))))
+                "1s952wyhgcbmq9nfgk75v15zdy1h3wy5p5rmkqibaavmc0pk3mli"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -5173,13 +5197,6 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
                "-DENABLE_GOOGLE=OFF"          ;disable Google Contacts support
                "-DENABLE_GOOGLE_AUTH=OFF"     ;disable Google authentication
                "-DENABLE_VALA_BINDINGS=ON"
-               ;; FIXME: Building against ICU 60 requires C++11 or higher.  Remove
-               ;; "-std=gnu++11" when our default compiler is >= GCC6.
-               ;; FIXME: Temporarily use "-DU_USING_ICU_NAMESPACE=1" until
-               ;; evolution-data-server has been updated to qualify ICU types
-               ;; explicitly, as required by ICU 61 and later.  See:
-               ;; <https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild>
-               "-DCMAKE_CXX_FLAGS=-std=gnu++11 -DU_USING_ICU_NAMESPACE=1"
                (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
                               (string-append lib "/evolution-data-server;")
                               (string-join runpaths ";"))
@@ -5322,6 +5339,7 @@ users.")
               (uri (string-append "mirror://gnome/sources/NetworkManager/"
                                   (version-major+minor version) "/"
                                   "NetworkManager-" version ".tar.xz"))
+              (patches (search-patches "nm-plugin-path.patch"))
               (sha256
                (base32
                 "064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm"))
@@ -5461,7 +5479,8 @@ services.")
 (define-public network-manager-openvpn
   (package
     (name "network-manager-openvpn")
-    (version "1.8.4")
+    ;; Updating?  Check whether network-manager-applet still needs libnm_gtk.
+    (version "1.8.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5470,15 +5489,34 @@ services.")
                     "/NetworkManager-openvpn-" version ".tar.xz"))
               (sha256
                (base32
-                "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
+                "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--enable-absolute-paths")))
+     `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-path
+           (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+             (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
+                                         "/sbin/openvpn"))
+                    (modprobe (string-append (assoc-ref inputs "kmod")
+                                             "/bin/modprobe"))
+                    (pretty-ovpn (string-append "\"" ovpn "\"")))
+               (for-each
+                (lambda (file)
+                  (substitute* file
+                    (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
+                    (("\"/usr/sbin/openvpn\"") pretty-ovpn)
+                    (("\"/sbin/openvpn\"") pretty-ovpn)
+                    (("/sbin/modprobe") modprobe)))
+                '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (inputs
      `(("gtk+" ,gtk+)
+       ("kmod" ,kmod)
        ("openvpn" ,openvpn)
        ("network-manager" ,network-manager)
        ("network-manager-applet" ,network-manager-applet) ;for libnma
@@ -5491,6 +5529,111 @@ to virtual private networks (VPNs) via OpenVPN.")
     (license license:gpl2+)
     (properties `((upstream-name . "NetworkManager-openvpn")))))
 
+(define-public network-manager-vpnc
+  (package
+    (name "network-manager-vpnc")
+    (version "1.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/NetworkManager-vpnc/"
+                    (version-major+minor version)
+                    "/NetworkManager-vpnc-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-path
+           (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+             (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
+                                         "/sbin/vpnc"))
+                    (modprobe (string-append (assoc-ref inputs "kmod")
+                                             "/bin/modprobe"))
+                    (pretty-ovpn (string-append "\"" vpnc "\"")))
+               (substitute* "src/nm-vpnc-service.c"
+                    (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
+                    (("\"/usr/sbin/vpnc\"") pretty-ovpn)
+                    (("\"/sbin/vpnc\"") pretty-ovpn)
+                    (("/sbin/modprobe") modprobe)))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("kmod" ,kmod)
+       ("vpnc" ,vpnc)
+       ("network-manager" ,network-manager)
+       ("network-manager-applet" ,network-manager-applet) ;for libnma
+       ("libsecret" ,libsecret)))
+    (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
+    (synopsis "VPNC plug-in for NetworkManager")
+    (description
+     "Support for configuring virtual private networks based on VPNC.
+Compatible with Cisco VPN concentrators configured to use IPsec.")
+    (license license:gpl2+)
+    (properties `((upstream-name . "NetworkManager-vpnc")))))
+
+(define-public network-manager-openconnect
+  (package
+    (name "network-manager-openconnect")
+    (version "1.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/NetworkManager-openconnect/"
+                    (version-major+minor version)
+                    "/NetworkManager-openconnect-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-path
+           (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+             (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
+                                         "/sbin/openconnect"))
+                    (modprobe (string-append (assoc-ref inputs "kmod")
+                                             "/bin/modprobe"))
+                    (pretty-ovpn (string-append "\"" openconnect "\"")))
+               (substitute* "src/nm-openconnect-service.c"
+                 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
+                 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
+                 (("/sbin/modprobe") modprobe)))
+             #t)))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("network-manager-applet" ,network-manager-applet) ;for libnma
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gcr" ,gcr)
+       ("gtk+" ,gtk+)
+       ("kmod" ,kmod)
+       ("libsecret" ,libsecret)
+       ("libxml2" ,libxml2)
+       ("network-manager" ,network-manager)
+       ("openconnect" ,openconnect)))
+    (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
+    (synopsis "OpenConnect plug-in for NetworkManager")
+    (description
+     "This extension of NetworkManager allows it to take care of connections
+to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
+Cisco's AnyConnect SSL VPN.")
+    (license license:gpl2+)
+    (properties `((upstream-name . "NetworkManager-openconnect")
+
+                  ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
+                  ;; file refers to account "nm-openconnect".  Specify it here
+                  ;; so that 'network-manager-service-type' creates it.
+                  (user-accounts . ("nm-openconnect"))))))
+
 (define-public mobile-broadband-provider-info
   (package
     (name "mobile-broadband-provider-info")
@@ -5515,18 +5658,21 @@ to virtual private networks (VPNs) via OpenVPN.")
 (define-public network-manager-applet
   (package
     (name "network-manager-applet")
-    (version "1.8.18")
+    (version "1.8.24")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/network-manager-applet/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "network-manager-applet-" version ".tar.xz"))
               (sha256
                (base32
-                "0y31g0lxr93370xi74hbpvcy9m81n5wdkdhq8xy2nqp0y4219p13"))))
+                "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t))
+     '(#:configure-flags
+       ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
+       (list "-Dlibnm_gtk=true")
+       #:glib-or-gtk? #t))
     (native-inputs
      `(("intltool" ,intltool)
        ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
@@ -5787,15 +5933,15 @@ providing graphical log-ins and managing local and remote displays.")
 (define-public libgtop
   (package
     (name "libgtop")
-    (version "2.38.0")
+    (version "2.40.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libgtop/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libgtop-" version ".tar.xz"))
               (sha256
                (base32
-                "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g"))))
+                "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gobject-introspection" ,gobject-introspection)
@@ -5858,13 +6004,15 @@ devices using the GNOME desktop.")
                (base32
                 "0gih1cmqbv803kp30704sllghb0impa0mmv3j8pndfg4zr2mnq9r"))
               (patches
-               (search-patches
-                "gnome-control-center-use-udisks-to-get-disk-size.patch"))))
+               (search-patches "gnome-control-center-udisks.patch"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
        #:configure-flags
-       (list "-Dcheese=false")
+       (list "-Dcheese=false"
+             (string-append "-Dgnome_session_libexecdir="
+                            (assoc-ref %build-inputs "gnome-session")
+                            "/libexec"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
@@ -5872,7 +6020,8 @@ devices using the GNOME desktop.")
              (let ((libc   (assoc-ref inputs "libc"))
                    (tzdata (assoc-ref inputs "tzdata"))
                    (libgnomekbd (assoc-ref inputs "libgnomekbd"))
-                   (nm-applet   (assoc-ref inputs "network-manager-applet")))
+                   (nm-applet   (assoc-ref inputs "network-manager-applet"))
+                   (gnome-desktop (assoc-ref inputs "gnome-desktop")))
                (substitute* "panels/datetime/tz.h"
                  (("/usr/share/zoneinfo/zone.tab")
                   (string-append tzdata "/share/zoneinfo/zone.tab")))
@@ -5892,6 +6041,10 @@ devices using the GNOME desktop.")
                (substitute* '("panels/user-accounts/run-passwd.c")
                  (("/usr/bin/passwd")
                   "/run/setuid-programs/passwd"))
+               (substitute* "panels/info/cc-info-overview-panel.c"
+                 (("DATADIR \"/gnome/gnome-version.xml\"")
+                  (string-append "\"" gnome-desktop
+                                 "/share/gnome/gnome-version.xml\"")))
                #t))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
@@ -5911,6 +6064,7 @@ devices using the GNOME desktop.")
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-online-accounts" ,gnome-online-accounts)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("grilo" ,grilo)
        ("ibus" ,ibus)
@@ -6158,8 +6312,7 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
     (propagated-inputs
      `(("libarchive" ,libarchive)))  ; XXX document why
     (inputs
-     `(("gtk+" ,gtk+)
-       ("nettle" ,nettle))) ; XXX: required by libarchive.pc
+     `(("gtk+" ,gtk+)))
     (synopsis "Archives integration support for GNOME")
     (home-page "https://git.gnome.org/browse/gnome-autoar/")
     (description
@@ -6173,9 +6326,9 @@ easy, safe, and automatic.")
     (version "2.0.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/tracker/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "tracker-" version ".tar.xz"))
               (sha256
                (base32
                 "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
@@ -6227,7 +6380,6 @@ easy, safe, and automatic.")
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("sqlite" ,sqlite)
-       ("nettle" ,nettle)  ; XXX why is this needed?
        ("python" ,python)
        ("poppler" ,poppler)
        ("libgsf" ,libgsf)
@@ -6296,7 +6448,6 @@ shared object databases, search tools and indexing.")
        ("gnome-autoar" ,gnome-autoar)
        ("libseccomp" ,libseccomp)
        ("libselinux" ,libselinux)
-       ("nettle" ,nettle) ; XXX required by libarchive.pc via gnome-autoar
        ("tracker" ,tracker)
        ;; XXX: gtk+ is required by libnautilus-extension.pc
        ;;
@@ -6381,7 +6532,7 @@ can add your own files to the collection.")
 (define-public gnome-screenshot
   (package
     (name "gnome-screenshot")
-    (version "3.26.0")
+    (version "3.30.0")
     (source
      (origin
        (method url-fetch)
@@ -6390,7 +6541,7 @@ can add your own files to the collection.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1fy8fjl29i3xhj8caik03d3za06x96xgkk8r4fwz88iqbmci3g0v"))))
+         "06dx3svxq6sar4913mrz5lzb7hmc66wck138vmyxj8x8iv1iw0w8"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@ -6404,7 +6555,7 @@ can add your own files to the collection.")
        ("libcanberra" ,libcanberra)
        ("libx11" ,libx11)
        ("libxext" ,libxext)))
-    (home-page "https://git.gnome.org/browse/gnome-screenshot")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
     (synopsis "Take pictures of your screen")
     (description
      "GNOME Screenshot is a utility used for taking screenshots of the entire
@@ -6415,7 +6566,7 @@ beautifying border effects.")
 (define-public dconf-editor
   (package
     (name "dconf-editor")
-    (version "3.28.0")
+    (version "3.30.2")
     (source
      (origin
        (method url-fetch)
@@ -6424,8 +6575,19 @@ beautifying border effects.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5"))))
+         "06f736spn20s7qjsz00xw44v8r8bjhyrz1v3bix6v416jc5jp6ia"))))
     (build-system meson-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'configure 'set-glib-minimum-version
+                    (lambda _
+                      ;; Change the minimum required GLib version so that
+                      ;; 'valac' is passed '--target-glib 2.60.0'; failing to
+                      ;; do that, it complains that "55" is not an even
+                      ;; number.  See <https://bugs.gnu.org/37503>.
+                      (substitute* "editor/meson.build"
+                        (("2\\.55\\.1") "2.60.0"))
+                      #t)))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
        ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
@@ -6651,7 +6813,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
 (define-public gnome-clocks
   (package
     (name "gnome-clocks")
-    (version "3.28.0")
+    (version "3.30.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6659,7 +6821,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl"))))
+                "009fr6zwv37wryi0c0syi4i7pxpdbn3gliws68l99cjsbn2qd6pc"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t))
@@ -6689,7 +6851,7 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
 (define-public gnome-calendar
   (package
     (name "gnome-calendar")
-    (version "3.28.2")
+    (version "3.30.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6697,7 +6859,7 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw"))))
+                "1avi7a29y8d8kzwslp51nwy6s692alms7917454j0xpfc6hnw62s"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -6878,7 +7040,7 @@ GNOME Shell appearance and extension, etc.")
 (define-public gnome-shell-extensions
   (package
     (name "gnome-shell-extensions")
-    (version "3.28.1")
+    (version "3.30.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6886,7 +7048,7 @@ GNOME Shell appearance and extension, etc.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9"))))
+                "1grxn4f5x754r172wmnf0h0xpy69afmj359zsj1rwgqlzw4i4c5p"))))
     (build-system meson-build-system)
     (arguments
      '(#:configure-flags '("-Dextension_set=all")))
@@ -6937,7 +7099,7 @@ dark elements.  It supports GNOME, Unity, Xfce, and Openbox.")
 (define-public arc-theme
   (package
     (name "arc-theme")
-    (version "20181022")
+    (version "20190917")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6946,7 +7108,7 @@ dark elements.  It supports GNOME, Unity, Xfce, and Openbox.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08951dk1irfadwpr3p323a4fprmxg53rk2r2niwq3v62ryhi3663"))))
+                "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -7104,9 +7266,9 @@ compiled.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://gnome/sources/" name "/"
+                    "mirror://gnome/sources/gfbgraph/"
                     (version-major+minor version) "/"
-                    name "-" version ".tar.xz"))
+                    "gfbgraph-" version ".tar.xz"))
               (sha256
                (base32
                 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
@@ -7136,9 +7298,9 @@ GLib/GObject code.")
     (version "3.26.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libgnomekbd/"
                                   (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
+                                  "libgnomekbd-" version ".tar.xz"))
               (sha256
                (base32
                 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
@@ -7457,7 +7619,7 @@ accessibility infrastructure.")
 (define-public orca
   (package
     (name "orca")
-    (version "3.28.1")
+    (version "3.30.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -7466,7 +7628,7 @@ accessibility infrastructure.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g"))))
+                "17asibc46i5gr2fw04jvvdi85zzmxwlnhyq7r6cr3m5prrdr8a53"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases
@@ -7519,7 +7681,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
 (define-public gspell
   (package
     (name "gspell")
-    (version "1.8.1")
+    (version "1.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -7527,7 +7689,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1rdv873ixhwr15jwgc2z6k6y0hj353fqnwsy7zkh0c30qwiiv6l1"))
+                "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
               (patches (search-patches "gspell-dash-test.patch"))))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -7622,16 +7784,15 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
 (define-public lollypop
   (package
     (name "lollypop")
-    (version "1.1.3.1")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
-                           "5a7cd7c72b6d83ae08d0c54c4691f9df/"
-                           name "-" version ".tar.xz"))
+                           "aa4fbd92bf338296c28e54710271ccab/"
+                           "lollypop-" version ".tar.xz"))
        (sha256
-        (base32
-         "1r5wn0bja9psz6nr1rcaysdkkwz84rbyzpdfw66cxa6wiy52pkjm"))))
+        (base32 "1wz5fna24qr3v7h29ijwhdxza85r9srz9xsqz4f4df3p5f8rfyql"))))
     (build-system meson-build-system)
     (arguments
      `(#:imported-modules ((guix build python-build-system)
@@ -7647,8 +7808,10 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
                (wrap-program (string-append out "/bin/lollypop")
                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
              #t))
-         (add-after 'install 'wrap
-           (@@ (guix build python-build-system) wrap)))))
+         (add-after 'install 'wrap-python
+           (@@ (guix build python-build-system) wrap))
+         (add-after 'install 'wrap-glib-or-gtk
+           (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
     (native-inputs
      `(("intltool" ,intltool)
        ("itstool" ,itstool)
@@ -7657,6 +7820,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gst-plugins-base" ,gst-plugins-base)
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
@@ -7666,7 +7830,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
        ("python-gst" ,python-gst)
        ("python-pil" ,python-pillow)
        ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
+       ("python-pygobject" ,python-pygobject-3.34)
        ("python-pylast" ,python-pylast)
        ("totem-pl-parser" ,totem-pl-parser)
        ("webkitgtk" ,webkitgtk)))
@@ -7714,7 +7878,7 @@ photo-booth-like software, such as Cheese.")
 (define-public cheese
   (package
     (name "cheese")
-    (version "3.28.0")
+    (version "3.30.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -7722,7 +7886,7 @@ photo-booth-like software, such as Cheese.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw"))))
+                "0zz2bgjaf2lsmfs3zn24925vbjb0rycr39i288brlbzixrpcyljr"))))
     (arguments
      ;; Tests require GDK.
      `(#:tests? #f
@@ -7874,7 +8038,7 @@ configurable file renaming. ")
 (define-public workrave
   (package
     (name "workrave")
-    (version "1.10.23")
+    (version "1.10.34")
     (source
      (origin
        (method git-fetch)
@@ -7885,20 +8049,20 @@ configurable file renaming. ")
                                          version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw"))))
+        (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
     (build-system glib-or-gtk-build-system)
-    (propagated-inputs `(("glib" ,glib)
-                         ("gtk+" ,gtk+)
-                         ("gdk-pixbuf" ,gdk-pixbuf)
-                         ("gtkmm" ,gtkmm)
-                         ("glibmm" ,glibmm)
-                         ("libx11" ,libx11)
-                         ("libxtst" ,libxtst)
-                         ("dconf" ,dconf)
-                         ("libice" ,libice)))
-    (inputs `(("libsm" ,libsm)
-              ("python-cheetah" ,python2-cheetah)))
-    (native-inputs `(("glib" ,glib "bin")
+    (inputs `(("glib" ,glib)
+              ("gtk+" ,gtk+)
+              ("gdk-pixbuf" ,gdk-pixbuf)
+              ("gtkmm" ,gtkmm)
+              ("glibmm" ,glibmm)
+              ("libx11" ,libx11)
+              ("libxtst" ,libxtst)
+              ("dconf" ,dconf)
+              ("libice" ,libice)
+              ("libsm" ,libsm)
+              ("libxscrnsaver" ,libxscrnsaver)))
+    (native-inputs `(("boost" ,boost)
                      ("pkg-config" ,pkg-config)
                      ("gettext" ,gnu-gettext)
                      ("autoconf" ,autoconf)
@@ -7906,9 +8070,9 @@ configurable file renaming. ")
                      ("automake" ,automake)
                      ("libtool" ,libtool)
                      ("intltool" ,intltool)
-                     ("libxscrnsaver" ,libxscrnsaver)
                      ("gobject-introspection" ,gobject-introspection)
-                     ("python2" ,python-2)))
+                     ("python3" ,python-3)
+                     ("python-jinja2" ,python-jinja2)))
     (synopsis "Tool to help prevent repetitive strain injury (RSI)")
     (description
      "Workrave is a program that assists in the recovery and prevention of
@@ -7949,7 +8113,7 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
 (define-public libdazzle
   (package
     (name "libdazzle")
-    (version "3.30.2")
+    (version "3.33.90")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libdazzle/"
@@ -7957,17 +8121,11 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
                                   "libdazzle-" version ".tar.xz"))
               (sha256
                (base32
-                "1m9n1gcxndly24rjkxzvmx02a2rkb6ad4cy7p6ncanm1kyp0wxvq"))))
+                "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-test
-           (lambda _
-             ;; Disable failing test.
-             (substitute* "tests/meson.build"
-               (("test\\('test-application") "#"))
-             #t))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
@@ -7996,7 +8154,7 @@ generic enough to work for everyone.")
 (define-public evolution
   (package
     (name "evolution")
-    (version "3.28.1")
+    (version "3.30.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/evolution/"
@@ -8004,15 +8162,36 @@ generic enough to work for everyone.")
                                   "evolution-" version ".tar.xz"))
               (sha256
                (base32
-                "0sdv5lg2vlz5f4raymz9d8a5jq4j18vbqyigaip6508p3bjnfj8l"))))
+                "1hhxj3rh921pp3l3c5k33bdypcas1p66krzs65k1qn82c5fpgl2h"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
+     `(#:imported-modules (,@%cmake-build-system-modules
+                           (guix build glib-or-gtk-build-system))
+       #:modules ((guix build cmake-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+       #:configure-flags
        (list "-DENABLE_PST_IMPORT=OFF"    ; libpst is not packaged
-             "-DENABLE_LIBCRYPTUI=OFF"))) ; libcryptui hasn't seen a release
+             "-DENABLE_LIBCRYPTUI=OFF")   ; libcryptui hasn't seen a release
                                           ; in four years and cannot be built.
+       #:phases
+       (modify-phases %standard-phases
+         ;; The build system attempts to install user interface modules to the
+         ;; output directory of the "evolution-data-server" package.  This
+         ;; change redirects that change.
+         (add-after 'unpack 'patch-ui-module-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "src/modules/alarm-notify/CMakeLists.txt"
+               (("\\$\\{edsuimoduledir\\}")
+                (string-append (assoc-ref outputs "out")
+                               "/lib/evolution-data-server/ui-modules")))
+             #t))
+         (add-after 'install 'glib-or-gtk-compile-schemas
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+         (add-after 'install 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib" ,glib "bin")               ; glib-mkenums
+     `(("glib" ,glib "bin")             ; glib-mkenums
        ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
        ("itstool" ,itstool)))
@@ -8020,6 +8199,7 @@ generic enough to work for everyone.")
      `(("enchant" ,enchant)
        ("evolution-data-server" ,evolution-data-server) ; must be the same version
        ("gcr" ,gcr)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gnome-autoar" ,gnome-autoar)
        ("gnome-desktop" ,gnome-desktop)
        ("gtkspell3" ,gtkspell3)
@@ -8046,7 +8226,7 @@ functionality.")
 (define-public gthumb
   (package
     (name "gthumb")
-    (version "3.8.0")
+    (version "3.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gthumb/"
@@ -8054,7 +8234,7 @@ functionality.")
                                   "gthumb-" version ".tar.xz"))
               (sha256
                (base32
-                "1l2s1facq1r6yvqjqc34aqfzlvb3nhkhn79xisxbbdlgrrxdq52f"))))
+                "184zn79w4s9y1zy42ar31p3jsg8rmkxy8k6iry51nz8aizbcs7jb"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -8111,12 +8291,18 @@ advanced image management tool")
     (inputs
      `(("cairo" ,cairo)
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("python2-pycairo" ,python2-pycairo)
        ("python2-pygobject" ,python2-pygobject)
        ("python2-psutil" ,python2-psutil)
        ("vte" ,vte)))
     (arguments
-     `(#:python ,python-2                          ;Python 3 not supported
+     `(#:python ,python-2                          ; Python 3 isn't supported
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules ((guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
        #:phases
        (modify-phases %standard-phases
          (add-after
@@ -8127,10 +8313,193 @@ advanced image management tool")
               (wrap-program prog
                 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
-              #t))))))
+              #t)))
+         (add-after 'wrap-program 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (home-page "https://gnometerminator.blogspot.com/")
     (synopsis "Store and run multiple GNOME terminals in one window")
     (description
      "Terminator allows you to run multiple GNOME terminals in a grid and
 +tabs, and it supports drag and drop re-ordering of terminals.")
     (license license:gpl2)))
+
+(define-public libhandy
+  (package
+    (name "libhandy")
+    (version "0.0.11")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://source.puri.sm/Librem5/libhandy")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0622zp5wrvn5bvgardijxd11y76g1i54fs32y03dw9nrar7i6vb0"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-Dglade_catalog=disabled"
+         "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
+       ("vala" ,vala)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("gettext" ,gettext-minimal)
+       ("xorg-server" ,xorg-server)
+
+       ;; Test suite dependencies.
+       ("hicolor-icon-theme" ,hicolor-icon-theme)))
+    (home-page "https://source.puri.sm/Librem5/libhandy")
+    (synopsis "Library full of GTK+ widgets for mobile phones")
+    (description "The aim of the handy library is to help with developing user
+intefaces for mobile devices using GTK+.")
+    (license license:lgpl2.1+)))
+
+(define-public libgit2-glib
+  (package
+    (name "libgit2-glib")
+    (version "0.28.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ;; For glib-mkenums
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("libssh2" ,libssh2)
+       ("pkg-config" ,pkg-config)
+       ("python-pygobject" ,python-pygobject)
+       ("python-wrapper" ,python-wrapper)
+       ("vala" ,vala)))
+    (inputs
+     `(("glib" ,glib)
+       ("libgit2" ,libgit2)))
+    (synopsis "GLib wrapper around the libgit2 Git access library")
+    (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
+access library.  It only implements the core plumbing functions, not really the
+higher level porcelain stuff.")
+    (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
+    (license license:gpl2+)))
+
+(define-public gitg
+  (package
+    (name "gitg")
+    (version "3.32.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-post-install-partially
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("'python'") ; there are no python sources to compile
+                (string-append "'" (which "true") "'"))
+               (("gtk-update-icon-cache") (which "true")))
+             #t))
+         (add-after 'unpack 'fix-test-sources
+           (lambda _
+             (substitute* "tests/libgitg/test-commit.vala"
+               (("/bin/bash") (which "bash")))
+             #t))
+         (add-after 'glib-or-gtk-wrap 'wrap-typelib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/gitg")))
+               (wrap-program prog
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
+    (inputs
+     `(("glib" ,glib)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("gtkspell3" ,gtkspell3)
+       ("gtksourceview" ,gtksourceview-3)
+       ("json-glib" ,json-glib)
+       ("libdazzle" ,libdazzle)
+       ("libgee" ,libgee)
+       ("libgit2" ,libgit2) ; propagated by libgit2-glib
+       ("libgit2-glib" ,libgit2-glib)
+       ("libpeas" ,libpeas)
+       ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (synopsis "Graphical user interface for git")
+    (description
+     "gitg is a graphical user interface for git.  It aims at being a small,
+fast and convenient tool to visualize the history of git repositories.
+Besides visualization, gitg also provides several utilities to manage your
+repository and commit your work.")
+    (home-page "https://wiki.gnome.org/Apps/Gitg")
+    (license license:gpl2+)))
+
+(define-public gnome-mahjongg
+  (package
+    (name "gnome-mahjongg")
+    (version "3.35.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))
+    (native-inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin") ;; For glib-compile-resources
+       ("gtk+" ,gtk+ "bin")     ;; For gtk-update-icon-cache
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("librsvg" ,librsvg)))
+    (synopsis "Mahjongg tile-matching game")
+    (description "GNOME Mahjongg is a game based on the classic Chinese
+tile-matching game Mahjong.  It features multiple board layouts, tile themes,
+and a high score table.")
+    (home-page "https://wiki.gnome.org/Apps/Mahjongg")
+    (license license:gpl2+)))