summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk11
-rw-r--r--gnu/packages/apr.scm4
-rw-r--r--gnu/packages/base.scm6
-rw-r--r--gnu/packages/build-tools.scm4
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/cups.scm14
-rw-r--r--gnu/packages/databases.scm9
-rw-r--r--gnu/packages/documentation.scm4
-rw-r--r--gnu/packages/elf.scm4
-rw-r--r--gnu/packages/fontutils.scm61
-rw-r--r--gnu/packages/freedesktop.scm29
-rw-r--r--gnu/packages/gdb.scm4
-rw-r--r--gnu/packages/geo.scm4
-rw-r--r--gnu/packages/gl.scm56
-rw-r--r--gnu/packages/glib.scm4
-rw-r--r--gnu/packages/gnome.scm886
-rw-r--r--gnu/packages/gtk.scm124
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/libffi.scm45
-rw-r--r--gnu/packages/linux.scm25
-rw-r--r--gnu/packages/maths.scm12
-rw-r--r--gnu/packages/networking.scm3
-rw-r--r--gnu/packages/ninja.scm4
-rw-r--r--gnu/packages/nss.scm10
-rw-r--r--gnu/packages/patches/at-spi2-core-meson-compat.patch18
-rw-r--r--gnu/packages/patches/doxygen-test.patch8
-rw-r--r--gnu/packages/patches/gcr-disable-failing-tests.patch126
-rw-r--r--gnu/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch31
-rw-r--r--gnu/packages/patches/gnome-todo-libical-compat.patch17
-rw-r--r--gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch28
-rw-r--r--gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch15
-rw-r--r--gnu/packages/patches/texlive-bin-CVE-2018-17407.patch249
-rw-r--r--gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch188
-rw-r--r--gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch31
-rw-r--r--gnu/packages/patches/totem-meson-compat.patch14
-rw-r--r--gnu/packages/patches/valgrind-glibc-compat.patch18
-rw-r--r--gnu/packages/pciutils.scm4
-rw-r--r--gnu/packages/pdf.scm4
-rw-r--r--gnu/packages/python-web.scm15
-rw-r--r--gnu/packages/python-xyz.scm11
-rw-r--r--gnu/packages/rust.scm4
-rw-r--r--gnu/packages/sdl.scm9
-rw-r--r--gnu/packages/tex.scm36
-rw-r--r--gnu/packages/valgrind.scm13
-rw-r--r--gnu/packages/video.scm13
-rw-r--r--gnu/packages/vulkan.scm42
-rw-r--r--gnu/packages/xdisorg.scm37
-rw-r--r--gnu/packages/xiph.scm12
-rw-r--r--gnu/packages/xorg.scm45
-rw-r--r--guix/build/ruby-build-system.scm55
50 files changed, 1243 insertions, 1131 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index bab2a9bbc2..cc273b029b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -663,6 +663,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
   %D%/packages/patches/aria2-CVE-2019-3500.patch		\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
+  %D%/packages/patches/at-spi2-core-meson-compat.patch		\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
   %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
   %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
@@ -811,8 +812,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-6-source-date-epoch-1.patch		\
   %D%/packages/patches/gcc-6-source-date-epoch-2.patch		\
   %D%/packages/patches/gcc-8-strmov-store-file-names.patch	\
-  %D%/packages/patches/gcr-disable-failing-tests.patch		\
-  %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch	\
   %D%/packages/patches/gd-CVE-2018-5711.patch			\
   %D%/packages/patches/gd-CVE-2018-1000222.patch		\
   %D%/packages/patches/gd-CVE-2019-6977.patch			\
@@ -857,7 +856,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnome-shell-theme.patch			\
-  %D%/packages/patches/gnome-todo-libical-compat.patch		\
   %D%/packages/patches/gnome-tweak-tool-search-paths.patch	\
   %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \
   %D%/packages/patches/gnutls-skip-trust-store-test.patch	\
@@ -887,7 +885,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtk2-theme-paths.patch			\
-  %D%/packages/patches/gtk3-fix-deprecation-macro-use.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
@@ -1077,6 +1074,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mozjs38-tracelogger.patch		\
   %D%/packages/patches/mozjs38-version-detection.patch		\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
+  %D%/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch \
   %D%/packages/patches/mumble-1.2.19-abs.patch			\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
@@ -1291,9 +1289,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/teeworlds-use-latest-wavpack.patch	\
   %D%/packages/patches/texinfo-perl-compat.patch		\
   %D%/packages/patches/texinfo-5-perl-compat.patch		\
+  %D%/packages/patches/texlive-bin-CVE-2018-17407.patch		\
   %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch	\
-  %D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch	\
-  %D%/packages/patches/texlive-bin-xetex-poppler-compat.patch	\
   %D%/packages/patches/telegram-purple-adjust-test.patch	\
   %D%/packages/patches/texi2html-document-encoding.patch	\
   %D%/packages/patches/texi2html-i18n.patch			\
@@ -1306,6 +1303,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/tk-find-library.patch			\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
+  %D%/packages/patches/totem-meson-compat.patch			\
   %D%/packages/patches/totem-meson-easy-codec.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-include-qregexpvalidator.patch	\
@@ -1327,7 +1325,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/upower-builddir.patch			\
   %D%/packages/patches/upx-fix-CVE-2017-15056.patch		\
   %D%/packages/patches/valgrind-enable-arm.patch		\
-  %D%/packages/patches/valgrind-glibc-compat.patch		\
   %D%/packages/patches/vboot-utils-fix-format-load-address.patch	\
   %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch	\
   %D%/packages/patches/vboot-utils-skip-test-workbuf.patch	\
diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm
index 8ccec08fa2..1a4a1c6304 100644
--- a/gnu/packages/apr.scm
+++ b/gnu/packages/apr.scm
@@ -30,14 +30,14 @@
 (define-public apr
   (package
     (name "apr")
-    (version "1.6.3")
+    (version "1.6.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/apr/apr-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0wiik6amxn6lkc55fv9yz5i3kbxnqbp36alrzabx1avsdp8hc7qk"))
+               "01d1n1ql66bxsjx0wyzazmkqdqdmr0is6a7lwyy5kzy4z7yajz56"))
              (patches
               (search-patches "apr-skip-getservbyname-test.patch"))
              (patch-flags '("-p0"))))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 91f8b03c83..e33e3c52c8 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1157,7 +1157,7 @@ command.")
 (define-public tzdata
   (package
     (name "tzdata")
-    (version "2018i")
+    (version "2019a")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1165,7 +1165,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42"))))
+               "0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -1215,7 +1215,7 @@ command.")
                                 version ".tar.gz"))
                           (sha256
                            (base32
-                            "1p1jxlnryaxknj0l768h3dmlk2jpqz5n5d24w9c9vyx6dj3xpb5a"))))))
+                            "1x9z8fpgnhzlsnps0hamb54ymaskjab7ys9m4i4gpk9hpiig2fc7"))))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index daf55d84df..71b1756d3b 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -160,7 +160,7 @@ files and generates build instructions for the Ninja build system.")
 (define-public meson
   (package
     (name "meson")
-    (version "0.49.0")
+    (version "0.50.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mesonbuild/meson/"
@@ -168,7 +168,7 @@ files and generates build instructions for the Ninja build system.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0l8m1v7cl5ybm7psfqmmdqbvmnsbb1qhb8ni3hwap3i0mk29a0zv"))))
+                "07q2wz23wjfk8z66mli1cc9as0ycjp5f39fd4awny82qv8nw86ra"))))
     (build-system python-build-system)
     (arguments
      `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index bb66d27026..ae3db7b10b 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -76,7 +76,7 @@
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.41")
+    (version "3.43")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -87,7 +87,7 @@
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0bbif42fzz5gk451sv3yphdrl7m4p6zgk5jk0307j06xs3sihbmb"))))
+                "1jp27w4w9nj5pkzrbc1zqj6pa09h2yy7vhzyx5fvg1q86fvw22zk"))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index b77fb20781..5b90d405ea 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -57,7 +57,7 @@
 (define-public cups-filters
   (package
     (name "cups-filters")
-    (version "1.21.5")
+    (version "1.22.3")
     (source(origin
               (method url-fetch)
               (uri
@@ -65,7 +65,7 @@
                               "cups-filters-" version ".tar.xz"))
               (sha256
                (base32
-                "0azq9j7kqy18g6vgmvrbw8i4mcqdp3cbgh7q79x1b8p92w4si6rq"))
+                "11vilv80l3q7hz8vyhclvjcnlgk93r7p9dvg634186iddjzls0j3"))
               (modules '((guix build utils)))
               (snippet
                ;; install backends, banners and filters to cups-filters output
@@ -123,6 +123,12 @@
                           (("/usr/local/lib/cups/filter")
                            (string-append out "/lib/cups/filter")))
                         #t)))
+                  (add-after 'unpack 'patch-for-poppler
+                    (lambda _
+                      (substitute* "filter/pdf.cxx"
+                        (("GooString \\*field_name;" m)
+                         (string-append "const " m)))
+                      #t))
                   (add-after 'install 'wrap-filters
                     (lambda* (#:key inputs outputs #:allow-other-keys)
                       ;; Some filters expect to find 'gs' in $PATH.  We cannot
@@ -180,7 +186,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
 (define-public cups-minimal
   (package
     (name "cups-minimal")
-    (version "2.2.10")
+    (version "2.2.11")
     (source
      (origin
        (method url-fetch)
@@ -188,7 +194,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
                            version "/cups-" version "-source.tar.gz"))
        (sha256
         (base32
-         "1fq52aw1mini3ld2czv5gg37wbbvh4n7yc7wzzxvbs3zpfrv5j3p"))))
+         "0v5p10lyv8wv48s8ghkhjmdrxg6iwj8hn36v1ilkz46n7y0i107m"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 1fc6ababe4..11ca214f7c 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -483,7 +483,7 @@ Language.")
 (define-public mariadb
   (package
     (name "mariadb")
-    (version "10.1.37")
+    (version "10.1.38")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.mariadb.org/f/"
@@ -491,7 +491,7 @@ Language.")
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ijdmdn9mcciwv361zfmja6b1h6qpbdqgrnnq6kkdapplyq1dmcc"))
+                "0zq77w3ff9q781fn8cv46vy1v4ggb8vjarjvk51k653x4gyg9wfa"))
               (patches (search-patches "mariadb-client-test-32bit.patch"))
               (modules '((guix build utils)))
               (snippet
@@ -570,7 +570,7 @@ Language.")
                       "roles.acl_statistics"
 
                       ;; This file contains a time bomb which makes it fail after
-                      ;; 2019-01-01.  See <https://bugs.gnu.org/34351> for details.
+                      ;; 2030-12-31.  See <https://bugs.gnu.org/34351> for details.
                       "main.mysqldump"
 
                       ;; XXX: Fails sporadically.
@@ -684,7 +684,7 @@ as a drop-in replacement of MySQL.")
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-uuid=e2fs")
+     `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-/bin/sh
@@ -703,6 +703,7 @@ as a drop-in replacement of MySQL.")
     (inputs
      `(("readline" ,readline)
        ("libuuid" ,util-linux)
+       ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (home-page "https://www.postgresql.org/")
     (synopsis "Powerful object-relational database system")
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 9d4d5916fb..6ce7827391 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -123,7 +123,7 @@ markup) can be customized and extended by the user.")
 (define-public doxygen
   (package
     (name "doxygen")
-    (version "1.8.14")
+    (version "1.8.15")
     (home-page "http://www.doxygen.nl/")
     (source (origin
              (method url-fetch)
@@ -134,7 +134,7 @@ markup) can be customized and extended by the user.")
                                        ".src.tar.gz")))
              (sha256
               (base32
-               "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi"))
+               "0p94b4yb6bk2dxzs5kyl82xxgq2qakgbx5yy3ssbbadncb20x75x"))
              (patches (search-patches "doxygen-test.patch"))))
     (build-system cmake-build-system)
     (native-inputs
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index ace31ec663..1f8263b9c5 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -41,14 +41,14 @@
 (define-public elfutils
   (package
     (name "elfutils")
-    (version "0.173")
+    (version "0.176")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://sourceware.org/elfutils/ftp/"
                                   version "/elfutils-" version ".tar.bz2"))
               (sha256
                (base32
-                "1zq0l12k64hrbjmdjc4llrad96c25i427hpma1id9nk87w9qqvdp"))
+                "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb"))
               (patches (search-patches "elfutils-tests-ptrace.patch"))))
     (build-system gnu-build-system)
 
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 8f8a300644..1982d0bf4b 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -388,29 +388,24 @@ X11-system or any other graphical user interface.")
 
 (define-public teckit
   (package
-   (name "teckit")
-   (version "2.5.8")
-   (source
-    (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://github.com/silnrsi/teckit")
-            (commit (string-append "v" version))))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32 "1jmsdmfz7bgq1n5qsqgpq1b1n77f1hll0czfw5wkxz4knzb14ndn"))))
-   (build-system gnu-build-system)
-   (inputs
-    `(("zlib" ,zlib)
-      ("expat" ,expat)))
-   (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)
-      ("libtool" ,libtool)
-      ("perl" ,perl))) ; for the tests
-   (synopsis "Toolkit for encoding conversions")
-   (description
-    "TECkit is a low-level toolkit intended to be used by other applications
+    (name "teckit")
+    (version "2.5.9")                   ;signed by key 0xC9183BEA0288CDEE
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/silnrsi/teckit/releases/"
+                           "download/v" version "/teckit-" version ".tar.gz"))
+       (sha256
+        (base32 "0gbxyip4wdibirdg2pvzayzyy927vxyd6dfyfiflx8zg88qzn8v8"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("zlib" ,zlib)
+       ("expat" ,expat)))
+    (native-inputs
+     `(("perl" ,perl)))                 ;for the tests
+    (synopsis "Toolkit for encoding conversions")
+    (description
+     "TECkit is a low-level toolkit intended to be used by other applications
 that need to perform encoding conversions (e.g., when importing legacy data
 into a Unicode-based application).  The primary component of the TECkit
 package is therefore a library that performs conversions; this is the
@@ -427,8 +422,8 @@ TECkit compiler.  However, it is not intended that these tools will be the
 primary means by which end users perform conversions, and they have not
 been designed, tested, and debugged to the extent that general-purpose
 applications should be.")
-   (license license:lgpl2.1+)
-   (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))
+    (license license:lgpl2.1+)
+    (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))
 
 (define-public graphite2
   (package
@@ -534,7 +529,7 @@ smooth contours with constant curvature at the spline joins.")
 (define-public libuninameslist
   (package
     (name "libuninameslist")
-    (version "20180701")
+    (version "20190305")
     (home-page "https://github.com/fontforge/libuninameslist")
     (source
      (origin
@@ -543,7 +538,7 @@ smooth contours with constant curvature at the spline joins.")
                            "/libuninameslist-dist-" version ".tar.gz"))
        (sha256
         (base32
-         "141wh2f5jsaw84mgw6vf2c9hd2wm957a2hpnicyqjbc7pk89gvca"))))
+         "1rwd2bgcyvign9agyjsr3v2fr9j1cg2wi6g0z2wwg1az32scknwq"))))
     (build-system gnu-build-system)
     (synopsis "Unicode names and annotation list")
     (description
@@ -560,14 +555,14 @@ definitions.")
 (define-public fontforge
   (package
    (name "fontforge")
-   (version "20170731")
+   (version "20190317")
    (source (origin
             (method url-fetch)
             (uri (string-append
                   "https://github.com/fontforge/fontforge/releases/download/"
-                  version "/fontforge-dist-" version ".tar.xz"))
+                  version "/fontforge-" version ".tar.gz"))
             (sha256 (base32
-                     "08l8h3yvk4v7652jvmd3ls7nf5miybkx2fmkf1mpwwfixpxxw2l4"))))
+                     "1ddqbpc32cgbccdnv0lfw0qhj59hcqzb7616ph5lkvm91pnas4dp"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)))
@@ -614,11 +609,7 @@ definitions.")
                           "pango" "cairo" "fontconfig")))
                 ;; Checks for potrace program at runtime
                 `("PATH" ":" prefix (,potrace)))
-              #t))))
-
-      ;; Skip test 40 "FontForge .sfd file open check" to work around
-      ;; <https://github.com/fontforge/fontforge/issues/3246>.
-      #:make-flags '("TESTSUITEFLAGS=-k '!\\.sfd'")))
+              #t))))))
    (synopsis "Outline font editor")
    (description
     "FontForge allows you to create and modify postscript, truetype and
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e3cf88b2f8..2d6c36a3b9 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -149,31 +149,28 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "1.12.3")
+    (version "1.13.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   "libinput-" version ".tar.xz"))
               (sha256
                (base32
-                "0mg2zqbjcgj0aq7d9nwawvyhx43vakilahrc83hrfyif3a3gyrpj"))))
+                "0vb11fzd06xbagrnha2bbzmlfg04bbgb5w5rjrxrrz686mfwj9zb"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")))
     (native-inputs
      `(("check" ,check)
-       ("pkg-config" ,pkg-config)
-       ("valgrind" ,valgrind)))
-    (propagated-inputs
-     `(;; In Requires.private of libinput.pc.
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
        ("libevdev" ,libevdev)
        ("libudev" ,eudev)
        ("libwacom" ,libwacom)
        ("mtdev" ,mtdev)))
-    (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)))
     (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
     (synopsis "Input devices handling library")
     (description
@@ -184,9 +181,9 @@ other applications that need to directly deal with input devices.")
 (define-public libinput-minimal
   (package (inherit libinput)
     (name "libinput-minimal")
-    (inputs '())
-    (propagated-inputs
-     (alist-delete "libwacom" (package-propagated-inputs libinput)))
+    (inputs
+     (fold alist-delete (package-inputs libinput)
+           '("cairo" "glib" "gtk+" "libwacom")))
     (arguments
      (substitute-keyword-arguments (package-arguments libinput)
       ((#:configure-flags flags ''())
@@ -544,14 +541,14 @@ Python.")
 (define-public wayland
   (package
     (name "wayland")
-    (version "1.16.0")
+    (version "1.17.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wayland.freedesktop.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1xajhxad43izq9f7sbww1hlg42nayijy8xnp21kgpk09c6sw4wjf"))))
+                "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f))
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 74eb0f8994..e9df33e3fc 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -37,14 +37,14 @@
 (define-public gdb
   (package
     (name "gdb")
-    (version "8.2")
+    (version "8.2.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gdb/gdb-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0fbw6j4z7kmvywwgavn7w3knp860i5i9qnjffc5p52bwkji43963"))))
+               "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index c7026c4e96..4761a277ae 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -101,7 +101,7 @@ topology functions.")
 (define-public gnome-maps
   (package
     (name "gnome-maps")
-    (version "3.26.2")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -109,7 +109,7 @@ topology functions.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0l40l7m9dyphvasiq1jxrn6ivavs1xwzn0bzz2x1z7x73955q783"))))
+                "1yzi08a9316jplgsl2z0qzlqxhghyqcjhv0m6i94wcain4mxk1z7"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags ;; Ensure that geoclue is referred to by output.
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 57e65e29b5..7b4ce685f7 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -221,7 +221,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "18.3.1")
+    (version "18.3.5")
     (source
       (origin
         (method url-fetch)
@@ -233,10 +233,10 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "0qyw9dj2p9n91qzc4ylck2an7ibssjvzi2bjcpv2ajk851yq47sv"))
+          "0lvrfjaic7dhay9v52f9k3q5aac8xagfq3pnzjrl0cn65jlaw9s0"))
         (patches
          (search-patches "mesa-skip-disk-cache-test.patch"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (propagated-inputs
       `(;; The following are in the Requires.private field of gl.pc.
         ("libdrm" ,libdrm)
@@ -257,14 +257,17 @@ also known as DXTn or DXTC) for Mesa.")
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
             ((or "x86_64-linux" "i686-linux")
-             `(("llvm" ,llvm-6))) ;TODO: Change to LLVM in the next rebuild cycle.
+             `(("llvm" ,llvm)))
             (_
              `()))
         ("makedepend" ,makedepend)
         ("wayland" ,wayland)
         ("wayland-protocols" ,wayland-protocols)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
+      `(("bison" ,bison)
+        ("flex" ,flex)
+        ("gettext" ,gettext-minimal)
+        ("pkg-config" ,pkg-config)
         ("python" ,python)
         ("python-mako" ,python-mako)
         ("which" ,(@ (gnu packages base) which))))
@@ -273,47 +276,48 @@ also known as DXTn or DXTC) for Mesa.")
        '(,@(match (%current-system)
              ((or "armhf-linux" "aarch64-linux")
               ;; TODO: Fix svga driver for aarch64 and armhf.
-              '("--with-gallium-drivers=etnaviv,freedreno,imx,nouveau,pl111,r300,r600,swrast,tegra,v3d,vc4,virgl"))
+              '("-Dgallium-drivers=etnaviv,freedreno,imx,nouveau,pl111,r300,r600,swrast,tegra,v3d,vc4,virgl"))
              (_
-              '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
+              '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
          ;; Enable various optional features.  TODO: opencl requires libclc,
          ;; omx requires libomxil-bellagio
-         "--with-platforms=x11,drm,surfaceless,wayland"
-         "--enable-glx-tls"        ;Thread Local Storage, improves performance
-         ;; "--enable-opencl"
-         ;; "--enable-omx"
-         "--enable-osmesa"
-         "--enable-xa"
+         "-Dplatforms=x11,drm,surfaceless,wayland"
+         "-Dglx=dri"        ;Thread Local Storage, improves performance
+         ;; "-Dopencl=true"
+         ;; "-Domx=true"
+         "-Dosmesa=gallium"
+         "-Dgallium-xa=true"
+
          ;; features required by wayland
-         "--enable-gles2"
-         "--enable-gbm"
-         "--enable-shared-glapi"
+         "-Dgles2=true"
+         "-Dgbm=true"
+         "-Dshared-glapi=true"
 
          ;; Enable Vulkan on i686-linux and x86-64-linux.
          ,@(match (%current-system)
              ("x86_64-linux"
-              '("--with-vulkan-drivers=intel,radeon"))
+              '("-Dvulkan-drivers=intel,amd"))
              ;; TODO: Fix intel driver on i686-linux.
              ("i686-linux"
-              '("--with-vulkan-drivers=radeon"))
+              '("-Dvulkan-drivers=amd"))
              (_
-              '("")))
+              '("-Dvulkan-drivers=auto")))
 
          ;; Also enable the tests.
-         "--enable-gallium-tests"
+         "-Dbuild-tests=true"
 
          ;; on non-intel systems, drop i915 and i965
          ;; from the default dri drivers
          ,@(match (%current-system)
              ((or "x86_64-linux" "i686-linux")
-              '("--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast"
-                "--enable-llvm"))         ; default is x86/x86_64 only
+              '("-Ddri-drivers=i915,i965,nouveau,r200,r100"
+                "-Dllvm=true"))         ; default is x86/x86_64 only
              (_
-              '("--with-dri-drivers=nouveau,r200,radeon,swrast"))))
+              '("-Ddri-drivers=nouveau,r200,r100"))))
        #:modules ((ice-9 match)
                   (srfi srfi-1)
                   (guix build utils)
-                  (guix build gnu-build-system))
+                  (guix build meson-build-system))
        #:phases
        (modify-phases %standard-phases
          (add-after
@@ -323,7 +327,7 @@ also known as DXTn or DXTC) for Mesa.")
                (("/usr/bin/env python2") (which "python")))
              #t))
          (add-before
-           'build 'fix-dlopen-libnames
+           'configure 'fix-dlopen-libnames
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                ;; Remain agnostic to .so.X.Y.Z versions while doing
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 7755c590ad..98b227ca84 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -509,7 +509,7 @@ has an ease of use unmatched by other C++ callback libraries.")
 (define glibmm
   (package
     (name "glibmm")
-    (version "2.54.1")
+    (version "2.56.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/glibmm/"
@@ -517,7 +517,7 @@ has an ease of use unmatched by other C++ callback libraries.")
                                  "/glibmm-" version ".tar.xz"))
              (sha256
               (base32
-               "0jkapw18icz59cmlmsl00nwwz0wh291kb4hc9z9hxmq45drqrhkw"))))
+               "1abrkqhca5p8n6ly3vp1232rny03s7lrd8f8iz2m2m141nxgqx3f"))))
     (build-system gnu-build-system)
     (arguments
      `(;; XXX: Some tests uses C++14 features.  Remove this when the default
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 63062183ac..ff8e8ad2e0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages calendar)
@@ -129,6 +131,7 @@
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages selinux)
@@ -461,7 +464,7 @@ commonly used macros.")
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
-    (version "3.24.2")
+    (version "3.28.2")
     (source
      (origin
       (method url-fetch)
@@ -470,7 +473,7 @@ commonly used macros.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "0pkq5l1llw8gkjhfq6y58iyj6wac8dh1mc3rzjzn6nd7lrkdx8cg"))))
+        "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -496,6 +499,7 @@ commonly used macros.")
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
        ("iso-codes" ,iso-codes)
+       ("libseccomp" ,libseccomp)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
        ("libxkbfile" ,libxkbfile)
@@ -586,36 +590,43 @@ and keep up to date translations of documentation.")
 (define-public gcr
   (package
     (name "gcr")
-    (version "3.20.0")
+    (version "3.28.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0ydk9dzxx6snxza7j5ps8x932hbr3x1b8hhcaqjq4w4admi2qmwh"))
-             (patches
-              (search-patches "gcr-disable-failing-tests.patch"
-                              "gcr-fix-collection-tests-to-work-with-gpg-21.patch"))))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "02xgky22xgvhgd525khqh64l5i21ca839fj9jzaqdi3yvb8pbq8m"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-before
-                   'check 'pre-check
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (substitute* "build/tap-driver"
-                       (("/usr/bin/env python") (which "python"))))))))
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; These fail because /var/lib/dbus/machine-id is not present in the
+         ;; build environment.
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "gcr/test-system-prompt.c"
+               (("g_test_add") "//")
+               (("return.*") "return 0;"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Some tests expect to write to $HOME.
+             (setenv "HOME" "/tmp")
+             #t)))))
     (inputs
      `(("dbus" ,dbus)
-       ("gnupg" ,gnupg) ;called as a child process during tests
+       ("gnupg" ,gnupg)                ;called as a child process during tests
        ("libgcrypt" ,libgcrypt)))
     (native-inputs
-     `(("python" ,python-2) ;for tests
+     `(("python" ,python-2)             ;for tests
        ("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
+       ("libxml2" ,libxml2)
        ("xsltproc" ,libxslt)))
     ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
     (propagated-inputs
@@ -664,7 +675,7 @@ GNOME Desktop.")
 (define-public gnome-keyring
   (package
     (name "gnome-keyring")
-    (version "3.20.1")
+    (version "3.28.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -672,7 +683,7 @@ GNOME Desktop.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "134ci3mn6jjap59z3lrvyiip7zf2nlw5xvanr44yajs57xr4x5lp"))))
+               "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
@@ -685,11 +696,11 @@ GNOME Desktop.")
                        (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'check 'pre-check
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "build/tap-driver"
-              (("/usr/bin/env python") (which "python")))))
+         (add-after 'unpack 'fix-/bin/sh-reference
+           (lambda _
+             (substitute* "po/Makefile.in.in"
+               (("/bin/sh") (which "sh")))
+             #t))
          (add-before
           'configure 'fix-docbook
           (lambda* (#:key inputs #:allow-other-keys)
@@ -702,7 +713,6 @@ GNOME Desktop.")
             (setenv "XML_CATALOG_FILES"
                     (string-append (assoc-ref inputs "docbook-xml")
                                    "/xml/dtd/docbook/catalog.xml"))
-
             ;; Rerun the whole thing to avoid version mismatch ("This is
             ;; Automake 1.15.1, but the definition used by this
             ;; AM_INIT_AUTOMAKE comes from Automake 1.15.").  Note: we don't
@@ -713,6 +723,7 @@ GNOME Desktop.")
     (inputs
      `(("libgcrypt" ,libgcrypt)
        ("linux-pam" ,linux-pam)
+       ("openssh" ,openssh)
        ("dbus" ,dbus)
        ("gcr" ,gcr)))
     (native-inputs
@@ -813,7 +824,7 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "3.24.1")
+    (version "3.28.0")
     (source
      (origin
       (method url-fetch)
@@ -822,7 +833,7 @@ on the GNOME Desktop with a single simple application.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "19zfqy58missq5cck13ip8j824hb9whqg2c4cr6hgrlxkwqgm8vn"))))
+        "0rwidacwrxlc54x90h9g3wx2zlisc4vm49vmxi15azmpj1vwvd2c"))))
     (build-system gnu-build-system)
     (inputs
      `(("glib" ,glib)))
@@ -911,7 +922,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
 (define-public adwaita-icon-theme
   (package (inherit gnome-icon-theme)
     (name "adwaita-icon-theme")
-    (version "3.26.1")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -919,7 +930,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "17fpahgh5dyckgz7rwqvzgnhx53cx9kr2xw0szprc6bnqy977fi8"))))
+                "0l114ildlb3lz3xymfxxi0wpr2x21rd3cg8slb8jyxynzwfqrbks"))))
     (native-inputs
      `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
 
@@ -1192,7 +1203,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
 (define-public glade3
   (package
     (name "glade")
-    (version "3.20.2")
+    (version "3.22.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1200,7 +1211,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vdbqqvf6nrkqml4awrq4pzfwsm5v39wdzg943nys6lmf1am9l87"))))
+                "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f ; needs X, GL, and software rendering
@@ -1269,7 +1280,7 @@ XML/CSS rendering engine.")
 (define-public libgsf
   (package
     (name "libgsf")
-    (version "1.14.44")
+    (version "1.14.45")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1277,7 +1288,7 @@ XML/CSS rendering engine.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ppzfk3zmmgrg9jh8vc4dacddbfngjslq2wpj94pcr3i0c8dxgk8"))))
+                "1yk91ccf7z9b8d8ac6vip3gc5c0pkwgabqy6l0pj0kf43l7jrg2w"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -1313,7 +1324,10 @@ dealing with different structured file formats.")
                 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--disable-static"
+             "--enable-vala") ; needed for e.g. gnome-mines
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1328,22 +1342,110 @@ dealing with different structured file formats.")
                (("gdk_pixbuf_cache_file = .*$")
                 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
              #t))
-         (add-after 'unpack 'remove-failing-tests
+         (add-before 'check 'remove-failing-tests
            (lambda _
              (with-directory-excursion "tests/fixtures/reftests"
                (for-each delete-file
                          '(;; This test fails on i686:
                            "svg1.1/masking-path-04-b.svg"
-                           "svg1.1/masking-path-04-b-ref.png"
                            ;; This test fails on armhf:
                            "svg1.1/masking-mask-01-b.svg"
-                           "svg1.1/masking-mask-01-b-ref.png"
                            ;; This test fails on aarch64:
-                           "bugs/777834-empty-text-children.svg"
-                           "bugs/777834-empty-text-children-ref.png")))
+                           "bugs/777834-empty-text-children.svg")))
              #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+    (inputs
+     `(("pango" ,pango)
+       ("libcroco" ,libcroco)
+       ("bzip2" ,bzip2)
+       ("libgsf" ,libgsf)
+       ("libxml2" ,libxml2)))
+    (propagated-inputs
+     ;; librsvg-2.0.pc refers to all of that.
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)))
+    (home-page "https://wiki.gnome.org/LibRsvg")
+    (synopsis "Render SVG files using Cairo")
+    (description
+     "Librsvg is a C library to render SVG files using the Cairo 2D graphics
+library.")
+    (license license:lgpl2.0+)))
+
+(define-public librsvg-next
+  (package
+    (name "librsvg")
+    (version "2.44.12")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static"
+             "--enable-vala") ; needed for e.g. gnome-mines
+       #:make-flags '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         ;; Don't patch anything in vendor/ to avoid having to recompute
+         ;; checksums for the bundled Cargo "crates".  TODO: Unbundle those.
+         (delete 'patch-source-shebangs)
+         (delete 'patch-generated-file-shebangs)
+         (delete 'patch-usr-bin-file)
+         (add-before 'configure 'patch-all-the-things
+           (lambda _
+             (for-each patch-shebang '("tap-driver.sh" "tap-test"))
+             (patch-/usr/bin/file "configure")
+             #t))
+         (add-before 'configure 'pre-configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "gdk-pixbuf-loader/Makefile.in"
+               ;; By default the gdk-pixbuf loader is installed under
+               ;; gdk-pixbuf's prefix.  Work around that.
+               (("gdk_pixbuf_moduledir = .*$")
+                (string-append "gdk_pixbuf_moduledir = "
+                               "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
+                                "loaders\n"))
+               ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
+               (("gdk_pixbuf_cache_file = .*$")
+                "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
+             #t))
+         (add-before 'check 'remove-failing-tests
+           (lambda _
+             (with-directory-excursion "tests/fixtures/reftests"
+               (for-each delete-file
+                         '(;; The images produced by these tests differ slightly
+                           ;; from their reference counterparts due to differences
+                           ;; in the build environment (missing fonts, etc).  See
+                           ;; <tests/README.md> for details.
+                           ;; These fail on x86_64.
+                           "svg1.1/coords-viewattr-02-b.svg"
+                           "svg1.1/filters-composite-04-f.svg"
+                           "svg1.1/filters-image-01-b.svg"
+                           "svg1.1/filters-conv-02-f.svg"
+                           "svg1.1/filters-conv-04-f.svg"
+                           ;; This test fails on i686:
+                           "svg1.1/masking-path-04-b.svg"
+                           ;; This test fails on armhf:
+                           "svg1.1/masking-mask-01-b.svg"
+                           ;; This test fails on aarch64:
+                           "bugs/777834-empty-text-children.svg")))
+             #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")
+       ("vala" ,vala)
        ("glib" ,glib "bin")                               ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
     (inputs
@@ -2349,7 +2451,7 @@ and RDP protocols.")
 (define-public dconf
   (package
     (name "dconf")
-    (version "0.28.0")
+    (version "0.32.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2358,7 +2460,7 @@ and RDP protocols.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hn7v6769xabqz7kvyb2hfm19h46z1whkair7ff752zmbs3b7lv1"))))
+                "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
     (build-system meson-build-system)
     (propagated-inputs
      ;; In Requires of dconf.pc.
@@ -2367,7 +2469,8 @@ and RDP protocols.")
      `(("gtk+" ,gtk+)
        ("dbus" ,dbus)))
     (native-inputs
-     `(("libxslt" ,libxslt)                     ;for xsltproc
+     `(("bash-completion" ,bash-completion)
+       ("libxslt" ,libxslt)                     ;for xsltproc
        ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)
@@ -2722,7 +2825,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public five-or-more
   (package
     (name "five-or-more")
-    (version "3.26.0")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
@@ -2731,7 +2834,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0wkp08xsqr9p9cgdfghi424diajs016b2h4bsfcr5y9xc3rgf93w"))))
+         "1fy4a7qdjqvabm0cl45d6xlx6hy4paxvm0b2paifff73bl250d5c"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2753,7 +2856,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public gnome-mines
   (package
     (name "gnome-mines")
-    (version "3.26.0")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
@@ -2762,21 +2865,21 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1sfxdvns8nppdagnhpd9vd7n77sk5rdji3kdqnc78c2p1npiw11b"))))
-    (build-system glib-or-gtk-build-system)
+         "16w55hqaxipcv870n9gpn6qiywbqbyg7bjshaa02r75ias8dfxvf"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/true
-                     (lambda _
-                       (substitute* "configure"
-                         (("/bin/true") (which "true"))))))))
+         (delete 'bootstrap))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
+       ("pkg-config" ,pkg-config)
        ("desktop-file-utils" ,desktop-file-utils)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("xmllint" ,libxml2)))
+       ("vala" ,vala)
+       ("yelp" ,yelp)
+       ("appstream-glib" ,appstream-glib)))
     (inputs
      `(("gtk+" ,gtk+)
        ("libgnome-games-support" ,libgnome-games-support)
@@ -2988,7 +3091,7 @@ permission from user.")
 (define-public geocode-glib
   (package
     (name "geocode-glib")
-    (version "3.20.1")
+    (version "3.26.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/geocode-glib/"
@@ -2996,15 +3099,24 @@ permission from user.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "18iphsx3bybw7lssbb7rxc1rrnsc8vxai521zkqc535zr8rci7v6"))))
-    (build-system gnu-build-system)
+                "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a"))))
+    (build-system meson-build-system)
     (arguments
-     `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't
-       ;; work for the builder.  Punt.
-       #:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The tests require a bunch of locales.
+         (add-before 'check 'set-locales
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "GUIX_LOCPATH"
+                     (string-append (assoc-ref inputs "glibc-locales")
+                                    "/lib/locale"))
+             #t)))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("glibc-locales" ,glibc-locales) ; for tests
+       ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
        ("json-glib" ,json-glib)))
     (propagated-inputs
@@ -3073,7 +3185,7 @@ service via the system message bus.")
 (define-public libgweather
   (package
     (name "libgweather")
-    (version "3.26.1")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3081,30 +3193,14 @@ service via the system message bus.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f64ix7acj0j0qvxwxaazii2bhsjgh5ang1kw14fkg25ndq899zw"))))
-    (build-system gnu-build-system)
+                "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:configure-flags
-       `(,(string-append "--with-zoneinfo-dir="
+     `(#:tests? #f ; one of two tests requires network access
+       #:configure-flags
+       `(,(string-append "-Dzoneinfo_dir="
                          (assoc-ref %build-inputs "tzdata")
-                         "/share/zoneinfo"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "data/check-timezones.sh"
-               (("/usr/share/zoneinfo/zone.tab")
-                (string-append (assoc-ref inputs "tzdata")
-                               "/share/zoneinfo/zone.tab")))
-             #t))
-         (replace 'install
-           (lambda _
-             (zero?
-              (system* "make"
-                       ;; Install vala bindings into $out.
-                       (string-append "vapidir=" %output
-                                      "/share/vala/vapi")
-                       "install")))))))
+                         "/share/zoneinfo"))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
        ("gobject-introspection" ,gobject-introspection)
@@ -3117,10 +3213,10 @@ service via the system message bus.")
      `(("gtk+" ,gtk+)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("libxml2" ,libxml2)
-       ("libsoup" ,libsoup)))
-    (inputs
-     `(("tzdata" ,tzdata)
+       ("libsoup" ,libsoup)
        ("geocode-glib" ,geocode-glib)))
+    (inputs
+     `(("tzdata" ,tzdata)))
     (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
     (synopsis "Location, time zone, and weather library for GNOME")
     (description
@@ -3131,7 +3227,7 @@ services for numerous locations.")
 (define-public gnome-settings-daemon
   (package
     (name "gnome-settings-daemon")
-    (version "3.24.3")
+    (version "3.28.1")
     (source
      (origin
        (method url-fetch)
@@ -3140,20 +3236,31 @@ services for numerous locations.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "14w5jhpq02mbcxvn41qcj3cjfqdr3sgzl96c6glwpdrjphw61i38"))))
-    (build-system glib-or-gtk-build-system)
+         "0z9dip9p0iav646cmxisii5sbkdr9hmaklc5fzvschpbjkhphksr"))))
+    (build-system meson-build-system)
     (arguments
-     `(;; Color management test can't reach the colord system service.
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       (list (string-append "-Dudev_dir="
+                            (assoc-ref %outputs "out")
+                            "/lib/udev/rules.d/")
+             ;; Otherwise, the RUNPATH will lack the final path component.
+             (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out")
+                            "/lib/gnome-settings-daemon-3.0"))
+       ;; Color management test can't reach the colord system service.
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+       ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
        ("xsltproc" ,libxslt)
        ("libxml2" ,libxml2)                       ;for XML_CATALOG_FILES
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)))
     (inputs
-     `(("colord" ,colord)
+     `(("alsa-lib" ,alsa-lib)
+       ("colord" ,colord)
        ("libgudev" ,libgudev)
        ("upower" ,upower)
        ("polkit" ,polkit)
@@ -3173,6 +3280,7 @@ services for numerous locations.")
        ("libwacom" ,libwacom)
        ("librsvg" ,librsvg)
        ("xf86-input-wacom" ,xf86-input-wacom)
+       ("wayland" ,wayland)
        ("network-manager" ,network-manager)))
     (home-page "https://www.gnome.org")
     (synopsis "GNOME settings daemon")
@@ -3186,7 +3294,7 @@ settings, themes, mouse settings, and startup of other daemons.")
 (define-public totem-pl-parser
  (package
    (name "totem-pl-parser")
-   (version "3.10.8")
+   (version "3.26.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
@@ -3194,8 +3302,8 @@ settings, themes, mouse settings, and startup of other daemons.")
                                 "totem-pl-parser-" version ".tar.xz"))
             (sha256
              (base32
-              "0ayxg0gfs5h5jhr811ja5hxlhryklzp6jlal2ach9wym2c3hmigz"))))
-   (build-system gnu-build-system)
+              "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka"))))
+   (build-system meson-build-system)
    (arguments
     ;; FIXME: Tests require gvfs.
     `(#:tests? #f))
@@ -3207,11 +3315,11 @@ settings, themes, mouse settings, and startup of other daemons.")
    (propagated-inputs
     `(("glib" ,glib)
       ("gmime" ,gmime)
+      ("libarchive" ,libarchive)
+      ("libgcrypt" ,libgcrypt)
       ("libxml2" ,libxml2)))
    (inputs
-    `(("libarchive" ,libarchive)
-      ("libgcrypt" ,libgcrypt)
-      ("nettle" ,nettle)
+    `(("nettle" ,nettle)
       ("libsoup" ,libsoup)))
    (home-page "https://projects.gnome.org/totem")
    (synopsis "Library to parse and save media playlists for GNOME")
@@ -3258,7 +3366,7 @@ which are easy to play with the aid of a mouse.")
 (define-public devhelp
   (package
     (name "devhelp")
-    (version "3.26.0")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3266,10 +3374,11 @@ which are easy to play with the aid of a mouse.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0f4fmkqzn95zmc2paljma33fkj74qj1m6n23qrc5hfwmgx7p3wkb"))))
+                "08a8xizjqz68k30zd37r7g516azhan9bbrjsvv10hjd5dg3f476s"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("intltool" ,intltool)
+       ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@@ -3540,7 +3649,7 @@ queries upon that data.")
 (define-public libgnome-games-support
   (package
     (name "libgnome-games-support")
-    (version "1.2.3")
+    (version "1.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3548,7 +3657,7 @@ queries upon that data.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1"))))
+                "1j7lfcnc29lgn8ppn13wkn9w2y1n3lsapagwp91zh3bf0h2h4hv1"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -3725,7 +3834,8 @@ for application developers.")
        (sha256
         (base32
          "1llyisls3pzf5bwkpxyfyxc2d3gpa09n5pjy7qsjdqrp3ya4k36g"))
-       (patches (search-patches "totem-meson-easy-codec.patch"))))
+       (patches (search-patches "totem-meson-easy-codec.patch"
+                                "totem-meson-compat.patch"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -3919,7 +4029,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
 (define-public eog
  (package
    (name "eog")
-   (version "3.26.2")
+   (version "3.28.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3927,25 +4037,29 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1b87i31mxzayd3knn9zg00y816d093qrbyx556w8a03xz96ksgmm"))))
-   (build-system glib-or-gtk-build-system)
+              "1gasrfqi7qrzdq1idh29r0n6ikkqjb6pbp7a8k5krfz5hkhyfin0"))))
+   (build-system meson-build-system)
    (arguments
-    `(#:phases
+    `(#:configure-flags
+      ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
+      (list (string-append "-Dc_link_args=-Wl,-rpath="
+                           (assoc-ref %outputs "out") "/lib/eog"))
+      #:phases
       (modify-phases %standard-phases
-        (add-after
-         'install 'wrap-eog
-         (lambda* (#:key outputs #:allow-other-keys)
-           (let ((out               (assoc-ref outputs "out"))
-                 (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-             (wrap-program (string-append out "/bin/eog")
-               `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-           #t)))))
+        (add-after 'install 'wrap-eog
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out               (assoc-ref outputs "out"))
+                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+              (wrap-program (string-append out "/bin/eog")
+                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+            #t)))))
    (propagated-inputs
     `(("dconf" ,dconf)))
    (native-inputs
     `(("intltool" ,intltool)
       ("itstool" ,itstool)
       ("glib" ,glib "bin")
+      ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
       ("gobject-introspection" ,gobject-introspection)
       ("pkg-config" ,pkg-config)
       ("xmllint" ,libxml2)))
@@ -4015,15 +4129,19 @@ side panel;
 (define-public libgudev
   (package
     (name "libgudev")
-    (version "230")
+    (version "232")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   version "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "063w6j35n0i0ssmv58kivc1mw4070z6fzb83hi4xfrhcxnn7zrx2"))))
+                "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       ;; umockdev depends on libgudev.
+       (list "--disable-umockdev")))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
        ("gobject-introspection" ,gobject-introspection)
@@ -4042,7 +4160,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.32.1")
+    (version "1.36.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4050,13 +4168,21 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1pkahczniar1yyas7awcqpkb4ca8l7qa4msn6mr29m89mgnwkdnh"))))
+                "1xq105596sk9yram5a143b369wpaiiwc9gz86n0j1kfr7nipkqn4"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f)) ; XXX: requiring `pidof'
+     '(#:tests? #f ; XXX: requiring `pidof'
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-broken-autogen-script
+           (lambda _ (delete-file "autogen.sh") #t)))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-       ("intltool" ,intltool)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (inputs
@@ -4074,6 +4200,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("libgcrypt" ,libgcrypt)
        ("libgphoto2" ,libgphoto2)
        ("libgudev" ,libgudev)
+       ("libimobiledevice" ,libimobiledevice)
        ("libmtp" ,libmtp)
        ("libsecret" ,libsecret)
        ("libsmbclient" ,samba)
@@ -4365,7 +4492,7 @@ of running programs and invoke methods on those interfaces.")
 (define-public yelp-xsl
   (package
     (name "yelp-xsl")
-    (version "3.20.1")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4373,7 +4500,7 @@ of running programs and invoke methods on those interfaces.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "183vz4aw8fcmw8k8q7r4zrm1p76gwg2cca1fsdrkaiyabng88qfw"))))
+                "14rznm1qpsnmkwksnkd5j7zplakl01kvrcw0fdmd5gdc65xz9kcc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -4389,7 +4516,7 @@ to format Docbook and Mallard documents.")
 (define-public yelp
   (package
     (name "yelp")
-    (version "3.22.0")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4397,7 +4524,7 @@ to format Docbook and Mallard documents.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "13kpi0qmnfx2xwizyhmf5i5xaw9ckcn1k7v0289p7als4dybf5l6"))))
+                "033w5qnhm495pnvscnb3k2dagzgq4fsnzcrh0k2rgr10mw2mv2p8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
@@ -4423,7 +4550,7 @@ freedesktop.org help system specification.")
 (define-public yelp-tools
   (package
     (name "yelp-tools")
-    (version "3.18.0")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4431,7 +4558,7 @@ freedesktop.org help system specification.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ck9f78c1xka8a823bd7w1k0gdn4k19zvaj7viy2d5r3h1gxdhf6"))))
+                "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -4568,7 +4695,7 @@ share them with others via social networking and more.")
 (define-public file-roller
   (package
     (name "file-roller")
-    (version "3.26.2")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4576,20 +4703,14 @@ share them with others via social networking and more.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "19d8pc5z2xzhnicgaysxmwx3ghwzl4cw8kygd6nsw69g3j77nrry"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'skip-gtk-update-icon-cache
-           (lambda _
-             ;; Don't create 'icon-theme.cache'
-             (substitute* (find-files "data" "^Makefile$")
-               (("gtk-update-icon-cache") (which "true")))
-             #t)))))
+                "15pn2m80x45bzibig4zrqybnbr0n1f9wpqx7f2p6difldns3jwf1"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
+       ("glib:bin" ,glib "bin")))
     ;; TODO: Add libnautilus.
     (inputs
      `(("gtk+" ,gtk+)
@@ -4610,7 +4731,7 @@ such as gzip tarballs.")
 (define-public gnome-session
   (package
     (name "gnome-session")
-    (version "3.24.1")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4618,25 +4739,21 @@ such as gzip tarballs.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1vkfjsgks9czajivcg3y1krzlnilv2cnzzbdc7wrasrriqilji1v"))))
+                "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq"))))
     (arguments
-     '(#:phases
+     '(#:glib-or-gtk? #t
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Use elogind instead of systemd.
-             (substitute* "configure"
-               (("libsystemd-login >= 183 libsystemd-daemon libsystemd-journal")
-                "libelogind")
-               (("systemd") "elogind"))
+             (substitute* "meson.build"
+               (("libsystemd-login") "libelogind")
+               (("and libsystemd_daemon_dep.found.*") ","))
              (substitute* "gnome-session/gsm-systemd.c"
                (("#include <systemd/sd-login.h>")
                 "#include <elogind/sd-login.h>"))
-             ;; Remove uses of the systemd journal.
-             (substitute* "gnome-session/main.c"
-               (("#ifdef HAVE_SYSTEMD") "#if 0"))
-             (substitute* "gnome-session/gsm-manager.c"
-               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             ;; Remove uses of the systemd daemon.
              (substitute* "gnome-session/gsm-autostart-app.c"
                (("#ifdef HAVE_SYSTEMD") "#if 0"))
              #t))
@@ -4658,13 +4775,19 @@ such as gzip tarballs.")
                #t))))
 
        #:configure-flags
-       '("--enable-elogind")))
-    (build-system glib-or-gtk-build-system)
+       '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
+         "-Dman=false" ; FIXME: disabled because of docbook validation error
+         "-Dsystemd_journal=false")))
+    (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
-       ("xsltproc" ,libxslt)))
+       ("xsltproc" ,libxslt)
+       ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
+       ("docbook-xsl" ,docbook-xsl)
+       ("docbook-xml" ,docbook-xml)
+       ("xmlto" ,xmlto)))
     (inputs
      `(("elogind" ,elogind)
        ("gnome-desktop" ,gnome-desktop)
@@ -4687,7 +4810,7 @@ configuration program to choose applications starting on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.48.6")
+    (version "1.52.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4695,7 +4818,7 @@ configuration program to choose applications starting on login.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04nkig077r7xq55dxg9v46w8i7p8zkkdyja92yv81grq9fx6apz8"))))
+                "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -4728,7 +4851,7 @@ configuration program to choose applications starting on login.")
      ;; These are all in the Requires.private field of gjs-1.0.pc.
      `(("cairo" ,cairo)
        ("gobject-introspection" ,gobject-introspection)
-       ("mozjs" ,mozjs-38)))
+       ("mozjs" ,mozjs-52)))
     (inputs
      `(("gtk+" ,gtk+)
        ("readline" ,readline)))
@@ -4781,7 +4904,7 @@ javascript engine and the GObject introspection framework.")
      `(("glib" ,glib)
        ("gspell" ,gspell)
        ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
+       ("gtksourceview" ,gtksourceview-3)
        ("libpeas" ,libpeas)
        ("libxml2" ,libxml2)
        ("iso-codes" ,iso-codes)
@@ -4802,7 +4925,7 @@ powerful general purpose text editor.")
 (define-public zenity
   (package
     (name "zenity")
-    (version "3.24.0")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4810,7 +4933,7 @@ powerful general purpose text editor.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1xzpm63cib2xzr99phplhbcjzy7lahggk3gp60dvrrclxhka1w3g"))))
+                "0swavrkc5ps3fwzy6h6l5mmim0wwy10xrq0qqkay5d0zf9a965yv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -4829,7 +4952,7 @@ to display dialog boxes from the commandline and shell scripts.")
 (define-public mutter
   (package
     (name "mutter")
-    (version "3.24.4")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4837,7 +4960,7 @@ to display dialog boxes from the commandline and shell scripts.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1slspy5krbqfvnma72lvdnxjf8ag2cvxssa8bvi7y3xxy7xv603k"))))
+                "0ighs1zvlssgq16v1h3vg280za7y448snq65gc5m1zmqqawqkymg"))))
     ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
     ;; versions of cogl and clutter.  As a result, many of the inputs,
     ;; propagated-inputs, and configure flags used in cogl and clutter are
@@ -4933,7 +5056,7 @@ window manager.")
 (define-public gnome-online-accounts
   (package
     (name "gnome-online-accounts")
-    (version "3.26.2")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4941,7 +5064,7 @@ window manager.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1l8p1ghknmkmjpnpl7jr53j66qbzpikickzbmrz0aczyhq6pdy29"))))
+                "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47"))))
     (outputs '("out" "lib"))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -4986,7 +5109,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
 (define-public evolution-data-server
   (package
     (name "evolution-data-server")
-    (version "3.28.1")
+    (version "3.28.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4994,7 +5117,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "12b9lfgwd57rzn9394xrbvl9ym5aqldpz9v7c9a421dsv8dgq13b"))))
+                "11sq795115vrcgxl9svscm6wg8isjj784c3d84qzb6z47zq92zj3"))))
     (outputs '("out" "libedataserverui"))
     (build-system cmake-build-system)
     (arguments
@@ -5037,18 +5160,6 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
                ;; Remove it so the configure flag is respected.
                (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
              #t))
-         (add-before 'configure 'factor-webkit
-           (lambda _
-             (substitute* "CMakeLists.txt"
-               (("webkit2gtk-4\\.0>=\\$[{]webkit2gtk_minimum_version[}]") "")
-               (("if[(]ENABLE_OAUTH2[)]")
-                (string-append
-                 "if(ENABLE_OAUTH2)\n"
-                 "\tpkg_check_modules(OAUTH2_UI REQUIRED "
-                 "webkit2gtk-4.0>=${webkit2gtk_minimum_version})")))
-             (substitute* "src/libedataserverui/CMakeLists.txt"
-               (("\\$[{]OAUTH2_([A-Z_]+)[}]" all part)
-                (string-append all " ${OAUTH2_UI_" part "}")))))
          (add-after 'install 'split
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -5171,7 +5282,7 @@ users.")
 (define-public network-manager
   (package
     (name "network-manager")
-    (version "1.8.4")
+    (version "1.10.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/NetworkManager/"
@@ -5179,7 +5290,7 @@ users.")
                                   "NetworkManager-" version ".tar.xz"))
               (sha256
                (base32
-                "04lj081a5cdkhcnj1xs77chhy08d2h0648kmj1csxp46cfrjwpk2"))
+                "1jn3g0f2x1irc88awqp8m3gnpdx1whqqqbdgkbgr4x55s702jki4"))
               (snippet
               '(begin
                  (use-modules (guix build utils))
@@ -5233,6 +5344,23 @@ users.")
                (("src/devices/tests/test-lldp") " ")
                (("src/tests/test-route-manager-linux") " "))
              #t))
+         (add-after 'unpack 'delete-failing-tests
+           (lambda _
+             ;; FIXME: These four tests fail for unknown reasons.
+             ;; ERROR:libnm-core/tests/test-general.c:5842:
+             ;;   _json_config_check_valid: assertion failed (res == expected): (1 == 0)
+             ;; ERROR:libnm-core/tests/test-keyfile.c:647:
+             ;;   test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
+             ;; ERROR:libnm-core/tests/test-setting.c:907:
+             ;;   _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
+             ;; NetworkManager:ERROR:src/platform/tests/test-nmp-object.c:397:
+             ;;   test_cache_link: assertion failed: (nmp_object_is_visible (obj_new))
+             (substitute* "Makefile.in"
+               (("libnm-core/tests/test-general") " ")
+               (("libnm-core/tests/test-keyfile") " ")
+               (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " ")
+               (("src/platform/tests/test-nmp-object") " "))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              ;; For the missing /etc/machine-id.
@@ -5240,12 +5368,13 @@ users.")
              #t))
          (replace 'install
            (lambda _
-             (zero? (system* "make"
-                             "sysconfdir=/tmp"
-                             "rundir=/tmp"
-                             "statedir=/tmp"
-                             "nmstatedir=/tmp/nm"
-                             "install")))))))
+             (invoke "make"
+                     "sysconfdir=/tmp"
+                     "rundir=/tmp"
+                     "statedir=/tmp"
+                     "nmstatedir=/tmp/nm"
+                     "install")
+             #t)))))
     (propagated-inputs
      `(("glib" ,glib)))
     (native-inputs
@@ -5296,7 +5425,7 @@ services.")
 (define-public network-manager-openvpn
   (package
     (name "network-manager-openvpn")
-    (version "1.8.0")
+    (version "1.8.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5305,7 +5434,7 @@ services.")
                     "/NetworkManager-openvpn-" version ".tar.xz"))
               (sha256
                (base32
-                "1973n89g66a3jfx8r45a811fga4kadh6r1w35cb25cz1mlii2vhn"))))
+                "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-absolute-paths")))
@@ -5350,7 +5479,7 @@ to virtual private networks (VPNs) via OpenVPN.")
 (define-public network-manager-applet
   (package
     (name "network-manager-applet")
-    (version "1.8.4")
+    (version "1.8.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5358,7 +5487,7 @@ to virtual private networks (VPNs) via OpenVPN.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ag3pvjp58ykrzsjfbdxi0j5xd2i796jk7nns67zy03xwg9i0l0h"))))
+                "1js0i2kwfklahsn77qgxzdscy33drrlym3mrj1qhlw0zf8ri56ya"))))
     (build-system glib-or-gtk-build-system)
     (arguments '(#:configure-flags '("--disable-migration")))
     (native-inputs
@@ -5429,7 +5558,7 @@ libxml2.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "3.26.2.1")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5438,7 +5567,7 @@ libxml2.")
               (patches (search-patches "gdm-CVE-2018-14424.patch"))
               (sha256
                (base32
-                "0mxdal6hh345xk2xqmw5192jgpprkbcv1d4bwmnl4arcc00cpp8p"))))
+                "0wdm1503x66n1crdlmzmincbd2hccpxsdgjsl5anx3yjpdzs0hb0"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags
@@ -5609,7 +5738,7 @@ usage and information about running processes.")
 (define-public gnome-bluetooth
   (package
     (name "gnome-bluetooth")
-    (version "3.20.1")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5617,10 +5746,11 @@ usage and information about running processes.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1zlqcz6jz4vzzr8gd1678i9s4015kiwcpr5szrwz4kmryfsm147a"))))
-    (build-system glib-or-gtk-build-system)
+                "0q7yzklrlayj99risj096mr5x35anx94wvr6nbf6pwbvvzv7453p"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
+       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
@@ -5642,7 +5772,7 @@ devices using the GNOME desktop.")
 (define-public gnome-control-center
   (package
     (name "gnome-control-center")
-    (version "3.24.3")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5650,10 +5780,13 @@ devices using the GNOME desktop.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "18ncjqjj93a39sla2zjr9i6pw59yh87p4jla899lmvi2qajd5923"))))
-    (build-system glib-or-gtk-build-system)
+                "0d6pjdbsra16nav8201kaadja5yma92bhziki9601ilk2ry3v7pz"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:phases
+     '(#:glib-or-gtk? #t
+       #:configure-flags
+       (list "-Dcheese=false")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
            (lambda* (#:key inputs #:allow-other-keys)
@@ -5668,6 +5801,7 @@ devices using the GNOME desktop.")
                #t))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+       ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
@@ -5714,7 +5848,7 @@ properties, screen resolution, and other GNOME parameters.")
 (define-public gnome-shell
   (package
     (name "gnome-shell")
-    (version "3.24.3")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5722,17 +5856,11 @@ properties, screen resolution, and other GNOME parameters.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f20x36ymkp1j667hb7s7byly2gqc4m0anldy3qwp38vm8437caq"))
+                "1b9n89ij2g5nqaqp7a13jnqcd8qa2v9p55rbi71al3xvqk091ri7"))
               (patches (search-patches "gnome-shell-theme.patch"))
               (modules '((guix build utils)))
               (snippet
                #~(begin
-                   ;; CSS files have to be regenerated from the .scss source
-                   ;; that 'gnome-shell-theme.patch' modifies.
-                   (for-each delete-file
-                             (find-files "data/theme"
-                                         "^gnome-shell.*\\.css$"))
-
                    ;; Copy images for use on the GDM log-in screen.
                    (copy-file #$(file-append %artwork-repository
                                              "/slim/0.x/background.png")
@@ -5741,31 +5869,40 @@ properties, screen resolution, and other GNOME parameters.")
                                              "/logo/Guix-horizontal-white.svg")
                               "data/theme/guix-logo.svg")
                    #t))))
-    (build-system glib-or-gtk-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:disallowed-references ((,glib "bin")
+     `(#:glib-or-gtk? #t
+       #:disallowed-references ((,glib "bin")
                                 ,inkscape ,libxslt
                                 ,ruby-sass)
+       #:configure-flags
+       (list "-Dsystemd=false"
+             ;; Otherwise, the RUNPATH will lack the final path component.
+             (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out")
+                            "/lib/gnome-shell"))
 
-       #:modules ((guix build glib-or-gtk-build-system)
+       #:modules ((guix build meson-build-system)
                   (guix build utils)
                   (srfi srfi-1))
 
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'rebuild-css
-           (lambda _
-             ;; Rebuild the CSS files from the .scss files that our patch
-             ;; modifies.
-             (invoke "make" "-C" "data"
-                     "theme/gnome-shell.css"
-                     "theme/gnome-shell-high-contrast.css")))
-         (add-before 'build 'convert-logo-to-png
+         (add-after 'unpack 'fix-keysdir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (keysdir (string-append
+                              out "/share/gnome-control-center/keybindings")))
+               (substitute* "meson.build"
+                 (("keysdir =.*")
+                  (string-append "keysdir = '" keysdir "'\n")))
+               #t)))
+         (add-before 'configure 'convert-logo-to-png
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Convert the logo from SVG to PNG.
              (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
                      "data/theme/guix-logo.svg")))
-         (add-before 'build 'record-absolute-file-names
+         (add-before 'configure 'record-absolute-file-names
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "js/misc/ibusManager.js"
                (("'ibus-daemon'")
@@ -5776,29 +5913,33 @@ properties, screen resolution, and other GNOME parameters.")
                 (string-append "'" (assoc-ref inputs "libgnomekbd")
                                "/bin/gkbd-keyboard-display'")))
              #t))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (keysdir (string-append
-                              out "/share/gnome-control-center/keybindings")))
-               (zero? (system* "make"
-                               (string-append "keysdir=" keysdir)
-                               "install")))))
-         (add-after
-          'install 'wrap-programs
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out              (assoc-ref outputs "out"))
-                  (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
-                  (python-path      (getenv "PYTHONPATH")))
-              (wrap-program (string-append out "/bin/gnome-shell")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
-              (for-each
-               (lambda (prog)
-                 (wrap-program (string-append out "/bin/" prog)
-                   `("PYTHONPATH"      ":" prefix (,python-path))
-                   `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-               '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-              #t)))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t))
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out              (assoc-ref outputs "out"))
+                   (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
+                   (python-path      (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/gnome-shell")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 ;; FIXME: gnome-shell loads these libraries with unqualified
+                 ;; names only, so they need to be on LD_LIBRARY_PATH.  The
+                 ;; alternative might be to patch gnome-shell.
+                 `("LD_LIBRARY_PATH" ":" prefix
+                   ,(map (lambda (pkg)
+                           (string-append (assoc-ref inputs pkg) "/lib"))
+                         '("gnome-bluetooth" "librsvg" "libgweather"))))
+               (for-each
+                (lambda (prog)
+                  (wrap-program (string-append out "/bin/" prog)
+                    `("PYTHONPATH"      ":" prefix (,python-path))
+                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
+               #t)))
          (replace 'glib-or-gtk-wrap
            (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
              (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
@@ -5810,13 +5951,17 @@ properties, screen resolution, and other GNOME parameters.")
                      #:outputs outputs)))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gobject-introspection" ,gobject-introspection)
+       ("inkscape" ,inkscape)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
-       ("xsltproc" ,libxslt)
        ("ruby-sass" ,ruby-sass)
-       ("inkscape" ,inkscape)))
+       ("sassc" ,sassc)
+       ("xsltproc" ,libxslt)
+       ;; For tests
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("accountsservice" ,accountsservice)
        ("caribou" ,caribou)
@@ -5847,9 +5992,7 @@ properties, screen resolution, and other GNOME parameters.")
        ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
        ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
        ("librsvg" ,librsvg)
-       ("geoclue" ,geoclue)
-       ;; XXX: required by libgjs.la.
-       ("readline" ,readline)))
+       ("geoclue" ,geoclue)))
     (synopsis "Desktop shell for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GnomeShell")
     (description
@@ -5928,7 +6071,7 @@ easy, safe, and automatic.")
 (define-public tracker
   (package
     (name "tracker")
-    (version "1.12.3")
+    (version "2.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5936,8 +6079,43 @@ easy, safe, and automatic.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3"))))
+                "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-broken-tests
+           (lambda _
+             ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
+             ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
+             (substitute* "tests/libtracker-miner/Makefile.in"
+               (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
+               (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
+               (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
+             (substitute* "tests/libtracker-fts/Makefile.in"
+               (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
+             (substitute* "tests/libtracker-data/Makefile.in"
+               (("tracker-ontology\\$\\(EXEEXT\\)") "")
+               (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
+               (("tracker-backup\\$\\(EXEEXT\\)") "")
+               (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
+               (("tracker-sparql\\$\\(EXEEXT\\)") ""))
+             ;; These fail because the SPARQL backend could not be loaded.
+             ;; That's because /etc/machine-id is missing, but
+             ;; DBUS_FATAL_WARNINGS does not help here.
+             (substitute* "tests/libtracker-sparql/Makefile.in"
+               (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
+               (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
+             (substitute* "tests/tracker-steroids/Makefile.in"
+               (("tracker-test\\$\\(EXEEXT\\)") ""))
+             #t))
+         ;; Two tests fail if LANG is not set.
+         (add-before 'check 'pre-check
+           (lambda _
+             (setenv "LANG" "en_US.UTF-8")
+             ;; For the missing /etc/machine-id.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
     (native-inputs
      `(("gnome-common" ,gnome-common)
        ("gobject-introspection" ,gobject-introspection)
@@ -5951,6 +6129,7 @@ easy, safe, and automatic.")
        ("gst-plugins-base" ,gst-plugins-base)
        ("sqlite" ,sqlite)
        ("nettle" ,nettle)  ; XXX why is this needed?
+       ("python" ,python)
        ("poppler" ,poppler)
        ("libgsf" ,libgsf)
        ("libexif" ,libexif)
@@ -5972,7 +6151,6 @@ easy, safe, and automatic.")
        ("libseccomp" ,libseccomp)
        ("libsoup" ,libsoup)
        ("libuuid" ,util-linux)))
-    (arguments `(#:tests? #f))  ; XXX FIXME enable tests (some fail)
     (synopsis "Metadata database, indexer and search tool")
     (home-page "https://wiki.gnome.org/Projects/Tracker")
     (description
@@ -5988,7 +6166,7 @@ shared object databases, search tools and indexing.")
 (define-public nautilus
   (package
     (name "nautilus")
-    (version "3.26.2")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5996,7 +6174,7 @@ shared object databases, search tools and indexing.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1d0l4vgcjqj4671hb6s2a56baqlasbxn3wl6vfrpdsk5qq299jbr"))))
+                "19dhpa2ylrg8d5274lahy7xqr2p9z3jnq1h4qmsh95czkpy7is4w"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -6012,6 +6190,7 @@ shared object databases, search tools and indexing.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("dconf" ,dconf)
+       ("gexiv2" ,gexiv2)
        ("gvfs" ,gvfs)
        ("exempi" ,exempi)
        ("gnome-desktop" ,gnome-desktop)
@@ -6102,7 +6281,7 @@ can add your own files to the collection.")
 (define-public gnome-screenshot
   (package
     (name "gnome-screenshot")
-    (version "3.22.0")
+    (version "3.26.0")
     (source
      (origin
        (method url-fetch)
@@ -6111,11 +6290,14 @@ can add your own files to the collection.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0c02n1hgv21m4082jx399b1yazsc0cr07ba8k0pv8v3w7i5z21ca"))))
-    (build-system glib-or-gtk-build-system)
+         "1fy8fjl29i3xhj8caik03d3za06x96xgkk8r4fwz88iqbmci3g0v"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
+       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("intltool" ,intltool)
+       ("appstream-glib" ,appstream-glib)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gtk+" ,gtk+)
@@ -6133,7 +6315,7 @@ beautifying border effects.")
 (define-public dconf-editor
   (package
     (name "dconf-editor")
-    (version "3.26.2")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
@@ -6142,21 +6324,14 @@ beautifying border effects.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1lcarg8igsqpq4iv5834mf9kz4cmfhfw11bwy3x7v7f497z57d18"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'skip-gtk-update-icon-cache
-           (lambda _
-             ;; Don't create 'icon-theme.cache'.
-             (substitute* "editor/Makefile"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+         "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
+       ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
      `(("dconf" ,dconf)
        ("gtk+" ,gtk+)
@@ -6376,7 +6551,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
 (define-public gnome-clocks
   (package
     (name "gnome-clocks")
-    (version "3.26.1")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6384,7 +6559,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1xqirnf7xkiv5vj3ng4slpyh50ihn625vhdgskfzx83a3pgxin1b"))))
+                "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t))
@@ -6414,7 +6589,7 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
 (define-public gnome-calendar
   (package
     (name "gnome-calendar")
-    (version "3.26.3")
+    (version "3.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6422,7 +6597,7 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1clnfvvsaqw9vpxrs6qrxzmgpaw9x2nkjik2x2vwvm07pdvhddxn"))))
+                "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -6438,7 +6613,10 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
      `(("evolution-data-server" ,evolution-data-server)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libedataserverui" ,evolution-data-server "libedataserverui")))
+       ("libdazzle" ,libdazzle)
+       ("libedataserverui" ,evolution-data-server "libedataserverui")
+       ("libgweather" ,libgweather)
+       ("geoclue" ,geoclue)))
     (home-page "https://wiki.gnome.org/Apps/Calendar")
     (synopsis "GNOME's calendar application")
     (description
@@ -6449,16 +6627,15 @@ desktop.  It supports multiple calendars, month, week and year view.")
 (define-public gnome-todo
   (package
     (name "gnome-todo")
-    (version "3.26.2")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
-              (patches (search-patches "gnome-todo-libical-compat.patch"))
               (sha256
                (base32
-                "106xx1w18pxjmj5k0k2qjzi6b3c3kaz7b5kyrpknykibnr401ff9"))))
+                "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -6607,7 +6784,7 @@ GNOME Shell appearance and extension, etc.")
 (define-public gnome-shell-extensions
   (package
     (name "gnome-shell-extensions")
-    (version "3.24.3")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6615,10 +6792,10 @@ GNOME Shell appearance and extension, etc.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y8anpp9ymp0lxn15w63ra6zxxf8nvbl48xqkvqdjzida73fyz9w"))))
-    (build-system gnu-build-system)
+                "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("--enable-extensions=all")))
+     '(#:configure-flags '("-Dextension_set=all")))
     (native-inputs
      `(("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
@@ -6830,7 +7007,7 @@ GLib/GObject code.")
 (define-public libgnomekbd
   (package
     (name "libgnomekbd")
-    (version "3.22.0.1")
+    (version "3.26.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -6838,7 +7015,7 @@ GLib/GObject code.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1plkkack6s8b21gcmmly0lapgcjz53dmw2vixnn4rw4jxjwbdzaf"))))
+                "0xc8jrc44x2h24v28wv36k70k7bwxy6p2vsvxvvia1n3ay642fza"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -6899,7 +7076,7 @@ handling the startup notification side.")
 (define-public gnome-calculator
   (package
     (name "gnome-calculator")
-    (version "3.26.0")
+    (version "3.28.2")
     (source
      (origin
        (method url-fetch)
@@ -6908,7 +7085,7 @@ handling the startup notification side.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1iv3b3mvqxm17r5gv15dyq6gz08w0ljhzgbf22xnnfnpzhvmn8b2"))))
+         "0izsrqc9fm2lh25jr3nzi94p5hh2d3cklxqczbq16by85wr1xm5s"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
@@ -6916,8 +7093,10 @@ handling the startup notification side.")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtksourceview" ,gtksourceview)
+     `(("glib" ,glib)
+       ("gtksourceview" ,gtksourceview-3)
        ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
        ("mpc" ,mpc)
        ("mpfr" ,mpfr)))
     (home-page "https://wiki.gnome.org/Apps/Calculator")
@@ -6959,37 +7138,78 @@ basically a text box in which notes can be written.")
     (license license:gpl3+)))
 
 (define-public gucharmap
-  (package
-    (name "gucharmap")
-    (version "3.18.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
-       (sha256
-        (base32
-         "0c1q9w5vql0vvg6g0knxfnv4ap19fg5cdrwndi1cj9lsym92c78j"))))
-    (build-system glib-or-gtk-build-system)
-    (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("glib:bin" ,glib "bin") ; for glib-compile-resources.
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("xmllint" ,libxml2)))
-    (home-page "https://wiki.gnome.org/Apps/Gucharmap")
-    (synopsis "Unicode character picker and font browser")
-    (description
-     "This program allows you to browse through all the available Unicode
+  (let ((unicode-files
+         '(("Blocks.txt"
+            "19zf2kd198mcv1paa194c1zf36hay1irbxssi35yi2pd8ad69qas")
+           ("DerivedAge.txt"
+            "1h9p1g0wnh686l6cqar7cmky465vwc6vjzzn1s7v0i9zcjaqkr4h")
+           ("NamesList.txt"
+            "0gvpcyq852rnlqmx4y5i1by7bavvcw6rj40i54w48yc7xr3zmgd1")
+           ("Scripts.txt"
+            "0b9prz2hs6w61afqaplcxnv115f8yk4d5hn9dc5hks8nqpj28bnh")
+           ("UnicodeData.txt"
+            "1cfak1j753zcrbgixwgppyxhm4w8vda8vxhqymi7n5ljfi6kwhjj")
+           ("Unihan.zip"
+            "199kz6laypkvc0ykms6d7bkb571jmpds39sv2p7kd5jjm1ij08q1"))))
+    (package
+      (name "gucharmap")
+      (version "10.0.4")
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append "mirror://gnome/sources/" name "/"
+                             (version-major+minor version) "/"
+                             name "-" version ".tar.xz"))
+         (sha256
+          (base32
+           "00gh3lll6wykd2qg1lrj05a4wvscsypmrx7rpb6jsbvb4scnh9mv"))))
+      (build-system glib-or-gtk-build-system)
+      (arguments
+       `(#:modules ((ice-9 match)
+                    (guix build glib-or-gtk-build-system)
+                    (guix build utils))
+         #:configure-flags
+         (list "--with-unicode-data=../unicode-data")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'prepare-unicode-data
+             (lambda* (#:key inputs #:allow-other-keys)
+               (mkdir-p "../unicode-data")
+               (with-directory-excursion "../unicode-data"
+                 (for-each (match-lambda
+                             ((file _)
+                              (install-file (assoc-ref inputs file) ".")))
+                           ',unicode-files))
+               #t)))))
+      (native-inputs
+       `(("desktop-file-utils" ,desktop-file-utils)
+         ("glib:bin" ,glib "bin")       ; for glib-compile-resources.
+         ("gobject-introspection" ,gobject-introspection)
+         ("intltool" ,intltool)
+         ("itstool" ,itstool)
+         ("pkg-config" ,pkg-config)
+         ,@(map (match-lambda
+                  ((file hash)
+                   `(,file
+                     ,(origin
+                        (method url-fetch)
+                        (uri (string-append
+                              "http://www.unicode.org/Public/10.0.0/ucd/"
+                              file))
+                        (sha256 (base32 hash))))))
+                unicode-files)
+         ("unzip" ,unzip)))
+      (inputs
+       `(("gtk+" ,gtk+)
+         ("xmllint" ,libxml2)))
+      (home-page "https://wiki.gnome.org/Apps/Gucharmap")
+      (synopsis "Unicode character picker and font browser")
+      (description
+       "This program allows you to browse through all the available Unicode
 characters and categories for the installed fonts, and to examine their
 detailed properties.  It is an easy way to find the character you might
 only know by its Unicode name or code point.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public bluefish
   (package
@@ -7025,7 +7245,7 @@ Bluefish supports many programming and markup languages.")
 (define-public gnome-system-monitor
   (package
     (name "gnome-system-monitor")
-    (version "3.26.0")
+    (version "3.28.2")
     (source
      (origin
        (method url-fetch)
@@ -7034,20 +7254,22 @@ Bluefish supports many programming and markup languages.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1cz6s0cvagj422f9dc231nvg8jsfkva5s81skpq4q5jyrb1ahj7q"))))
+         "164in885dyfvna5yjzgdyrbrsskvh5wzxdmkjgb4mbh54lzqd1zb"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums.
        ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("libgtop" ,libgtop)
+       ("polkit" ,polkit)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
        ("gtk+" ,gtk+)
        ("gtkmm" ,gtkmm)
        ("librsvg" ,librsvg)
-       ("libxml2" ,libxml2)))
+       ("libxml2" ,libxml2)
+       ("libwnck" ,libwnck)))
     (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
     (synopsis "Process viewer and system resource monitor for GNOME")
     (description
@@ -7061,7 +7283,7 @@ kill/reinice processes.")
 (define-public python-pyatspi
   (package
     (name "python-pyatspi")
-    (version "2.24.0")
+    (version "2.26.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -7070,7 +7292,7 @@ kill/reinice processes.")
                     "/pyatspi-" version ".tar.xz"))
               (sha256
                (base32
-                "14m6y27ziqc9f6339gjz49mlsk6mrsyg4bkj055cdzc7sfjlgvz7"))))
+                "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -7089,7 +7311,7 @@ accessibility infrastructure.")
 (define-public orca
   (package
     (name "orca")
-    (version "3.26.0")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -7098,7 +7320,7 @@ accessibility infrastructure.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7"))))
+                "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases
@@ -7381,20 +7603,20 @@ photo-booth-like software, such as Cheese.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (propagated-inputs
-     `(("gnome-video-effects" ,gnome-video-effects)))
-    (inputs
-     `(("clutter" ,clutter)
+     `(("gnome-video-effects" ,gnome-video-effects)
+       ("clutter" ,clutter)
        ("clutter-gst" ,clutter-gst)
        ("clutter-gtk" ,clutter-gtk)
+       ("libcanberra" ,libcanberra)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-       ("gnome-desktop" ,gnome-desktop)
+       ("gstreamer" ,gstreamer)))
+    (inputs
+     `(("gnome-desktop" ,gnome-desktop)
        ("gobject-introspection" ,gobject-introspection)
-       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gst-plugins-bad" ,gst-plugins-bad)
        ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
        ("libx11" ,libx11)
        ("libxtst" ,libxtst)))
     (home-page "https://wiki.gnome.org/Apps/Cheese")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 83aadfd177..6e63ca6614 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -85,7 +85,7 @@
 (define-public atk
   (package
    (name "atk")
-   (version "2.28.1")
+   (version "2.32.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -93,17 +93,12 @@
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1z7laf6qwv5zsqcnj222dm5f43c6f3liil0cgx4s4s62xjk1wfnd"))))
-   (build-system gnu-build-system)
-   (outputs '("out" "doc"))
-   (arguments
-    `(#:configure-flags
-      (list (string-append "--with-html-dir="
-                           (assoc-ref %outputs "doc")
-                           "/share/gtk-doc/html"))))
+              "1k4i817bd2w5b9z394f2yyx95591l2746wa40am0vvz4gzdgwhfb"))))
+   (build-system meson-build-system)
    (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
    (native-inputs
     `(("pkg-config" ,pkg-config)
+      ("gettext" ,gettext-minimal)
       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
    (synopsis "GNOME accessibility toolkit")
@@ -399,7 +394,7 @@ printing and other features typical of a source code editor.")
 (define-public gtksourceview
  (package
    (name "gtksourceview")
-   (version "3.24.10")
+   (version "4.0.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/gtksourceview/"
@@ -407,7 +402,7 @@ printing and other features typical of a source code editor.")
                                  "gtksourceview-" version ".tar.xz"))
              (sha256
               (base32
-               "16ym7jwiki4s1pilwr4incx0yg7ll94f1cajrnpndkxxs36hcm5b"))))
+               "1b2z9c0skxrgw2vh08hv6qxky8jbvamc4rgww82j0kpp533rz0hm"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
@@ -444,10 +439,23 @@ GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax
 highlighting and other features typical of a source code editor.")
    (license license:lgpl2.1+)))
 
+(define-public gtksourceview-3
+ (package (inherit gtksourceview)
+   (name "gtksourceview")
+   (version "3.24.10")
+   (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnome/sources/" name "/"
+                                 (version-major+minor version) "/"
+                                 name "-" version ".tar.xz"))
+             (sha256
+              (base32
+               "16ym7jwiki4s1pilwr4incx0yg7ll94f1cajrnpndkxxs36hcm5b"))))))
+
 (define-public gdk-pixbuf
   (package
    (name "gdk-pixbuf")
-   (version "2.38.0")
+   (version "2.38.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -455,7 +463,7 @@ highlighting and other features typical of a source code editor.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0ixfmnxjylx06mjaw116apymwi1a8rnkmkbbvqaxxg2pfwy9fl6x"))))
+              "0fmbjgjcyym3qg46f64qgl7icdm4ii77flyc1mhk244rp8vgi7zi"))))
    (build-system meson-build-system)
    (arguments
     `(#:configure-flags '("-Dinstalled_tests=false")
@@ -547,39 +555,64 @@ in the GNOME project.")
 (define-public at-spi2-core
   (package
    (name "at-spi2-core")
-   (version "2.26.2")
+   (version "2.32.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
                                 (version-major+minor version)  "/"
                                 name "-" version ".tar.xz"))
+            (patches (search-patches "at-spi2-core-meson-compat.patch"))
             (sha256
              (base32
-              "0596ghkamkxgv08r4a1pdhm06qd5zzgcfqsv64038w9xbvghq3n8"))))
-   (build-system gnu-build-system)
+              "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923"))))
+   (build-system meson-build-system)
    (outputs '("out" "doc"))
    (arguments
     '(#:configure-flags
-      (list (string-append "--with-html-dir="
-                           (assoc-ref %outputs "doc")
-                           "/share/gtk-doc/html"))
+      (list "-Ddocs=true")
       #:phases
       (modify-phases %standard-phases
-        (replace 'check
-                 ;; Run test-suite under a dbus session.
-                 (lambda _
-                   ;; Don't fail on missing  '/etc/machine-id'.
-                   (setenv "DBUS_FATAL_WARNINGS" "0")
-                   (invoke "dbus-launch" "make" "check"))))))
+        (add-after 'unpack 'set-documentation-path
+          (lambda* (#:key outputs #:allow-other-keys)
+            ;; Ensure that the cross-references point to the "doc" output.
+            (substitute* "doc/libatspi/meson.build"
+              (("docpath =.*")
+               (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
+            #t))
+        (add-before 'install 'prepare-doc-directory
+          (lambda* (#:key outputs #:allow-other-keys)
+            (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
+            #t))
+        (add-after 'install 'move-documentation
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out"))
+                  (doc (assoc-ref outputs "doc")))
+              (copy-recursively
+               (string-append out "/share/gtk-doc")
+               (string-append doc "/share/gtk-doc"))
+              (delete-file-recursively
+               (string-append out "/share/gtk-doc")))
+            #t))
+        (add-after 'install 'check
+          (lambda _
+            (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+            ;; Run test-suite under a dbus session.
+            (setenv "XDG_DATA_DIRS"     ; for finding org.xfce.Xfconf.service
+                    (string-append %output "/share"))
+            ;; Don't fail on missing  '/etc/machine-id'.
+            (setenv "DBUS_FATAL_WARNINGS" "0") ;
+            (invoke "dbus-launch" "ninja" "test")))
+         (delete 'check))))
    (propagated-inputs
     ;; atspi-2.pc refers to all these.
     `(("dbus" ,dbus)
-      ("glib" ,glib)))
-   (inputs
-    `(("libxi" ,libxi)
+      ("glib" ,glib)
+      ("libxi" ,libxi)
       ("libxtst" ,libxtst)))
    (native-inputs
     `(("gobject-introspection" ,gobject-introspection)
+      ("gtk-doc" ,gtk-doc)
+      ("glib" ,glib "bin")
       ("intltool" ,intltool)
       ("pkg-config" ,pkg-config)))
    (synopsis "Assistive Technology Service Provider Interface, core components")
@@ -592,7 +625,7 @@ is part of the GNOME accessibility project.")
 (define-public at-spi2-atk
   (package
    (name "at-spi2-atk")
-   (version "2.26.2")
+   (version "2.32.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -600,8 +633,8 @@ is part of the GNOME accessibility project.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0vkan52ab9vrkknnv8y4f1cspk8x7xd10qx92xk9ys71p851z2b1"))))
-   (build-system gnu-build-system)
+              "0p54wx6f6q7s8w0b1j0sgw87pikllp79q5g3lfiwqazs779ycl8b"))))
+   (build-system meson-build-system)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
@@ -609,14 +642,16 @@ is part of the GNOME accessibility project.")
                  ;; Run test-suite under a dbus session.
                  (lambda _
                    (setenv "DBUS_FATAL_WARNINGS" "0")
-                   (invoke "dbus-launch" "make" "check"))))))
+                   (invoke "dbus-launch" "meson" "test"))))))
    (propagated-inputs
     `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
    (inputs
     `(("atk" ,atk)))
    (native-inputs
-    `(("dbus" ,dbus) ; for testing
-      ("pkg-config" ,pkg-config)))
+    `(("pkg-config" ,pkg-config)
+      ;; For tests.
+      ("dbus" ,dbus)
+      ("libxml2" ,libxml2)))
    (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
    (description
     "The Assistive Technology Service Provider Interface
@@ -693,8 +728,7 @@ application suites.")
    (name "gtk+")
    ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
    ;;       mate.scm will also need to be updated.
-   (version "3.24.2")
-   (replacement gtk+/fixed)
+   (version "3.24.7")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -702,7 +736,7 @@ application suites.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "14l8mimdm44r3h5pn5hzigl1z25jna8jxvb16l88v4nc4zj0afsv"))
+              "080m925dyhiidlhsxqzx040l4iha2gg38pzbfpnsnjyzl92124jj"))
             (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
                                      "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))
             (modules '((guix build utils)))
@@ -788,18 +822,6 @@ application suites.")
            (variable "GUIX_GTK3_PATH")
            (files '("lib/gtk-3.0")))))))
 
-;; Fixes a bug in Gtk that causes crashes in IceCat and Emacs.
-;; See <https://bugs.gnu.org/34454>, <https://bugs.gnu.org/34658>,
-;; and <https://gitlab.gnome.org/GNOME/gtk/issues/1523>.
-(define gtk+/fixed
-  (package
-    (inherit gtk+)
-    (source (origin
-              (inherit (package-source gtk+))
-              (patches
-               (cons (search-patch "gtk3-fix-deprecation-macro-use.patch")
-                     (origin-patches (package-source gtk+))))))))
-
 ;;;
 ;;; Guile bindings.
 ;;;
@@ -1420,7 +1442,7 @@ information.")
 (define-public gtk-doc
   (package
     (name "gtk-doc")
-    (version "1.27")
+    (version "1.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1428,7 +1450,7 @@ information.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0vwsdl61nvnmqswlz5j9m4hg7qirhazwcikcnqf9nx0c13vx6sz2"))))
+                "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 308f32e5a6..f69f452ee2 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -48,14 +48,14 @@
     ;; The 7 release series has an incompatible API, while the 6 series is still
     ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
     ;; users are ready for the 7-series API.
-    (version "6.9.10-16")
+    (version "6.9.10-35")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1ylbv69r8l3d4za4i8q41cs6lq06mnhiq4qm03rvs3vp3gyp1m9x"))))
+               "1mc7f1i29w27nqsc8gmlqxyid16ik4ys0razggwajzs7mhxy3g8g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 1df6b7b6df..f47f7623b4 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -92,14 +92,12 @@ conversions for values passed between the two languages.")
        (base32 "1x3lrj928dcxx1k8k9gf3s4s3jwvzv8mc3kkyg1g7c3a1sc1f3z9"))
       (patches (search-patches "python-cffi-x87-stack-clean.patch"))))
     (build-system python-build-system)
-    (outputs '("out" "doc"))
     (inputs
      `(("libffi" ,libffi)))
     (propagated-inputs ; required at run-time
      `(("python-pycparser" ,python-pycparser)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)
        ("python-pytest" ,python-pytest)))
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -134,17 +132,7 @@ conversions for values passed between the two languages.")
            (lambda _
              (substitute* "testing/cffi0/test_ownlib.py"
                (("ret.left") "ownlib.left"))
-             #t))
-         (add-after 'install 'install-doc
-           (lambda* (#:key outputs (make-flags '())  #:allow-other-keys)
-             (let* ((doc (string-append (assoc-ref outputs "doc")
-                                        "/share/doc/" ,name "-" ,version))
-                    (html (string-append doc "/html")))
-               (with-directory-excursion "doc"
-                 (apply invoke "make" "html" make-flags)
-                 (mkdir-p html)
-                 (copy-recursively "build/html" html))
-               #t))))))
+             #t)))))
     (home-page "https://cffi.readthedocs.org")
     (synopsis "Foreign function interface for Python")
     (description
@@ -154,6 +142,35 @@ conversions for values passed between the two languages.")
 (define-public python2-cffi
   (package-with-python2 python-cffi))
 
+(define-public python-cffi-documentation
+  (package
+    (name "python-cffi-documentation")
+    (version (package-version python-cffi))
+    (source (package-source python-cffi))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'chdir
+                    (lambda _ (chdir "doc") #t))
+                  (delete 'configure)
+                  (replace 'build
+                    (lambda* (#:key (make-flags '()) #:allow-other-keys)
+                      (apply invoke "make" "html" make-flags)))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (copy-recursively "build/html" (string-append out "/html"))
+                        #t))))))
+    (native-inputs
+     `(("sphinx-build" ,python-sphinx)))
+    (home-page (package-home-page python-cffi))
+    (synopsis "Documentation for the Python CFFI interface")
+    (description
+     "This package contains HTML documentation for the @code{python-cffi}
+project.")
+    (license (package-license python-cffi))))
+
 (define-public ruby-ffi
   (package
     (name "ruby-ffi")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e4f6e241ec..4a85859c6d 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2018 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
@@ -1046,7 +1046,7 @@ intercept and print the system calls executed by the program.")
 (define-public alsa-lib
   (package
     (name "alsa-lib")
-    (version "1.1.7")
+    (version "1.1.8")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1054,7 +1054,7 @@ intercept and print the system calls executed by the program.")
                    version ".tar.bz2"))
              (sha256
               (base32
-               "02fw7dw202mjid49w9ki3dsfcyvid5fj488561bdzcm3haw00q4x"))))
+               "1pxf0zkmps03l3zzd0fr828xhkg6a8hxljmbxzc2cyj2ls9kmp1w"))))
     (build-system gnu-build-system)
     (home-page "https://www.alsa-project.org/")
     (synopsis "The Advanced Linux Sound Architecture libraries")
@@ -1066,14 +1066,14 @@ MIDI functionality to the Linux-based operating system.")
 (define-public alsa-utils
   (package
     (name "alsa-utils")
-    (version "1.1.7")
+    (version "1.1.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/"
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
-               "02jlw6a22j2rr7inggfgk2hzx3w0fjhvhs0dn1afpzdp9aspzchx"))))
+               "1kx45yhrxai3k595yyqs4wj0p2n5b0c9mf0k36ljjf1bj8lgb6zx"))))
     (build-system gnu-build-system)
     (arguments
      ;; XXX: Disable man page creation until we have DocBook.
@@ -1086,6 +1086,13 @@ MIDI functionality to the Linux-based operating system.")
                                               "/lib/udev/rules.d"))
        #:phases
        (modify-phases %standard-phases
+         (add-before 'check 'disable-broken-test
+           (lambda _
+             ;; XXX: The 1.1.8 release tarball is missing a header that's
+             ;; required for this test to work.  Fixed in 1.1.9.
+             (substitute* "axfer/test/Makefile"
+               ((".*container-test.*") ""))
+             #t))
          (add-before
            'install 'pre-install
            (lambda _
@@ -1113,14 +1120,14 @@ MIDI functionality to the Linux-based operating system.")
 (define-public alsa-plugins
   (package
     (name "alsa-plugins")
-    (version "1.1.7")
+    (version "1.1.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/"
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
-               "0iys4zl1davzyg3mn9lvil1n3k1ifrg3v1caj3k4dqyrnrd40jx7"))))
+               "152r82i6f97gfilfgiax5prxkd4xlcipciv8ha8yrk452qbxyxvz"))))
     (build-system gnu-build-system)
     ;; TODO: Split libavcodec and speex if possible. It looks like they can not
     ;; be split, there are references to both in files.
@@ -2081,7 +2088,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.")
 (define-public kmod
   (package
     (name "kmod")
-    (version "25")
+    (version "26")
     (source (origin
               (method url-fetch)
               (uri
@@ -2089,7 +2096,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.")
                               "kmod-" version ".tar.xz"))
               (sha256
                (base32
-                "1kgixs4m3jvwk7fb3d18n6j77qhgi9qfv4csj35rs5ancr4ycrbi"))
+                "17dvrls70nr3b3x1wm8pwbqy4r8a5c20m0dhys8mjhsnpg425fsp"))
               (patches (search-patches "kmod-module-directory.patch"))))
     (build-system gnu-build-system)
     (native-inputs
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a7243557ee..90fdb468f9 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -324,15 +324,16 @@ enough to be used effectively as a scientific calculator.")
 (define-public double-conversion
   (package
     (name "double-conversion")
-    (version "3.1.0")
+    (version "3.1.4")
     (home-page "https://github.com/google/double-conversion")
     (source (origin
               (method git-fetch)
-              (uri (git-reference (url home-page) (commit version)))
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "123rb2p4snqagrybw66vnapchqdwn2rfpr1wcq0ya9gwbyl7xccx"))))
+                "13xwcqk2c0q8c1siw566clxcpvp0xrxvb72mra42wa3nvq9wlsv6"))))
     (build-system cmake-build-system)
     (arguments
      '(#:test-target "test"
@@ -2973,7 +2974,7 @@ parts of it.")
 (define-public openblas
   (package
     (name "openblas")
-    (version "0.3.4")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
@@ -2982,7 +2983,7 @@ parts of it.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1s56lgilyyw86dzmj3jkci9zsg24n60wq4d0zri1hrxlxb6ihimj"))))
+         "062kg4ny1ywz7k5grpb4pbf0hba0w6manbajwkmv4f477a31sxpl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -2998,6 +2999,7 @@ parts of it.")
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "SHELL=bash"
+             "MAKE_NB_JOBS=0"           ;use jobserver for submakes
              ;; Build the library for all supported CPUs.  This allows
              ;; switching CPU targets at runtime with the environment variable
              ;; OPENBLAS_CORETYPE=<type>, where "type" is a supported CPU type.
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 46aed1e549..9af3d97d95 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1159,8 +1159,7 @@ sockets in Perl.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("dbus" ,dbus)
-       ("zlib" ,zlib)
-       ("network-manager" ,network-manager)))
+       ("zlib" ,zlib)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm
index 5a168a6ada..0791abe764 100644
--- a/gnu/packages/ninja.scm
+++ b/gnu/packages/ninja.scm
@@ -30,7 +30,7 @@
 (define-public ninja
   (package
     (name "ninja")
-    (version "1.8.2")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/martine/ninja/"
@@ -38,7 +38,7 @@
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1x66q6494ml1p1f74mxzik1giakl4zj7rxig9jsc50087l671f46"))))
+                "1ffmzj5s9h98qhl94d9i23zcv057rsqbac9g1hdgvlzq51ccfzjx"))))
     (build-system gnu-build-system)
     (native-inputs `(("python" ,python-2)))
     (arguments
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 5c75d3d163..480f64a046 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -34,7 +34,7 @@
 (define-public nspr
   (package
     (name "nspr")
-    (version "4.20")
+    (version "4.21")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -42,7 +42,7 @@
                    version "/src/nspr-" version ".tar.gz"))
              (sha256
               (base32
-               "0vjms4j75zvv5b2siyafg7hh924ysx2cwjad8spzp7x87n8n929c"))))
+               "0nkbgk0x31nfm4xl8la0a3vrnpa8gzkh7g4k65p7n880n73k5shm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -70,7 +70,7 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.41")
+    (version "3.43")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -81,7 +81,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0bbif42fzz5gk451sv3yphdrl7m4p6zgk5jk0307j06xs3sihbmb"))
+                "1jp27w4w9nj5pkzrbc1zqj6pa09h2yy7vhzyx5fvg1q86fvw22zk"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-pkgconfig.patch"
                                        "nss-increase-test-timeout.patch"))))
@@ -129,7 +129,7 @@ in the Mozilla clients.")
              ;; leading to test failures:
              ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>.  To
              ;; work around that, set the time to roughly the release date.
-             (invoke "faketime" "2018-12-01" "./nss/tests/all.sh")))
+             (invoke "faketime" "2019-02-01" "./nss/tests/all.sh")))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/patches/at-spi2-core-meson-compat.patch b/gnu/packages/patches/at-spi2-core-meson-compat.patch
new file mode 100644
index 0000000000..168a31b4ed
--- /dev/null
+++ b/gnu/packages/patches/at-spi2-core-meson-compat.patch
@@ -0,0 +1,18 @@
+Fix build with Meson 0.50.0 and above.
+
+Taken from upstream repository:
+https://gitlab.gnome.org/GNOME/at-spi2-core/commit/44a812ea51223d82f21a098a2d45fcc5c329ce7a
+
+diff --git a/atspi/meson.build b/atspi/meson.build
+index b7a9357df1c4857dffa2ec123cd3073e67a07fea..2a6915d76202dabf923b50e6a8b85cbb83cb43d0 100644
+--- a/atspi/meson.build
++++ b/atspi/meson.build
+@@ -57,7 +57,7 @@ atspi_headers = [
+ 
+ atspi_includedir = join_paths(get_option('prefix'), get_option('includedir'), 'at-spi-2.0', 'atspi')
+ 
+-install_headers(atspi_headers, subdir: atspi_includedir)
++install_headers(atspi_headers, install_dir: atspi_includedir)
+ 
+ atspi_enums = gnome.mkenums('atspi-enum-types',
+                             sources: [ 'atspi-constants.h', 'atspi-types.h' ],
diff --git a/gnu/packages/patches/doxygen-test.patch b/gnu/packages/patches/doxygen-test.patch
index 5ac063adbf..8ccb9ec3c4 100644
--- a/gnu/packages/patches/doxygen-test.patch
+++ b/gnu/packages/patches/doxygen-test.patch
@@ -5,14 +5,14 @@ test.
 diff -u -r doxygen-1.8.7.orig/testing/012/citelist.xml doxygen-1.8.7/testing/012/citelist.xml
 --- doxygen-1.8.7.orig/testing/012/citelist.xml	2014-04-24 23:43:34.000000000 +0200
 +++ doxygen-1.8.7/testing/012/citelist.xml	2014-04-24 23:49:43.000000000 +0200
-@@ -4,17 +4,6 @@
-     <compoundname>citelist</compoundname>
-     <title>Bibliography</title>
+@@ -6,17 +6,6 @@
+     <briefdescription>
+     </briefdescription>
      <detaileddescription>
 -      <para>
 -        <variablelist>
 -          <varlistentry>
--            <term><anchor id="_1CITEREF_knuth79"/>[1]</term>
+-            <term><anchor id="citelist_1CITEREF_knuth79"/>[1]</term>
 -          </varlistentry>
 -          <listitem>
 -            <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para>
diff --git a/gnu/packages/patches/gcr-disable-failing-tests.patch b/gnu/packages/patches/gcr-disable-failing-tests.patch
deleted file mode 100644
index 862c51faf0..0000000000
--- a/gnu/packages/patches/gcr-disable-failing-tests.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-This patch removes a group of tests that fail because /var/lib/dbus/machine-id
-is not present in the build environment.
-
---- gcr-3.20.0.old/Makefile.in	2017-07-03 18:05:10.742595317 -0400
-+++ gcr-3.20.0/Makefile.in	2017-07-03 18:08:26.379565428 -0400
-@@ -482,8 +482,7 @@
- 	test-openssh$(EXEEXT) test-secure-memory$(EXEEXT) \
- 	test-trust$(EXEEXT) test-parser$(EXEEXT) test-record$(EXEEXT) \
- 	test-memory-icon$(EXEEXT) test-gnupg-key$(EXEEXT) \
--	test-gnupg-collection$(EXEEXT) test-gnupg-process$(EXEEXT) \
--	test-system-prompt$(EXEEXT)
-+	test-gnupg-collection$(EXEEXT) test-gnupg-process$(EXEEXT)
- @WITH_GTK_TRUE@am__EXEEXT_4 = frob-certificate$(EXEEXT) \
- @WITH_GTK_TRUE@	frob-combo-selector$(EXEEXT) \
- @WITH_GTK_TRUE@	frob-gnupg-selector$(EXEEXT) \
-@@ -882,14 +881,6 @@
- am_test_symkey_OBJECTS = egg/test-symkey.$(OBJEXT)
- test_symkey_OBJECTS = $(am_test_symkey_OBJECTS)
- test_symkey_DEPENDENCIES = $(am__DEPENDENCIES_4)
--am_test_system_prompt_OBJECTS =  \
--	gcr/test_system_prompt-test-system-prompt.$(OBJEXT)
--test_system_prompt_OBJECTS = $(am_test_system_prompt_OBJECTS)
--test_system_prompt_DEPENDENCIES = $(am__DEPENDENCIES_3)
--test_system_prompt_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
--	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
--	$(test_system_prompt_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
--	$(LDFLAGS) -o $@
- am_test_trust_OBJECTS = gcr/test_trust-test-trust.$(OBJEXT)
- test_trust_OBJECTS = $(am_test_trust_OBJECTS)
- test_trust_DEPENDENCIES = $(am__DEPENDENCIES_3)
-@@ -974,8 +965,7 @@
- 	$(test_secret_exchange_SOURCES) $(test_secure_memory_SOURCES) \
- 	$(test_simple_certificate_SOURCES) \
- 	$(test_subject_public_key_SOURCES) $(test_symkey_SOURCES) \
--	$(test_system_prompt_SOURCES) $(test_trust_SOURCES) \
--	$(test_util_SOURCES)
-+	$(test_trust_SOURCES) $(test_util_SOURCES)
- DIST_SOURCES = $(libegg_asn1x_la_SOURCES) $(libegg_hex_la_SOURCES) \
- 	$(libegg_secmem_la_SOURCES) $(libegg_test_la_SOURCES) \
- 	$(libegg_la_SOURCES) $(libgck_@GCK_MAJOR@_la_SOURCES) \
-@@ -1016,8 +1006,7 @@
- 	$(test_secret_exchange_SOURCES) $(test_secure_memory_SOURCES) \
- 	$(test_simple_certificate_SOURCES) \
- 	$(test_subject_public_key_SOURCES) $(test_symkey_SOURCES) \
--	$(test_system_prompt_SOURCES) $(test_trust_SOURCES) \
--	$(test_util_SOURCES)
-+	$(test_trust_SOURCES) $(test_util_SOURCES)
- RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- 	ctags-recursive dvi-recursive html-recursive info-recursive \
- 	install-data-recursive install-dvi-recursive \
-@@ -2117,8 +2106,7 @@
- 	test-memory-icon \
- 	test-gnupg-key \
- 	test-gnupg-collection \
--	test-gnupg-process \
--	test-system-prompt
-+	test-gnupg-process
- 
- test_certificate_SOURCES = gcr/test-certificate.c
- test_certificate_CFLAGS = $(gcr_CFLAGS)
-@@ -2171,9 +2159,6 @@
- test_subject_public_key_SOURCES = gcr/test-subject-public-key.c
- test_subject_public_key_CFLAGS = $(gcr_CFLAGS)
- test_subject_public_key_LDADD = $(gcr_LIBS)
--test_system_prompt_SOURCES = gcr/test-system-prompt.c
--test_system_prompt_CFLAGS = $(gcr_CFLAGS)
--test_system_prompt_LDADD = $(gcr_LIBS)
- test_trust_SOURCES = gcr/test-trust.c
- test_trust_CFLAGS = $(gcr_CFLAGS)
- test_trust_LDADD = $(gcr_LIBS)
-@@ -3283,12 +3268,6 @@
- test-symkey$(EXEEXT): $(test_symkey_OBJECTS) $(test_symkey_DEPENDENCIES) $(EXTRA_test_symkey_DEPENDENCIES) 
- 	@rm -f test-symkey$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(test_symkey_OBJECTS) $(test_symkey_LDADD) $(LIBS)
--gcr/test_system_prompt-test-system-prompt.$(OBJEXT):  \
--	gcr/$(am__dirstamp) gcr/$(DEPDIR)/$(am__dirstamp)
--
--test-system-prompt$(EXEEXT): $(test_system_prompt_OBJECTS) $(test_system_prompt_DEPENDENCIES) $(EXTRA_test_system_prompt_DEPENDENCIES) 
--	@rm -f test-system-prompt$(EXEEXT)
--	$(AM_V_CCLD)$(test_system_prompt_LINK) $(test_system_prompt_OBJECTS) $(test_system_prompt_LDADD) $(LIBS)
- gcr/test_trust-test-trust.$(OBJEXT): gcr/$(am__dirstamp) \
- 	gcr/$(DEPDIR)/$(am__dirstamp)
- 
-@@ -3446,7 +3425,6 @@
- @AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_secure_memory-test-secure-memory.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_simple_certificate-test-simple-certificate.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_subject_public_key-test-subject-public-key.Po@am__quote@
--@AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_trust-test-trust.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@gcr/$(DEPDIR)/test_util-test-util.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@ui/$(DEPDIR)/frob_certificate-frob-certificate.Po@am__quote@
-@@ -4968,20 +4946,6 @@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_subject_public_key_CFLAGS) $(CFLAGS) -c -o gcr/test_subject_public_key-test-subject-public-key.obj `if test -f 'gcr/test-subject-public-key.c'; then $(CYGPATH_W) 'gcr/test-subject-public-key.c'; else $(CYGPATH_W) '$(srcdir)/gcr/test-subject-public-key.c'; fi`
- 
--gcr/test_system_prompt-test-system-prompt.o: gcr/test-system-prompt.c
--@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_prompt_CFLAGS) $(CFLAGS) -MT gcr/test_system_prompt-test-system-prompt.o -MD -MP -MF gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Tpo -c -o gcr/test_system_prompt-test-system-prompt.o `test -f 'gcr/test-system-prompt.c' || echo '$(srcdir)/'`gcr/test-system-prompt.c
--@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Tpo gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Po
--@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gcr/test-system-prompt.c' object='gcr/test_system_prompt-test-system-prompt.o' libtool=no @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_prompt_CFLAGS) $(CFLAGS) -c -o gcr/test_system_prompt-test-system-prompt.o `test -f 'gcr/test-system-prompt.c' || echo '$(srcdir)/'`gcr/test-system-prompt.c
--
--gcr/test_system_prompt-test-system-prompt.obj: gcr/test-system-prompt.c
--@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_prompt_CFLAGS) $(CFLAGS) -MT gcr/test_system_prompt-test-system-prompt.obj -MD -MP -MF gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Tpo -c -o gcr/test_system_prompt-test-system-prompt.obj `if test -f 'gcr/test-system-prompt.c'; then $(CYGPATH_W) 'gcr/test-system-prompt.c'; else $(CYGPATH_W) '$(srcdir)/gcr/test-system-prompt.c'; fi`
--@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Tpo gcr/$(DEPDIR)/test_system_prompt-test-system-prompt.Po
--@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gcr/test-system-prompt.c' object='gcr/test_system_prompt-test-system-prompt.obj' libtool=no @AMDEPBACKSLASH@
--@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_system_prompt_CFLAGS) $(CFLAGS) -c -o gcr/test_system_prompt-test-system-prompt.obj `if test -f 'gcr/test-system-prompt.c'; then $(CYGPATH_W) 'gcr/test-system-prompt.c'; else $(CYGPATH_W) '$(srcdir)/gcr/test-system-prompt.c'; fi`
--
- gcr/test_trust-test-trust.o: gcr/test-trust.c
- @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_trust_CFLAGS) $(CFLAGS) -MT gcr/test_trust-test-trust.o -MD -MP -MF gcr/$(DEPDIR)/test_trust-test-trust.Tpo -c -o gcr/test_trust-test-trust.o `test -f 'gcr/test-trust.c' || echo '$(srcdir)/'`gcr/test-trust.c
- @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) gcr/$(DEPDIR)/test_trust-test-trust.Tpo gcr/$(DEPDIR)/test_trust-test-trust.Po
-@@ -5808,13 +5772,6 @@
- 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- 	--log-file $$b.log --trs-file $$b.trs \
- 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
--	"$$tst" $(AM_TESTS_FD_REDIRECT)
--test-system-prompt.log: test-system-prompt$(EXEEXT)
--	@p='test-system-prompt$(EXEEXT)'; \
--	b='test-system-prompt'; \
--	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--	--log-file $$b.log --trs-file $$b.trs \
--	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- 	"$$tst" $(AM_TESTS_FD_REDIRECT)
- .test.log:
- 	@p='$<'; \
diff --git a/gnu/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch b/gnu/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch
deleted file mode 100644
index 86a8ed1691..0000000000
--- a/gnu/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-This patch comes from Debian.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=771052
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835737
-
---- gcr-3.20.0.old/gcr/test-gnupg-collection.c	2017-06-29 14:26:33.810838197 -0400
-+++ gcr-3.20.0/gcr/test-gnupg-collection.c	2017-06-30 17:25:09.149383067 -0400
-@@ -115,6 +115,14 @@
-
-	g_object_unref (test->collection);
-
-+	/* remove potential gpg 2.1 extras, ignore any errors. */
-+	cmd = g_strdup_printf ("rm -rf %s/*.d", test->directory);
-+	system(cmd);
-+	g_free(cmd);
-+	cmd = g_strdup_printf ("rm -f %s/.gpg-v21-migrated", test->directory);
-+	system(cmd);
-+	g_free(cmd);
-+
-	cmd = g_strdup_printf ("rm -f %s/*", test->directory);
-	g_spawn_check_exit_status (system (cmd), &error);
-	g_assert_no_error (error);
-@@ -202,7 +210,7 @@
-	GcrGnupgKey *key;
-
-	_gcr_gnupg_collection_load_async (test->collection, NULL, on_async_ready, test);
--	egg_test_wait_until (500);
-+	egg_test_wait_until (2500);
-	g_assert (test->result);
-	_gcr_gnupg_collection_load_finish (test->collection, test->result, &error);
-	g_assert_no_error (error);
diff --git a/gnu/packages/patches/gnome-todo-libical-compat.patch b/gnu/packages/patches/gnome-todo-libical-compat.patch
deleted file mode 100644
index 34f2e254b2..0000000000
--- a/gnu/packages/patches/gnome-todo-libical-compat.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix compatibility with libical 3.0.
-
-Patch copied from Arch Linux:
-https://git.archlinux.org/svntogit/packages.git/tree/trunk/gnome-todo-3.26.2-libical-3.0.patch?h=packages/gnome-todo
-
-diff -up gnome-todo-3.26.2/src/gtd-task.c.libical-3.0 gnome-todo-3.26.2/src/gtd-task.c
---- gnome-todo-3.26.2/src/gtd-task.c.libical-3.0	2017-11-08 14:53:53.484294926 +0100
-+++ gnome-todo-3.26.2/src/gtd-task.c	2017-11-08 14:53:57.208294874 +0100
-@@ -778,7 +778,7 @@ gtd_task_set_complete (GtdTask  *task,
-           dt->minute = g_date_time_get_minute (now);
-           dt->second = g_date_time_get_seconds (now);
-           dt->is_date = 0;
--          dt->is_utc = 1;
-+          dt->zone = icaltimezone_get_utc_timezone ();
- 
-           /* convert timezone
-            *
diff --git a/gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch b/gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch
deleted file mode 100644
index e933555ffb..0000000000
--- a/gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Copied from <https://gitlab.gnome.org/GNOME/gtk/commit/e3a1593a>.
-Fixes upstream bugs <https://gitlab.gnome.org/GNOME/gtk/issues/1523>
-and <https://gitlab.gnome.org/GNOME/gtk/issues/1280>.
-
-diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
-index 97ada6d73919fba3dfe192dd66929e90bc7677bb..764e39495f7edb0c3efe41cca25b8bee4778887d 100644
---- a/gdk/x11/gdkwindow-x11.c
-+++ b/gdk/x11/gdkwindow-x11.c
-@@ -2985,6 +2985,7 @@ gdk_window_x11_set_background (GdkWindow      *window,
-   double r, g, b, a;
-   cairo_surface_t *surface;
-   cairo_matrix_t matrix;
-+  cairo_pattern_t *parent_relative_pattern;
- 
-   if (GDK_WINDOW_DESTROYED (window))
-     return;
-@@ -2997,8 +2998,10 @@ gdk_window_x11_set_background (GdkWindow      *window,
-     }
- 
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS
--  if (pattern == gdk_x11_get_parent_relative_pattern ())
-+  parent_relative_pattern = gdk_x11_get_parent_relative_pattern ();
- G_GNUC_END_IGNORE_DEPRECATIONS
-+
-+  if (pattern == parent_relative_pattern)
-     {
-       GdkWindow *parent;
- 
diff --git a/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch b/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch
new file mode 100644
index 0000000000..9e76653a07
--- /dev/null
+++ b/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch
@@ -0,0 +1,15 @@
+https://github.com/thepowersgang/mrustc/issues/109
+From: Danny Milosavljevic <dannym@scratchpost.org>
+Date: Fri, 3 Jan 2019 13:00:00 +0100
+
+--- mrustc/src/expand/proc_macro.cpp.orig	2019-02-01 14:16:54.208486062 +0100
++++ mrustc/src/expand/proc_macro.cpp	2019-02-01 14:17:14.350925705 +0100
+@@ -977,7 +977,7 @@
+     for(;;)
+     {
+         auto b = recv_u8();
+-        v |= static_cast<uint64_t>(b) << ofs;
++        v |= static_cast<uint64_t>(b & 0x7F) << ofs;
+         if( (b & 0x80) == 0 )
+             break;
+         ofs += 7;
diff --git a/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch b/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch
new file mode 100644
index 0000000000..63646d420c
--- /dev/null
+++ b/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch
@@ -0,0 +1,249 @@
+This patch adds support for newer versions of Poppler and some upstream
+TexLive fixes, including one for CVE-2018-17407.
+
+It is taken from Linux From Scratch:
+<http://www.linuxfromscratch.org/patches/blfs/svn/texlive-20180414-source-upstream_fixes-3.patch>.
+
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-12-26
+Initial Package Version: 20180414
+Upstream Status: Applied
+Origin: Upstream
+Description: Two fixes, cherry-picked from svn plus a CVE fix.
+I have removed the partial fixes for various system versions of poppler.
+
+r47469 Fix segfault in dvipdfm-x (XeTeX) on 1/2/4-bit transparent indexed PNGs.
+
+r47477 Fix a ptex regression for discontinuous kinsoku table.
+
+Also, via fedora (I got lost in svn) a critical fix for CVE-2018-17407
+
+"A buffer overflow in the handling of Type 1 fonts allows arbitrary code
+execution when a malicious font is loaded by one of the vulnerable tools:
+pdflatex, pdftex, dvips, or luatex."
+
+diff -Naur a/texk/dvipdfm-x/pngimage.c b/texk/dvipdfm-x/pngimage.c
+--- a/texk/dvipdfm-x/pngimage.c	2018-02-17 08:41:35.000000000 +0000
++++ b/texk/dvipdfm-x/pngimage.c	2018-10-09 01:52:01.648670875 +0100
+@@ -964,12 +964,16 @@
+   png_bytep   trans;
+   int         num_trans;
+   png_uint_32 i;
++  png_byte    bpc, mask, shift;
+ 
+   if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ||
+       !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) {
+     WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.", PNG_DEBUG_STR);
+     return NULL;
+   }
++  bpc   = png_get_bit_depth(png_ptr, info_ptr);
++  mask  = 0xff >> (8 - bpc);
++  shift = 8 - bpc;
+ 
+   smask = pdf_new_stream(STREAM_COMPRESS);
+   dict  = pdf_stream_dict(smask);
+@@ -981,7 +985,8 @@
+   pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGray"));
+   pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8));
+   for (i = 0; i < width*height; i++) {
+-    png_byte idx = image_data_ptr[i];
++    /* data is packed for 1/2/4 bpc formats, msb first */
++    png_byte idx = (image_data_ptr[bpc * i / 8] >> (shift - bpc * i % 8)) & mask;
+     smask_data_ptr[i] = (idx < num_trans) ? trans[idx] : 0xff;
+   }
+   pdf_add_stream(smask, (char *)smask_data_ptr, width*height);
+diff -Naur a/texk/dvipsk/writet1.c b/texk/dvipsk/writet1.c
+--- a/texk/dvipsk/writet1.c	2016-11-25 18:24:26.000000000 +0000
++++ b/texk/dvipsk/writet1.c	2018-10-09 01:52:01.648670875 +0100
+@@ -1449,7 +1449,9 @@
+         *(strend(t1_buf_array) - 1) = ' ';
+ 
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/luatexdir/font/writet1.w b/texk/web2c/luatexdir/font/writet1.w
+--- a/texk/web2c/luatexdir/font/writet1.w	2016-11-25 18:24:34.000000000 +0000
++++ b/texk/web2c/luatexdir/font/writet1.w	2018-10-09 01:52:01.648670875 +0100
+@@ -1625,7 +1625,9 @@
+     if (sscanf(p, "%i", &i) != 1) {
+         strcpy(t1_buf_array, t1_line_array);
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w
+--- a/texk/web2c/luatexdir/image/pdftoepdf.w	2018-01-17 18:00:12.000000000 +0000
++++ b/texk/web2c/luatexdir/image/pdftoepdf.w	2018-10-09 01:52:01.648670875 +0100
+@@ -472,10 +472,10 @@
+         break;
+     */
+     case objString:
+-        copyString(pdf, obj->getString());
++        copyString(pdf, (GooString *)obj->getString());
+         break;
+     case objName:
+-        copyName(pdf, obj->getName());
++        copyName(pdf, (char *)obj->getName());
+         break;
+     case objNull:
+         pdf_add_null(pdf);
+diff -Naur a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc
+--- a/texk/web2c/luatexdir/lua/lepdflib.cc	2018-02-14 14:44:38.000000000 +0000
++++ b/texk/web2c/luatexdir/lua/lepdflib.cc	2018-10-09 01:52:01.649670868 +0100
+@@ -674,7 +674,7 @@
+     uin = (udstruct *) luaL_checkudata(L, 1, M_##in);          \
+     if (uin->pd != NULL && uin->pd->pc != uin->pc)             \
+         pdfdoc_changed_error(L);                               \
+-    gs = ((in *) uin->d)->function();                          \
++    gs = (GooString *)((in *) uin->d)->function();             \
+     if (gs != NULL)                                            \
+         lua_pushlstring(L, gs->getCString(), gs->getLength()); \
+     else                                                       \
+@@ -1813,7 +1813,7 @@
+     if (uin->pd != NULL && uin->pd->pc != uin->pc)
+         pdfdoc_changed_error(L);
+     if (((Object *) uin->d)->isString()) {
+-        gs = ((Object *) uin->d)->getString();
++        gs = (GooString *)((Object *) uin->d)->getString();
+         lua_pushlstring(L, gs->getCString(), gs->getLength());
+     } else
+         lua_pushnil(L);
+diff -Naur a/texk/web2c/pdftexdir/writet1.c b/texk/web2c/pdftexdir/writet1.c
+--- a/texk/web2c/pdftexdir/writet1.c	2016-11-25 18:24:37.000000000 +0000
++++ b/texk/web2c/pdftexdir/writet1.c	2018-10-09 01:52:01.649670868 +0100
+@@ -1598,7 +1598,9 @@
+         *(strend(t1_buf_array) - 1) = ' ';
+ 
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/ptexdir/ptex_version.h b/texk/web2c/ptexdir/ptex_version.h
+--- a/texk/web2c/ptexdir/ptex_version.h	2018-01-21 03:48:06.000000000 +0000
++++ b/texk/web2c/ptexdir/ptex_version.h	2018-10-09 01:52:01.649670868 +0100
+@@ -1 +1 @@
+-#define PTEX_VERSION "p3.8.0"
++#define PTEX_VERSION "p3.8.1"
+diff -Naur a/texk/web2c/ptexdir/tests/free_ixsp.tex b/texk/web2c/ptexdir/tests/free_ixsp.tex
+--- a/texk/web2c/ptexdir/tests/free_ixsp.tex	1970-01-01 01:00:00.000000000 +0100
++++ b/texk/web2c/ptexdir/tests/free_ixsp.tex	2018-10-09 01:52:01.649670868 +0100
+@@ -0,0 +1,53 @@
++%#!eptex -ini -etex
++\let\dump\relax
++\batchmode
++\input plain
++
++\errorstopmode
++\catcode`@=11
++\newcount\@tempcnta
++\newcount\@tempcntb
++\newcount\@tempcntc
++\mathchardef\LIM=256
++
++\def\MYCHAR#1{%
++  \@tempcntc=\numexpr7*#1+"101\relax
++  \@tempcnta=\@tempcntc\divide\@tempcnta 94
++  \@tempcntb=\numexpr\@tempcntc-94*\@tempcnta+1\relax
++  \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi
++  \advance\@tempcnta18 % 18区以降
++  \CNTA=\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax
++}
++
++\newcount\CNT\newcount\CNTA
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \message{\the\CNT.}
++  \inhibitxspcode\CNTA=1\relax
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++
++\newcount\CNTB
++
++\loop
++  \MYCHAR\CNTB
++  \global\inhibitxspcode\CNTA=3
++{%
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \count@=\numexpr 1-\inhibitxspcode\CNTA\relax
++  \ifnum\count@=0\else\ifnum\CNTB=\CNT\else
++    \errmessage{<\the\CNTB, \the\CNT, \the\inhibitxspcode\CNTA>}\fi\fi
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++}
++  \MYCHAR\CNTB
++  \global\inhibitxspcode\CNTA=1\relax
++  \advance\CNTB1\relax
++  \ifnum\CNTB<\LIM
++\repeat
++\bye
+diff -Naur a/texk/web2c/ptexdir/tests/free_pena.tex b/texk/web2c/ptexdir/tests/free_pena.tex
+--- a/texk/web2c/ptexdir/tests/free_pena.tex	1970-01-01 01:00:00.000000000 +0100
++++ b/texk/web2c/ptexdir/tests/free_pena.tex	2018-10-09 01:52:01.649670868 +0100
+@@ -0,0 +1,52 @@
++%#!eptex -ini -etex
++\let\dump\relax
++\batchmode
++\input plain
++
++\errorstopmode
++\catcode`@=11
++\newcount\@tempcnta
++\newcount\@tempcntb
++\newcount\@tempcntc
++\mathchardef\LIM=256
++
++\def\MYCHAR#1{%
++  \@tempcntc=\numexpr7*#1+"101\relax
++  \@tempcnta=\@tempcntc\divide\@tempcnta 94
++  \@tempcntb=\numexpr\@tempcntc-94*\@tempcnta+1\relax
++  \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi
++  \advance\@tempcnta18 % 18区以降
++  \CNTA=\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax
++}
++
++\newcount\CNT\newcount\CNTA
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \message{\the\CNT.}
++  \prebreakpenalty\CNTA=\numexpr\CNT+1\relax
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++
++\newcount\CNTB
++
++\loop
++  \MYCHAR\CNTB
++  \global\prebreakpenalty\CNTA=0
++{%
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \count@=\numexpr -\CNT-1+\prebreakpenalty\CNTA\relax
++  \ifnum\count@=0\else\ifnum\CNTB=\CNT\else\errmessage{<\the\CNTB, \the\CNT>}\fi\fi
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++}
++  \MYCHAR\CNTB
++  \global\prebreakpenalty\CNTA=\numexpr\CNTB+1\relax
++  \advance\CNTB1\relax
++  \ifnum\CNTB<\LIM
++\repeat
++\bye
diff --git a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch
deleted file mode 100644
index eba4733f32..0000000000
--- a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-Fix compatibility with Poppler 0.72.
-
-These files are taken from the upstream "poppler0.72.0.cc" variants and
-diffed against the "newpoppler" files from the 20180414 distribution.
-
-See revision 49336:
-https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/
-
---- a/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc	2018-12-09 21:14:58.479732695 +0100
-@@ -22,7 +22,7 @@
- https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
- by Arch Linux. A little modifications are made to avoid a crash for
- some kind of pdf images, such as figure_missing.pdf in gnuplot.
--The poppler should be 0.59.0 or newer versions.
-+The poppler should be 0.72.0 or newer versions.
- POPPLER_VERSION should be defined.
- */
- 
-@@ -120,7 +120,7 @@
- 
- static InObj *inObjList;
- static UsedEncoding *encodingList;
--static GBool isInit = gFalse;
-+static bool isInit = false;
- 
- // --------------------------------------------------------------------
- // Maintain list of open embedded PDF files
-@@ -317,7 +317,7 @@
-     pdf_puts("<<\n");
-     assert(r->type == objFont); // FontDescriptor is in fd_tree
-     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
--        key = obj->dictGetKey(i);
-+        key = (char *)obj->dictGetKey(i);
-         if (strncmp("FontDescriptor", key, strlen("FontDescriptor")) == 0
-             || strncmp("BaseFont", key, strlen("BaseFont")) == 0
-             || strncmp("Encoding", key, strlen("Encoding")) == 0)
-@@ -427,7 +427,7 @@
-         charset = fontdesc.dictLookup("CharSet");
-         if (!charset.isNull() &&
-             charset.isString() && is_subsetable(fontmap))
--            epdf_mark_glyphs(fd, (char *)charset.getString()->getCString());
-+            epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
-         else
-             embed_whole_font(fd);
-         addFontDesc(fontdescRef.getRef(), fd);
-@@ -454,7 +454,7 @@
-     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-         fontRef = obj->dictGetValNF(i);
-         if (fontRef.isRef())
--            copyFont(obj->dictGetKey(i), &fontRef);
-+            copyFont((char *)obj->dictGetKey(i), &fontRef);
-         else if (fontRef.isDict()) {   // some programs generate pdf with embedded font object
-             copyName((char *)obj->dictGetKey(i));
-             pdf_puts(" ");
-@@ -566,7 +566,7 @@
-         pdf_printf("%s", convertNumToPDF(obj->getNum()));
-     } else if (obj->isString()) {
-         s = (GooString *)obj->getString();
--        p = s->getCString();
-+        p = (char *)s->c_str();
-         l = s->getLength();
-         if (strlen(p) == (unsigned int) l) {
-             pdf_puts("(");
-@@ -664,7 +664,7 @@
-                     ("PDF inclusion: CID fonts are not supported"
-                      " (try to disable font replacement to fix this)");
-             }
--            if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
-+            if ((s = (char *)((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
-                 glyphNames[i] = s;
-             else
-                 glyphNames[i] = notdef;
-@@ -683,7 +683,7 @@
- }
- 
- // get the pagebox according to the pagebox_spec
--static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
-+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
- {
-     if (pagebox_spec == pdfboxspecmedia)
-         return page->getMediaBox();
-@@ -715,7 +715,7 @@
- {
-     PdfDocument *pdf_doc;
-     Page *page;
--    PDFRectangle *pagebox;
-+    const PDFRectangle *pagebox;
- #ifdef POPPLER_VERSION
-     int pdf_major_version_found, pdf_minor_version_found;
- #else
-@@ -724,8 +724,8 @@
-     // initialize
-     if (!isInit) {
-         globalParams = new GlobalParams();
--        globalParams->setErrQuiet(gFalse);
--        isInit = gTrue;
-+        globalParams->setErrQuiet(false);
-+        isInit = true;
-     }
-     // open PDF file
-     pdf_doc = find_add_document(image_name);
-@@ -849,7 +849,7 @@
-     pageObj = xref->fetch(pageRef->num, pageRef->gen);
-     pageDict = pageObj.getDict();
-     rotate = page->getRotate();
--    PDFRectangle *pagebox;
-+    const PDFRectangle *pagebox;
-     // write the Page header
-     pdf_puts("/Type /XObject\n");
-     pdf_puts("/Subtype /Form\n");
-@@ -977,7 +977,7 @@
-             }
-             l = dic1.getLength();
-             for (i = 0; i < l; i++) {
--                groupDict.dictAdd(copyString(dic1.getKey(i)),
-+                groupDict.dictAdd((const char *)copyString(dic1.getKey(i)),
-                                   dic1.getValNF(i));
-             }
- // end modification
-@@ -1001,14 +1001,14 @@
-         pdf_puts("/Resources <<\n");
-         for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
-             obj2 = obj1->dictGetVal(i);
--            key = obj1->dictGetKey(i);
-+            key = (char *)obj1->dictGetKey(i);
-             if (strcmp("Font", key) == 0)
-                 copyFontResources(&obj2);
-             else if (strcmp("ProcSet", key) == 0)
-                 copyProcSet(&obj2);
-             else
--                copyOtherResources(&obj2, key);
-+                copyOtherResources(&obj2, (char *)key);
-         }
-         pdf_puts(">>\n");
-     }
-
---- a/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc	2018-12-09 21:14:58.479732695 +0100
-@@ -20,7 +20,7 @@
- /*
- This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
- https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
--by Arch Linux. The poppler should be 0.59.0 or newer versions.
-+by Arch Linux. The poppler should be 0.72.0 or newer versions.
- POPPLER_VERSION should be defined.
- */
- 
-@@ -109,7 +109,7 @@
-             fprintf(stderr, "No SourceName found\n");
-             exit(1);
-         }
--        outname = (char *)srcName.getString()->getCString();
-+        outname = (char *)srcName.getString()->c_str();
-         // We cannot free srcName, as objname shares its string.
-         // srcName.free();
-     } else if (objnum > 0) {
-@@ -118,7 +118,7 @@
-             fprintf(stderr, "Not a Stream object\n");
-             exit(1);
-         }
--        sprintf(buf, "%s", fileName->getCString());
-+        sprintf(buf, "%s", fileName->c_str());
-         if ((p = strrchr(buf, '.')) == 0)
-             p = strchr(buf, 0);
-         if (objgen == 0)
-@@ -128,7 +128,7 @@
-         outname = buf;
-     } else {                    // objnum < 0 means we are extracting the XRef table
-         extract_xref_table = true;
--        sprintf(buf, "%s", fileName->getCString());
-+        sprintf(buf, "%s", fileName->c_str());
-         if ((p = strrchr(buf, '.')) == 0)
-             p = strchr(buf, 0);
-         sprintf(p, ".xref");
-@@ -173,9 +173,9 @@
- 
-                 // parse the header: object numbers and offsets
-                 objStr.streamReset();
--                str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
-+                str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
-                 lexer = new Lexer(xref, str);
--                parser = new Parser(xref, lexer, gFalse);
-+                parser = new Parser(xref, lexer, false);
-                 for (n = 0; n < nObjects; ++n) {
-                     obj1 = parser->getObj();
-                     obj2 = parser->getObj();
-
diff --git a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch
deleted file mode 100644
index cac716cc59..0000000000
--- a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix compatibility with Poppler 0.72.
-
-Patch taken from upstream:
-https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/xetexdir/pdfimage.cpp?r1=44964&r2=48969&diff_format=u
-
---- a/texk/web2c/xetexdir/pdfimage.cpp	2017/08/06 07:12:02	44964
-+++ b/texk/web2c/xetexdir/pdfimage.cpp	2018/10/22 04:01:42	48969
-@@ -82,19 +82,19 @@
- 	switch (pdf_box) {
- 		default:
- 		case pdfbox_crop:
--			r = page->getCropBox();
-+			r = (PDFRectangle *)page->getCropBox();
- 			break;
- 		case pdfbox_media:
--			r = page->getMediaBox();
-+			r = (PDFRectangle *)page->getMediaBox();
- 			break;
- 		case pdfbox_bleed:
--			r = page->getBleedBox();
-+			r = (PDFRectangle *)page->getBleedBox();
- 			break;
- 		case pdfbox_trim:
--			r = page->getTrimBox();
-+			r = (PDFRectangle *)page->getTrimBox();
- 			break;
- 		case pdfbox_art:
--			r = page->getArtBox();
-+			r = (PDFRectangle *)page->getArtBox();
- 			break;
- 	}
diff --git a/gnu/packages/patches/totem-meson-compat.patch b/gnu/packages/patches/totem-meson-compat.patch
new file mode 100644
index 0000000000..8557908dd0
--- /dev/null
+++ b/gnu/packages/patches/totem-meson-compat.patch
@@ -0,0 +1,14 @@
+Fix an error that occurs with Meson 0.50.0 and later:
+"ERROR: Subdir keyword must not be an absolute path".
+
+--- a/src/meson.build	2019-03-15 00:10:26.882293850 +0100
++++ b/src/meson.build	2019-03-15 00:10:54.312197229 +0100
+@@ -82,7 +82,7 @@
+ 
+ install_headers(
+   headers,
+-  subdir: join_paths(totem_includedir, totem_api_path)
++  install_dir: join_paths(totem_includedir, totem_api_path)
+ )
+ 
+ libtotem_player_sources = files(
diff --git a/gnu/packages/patches/valgrind-glibc-compat.patch b/gnu/packages/patches/valgrind-glibc-compat.patch
deleted file mode 100644
index 4f8effd207..0000000000
--- a/gnu/packages/patches/valgrind-glibc-compat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix build failure with glibc 2.26.
-
-Patch copied from upstream source repository:
-https://sourceware.org/git/?p=valgrind.git;a=commit;h=2b5eab6a8db1b0487a3ad7fc4e7eeda6d3513626
-
-diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c
-index a978fc2..7f97b90 100644
---- a/memcheck/tests/linux/stack_changes.c
-+++ b/memcheck/tests/linux/stack_changes.c
-@@ -10,7 +10,7 @@
- // This test is checking the libc context calls (setcontext, etc.) and
- // checks that Valgrind notices their stack changes properly.
- 
--typedef  struct ucontext  mycontext;
-+typedef  ucontext_t  mycontext;
- 
- mycontext ctx1, ctx2, oldc;
- int count;
diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm
index d5369f3b6d..f8b79cf907 100644
--- a/gnu/packages/pciutils.scm
+++ b/gnu/packages/pciutils.scm
@@ -31,7 +31,7 @@
 (define-public pciutils
   (package
     (name "pciutils")
-    (version "3.6.1")
+    (version "3.6.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -39,7 +39,7 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "1q39hh8scgvqppk1clzjh7yiq5p2r0knv52g3qzmdhsir4f47h7w"))))
+                "1wwkpglvvr1sdj2gxz9khq507y02c4px48njy25divzdhv4jwifv"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index ff26bed64f..671e91262a 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -663,14 +663,14 @@ line tools for batch rendering @command{pdfdraw}, rewriting files
 (define-public qpdf
   (package
    (name "qpdf")
-   (version "8.2.1")
+   (version "8.4.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://sourceforge/qpdf/qpdf/" version
                                 "/qpdf-" version ".tar.gz"))
             (sha256
              (base32
-              "1jdb0jj72fjdp6xip4m7yz31r5x13zs7h4smnxsycgw3vbmx6igl"))
+              "1864p952m8vzxk6v500a42psbqj2g2gyli3d3zj6h33hzwxqy09r"))
             (modules '((guix build utils)))
             (snippet
              ;; Replace shebang with the bi-lingual shell/Perl trick to remove
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index ec068bdf0b..065c06df2a 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1280,15 +1280,19 @@ WebSocket usage in Python programs.")
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.13.0")
+    (version "2.21.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "1s0wg4any4dsv5l3hqjxqk2zgb7pdbqhy9rhc8kh3aigfq4ws8jp"))))
-    ;; TODO: unbundle urllib3 and chardet.
+               "13jr0wkj9c2j8c0c8iaal9iivi0bpxghnsdn6lxcpnmc657q4ajh"))))
     (build-system python-build-system)
+    (propagated-inputs
+     `(("python-certifi" ,python-certifi)
+       ("python-chardet" ,python-chardet)
+       ("python-idna" ,python-idna)
+       ("python-urllib3" ,python-urllib3)))
     (arguments
      ;; FIXME: Some tests require network access.
      '(#:tests? #f))
@@ -1457,11 +1461,6 @@ authenticated session objects providing things like keep-alive.")
           "08lwd9f3hqznyf32vnzwvp87pchx062nkbgyrf67rwlkgj0jk5fy"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
-    (native-inputs
-     `(;; some packages for tests
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-tornado" ,python-tornado)))
     (propagated-inputs
      `(;; These 5 inputs are used to build urrlib3[secure]
        ("python-certifi" ,python-certifi)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 014026d06e..0379095dab 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2937,14 +2937,14 @@ and is very extensible.")
 (define-public python-cython
   (package
     (name "python-cython")
-    (version "0.29.5")
+    (version "0.29.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Cython" version))
        (sha256
         (base32
-         "1wfb68g115gmf3mv23w0hh972b0ll85gpb92ci28x6h997br0llx"))))
+         "1bp7cn0pp5qy63k9hbp4ka34fm01kvysh478phpkhr68npqk6pbc"))))
     (build-system python-build-system)
     ;; we need the full python package and not just the python-wrapper
     ;; because we need libpython3.3m.so
@@ -2976,9 +2976,6 @@ and is very extensible.")
 
          (replace 'check
            (lambda _
-             ;; The "with_outer_raising" test fails with Python 3.7.  See
-             ;; https://github.com/cython/cython/issues/2454
-             (delete-file "tests/run/generators_py.py")
              (invoke "python" "runtests.py" "-vv"))))))
     (home-page "http://cython.org/")
     (synopsis "C extensions for Python")
@@ -3390,13 +3387,13 @@ library, libgit2 implements Git plumbing.")
 (define-public python-pyparsing
   (package
     (name "python-pyparsing")
-    (version "2.2.1")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyparsing" version))
        (sha256
-        (base32 "06dgd0iilvf8m0ssmfpcbh8l6jf0zkp8adbb84llksg17crfx4zl"))))
+        (base32 "0yk6xl885b91dmlhlsap7x78hk2rdr879fln9anbq6k4ca42djb6"))))
     (build-system python-build-system)
     (outputs '("out" "doc"))
     (arguments
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 63426a12fc..7b76858a9f 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -144,7 +144,9 @@ Specific to rust versions before 1.32."
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i"))))
+                  "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i"))
+                (patches
+                 (search-patches "mrustc-0.8.0-fix-variable-length-integer-receiving.patch"))))
       (outputs '("out" "cargo"))
       (build-system gnu-build-system)
       (inputs
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index fffb06204f..21f925937a 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -79,14 +79,19 @@
                            ;; finding the libGL from mesa at runtime.
                            "LDFLAGS=-lGL")
 
+       #:make-flags '("V=1")            ;build verbosely
+
        #:tests? #f)) ; no check target
     (propagated-inputs
      ;; SDL headers include X11 headers.
      `(("libx11" ,libx11)
-       ("libcap" ,libcap))) ; 'libSDL.la' contain `-lcap'.
+       ("libcap" ,libcap) ; 'libSDL.la' contain `-lcap'.
+       ;; TODO: Since building Mesa with Meson it is now necessary that Mesa is
+       ;; a propogated input. We still need to figure out why, possibly due to a
+       ;; change in pkg-config.
+       ("mesa" ,mesa)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("libxrandr" ,libxrandr)
-              ("mesa" ,mesa)
               ("glu" ,glu)
               ("alsa-lib" ,alsa-lib)
               ("pulseaudio" ,pulseaudio)))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 579dacafef..314d88f2fc 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -102,21 +102,23 @@
        (base32
         "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
       (patches
-       (list
-        ;; This is required for compatibility with Poppler 0.64.0 and to fix a
-        ;; segmentation fault in dvipdfm-x from XeTeX, and also contains a fix
-        ;; for CVE-2018-17407.
-        (origin
-          (method url-fetch)
-          (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/"
-                              "svn/texlive-" version "-source-upstream_fixes-2.patch"))
-          (file-name "texlive-poppler-compat.patch")
-          (sha256
-           (base32
-            "04sxy1qv9y575mxwyg3y7rx7mh540pfjqx7yni7ncb5wjbq9pq1a")))
-        (search-patch "texlive-bin-luatex-poppler-compat.patch")
-        (search-patch "texlive-bin-pdftex-poppler-compat.patch")
-        (search-patch "texlive-bin-xetex-poppler-compat.patch")))))
+       (let ((arch-patch
+              (lambda (name revision hash)
+                (origin
+                  (method url-fetch)
+                  (uri (string-append "https://git.archlinux.org/svntogit/packages.git"
+                                      "/plain/trunk/" name "?h=packages/texlive-bin"
+                                      "&id=" revision))
+                  (file-name (string-append "texlive-bin-" name))
+                  (sha256 (base32 hash)))))
+             (arch-revision "e1975bce0b9d270d7c9773c5beb7e87d61ee8f57"))
+         (append (search-patches  "texlive-bin-CVE-2018-17407.patch"
+                                  "texlive-bin-luatex-poppler-compat.patch")
+                 (list
+                  (arch-patch "pdftex-poppler0.72.patch" arch-revision
+                              "0p46b6xxxg2s3hx67r0wpz16g3qygx65hpc581xs3jz5pvsiq3y7")
+                  (arch-patch "xetex-poppler-fixes.patch" arch-revision
+                              "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
    (build-system gnu-build-system)
    (inputs
     `(("texlive-extra-src" ,texlive-extra-src)
@@ -195,9 +197,9 @@
             #t))
         (add-after 'unpack 'use-code-for-new-poppler
           (lambda _
-            (copy-file "texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc"
+            (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc"
                        "texk/web2c/pdftexdir/pdftoepdf.cc")
-            (copy-file "texk/web2c/pdftexdir/pdftosrc-newpoppler.cc"
+            (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc"
                        "texk/web2c/pdftexdir/pdftosrc.cc")
             #t))
         (add-after 'unpack 'disable-failing-test
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index 0a6206b3b1..9952fa1647 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -32,7 +32,7 @@
 (define-public valgrind
   (package
     (name "valgrind")
-    (version "3.13.0")
+    (version "3.14.0")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "http://www.valgrind.org/downloads"
@@ -41,9 +41,8 @@
                                         "/valgrind-" version ".tar.bz2")))
               (sha256
                (base32
-                "0fqc3684grrbxwsic1rc5ryxzxmigzjx9p5vf3lxa37h0gpq0rnp"))
-              (patches (search-patches "valgrind-enable-arm.patch"
-                                       "valgrind-glibc-compat.patch"))))
+                "19ds42jwd89zrsjb94g7gizkkzipn8xik3xykrpcqxylxyzi2z03"))
+              (patches (search-patches "valgrind-enable-arm.patch"))))
     (build-system gnu-build-system)
     (outputs '("doc"                              ;16 MB
                "out"))
@@ -79,8 +78,4 @@
 tools.  There are Valgrind tools that can automatically detect many memory
 management and threading bugs, and profile your programs in detail.  You can
 also use Valgrind to build new tools.")
-    (license gpl2+)
-
-    ;; Building VEX on mips64el-linux fails with "opcode not supported on this
-    ;; processor: mips3".
-    (supported-systems (delete "mips64el-linux" %supported-systems))))
+    (license gpl2+)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 3a043fb34f..0b9e7d0bc4 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -699,7 +699,7 @@ libebml is a C++ library to read and write EBML files.")
 (define-public libva
   (package
     (name "libva")
-    (version "2.3.0")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
@@ -711,7 +711,7 @@ libebml is a C++ library to read and write EBML files.")
              (string-append "https://www.freedesktop.org/software/vaapi/releases/"
                             "libva/libva-" version "/libva-" version ".tar.bz2")))
        (sha256
-        (base32 "1r6wiw4k044cpb39rfqqdw6qmzw0268whpz124hywck9v980x130"))))
+        (base32 "14ckq67z3pcd7jrnrm3ckss440g6dzp2m0ff5rps54qmq9b309lr"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2263,15 +2263,16 @@ and JACK.")
 (define-public libvdpau
   (package
     (name "libvdpau")
-    (version "1.1.1")
+    (version "1.2")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
-                            name "-" version ".tar.bz2"))
+        (uri (string-append "https://gitlab.freedesktop.org/vdpau/libvdpau"
+                            "/uploads/14b620084c027d546fa0b3f083b800c6/"
+                            "libvdpau-" version ".tar.bz2"))
         (sha256
          (base32
-          "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
+          "01ps6g6p6q7j2mjm9vn44pmzq3g75mm7mdgmnhb1qkjjdwc9njba"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 2866bad4f6..0c7e22bb5e 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -163,16 +163,17 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-headers
   (package
     (name "vulkan-headers")
-    (version "1.1.99")
+    (version "1.1.103")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Headers")
              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "166z6wn5kxnqm55zgzhmqa9hg48d11bfmi3wnf1mqhsx48xw6b8z"))))
+         "1q3c79rf3mma0vqmwnxwps588pnyzap4nn49hk41m39k79vniaz8"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; No tests.
@@ -186,16 +187,17 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-loader
   (package
     (name "vulkan-loader")
-    (version (package-version vulkan-headers))
+    (version "1.1.102")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Loader")
              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "02m3sdcbl8s6qr1nsba5621vg3f4akkfaa7g9hi70cpvws4x0gg8"))))
+         "0ccpklv251jcz2lxvd5ix5i3cg4wb7qq5xi6cwvniy1rw52z7h00"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ;FIXME: 23/39 tests fail.  Try "tests/run_all_tests.sh".
@@ -207,20 +209,14 @@ interpretation of the specifications for these languages.")
              (substitute* "CMakeLists.txt" ((".*spirv_tools_commit_id.h.*") ""))
              #t)))
        #:configure-flags (list
-                          "-DBUILD_LAYERS=OFF" ; FIXME: Fails to build.
                           "-DBUILD_TESTS=OFF" ; FIXME: Needs 'googletest' submodule.
                           (string-append "-DCMAKE_INSTALL_LIBDIR="
                                          (assoc-ref %outputs "out") "/lib"))))
-    (inputs `(("glslang" ,glslang)
-              ("libxcb" ,libxcb)
-              ("libx11" ,libx11)
-              ("libxrandr" ,libxrandr)
-              ("mesa" ,mesa)
-              ("spirv-tools" ,spirv-tools)
-              ("vulkan-headers" ,vulkan-headers)
-              ("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("python" ,python)))
+    (native-inputs `(("libxrandr" ,libxrandr)
+                     ("pkg-config" ,pkg-config)
+                     ("python" ,python)
+                     ("vulkan-headers" ,vulkan-headers)
+                     ("wayland" ,wayland)))
     (home-page
      "https://github.com/KhronosGroup/Vulkan-Loader")
     (synopsis "Khronos official ICD loader and validation layers for Vulkan")
@@ -242,29 +238,31 @@ and the ICD.")
 (define-public vulkan-tools
   (package
     (name "vulkan-tools")
-    (version "1.1.97.0")
+    (version "1.1.102")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Tools")
-             (commit (string-append "sdk-" version))))
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1p70wk0x546w1dlvlghrqm4l4b6ql0x08pdybyagnwwph0gdvqy3"))))
+         "0a8vmgyn7an21bb9vxba9laf9ghvk905vn7rm8frdl8qr2b7vyw3"))))
     (build-system cmake-build-system)
     (inputs
      `(("glslang" ,glslang)
        ("libxrandr" ,libxrandr)
-       ("mesa" ,mesa)
-       ("vulkan-headers" ,vulkan-headers)
        ("vulkan-loader" ,vulkan-loader)
        ("wayland" ,wayland)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python" ,python)
+       ("vulkan-headers" ,vulkan-headers)))
     (arguments
-     `(#:tests? #f))                    ; No tests.
+     `(#:tests? #f                      ; No tests.
+       #:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR="
+                               (assoc-ref %build-inputs "glslang")))))
     (home-page
      "https://github.com/KhronosGroup/Vulkan-Tools")
     (synopsis "Tools and utilities for Vulkan")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 415a1fc003..c034b50927 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -219,14 +219,14 @@ avoiding password prompts when X11 forwarding has already been setup.")
 (define-public libxkbcommon
   (package
     (name "libxkbcommon")
-    (version "0.8.2")
+    (version "0.8.4")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://xkbcommon.org/download/" name "-"
+             (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "136mdq11lrwg6rjmm44lmysxxgb9c35p4sq6k0cd129x82rw9f3s"))))
+               "12vc91ydhphd5sddz15560r41l7k0i7mq6nma8kkbzdp6bwwzpb0"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)
@@ -379,7 +379,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.96")
+    (version "2.4.97")
     (source
       (origin
         (method url-fetch)
@@ -389,23 +389,26 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
          (base32
-          "14xkip83qgljjaahzq40qgl60j54q7k00la1hbf5kk5lgg7ilmhd"))
+          "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p"))
         (patches (search-patches "libdrm-symbol-check.patch"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
      `(#:configure-flags
        '(,@(match (%current-system)
-             ("armhf-linux"
-              '("--enable-exynos-experimental-api"
-                "--enable-omap-experimental-api"
-                "--enable-etnaviv-experimental-api"
-                "--enable-tegra-experimental-api"
-                "--enable-freedreno-kgsl"))
-             ("aarch64-linux"
-              '("--enable-tegra-experimental-api"
-                "--enable-etnaviv-experimental-api"
-                "--enable-freedreno-kgsl"))
-             (_ '())))))
+             ((or "armhf-linux" "aarch64-linux")
+              '("-Dexynos=true"
+                "-Domap=true"
+                "-Detnaviv=true"
+                "-Dtegra=true"
+                "-Dfreedreno-kgsl=true"))
+             (_ '())))
+       ,@(if (string=? (%current-system) "armhf-linux")
+             '(#:phases
+               (modify-phases %standard-phases
+                 (replace 'check
+                   (lambda _
+                     (invoke "meson" "test" "--timeout-multiplier" "5")))))
+             '())))
     (inputs
      `(("libpciaccess" ,libpciaccess)))
     (native-inputs
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 49d23bf6d5..15502bd0e9 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -235,7 +235,6 @@ It currently supports:
 (define flac
   (package
    (name "flac")
-   (replacement flac/fixed)
    (version "1.3.2")
    (source (origin
             (method url-fetch)
@@ -243,7 +242,8 @@ It currently supports:
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))))
+              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))
+            (patches (search-patches "flac-CVE-2017-6888.patch"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f))
@@ -257,14 +257,6 @@ meaning that audio is compressed in FLAC without any loss in quality.")
                                "See COPYING in the distribution.")) ; and LGPL and GPL
    (home-page "https://xiph.org/flac/")))
 
-(define flac/fixed
-  (package
-    (inherit flac)
-    (source
-      (origin
-        (inherit (package-source flac))
-        (patches (search-patches "flac-CVE-2017-6888.patch"))))))
-
 (define libkate
   (package
    (name "libkate")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 770aa9409c..18270a6771 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1082,7 +1082,7 @@ synchronization between the X server and direct-rendering clients.")
 (define-public libfontenc
   (package
     (name "libfontenc")
-    (version "1.1.3")
+    (version "1.1.4")
     (source
       (origin
         (method url-fetch)
@@ -1092,14 +1092,14 @@ synchronization between the X server and direct-rendering clients.")
                ".tar.bz2"))
         (sha256
           (base32
-            "08gxmrhgw97mv0pvkfmd46zzxrn6zdw4g27073zl55gwwqq8jn3h"))))
+            "0y90170dp8wsidr1dzza0grxr1lfh30ji3b5vkjz4j6x1n0wxz1c"))))
     (build-system gnu-build-system)
     (inputs
       `(("zlib" ,zlib)
         ("xorgproto" ,xorgproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/lib/libfontenc")
     (synopsis "Xorg font encoding library")
     (description "Xorg font encoding library.")
     (license license:x11)))
@@ -1268,7 +1268,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
 (define-public libxcomposite
   (package
     (name "libxcomposite")
-    (version "0.4.4")
+    (version "0.4.5")
     (source
       (origin
         (method url-fetch)
@@ -1278,7 +1278,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0y21nfpa5s8qmx0srdlilyndas3sgl0c6rc26d5fx2vx436m1qpd"))))
+            "13sfcglvz87vl58hd9rszwr73z0z4nwga3c12rfh7f5s2ln8l8dk"))))
     (build-system gnu-build-system)
     (propagated-inputs
      ;; xcomposite.pc refers to all these.
@@ -1357,7 +1357,7 @@ configuration files.")
 (define-public libxkbfile
   (package
     (name "libxkbfile")
-    (version "1.0.9")
+    (version "1.1.0")
     (source
       (origin
         (method url-fetch)
@@ -1367,7 +1367,7 @@ configuration files.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0smimr14zvail7ar68n7spvpblpdnih3jxrva7cpa6cn602px0ai"))))
+            "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm"))))
     (build-system gnu-build-system)
     (inputs
       `(("libx11" ,libx11)))
@@ -1554,7 +1554,7 @@ input from UTF-8 into the locale's encoding.")
 (define-public makedepend
   (package
     (name "makedepend")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
       (origin
         (method url-fetch)
@@ -1564,7 +1564,7 @@ input from UTF-8 into the locale's encoding.")
                ".tar.bz2"))
         (sha256
           (base32
-            "09alw99r6y2bbd1dc786n3jfgv4j520apblyn7cw6jkjydshba7p"))))
+            "072h9nzh8s5vqfz35dli4fba36fnr219asjrb7p89n8ph0paan6m"))))
     (build-system gnu-build-system)
     (inputs
       `(("xorgproto" ,xorgproto)))
@@ -3839,7 +3839,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.24")
+    (version "2.26")
     (source
       (origin
         (method url-fetch)
@@ -3849,7 +3849,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "1my4786pd7iv5x392r9skj3qclmbd26nqzvh2fllwkkbyj08bcci"))))
+            "13h3381pfp4pv32189zkfsj2x0alr91xj6dqii76rl0c8v3ihdrr"))))
     (build-system gnu-build-system)
     (inputs
       `(("gettext" ,gettext-minimal)
@@ -4970,7 +4970,7 @@ new API's in libXft, or the legacy API's in libX11.")
 (define-public libxvmc
   (package
     (name "libxvmc")
-    (version "1.0.10")
+    (version "1.0.11")
     (source
       (origin
         (method url-fetch)
@@ -4980,7 +4980,7 @@ new API's in libXft, or the legacy API's in libX11.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0bpffxr5dal90a8miv2w0rif61byqxq2f5angj4z1bnznmws00g5"))))
+            "0bb2c996p0smp2lwckffcfh4701bzv7266xh230ag0x68ka38bja"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("libxv" ,libxv)))
@@ -5132,8 +5132,8 @@ over Xlib, including:
         ("xcb-util-renderutil" ,xcb-util-renderutil)
         ("xcb-util-wm" ,xcb-util-wm)))
     (native-inputs
-       `(("python" ,python-minimal-wrapper)
-         ("pkg-config" ,pkg-config)))
+     `(("python" ,python-wrapper)
+       ("pkg-config" ,pkg-config)))
     (arguments
      `(#:parallel-tests? #f
        #:configure-flags
@@ -5205,16 +5205,7 @@ draggable titlebars and borders.")
 (define-public xorg-server-for-tests
   (hidden-package
    (package
-     (inherit xorg-server)
-     (version "1.20.3")
-     (source (origin
-               (inherit (package-source xorg-server))
-               (uri (string-append
-                     "mirror://xorg/individual/xserver/"
-                     "xorg-server-" version ".tar.bz2"))
-               (sha256
-                (base32
-                 "1ph1j8gy5cazsq05krq9kppjx5v1sl75pbdka8ibxb1cq5kf8g0v")))))))
+     (inherit xorg-server))))
 
 (define-public xorg-server-xwayland
   (package
@@ -5275,7 +5266,7 @@ draggable titlebars and borders.")
 (define-public libxcursor
   (package
     (name "libxcursor")
-    (version "1.1.15")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
@@ -5285,7 +5276,7 @@ draggable titlebars and borders.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0syzlfvh29037p0vnlc8f3jxz8nl55k65blswsakklkwsc6nfki9"))))
+            "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("libx11" ,libx11)
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index 3a658e2557..63c94765f7 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -86,28 +86,29 @@ operation is not deterministic, we replace it with `find`."
   "Remove the original gemspec, if present, and replace it with a new one.
 This avoids issues with upstream gemspecs requiring tools such as git to
 generate the files list."
-  (when (gem-archive? source)
-    (let ((gemspec (or (false-if-exception (first-gemspec))
-                       ;; Make new gemspec if one wasn't shipped.
-                       ".gemspec")))
-
-      (when (file-exists? gemspec) (delete-file gemspec))
-
-      ;; Extract gemspec from source gem.
-      (let ((pipe (open-pipe* OPEN_READ "gem" "spec" "--ruby" source)))
-        (dynamic-wind
-          (const #t)
-          (lambda ()
-            (call-with-output-file gemspec
-              (lambda (out)
-                ;; 'gem spec' writes to stdout, but 'gem build' only reads
-                ;; gemspecs from a file, so we redirect the output to a file.
-                (while (not (eof-object? (peek-char pipe)))
-                  (write-char (read-char pipe) out))))
-            #t)
-          (lambda ()
-            (close-pipe pipe)))))
-    #t))
+  (if (gem-archive? source)
+      (let ((gemspec (or (false-if-exception (first-gemspec))
+                         ;; Make new gemspec if one wasn't shipped.
+                         ".gemspec")))
+
+        (when (file-exists? gemspec) (delete-file gemspec))
+
+        ;; Extract gemspec from source gem.
+        (let ((pipe (open-pipe* OPEN_READ "gem" "spec" "--ruby" source)))
+          (dynamic-wind
+            (const #t)
+            (lambda ()
+              (call-with-output-file gemspec
+                (lambda (out)
+                  ;; 'gem spec' writes to stdout, but 'gem build' only reads
+                  ;; gemspecs from a file, so we redirect the output to a file.
+                  (while (not (eof-object? (peek-char pipe)))
+                    (write-char (read-char pipe) out))))
+              #t)
+            (lambda ()
+              (close-pipe pipe)))))
+      (display "extract-gemspec: skipping as source is not a gem archive\n"))
+  #t)
 
 (define* (build #:key source #:allow-other-keys)
   "Build a new gem using the gemspec from the SOURCE gem."
@@ -138,11 +139,15 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
          (gem-file-basename (basename gem-file))
          (gem-name (substring gem-file-basename
                               0
-                              (- (string-length gem-file-basename) 4))))
+                              (- (string-length gem-file-basename) 4)))
+         (gem-dir (string-append vendor-dir "/gems/" gem-name)))
     (setenv "GEM_VENDOR" vendor-dir)
 
     (or (zero?
+          ;; 'zero? system*' allows the custom error handling to function as
+          ;; expected, while 'invoke' raises its own exception.
          (apply system* "gem" "install" gem-file
+                "--verbose"
                 "--local" "--ignore-dependencies" "--vendor"
                 ;; Executables should go into /bin, not
                 ;; /lib/ruby/gems.
@@ -163,7 +168,7 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
     ;; For gems with native extensions, several Makefile-related files
     ;; are created that contain timestamps or other elements making
     ;; them not reproducible.  They are unnecessary so we remove them.
-    (when (file-exists? (string-append vendor-dir "/ext"))
+    (when (file-exists? (string-append gem-dir "/ext"))
       (for-each (lambda (file)
                   (log-file-deletion file)
                   (delete-file file))
@@ -172,7 +177,7 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
                              "page-Makefile.ri")
                  (find-files (string-append vendor-dir "/extensions")
                              "gem_make.out")
-                 (find-files (string-append vendor-dir "/ext")
+                 (find-files (string-append gem-dir "/ext")
                              "Makefile"))))
 
     #t))