summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/vm.scm27
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/packages/admin.scm129
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/bioinformatics.scm46
-rw-r--r--gnu/packages/boost.scm17
-rw-r--r--gnu/packages/build-tools.scm4
-rw-r--r--gnu/packages/c.scm66
-rw-r--r--gnu/packages/cinnamon.scm13
-rw-r--r--gnu/packages/compression.scm43
-rw-r--r--gnu/packages/coq.scm11
-rw-r--r--gnu/packages/cran.scm286
-rw-r--r--gnu/packages/crypto.scm7
-rw-r--r--gnu/packages/databases.scm90
-rw-r--r--gnu/packages/datastructures.scm68
-rw-r--r--gnu/packages/diffoscope.scm4
-rw-r--r--gnu/packages/display-managers.scm2
-rw-r--r--gnu/packages/django.scm29
-rw-r--r--gnu/packages/education.scm2
-rw-r--r--gnu/packages/emacs-xyz.scm149
-rw-r--r--gnu/packages/engineering.scm6
-rw-r--r--gnu/packages/games.scm17
-rw-r--r--gnu/packages/glib.scm29
-rw-r--r--gnu/packages/gnome.scm36
-rw-r--r--gnu/packages/gnucash.scm11
-rw-r--r--gnu/packages/gnunet.scm95
-rw-r--r--gnu/packages/gnupg.scm6
-rw-r--r--gnu/packages/graphics.scm4
-rw-r--r--gnu/packages/gtk.scm8
-rw-r--r--gnu/packages/guile-xyz.scm71
-rw-r--r--gnu/packages/guile.scm46
-rw-r--r--gnu/packages/image-processing.scm2
-rw-r--r--gnu/packages/image-viewers.scm5
-rw-r--r--gnu/packages/image.scm17
-rw-r--r--gnu/packages/kde-frameworks.scm10
-rw-r--r--gnu/packages/kde-plasma.scm2
-rw-r--r--gnu/packages/kde.scm3
-rw-r--r--gnu/packages/libusb.scm40
-rw-r--r--gnu/packages/linux.scm23
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/man.scm4
-rw-r--r--gnu/packages/maths.scm95
-rw-r--r--gnu/packages/mes.scm4
-rw-r--r--gnu/packages/messaging.scm6
-rw-r--r--gnu/packages/mpd.scm26
-rw-r--r--gnu/packages/music.scm107
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/ocaml.scm5
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/password-utils.scm12
-rw-r--r--gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch51
-rw-r--r--gnu/packages/patches/libseccomp-open-aarch64.patch27
-rw-r--r--gnu/packages/patches/pam-mount-luks2-support.patch51
-rw-r--r--gnu/packages/patches/xsane-fix-memory-leak.patch34
-rw-r--r--gnu/packages/patches/xsane-fix-pdf-floats.patch85
-rw-r--r--gnu/packages/patches/xsane-fix-snprintf-buffer-length.patch72
-rw-r--r--gnu/packages/patches/xsane-support-ipv6.patch153
-rw-r--r--gnu/packages/patches/xsane-tighten-default-umask.patch36
-rw-r--r--gnu/packages/pdf.scm12
-rw-r--r--gnu/packages/perl-check.scm4
-rw-r--r--gnu/packages/perl.scm49
-rw-r--r--gnu/packages/php.scm4
-rw-r--r--gnu/packages/python-xyz.scm52
-rw-r--r--gnu/packages/qt.scm2
-rw-r--r--gnu/packages/ruby.scm57
-rw-r--r--gnu/packages/scanner.scm89
-rw-r--r--gnu/packages/sdl.scm1
-rw-r--r--gnu/packages/search.scm9
-rw-r--r--gnu/packages/shellutils.scm23
-rw-r--r--gnu/packages/sml.scm7
-rw-r--r--gnu/packages/ssh.scm42
-rw-r--r--gnu/packages/statistics.scm110
-rw-r--r--gnu/packages/tls.scm33
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vim.scm2
-rw-r--r--gnu/packages/virtualization.scm8
-rw-r--r--gnu/packages/web.scm14
-rw-r--r--gnu/packages/xorg.scm15
-rw-r--r--gnu/system/vm.scm15
80 files changed, 2033 insertions, 741 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index a5d9fefa62..6f920aec9e 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -82,6 +82,7 @@
                            make-disk-image?
                            single-file-output?
                            target-arm32?
+                           target-aarch64?
                            (disk-image-size (* 100 (expt 2 20)))
                            (disk-image-format "qcow2")
                            (references-graphs '()))
@@ -97,16 +98,28 @@ access it via /dev/hda.
 REFERENCES-GRAPHS can specify a list of reference-graph files as produced by
 the #:references-graphs parameter of 'derivation'."
 
+  (define target-arm? (or target-arm32? target-aarch64?))
+
   (define arch-specific-flags
     `(;; On ARM, a machine has to be specified. Use "virt" machine to avoid
       ;; hardware limits imposed by other machines.
-      ,@(if target-arm32? '("-M" "virt") '())
+      ,@(if target-arm?
+            '("-M" "virt")
+            '())
+
+      ;; On ARM32, if the kernel is built without LPAE support, ECAM conflicts
+      ;; with VIRT_PCIE_MMIO causing PCI devices not to show up.  Disable
+      ;; explicitely highmem to fix it.
+      ;; See: https://bugs.launchpad.net/qemu/+bug/1790975.
+      ,@(if target-arm32?
+            '("-machine" "highmem=off")
+            '())
 
       ;; Only enable kvm if we see /dev/kvm exists.  This allows users without
       ;; hardware virtualization to still use these commands.  KVM support is
-      ;; still buggy on some ARM32 boards. Do not use it even if available.
+      ;; still buggy on some ARM boards. Do not use it even if available.
       ,@(if (and (file-exists? "/dev/kvm")
-                 (not target-arm32?))
+                 (not target-arm?))
             '("-enable-kvm")
             '())
 
@@ -117,11 +130,11 @@ the #:references-graphs parameter of 'derivation'."
                       ;; The serial port name differs between emulated
                       ;; architectures/machines.
                       " console="
-                      (if target-arm32? "ttyAMA0" "ttyS0"))
+                      (if target-arm? "ttyAMA0" "ttyS0"))
 
       ;; NIC is not supported on ARM "virt" machine, so use a user mode
       ;; network stack instead.
-      ,@(if target-arm32?
+      ,@(if target-arm?
             '("-device" "virtio-net-pci,netdev=mynet"
               "-netdev" "user,id=mynet")
             '("-net" "nic,model=virtio"))))
@@ -145,7 +158,9 @@ the #:references-graphs parameter of 'derivation'."
     (_ #f))
 
   (apply invoke qemu "-nographic" "-no-reboot"
-         "-smp" (number->string (parallel-job-count))
+         ;; CPU "max" behaves as "host" when KVM is enabled, and like a system
+         ;; CPU with the maximum possible feature set otherwise.
+         "-cpu" "max"
          "-m" (number->string memory-size)
          "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
          "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
diff --git a/gnu/local.mk b/gnu/local.mk
index e2c5884ff1..feb7343ba9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -826,6 +826,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fbreader-curl-7.62.patch		\
   %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch		\
   %D%/packages/patches/fcgi-2.4.0-poll.patch			\
+  %D%/packages/patches/feh-fix-tests-for-imlib2-1.6.patch	\
   %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch		\
   %D%/packages/patches/fifo-map-remove-catch.hpp.patch		\
   %D%/packages/patches/file-CVE-2018-10360.patch		\
@@ -1079,6 +1080,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
   %D%/packages/patches/libreoffice-icu.patch			\
   %D%/packages/patches/libreoffice-glm.patch			\
+  %D%/packages/patches/libseccomp-open-aarch64.patch		\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8362.patch		\
@@ -1218,6 +1220,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/p7zip-CVE-2016-9296.patch		\
   %D%/packages/patches/p7zip-CVE-2017-17969.patch		\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
+  %D%/packages/patches/pam-mount-luks2-support.patch		\
   %D%/packages/patches/patchutils-test-perms.patch		\
   %D%/packages/patches/patch-hurd-path-max.patch		\
   %D%/packages/patches/pcre2-fix-jit_match-crash.patch		\
@@ -1466,7 +1469,12 @@ dist_patch_DATA =						\
   %D%/packages/patches/xfce4-panel-plugins.patch		\
   %D%/packages/patches/xfce4-settings-defaults.patch		\
   %D%/packages/patches/xinetd-fix-fd-leak.patch			\
-  %D%/packages/patches/xinetd-CVE-2013-4342.patch
+  %D%/packages/patches/xinetd-CVE-2013-4342.patch		\
+  %D%/packages/patches/xsane-fix-memory-leak.patch		\
+  %D%/packages/patches/xsane-fix-pdf-floats.patch		\
+  %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
+  %D%/packages/patches/xsane-support-ipv6.patch			\
+  %D%/packages/patches/xsane-tighten-default-umask.patch
 
 MISC_DISTRO_FILES =				\
   %D%/packages/ld-wrapper.in
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 761b26a8d6..d838c81717 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -27,6 +27,8 @@
 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,13 +62,16 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages check)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages file)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages libbsd)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages guile)
@@ -87,6 +92,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages mcrypt)
+  #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
@@ -620,6 +626,64 @@ and exploration tool, since it can create almost any kind of connection you
 would need and has several interesting built-in capabilities.")
     (license license:gpl2+)))
 
+(define-public netcat-openbsd
+  (package
+    (name "netcat-openbsd")
+    (version "1.203-2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://salsa.debian.org/debian/netcat-openbsd.git")
+                    (commit (string-append "debian/" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0j85gzbjzs6yrhgabh3zkwzd27qkr5s0zjjczl0hah8q7yhrjk3m"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no test suite
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "CFLAGS=-I" (assoc-ref %build-inputs "libbsd") "/include")
+             "LDFLAGS=-lbsd")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'patch
+           (lambda _
+             (setenv "QUILT_PATCHES" "debian/patches")
+             (invoke "quilt" "push" "-a")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man1"))
+                    (doc (string-append out "/share/doc/netcat-openbsd-" ,version))
+                    (examples (string-append doc "/examples")))
+               (install-file "nc" bin)
+               (install-file "nc.1" man)
+               (install-file "debian/copyright" doc)
+               (copy-recursively "debian/examples" examples)
+               #t))))))
+    (inputs `(("libbsd" ,libbsd)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("quilt" ,quilt)))
+    (home-page "https://packages.debian.org/sid/netcat-openbsd")
+    (synopsis "Read and write data over TCP/IP")
+    (description
+     "Netcat is a simple Unix utility which reads and writes data across
+network connections using TCP or UDP protocol.  It is designed to be a reliable
+\"back-end\" tool that can be used directly or easily driven by other programs
+and scripts.  At the same time it is a feature-rich network debugging and
+exploration tool, since it can create almost any kind of connection you would
+need and has several interesting built-in capabilities.
+
+This package contains the OpenBSD rewrite of netcat, including support for
+IPv6, proxies, and Unix sockets.")
+    (license (list license:bsd-3
+                   license:bsd-2))))  ; atomicio.*, socks.c
+
 (define-public sipcalc
   (package
     (name "sipcalc")
@@ -3452,3 +3516,68 @@ IGMP and Raw, across a wide variety of interface types, and understands BPF
 filter logic in the same fashion as more common packet sniffing tools, such as
 tcpdump and snoop.")
     (license license:bsd-3)))
+
+(define-public pam-mount
+  (package
+    (name "pam-mount")
+    (version "2.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/pam-mount/pam_mount/"
+                           version "/pam_mount-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1rvi4irb7ylsbhvx1cr6islm2xxw1a4b19q6z4a9864ndkm0f0mf"))
+       (patches
+        ;; Patch adding support for encrypted volumes in LUKS2 format.
+        ;; It comes from the Gentoo package definition for sys-auth/pam_mount.
+        (search-patches "pam-mount-luks2-support.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cryptsetup" ,cryptsetup)
+       ("libhx" ,libhx)
+       ("libxml2" ,libxml2)
+       ("linux-pam" ,linux-pam)
+       ("lvm2" ,lvm2)
+       ("openssl" ,openssl)
+       ("pcre" ,pcre)
+       ("util-linux" ,util-linux)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-slibdir=" %output "/lib")
+             (string-append "--with-ssbindir=" %output "/sbin"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-program-paths
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((util-linux (assoc-ref inputs "util-linux"))
+                   (out (assoc-ref outputs "out")))
+               (substitute* "src/mtcrypt.c"
+                 (("\"mount\";")
+                  (string-append "\"" util-linux "/bin/mount\";"))
+                 (("\"umount\";")
+                  (string-append "\"" util-linux "/bin/umount\";"))
+                 (("\"fsck\",")
+                  (string-append "\"" util-linux "/sbin/fsck\",")))
+               (substitute* "src/rdconf1.c"
+                 (("\"mount\", \"")
+                  (string-append "\"" util-linux "/bin/mount\", \""))
+                 (("\"umount\", \"")
+                  (string-append "\"" util-linux "/bin/umount\", \""))
+                 (("\"fsck\", \"")
+                  (string-append "\"" util-linux "/sbin/fsck\", \""))
+                 (("\"pmvarrun\", \"")
+                  (string-append "\"" out "/sbin/pmvarrun\", \""))))
+             #t)))))
+    (home-page "http://pam-mount.sourceforge.net")
+    (synopsis "PAM module to mount volumes for a user session")
+    (description
+     "Pam-mount is a PAM module that can mount volumes when a user logs in.
+It supports mounting local filesystems of any kind the normal mount utility
+supports.  It can also mount encrypted LUKS volumes using the password
+supplied by the user when logging in.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 3aa608ae29..efba05315f 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -120,7 +120,7 @@ header.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.10")
+    (version "0.11")
     (source
      (origin
        (method url-fetch)
@@ -128,7 +128,7 @@ header.")
                            version ".tar.lz"))
        (sha256
         (base32
-         "0gmhmh0yddb2aql4hd5ffrr0d4hrmh4pa3yln0n186hslqinp81b"))))
+         "0c1yc2qb7vrqad96savfn06rn01izlfz0va738signv93qqj5k3v"))))
     (inputs
      `(("cfitsio" ,cfitsio)
        ("gsl" ,gsl)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 0894cb38bf..7a95ae77e0 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -831,7 +831,7 @@ is like a time machine for your data. ")
 (define-public restic
   (package
     (name "restic")
-    (version "0.9.5")
+    (version "0.9.6")
     ;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
     ;; directory.
     (source (origin
@@ -842,7 +842,7 @@ is like a time machine for your data. ")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0afl3dv7gzwdc9klikk3fsb57d0px2fwihb0xxb7zq7d8vlhh8p2"))))
+                "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/restic/restic"
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8c01386821..6be9694080 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -983,16 +983,17 @@ e.g. microbiome samples, genomes, metagenomes.")
       (version "1.7.0")
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append "https://github.com/bioperl/bioperl-live/"
-                             "archive/release-"
-                             (string-map (lambda (c)
-                                           (if (char=? c #\.)
-                                               #\- c)) version)
-                             ".tar.gz"))
+         (method git-fetch)
+         (uri (git-reference
+                (url "https://github.com/bioperl/bioperl-live")
+                (commit (string-append "release-"
+                                       (string-map (lambda (c)
+                                                     (if (char=? c #\.)
+                                                         #\- c)) version)))))
+         (file-name (git-file-name name version))
          (sha256
           (base32
-           "12phgpxwgkqflkwfb9dcqg7a31dpjlfhar8wcgv0aj5ln4akfz06"))))
+           "0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
       (build-system perl-build-system)
       (arguments
        `(#:phases
@@ -11572,35 +11573,6 @@ provide this functionality without the necessity of drawing in a heavy-weight
 dependency like SeqAn.")
     (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
 
-(define-public libdivsufsort
-  (package
-    (name "libdivsufsort")
-    (version "2.0.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/y-256/libdivsufsort.git")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0fgdz9fzihlvjjrxy01md1bv9vh12rkgkwbm90b1hj5xpbaqp7z2"))))
-    (build-system cmake-build-system)
-    (arguments
-     '(#:tests? #f                      ; there are no tests
-       #:configure-flags
-       ;; Needed for rapmap and sailfish.
-       '("-DBUILD_DIVSUFSORT64=ON")))
-    (home-page "https://github.com/y-256/libdivsufsort")
-    (synopsis "Lightweight suffix-sorting library")
-    (description "libdivsufsort is a software library that implements a
-lightweight suffix array construction algorithm.  This library provides a
-simple and an efficient C API to construct a suffix array and a
-Burrows-Wheeler transformed string from a given string over a constant-size
-alphabet.  The algorithm runs in O(n log n) worst-case time using only 5n+O(1)
-bytes of memory space, where n is the length of the string.")
-    (license license:expat)))
-
 (define-public sailfish
   (package
     (name "sailfish")
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 2ef0591223..0a2a5c5c01 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -178,6 +178,23 @@ across a broad spectrum of applications.")
                              (symlink "libboost_python37.so" "libboost_python3.so"))
                            #t)))))))))
 
+(define-public boost-static
+  (package
+    (inherit boost)
+    (name "boost-static")
+    (arguments
+     (substitute-keyword-arguments (package-arguments boost)
+       ((#:make-flags flags)
+        `(cons "link=static" (delete "link=shared" ,flags)))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'provide-libboost_python
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (with-directory-excursion (string-append out "/lib")
+                   (symlink "libboost_python27.a" "libboost_python.a"))
+                 #t)))))))))
+
 (define-public boost-for-mysql
   ;; Older version for MySQL 5.7.23.
   (package
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 5c11266c89..a82b867282 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -80,7 +80,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
 (define-public bear
   (package
     (name "bear")
-    (version "2.3.13")
+    (version "2.4.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -89,7 +89,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0imvvs22gyr1v6ydgp5yn2nq8fb8llmz0ra1m733ikjaczl3jm7z"))))
+                "1w1kyjzvvy5lj16kn3yyf7iil2cqlfkszi8kvagql7f5h5l6w9b1"))))
     (build-system cmake-build-system)
     (inputs
      `(("python" ,python-wrapper)))
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 41946f4169..6428e86e70 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -183,7 +184,7 @@ compiler while still keeping it small, simple, fast and understandable.")
 (define-public libbytesize
   (package
     (name "libbytesize")
-    (version "1.4")
+    (version "2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -191,52 +192,17 @@ compiler while still keeping it small, simple, fast and understandable.")
                     "download/" version "/libbytesize-" version ".tar.gz"))
               (sha256
                (base32
-                "0bbqzln1nhjxl71aydq9k4jg3hvki9lqsb4w10s1i27jgibxqkdv"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; This Makefile hard-codes MSGMERGE et al. instead of
-                  ;; honoring what 'configure' detected.  Fix that.
-                  (substitute* "po/Makefile.in"
-                    (("^MSGMERGE = msgmerge")
-                     "MSGMERGE = @MSGMERGE@\n"))
-                  #t))))
+                "1bpz9cpb8s47kqplkkiz6ryfahas2ma95g9rh2axnfjp6w1d9ixc"))))
     (build-system gnu-build-system)
     (arguments
-     ;; When running "make", the POT files are built with the build time as
-     ;; their "POT-Creation-Date".  Later on, "make" notices that .pot
-     ;; files were updated and goes on to run "msgmerge"; as a result, the
-     ;; non-deterministic POT-Creation-Date finds its way into .po files,
-     ;; and then in .gmo files.  To avoid that, simply make sure 'msgmerge'
-     ;; never runs.  See <https://bugs.debian.org/792687>.
-     '(#:configure-flags '("ac_cv_path_MSGMERGE=true")
-
-       #:phases (modify-phases %standard-phases
-                  (add-after 'configure 'create-merged-po-files
-                    (lambda _
-                      ;; Create "merged PO" (.mpo) files so that 'msgmerge'
-                      ;; doesn't need to run.
-                      (for-each (lambda (po-file)
-                                  (let ((merged-po
-                                         (string-append (dirname po-file) "/"
-                                                        (basename po-file
-                                                                  ".po")
-                                                        ".mpo")))
-                                    (copy-file po-file merged-po)))
-                                (find-files "po" "\\.po$"))
-                      #t)))
-
-       ;; One test fails because busctl (systemd only?) and python2-pocketlint
-       ;; are missing.  Should we fix it, we would need the "python-2" ,
-       ;; "python2-polib" and "python2-six" native-inputs.
-       #:tests? #f))
+     `(#:tests? #f))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
      `(("mpfr" ,mpfr)
-       ("pcre" ,pcre)))
+       ("pcre2" ,pcre2)))
     (home-page "https://github.com/storaged-project/libbytesize")
     (synopsis "Tiny C library for working with arbitrary big sizes in bytes")
     (description
@@ -316,3 +282,25 @@ Its three main components are:
      "The purpose of libfixposix is to offer replacements for parts of POSIX
 whose behaviour is inconsistent across *NIX flavours.")
     (license license:boost1.0)))
+
+(define-public libhx
+  (package
+    (name "libhx")
+    (version "3.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/libhx/libHX/"
+                           "libHX-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0i8v2464p830c15myknvvs6bhxaf663lrqgga95l94ygfynkw6x5"))))
+    (build-system gnu-build-system)
+    (home-page "http://libhx.sourceforge.net")
+    (synopsis "C library with common data structures and functions")
+    (description
+     "This is a C library (with some C++ bindings available) that provides data
+structures and functions commonly needed, such as maps, deques, linked lists,
+string formatting and autoresizing, option and config file parsing, type
+checking casts and more.")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/cinnamon.scm b/gnu/packages/cinnamon.scm
index 72403e1b11..a8850391aa 100644
--- a/gnu/packages/cinnamon.scm
+++ b/gnu/packages/cinnamon.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +22,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -40,13 +42,14 @@
     (name "cinnamon-desktop")
     (version "3.4.2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/linuxmint/cinnamon-desktop/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/linuxmint/cinnamon-desktop")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1jf24csrbfi9aiza1g70jpvsbjiqwphk0i5wilxq9kpjjsl99maq"))))
+                "18mjy80ly9361npjhxpm3n0pkmrwviaqr2kixjb7hyxa6kzzh5xw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 2f0fe5083e..41d0328ec8 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -650,13 +650,14 @@ This package is mostly for compatibility and historical interest.")
     (name "sfarklib")
     (version "2.24")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/raboof/sfArkLib/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/raboof/sfArkLib.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bzs2d98rk1xw9qwpnc7gmlbxwmwc3dg1rpn310afy9pq1k9clzi"))))
+                "0jrxy24gak7q5ml06p5jjgzk9i5r2mkfjk4ycirkp4kg7k5a237w"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
@@ -1109,12 +1110,13 @@ well as bzip2.")
     (version "1.1.7")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/google/snappy/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append "snappy-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/google/snappy.git")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1m7rcdqzkys5lspj8jcsaah8w33zh28s771bw0ga2lgzfgl05yix"))
+        (base32 "1x7r8sjmdqlqjz0xfiwdyrqpgaj5yrvrgb28ivgpvnxgar5qv6m2"))
        (patches (search-patches "snappy-add-O2-flag-in-CmakeLists.txt.patch"))))
     (build-system cmake-build-system)
     (arguments
@@ -1303,13 +1305,14 @@ or junctions, and always follows hard links.")
     (name "unshield")
     (version "1.4.3")
     (source
-     (origin (method url-fetch)
-             (uri (string-append "http://github.com/twogood/unshield/archive/"
-                                 version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+     (origin (method git-fetch)
+             (uri (git-reference
+                    (url "http://github.com/twogood/unshield.git")
+                    (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "1avv5c11jbmzwizq10pwvlh1dmyna8ccvpgacv95h4gbq26rg35a"))))
+               "19wn22vszhci8dfcixx5rliz7phx3lv5ablvhjlclvj75k2vsdqd"))))
     (build-system cmake-build-system)
     (inputs
      `(("zlib" ,zlib)
@@ -1815,16 +1818,16 @@ single-member files which can't be decompressed in parallel.")
 (define-public innoextract
   (package
    (name "innoextract")
-   (version "1.7")
+   (version "1.8")
    (source
     (origin
      (method url-fetch)
-     (uri (string-append "https://github.com/dscharrer/innoextract/archive/"
-                         version ".tar.gz"))
+     (uri (string-append "https://github.com/dscharrer/innoextract/releases"
+                         "/download/" version
+                         "/innoextract-" version ".tar.gz"))
      (sha256
       (base32
-       "0khwi9f0q0h6xfbixrrc1rfpgj0b7ajwilq7yhmxnn5lpc807f6x"))
-     (file-name (string-append name "-" version ".tar.gz"))))
+       "0saj50n8ds85shygy4mq1h6s99510r9wgjjdll4dmvhra4lzcy2y"))))
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 2c5674f57a..75b9831d39 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -377,13 +377,14 @@ theorems between the two libraries.")
     (name "coq-bignums")
     (version "8.9.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/coq/bignums/archive/V"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/coq/bignums.git")
+                     (commit (string-append "V" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pmk9smw7a14wrfkvjlvmpxim4bsv6xnm5xkrlld2faqy74a044g"))))
+                "03qz1w2xb2j5p06liz5yyafl0fl9vprcqm6j0iwi7rxwghl00p01"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ce36a6a8da..b0160347c9 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017, 2018 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
@@ -13,6 +14,7 @@
 ;;; Copyright © 2018 Laura Lazzati <laura.lazzati.15@gmail.com>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
 ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
@@ -95,6 +97,56 @@
 the system clipboards.")
     (license license:gpl3)))
 
+(define-public r-scales
+  (package
+    (name "r-scales")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "scales" version))
+       (sha256
+        (base32 "00rdbfj5mwc3kr8pskidn3n2zkp4ms6cx36xazz54pxw3pysdr0y"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-farver" ,r-farver)
+       ("r-labeling" ,r-labeling)
+       ("r-lifecycle" ,r-lifecycle)
+       ("r-munsell" ,r-munsell)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-r6" ,r-r6)
+       ("r-viridislite" ,r-viridislite)))
+    (home-page "https://github.com/hadley/scales")
+    (synopsis "Scale functions for visualization")
+    (description
+     "This package provides graphical scales that map data to aesthetics, and
+provides methods for automatically determining breaks and labels for axes and
+legends.")
+    (license license:expat)))
+
+(define-public r-pheatmap
+  (package
+    (name "r-pheatmap")
+    (version "1.0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pheatmap" version))
+       (sha256
+        (base32
+         "1hdh74az3vyzz6dqa311rhxdm74n46lyr03p862kn80p0kp9d7ap"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-gtable" ,r-gtable)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-scales" ,r-scales)))
+    (home-page "https://cran.r-project.org/web/packages/pheatmap")
+    (synopsis "Pretty heatmaps")
+    (description
+     "This package provides an implementation of heatmaps that offers more
+control over dimensions and appearance.")
+    (license license:gpl2+)))
+
 (define-public r-ellipsis
   (package
     (name "r-ellipsis")
@@ -243,14 +295,14 @@ data types as well.")
 (define-public r-tidyverse
   (package
     (name "r-tidyverse")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidyverse" version))
        (sha256
         (base32
-         "0yy3fkjksgcn6wkbgsb0pbnmsyqs4m01mziqafhig578nixs4rxd"))))
+         "02gyys08qv2v4cl2d66gml4d31ipxay0iyfwwksvxyclx60wp2kd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-broom" ,r-broom)
@@ -267,6 +319,7 @@ data types as well.")
        ("r-lubridate" ,r-lubridate)
        ("r-magrittr" ,r-magrittr)
        ("r-modelr" ,r-modelr)
+       ("r-pillar" ,r-pillar)
        ("r-purrr" ,r-purrr)
        ("r-readr" ,r-readr)
        ("r-readxl" ,r-readxl)
@@ -314,14 +367,13 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
 (define-public r-selectr
   (package
     (name "r-selectr")
-    (version "0.4-1")
+    (version "0.4-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "selectr" version))
        (sha256
-        (base32
-         "1jp27rxks4w29l47k42869hp8hnkzq2rnvsqbr44wd19fqb2zm4b"))))
+        (base32 "09y1n3iy297g49xlpl7xrjpwgnm57pskx5991lyfcpizbz8ax22m"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-stringr" ,r-stringr)
@@ -906,14 +958,13 @@ application framework for R, making it easy to create attractive dashboards.")
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")
-    (version "0.7.3")
+    (version "0.7.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyFiles" version))
        (sha256
-        (base32
-         "01as3l9ffj5dwac0vviais2x5l3027zxlj67kcvkdwxaj5hql33i"))))
+        (base32 "1143m941hma9hc77c3xcw26c0ygfhn9ii2sbp9wrydxv4gc7mr8a"))))
     (properties `((upstream-name . "shinyFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2339,14 +2390,14 @@ transportation problems.")
 (define-public r-limsolve
   (package
     (name "r-limsolve")
-    (version "1.5.5.3")
+    (version "1.5.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "limSolve" version))
        (sha256
         (base32
-         "1ll6ir42h3g2fzf0wqai213bm82gpwjj2hfma2np3mz024sc09rg"))))
+         "1829rd2cnd8qj80z9a7sgc7gx4sf3kvl5g6d2a0lqqw30f9sjzmr"))))
     (properties `((upstream-name . "limSolve")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2584,14 +2635,14 @@ regression using Kernel Ridge Regression.")
 (define-public r-prodlim
   (package
     (name "r-prodlim")
-    (version "2019.10.13")
+    (version "2019.11.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "prodlim" version))
        (sha256
         (base32
-         "0rsyfpz667y5cijmq33l318mrdw8r340khp72gcg8n490b1g0176"))))
+         "03wvh3kirp1prac5nky6a5whs97rvaf4hc27x0fnh51sa17r42b8"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-kernsmooth" ,r-kernsmooth)
@@ -3396,14 +3447,14 @@ structure.")
 (define-public r-vioplot
   (package
     (name "r-vioplot")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vioplot" version))
        (sha256
         (base32
-         "13kfjp747bnzksai8j39y2hyl3ljc6n53c2cfhaw78q3d63x0lbv"))))
+         "1jjrsds7p1jnnr4970h43526b9cdv3azizjbalbfzjjylc53lrca"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-sm" ,r-sm)
@@ -3827,14 +3878,14 @@ of merit, ordering functions, and enhanced versions of @code{pairs} and
 (define-public r-webshot
   (package
     (name "r-webshot")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "webshot" version))
        (sha256
         (base32
-         "08sb1xi376pfy1vwilk2d68zljsg9yiv04n2dkqz383gdhh0sxdr"))))
+         "0gq4h8cw51z95yvsnf38kj5l58wgljkm0dalmi8mn1sp06bxr0zi"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-callr" ,r-callr)
@@ -4843,14 +4894,13 @@ the application.")
 (define-public r-algdesign
   (package
     (name "r-algdesign")
-    (version "1.1-7.3")
+    (version "1.1-7.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "AlgDesign" version))
        (sha256
-        (base32
-         "0bl7mx4dnmkgs2x1fj7cqnrp7jx18mqwxyga0rzlniq12h8mc3fz"))))
+        (base32 "1s69yx0wxi9kqj9kyib0yvd363d7g4zrz0cvz1hn97ladr8656bz"))))
     (properties `((upstream-name . "AlgDesign")))
     (build-system r-build-system)
     (home-page "https://github.com/jvbraun/AlgDesign")
@@ -6053,14 +6103,14 @@ to help insert or delete content at a specific location in the document.")
 (define-public r-abn
   (package
     (name "r-abn")
-    (version "2.1")
+    (version "2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abn" version))
        (sha256
         (base32
-         "08jlvb6i5f7ry2dwm0jgrnn2w95vr0l67dpx13n9878lz9ld131b"))))
+         "19w6bdjyp4zwqs6p0flry4qxqynf9rh8ykdrfrp61wrdf7kysw0d"))))
     (build-system r-build-system)
     (inputs
      `(("gsl" ,gsl)))
@@ -6204,14 +6254,14 @@ other add-on packages.")
 (define-public r-insight
   (package
     (name "r-insight")
-    (version "0.6.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "insight" version))
        (sha256
         (base32
-         "1izqh4j0gzyk25cga67gs0i6rl0j471h5y2c3y1maz79r32fs7fd"))))
+         "1alxc483r3d1ydp983m2872mxd4nj3j25qv47zzgj10nbi4y32sq"))))
     (build-system r-build-system)
     (home-page "https://easystats.github.io/insight/")
     (synopsis "Easy access to model information for various model objects")
@@ -8176,14 +8226,13 @@ detection, parallelism through BLAS and parallel user templates.")
 (define-public r-sjstats
   (package
     (name "r-sjstats")
-    (version "0.17.6")
+    (version "0.17.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjstats" version))
        (sha256
-        (base32
-         "11z1wfi0d74d1rld0320l3vmv6rl41wa0v9bjc44rk06yc90wld2"))))
+        (base32 "029rl05p88bp01favz300m980r1khcx2a2kn88yqbnbgkjjgqqc6"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bayestestr" ,r-bayestestr)
@@ -8333,22 +8382,47 @@ are also supported.  The two main functions are @code{ggpredict()} and
 results using @code{ggplot2}.")
     (license license:gpl3)))
 
+(define-public r-effectsize
+  (package
+    (name "r-effectsize")
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "effectsize" version))
+       (sha256
+        (base32
+         "07vgmxdl75798hgdh90zysafjh97rmmj2wjjyr6xff4fbhi8rlkb"))))
+    (properties `((upstream-name . "effectsize")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-bayestestr" ,r-bayestestr)
+       ("r-insight" ,r-insight)
+       ("r-parameters" ,r-parameters)))
+    (home-page "https://github.com/easystats/effectsize")
+    (synopsis "Indices of effect size and standardized parameters")
+    (description
+     "This package provides utilities to work with indices of effect size and
+standardized parameters for a wide variety of models, allowing computation and
+conversion of indices such as Cohen's d, r, odds, etc.")
+    (license license:gpl3)))
+
 (define-public r-sjplot
   (package
     (name "r-sjplot")
-    (version "2.7.2")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjPlot" version))
        (sha256
-        (base32 "1kx1qqgp4fhwwwpqn9mv8m1pnpjxfs7ww36ns7j1ja4a7ydwn2hp"))))
+        (base32 "0ahz6v6bhvq1537inwakmrafs44hs2m9w0ra8q17fz626nn9rb9b"))))
     (properties `((upstream-name . "sjPlot")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bayestestr" ,r-bayestestr)
-       ("r-broom" ,r-broom)
        ("r-dplyr" ,r-dplyr)
+       ("r-effectsize" ,r-effectsize)
        ("r-forcats" ,r-forcats)
        ("r-ggeffects" ,r-ggeffects)
        ("r-ggplot2" ,r-ggplot2)
@@ -8360,7 +8434,7 @@ results using @code{ggplot2}.")
        ("r-magrittr" ,r-magrittr)
        ("r-mass" ,r-mass)
        ("r-modelr" ,r-modelr)
-       ("r-nlme" ,r-nlme)
+       ("r-parameters" ,r-parameters)
        ("r-performance" ,r-performance)
        ("r-psych" ,r-psych)
        ("r-purrr" ,r-purrr)
@@ -9048,14 +9122,13 @@ netCDF files.")
 (define-public r-biocmanager
   (package
     (name "r-biocmanager")
-    (version "1.30.9")
+    (version "1.30.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "BiocManager" version))
        (sha256
-        (base32
-         "1l9b2mr99nhpvk1wkd93397i0d6z4vvbq3zm8dk86gb1pfci26sx"))))
+        (base32 "03n9s2vf7vgpgb5alpxwamf9xfkn32cbzngwyn6spq1bnh9a9dzk"))))
     (properties `((upstream-name . "BiocManager")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/BiocManager/")
@@ -9582,13 +9655,13 @@ maps.")
 (define-public r-tidytree
   (package
     (name "r-tidytree")
-    (version "0.2.9")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidytree" version))
        (sha256
-        (base32 "1l9rk71dzlwg8736l0g4rdlq3pghxkfzmlxyln8y4bxx7ym51i6g"))))
+        (base32 "1sbfwcxf9v1lhpa0392b49b6qfjrq7nlqz2djqzk5aknj9j64zvy"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ape" ,r-ape)
@@ -9971,14 +10044,14 @@ Touzet and Varre (2007).")
 (define-public r-rnifti
   (package
     (name "r-rnifti")
-    (version "0.11.1")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RNifti" version))
        (sha256
         (base32
-         "0jcgdg5k2swmi57aqj347kfi1fc4nvag7pxdfz61kc0vqqamm0wg"))))
+         "0l61hjnzv043ibpkgrhc0yngaqmc58lkvii8j1dzh022z5wbqrj8"))))
     (properties `((upstream-name . "RNifti")))
     (build-system r-build-system)
     (propagated-inputs `(("r-rcpp" ,r-rcpp)))
@@ -11147,19 +11220,16 @@ library.")
 (define-public r-protviz
   (package
     (name "r-protviz")
-    (version "0.4.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "protViz" version))
        (sha256
         (base32
-         "150i2q4nakz28f39kmhrchz4qsr8ax6y02512md94k8hq4hamxg1"))))
+         "0cznzm1ijlq33yd5wsa61prav77y2vi698w0n2fx1xcv504c4bjv"))))
     (properties `((upstream-name . "protViz")))
     (build-system r-build-system)
-    (inputs
-     `(("perl" ,perl)
-       ("python-2" ,python-2)))
     (propagated-inputs `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/protViz/protViz/")
     (synopsis "Visualizing and analyzing mass spectrometry data in proteomics")
@@ -11226,14 +11296,14 @@ model with finite state space using the Aalen-Johansen estimator.")
 (define-public r-epi
   (package
     (name "r-epi")
-    (version "2.38")
+    (version "2.40")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Epi" version))
        (sha256
         (base32
-         "0ald9fjynrlyah8nzwfs49a08j4myd3c5bm56zn61gg5pyyhi8hd"))))
+         "046y10vwks5y84pzccmrn6d4pd6qz70imvp1hw5ywp8fnwzfh4g5"))))
     (properties `((upstream-name . "Epi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11408,14 +11478,14 @@ them in distributed compute environments.")
 (define-public r-future
   (package
     (name "r-future")
-    (version "1.15.0")
+    (version "1.15.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future" version))
        (sha256
         (base32
-         "1cbp7agb9lipjxsh7xm1yphh8a4hrjy7wrbkvhsxn1swh0c4s3b7"))))
+         "101hi8warqa0py9l6c5p98f7i9xjhx01w655z6a35jx1dhspykzd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -13125,14 +13195,13 @@ lspec, polyclass, and polymars.")
 (define-public r-rms
   (package
     (name "r-rms")
-    (version "5.1-3.1")
+    (version "5.1-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rms" version))
        (sha256
-        (base32
-         "0drbr3g0x5pbxyzy50wnf92rbal8izizrcqslqhg0gsfg9adjih9"))))
+        (base32 "19knh1sw0icw6jh9wfb2hq5jf49i2qfvp9myvqm5paa495689x9q"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -13361,13 +13430,13 @@ SELECT or UPDATE queries to an end-point.")
 (define-public r-bookdown
   (package
     (name "r-bookdown")
-    (version "0.15")
+    (version "0.16")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "bookdown" version))
               (sha256
                (base32
-                "0pgkabaqsckaz8z1nlza84jp172jyzv17kx5dily43jfx5psy2ap"))))
+                "1gwgvx1yg6q3wccnhidr3gshdvlgr42i4pvlg4h29kpsa7smjiv1"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
@@ -15540,14 +15609,14 @@ in pipelines.")
 (define-public r-parameters
   (package
     (name "r-parameters")
-    (version "0.2.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parameters" version))
        (sha256
         (base32
-         "1mgggb3l67wgjiccq4y84wbs2dw9qk01akd553yiwbwky9rpawgh"))))
+         "0ifb9g1h8sn661q7jf9d8glk58gxdcym5ywbmx7phwn0y3is5wdv"))))
     (properties `((upstream-name . "parameters")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15674,3 +15743,112 @@ unique identifiers, and whether it is a certain length.  In addition,
 files and to efficiently import multiple tabular data files into one
 data.table.")
     (license license:gpl3)))
+
+(define-public r-quadprog
+  (package
+    (name "r-quadprog")
+    (version "1.5-8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "quadprog" version))
+       (sha256
+        (base32 "1ka9g8zak8sg4y2xbz93dfrldznlk9qpd4pq9z21cdcdn3b8s4i2"))))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/quadprog")
+    (synopsis "Functions to solve quadratic programming problems")
+    (description
+     "This package contains routines and documentation for solving quadratic
+programming problems.")
+    (license license:gpl3+)))
+
+(define-public r-desolve
+  (package
+    (name "r-desolve")
+    (version "1.25")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "deSolve" version))
+       (sha256
+        (base32 "0735y3p5glhqx69rzrc8qgmvs7p7w0p98qxmvylb6bgqp6kp0cbp"))))
+    (properties `((upstream-name . "deSolve")))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (home-page "https://desolve.r-forge.r-project.org/")
+    (synopsis "Solvers for initial value problems of differential equations")
+    (description "This package provides functions that solve initial
+value problems of a system of first-order ordinary differential equations (ODE),
+of partial differential equations (PDE), of differential algebraic equations
+(DAE), and of delay differential equations.  The functions provide an interface
+to the FORTRAN functions lsoda, lsodar, lsode, lsodes of the ODEPACK collection,
+to the FORTRAN functions dvode and daspk and a C-implementation of solvers of
+the Runge-Kutta family with fixed or variable time steps.  The package contains
+routines designed for solving ODEs resulting from 1-D, 2-D and 3-D partial
+differential equations (PDE) that have been converted to ODEs by numerical
+differencing.")
+    (license license:gpl2+)))
+
+(define-public r-pracma
+  (package
+    (name "r-pracma")
+    (version "2.2.5")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "pracma" version))
+              (sha256
+               (base32 "0isd3s0i4mzmva8lkh0j76hwjy1w50q7d1n9lhxsnnkgalx3xs1g"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/pracma/")
+    (synopsis "Practical numerical math functions")
+    (description "This package provides functions for numerical analysis and
+linear algebra, numerical optimization, differential equations, plus some
+special functions.  It uses Matlab function names where appropriate to simplify
+porting.")
+    (license license:gpl3+)))
+
+(define-public r-subplex
+  (package
+    (name "r-subplex")
+    (version "1.5-4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "subplex" version))
+       (sha256
+        (base32
+         "10cbgbx1bgsax5z7gz6716g360xpq4mvq19cf4qqrxv02mmwz57z"))))
+    (build-system r-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/subplex")
+    (synopsis "Unconstrained optimization using the subplex algorithm")
+    (description
+     "This package implements the Subplex optimization algorithm.
+It solves unconstrained optimization problems using a simplex method on
+subspaces.  The method is well suited for optimizing objective functions that
+are noisy or are discontinuous at the solution.")
+    (license license:gpl3+)))
+
+(define-public r-txtplot
+  (package
+    (name "r-txtplot")
+    (version "1.0-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "txtplot" version))
+       (sha256
+        (base32
+         "1949ab1bzvysdb79g8x1gaknj0ih3d6g63pv9512h5m5l3a6c31h"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/txtplot/")
+    (synopsis "Text-based plotting")
+    (description "This package provides functions to produce rudimentary ASCII
+graphics directly in the terminal window.  This package provides a basic
+plotting function (and equivalents of curve, density, acf and barplot) as well
+as a boxplot function.")
+    (license license:lgpl3+)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 559a3c051a..80c598ed86 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -535,19 +535,18 @@ generator.")
 (define-public perl-crypt-random-source
   (package
     (name "perl-crypt-random-source")
-    (version "0.12")
+    (version "0.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Crypt-Random-Source-" version ".tar.gz"))
        (sha256
-        (base32
-         "00mw5m52sbz9nqp3f6axyrgcrihqxn7k8gv0vi1kvm1j1nc9g29h"))))
+        (base32 "1rpdds3sy5l1fhngnkrsgwsmwd54wpicx3i9ds69blcskwkcwkpc"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-exception" ,perl-test-exception)))
+       ("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)
        ("perl-module-find" ,perl-module-find)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 9bf379ba27..637455eef3 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -37,6 +37,7 @@
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3195,3 +3196,92 @@ NumPy, and other traditional Python scientific computing packages.")
 It implements the Python DB API 2.0 specification and includes support for
 SQLAlchemy.")
     (license license:asl2.0)))
+
+(define-public libdbi
+  (package
+    (name "libdbi")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/libdbi/libdbi/libdbi-"
+                                  version "/libdbi-" version ".tar.gz"))
+              (sha256
+               (base32
+                "00s5ra7hdlq25iv23nwf4h1v3kmbiyzx0v9bhggjiii4lpf6ryys"))))
+    (build-system gnu-build-system)
+    (synopsis "Database independent abstraction layer in C")
+    (description
+     "This library implements a database independent abstraction layer in C,
+similar to the DBI/DBD layer in Perl.  Writing one generic set of code,
+programmers can leverage the power of multiple databases and multiple
+simultaneous database connections by using this framework.")
+    (home-page "http://libdbi.sourceforge.net/")
+    (license license:lgpl2.1+)))
+
+(define-public libdbi-drivers
+  (package
+    (name "libdbi-drivers")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/libdbi-drivers/"
+                                  "libdbi-drivers/libdbi-drivers-" version
+                                  "/libdbi-drivers-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m680h8cc4428xin4p733azysamzgzcmv4psjvraykrsaz6ymlj3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("inetutils" ,inetutils)
+       ("glibc-locales" ,glibc-locales)))
+    (inputs
+     `(("libdbi" ,libdbi)
+       ("mysql" ,mariadb)
+       ("postgresql" ,postgresql)
+       ("sqlite" ,sqlite)))
+    (arguments
+     `(#:configure-flags
+       (let ((libdbi (assoc-ref %build-inputs "libdbi"))
+             (mysql (assoc-ref %build-inputs "mysql"))
+             (postgresql (assoc-ref %build-inputs "postgresql"))
+             (sqlite (assoc-ref %build-inputs "sqlite")))
+         (list "--disable-docs"
+               (string-append "--with-dbi-incdir=" libdbi "/include")
+               (string-append "--with-dbi-libdir=" libdbi "/lib")
+               "--with-mysql"
+               (string-append "--with-mysql-incdir=" mysql "/include/mysql")
+               (string-append "--with-mysql-libdir=" mysql "/lib")
+               "--with-pgsql"
+               (string-append "--with-pgsql-incdir=" postgresql "/include")
+               (string-append "--with-pgsql-libdir=" postgresql "/lib")
+               "--with-sqlite3"
+               (string-append "--with-sqlite-incdir=" sqlite "/include")
+               (string-append "--with-sqlite-libdir=" sqlite "/lib")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "tests/test_mysql.sh"
+               (("^MYMYSQLD=.*")
+                (string-append "MYMYSQLD="
+                               (assoc-ref inputs "mysql")
+                               "/bin/mysqld")))
+             #t))
+         (add-after 'install 'remove-empty-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((var (string-append (assoc-ref outputs "out") "/var")))
+               (delete-file-recursively var))
+             #t)))))
+    (synopsis "Database drivers for the libdbi framework")
+    (description
+     "The @code{libdbi-drivers} library provides the database specific drivers
+for the @code{libdbi} framework.
+
+The drivers officially supported by @code{libdbi} are:
+@itemize
+@item MySQL,
+@item PostgreSQL,
+@item SQLite.
+@end itemize")
+    (home-page "http://libdbi-drivers.sourceforge.net/")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index dabb1f421e..e7833b8e70 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,7 +21,6 @@
 
 (define-module (gnu packages datastructures)
   #:use-module (gnu packages)
-  #:use-module (gnu packages documentation)
   #:use-module (gnu packages perl)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -80,12 +80,14 @@ library.")
     (name "sparsehash")
     (version "2.0.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/sparsehash/sparsehash/"
-                                  "archive/sparsehash-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/sparsehash/sparsehash.git")
+                     (commit (string-append name "-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85"))))
+                "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na"))))
     (build-system gnu-build-system)
     (synopsis "Memory-efficient hashtable implementations")
     (description
@@ -211,10 +213,31 @@ to the structure and choosing one or more fields to act as the key.")
                                   ".tar.gz.offline.install.gz"))
               (sha256
                (base32
-                "1v86ivv3mmdy802i9xkjpxb4cggj3s27wb19ja4sw1klnivjj69g"))))
+                "1v86ivv3mmdy802i9xkjpxb4cggj3s27wb19ja4sw1klnivjj69g"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "external") #t))
+              (patches
+                (list (origin
+                        (method url-fetch)
+                        (uri "https://salsa.debian.org/science-team/libsdsl/raw/debian/2.1.1+dfsg-2/debian/patches/0001-Patch-cmake-files.patch")
+                        (file-name "sdsl-lite-dont-use-bundled-libraries.patch")
+                        (sha256
+                         (base32
+                          "0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z")))))))
     (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-static-library
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (copy-file "lib/libsdsl_static.a"
+                          (string-append out "/lib/libsdsl.a")))
+             #t)))))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     `(("libdivsufsort" ,libdivsufsort)))
     (home-page "https://github.com/simongog/sdsl-lite")
     (synopsis "Succinct data structure library")
     (description "The Succinct Data Structure Library (SDSL) is a powerful and
@@ -226,3 +249,32 @@ operations of the original object efficiently.  The theoretical time
 complexity of an operation performed on the classical data structure and the
 equivalent succinct data structure are (most of the time) identical.")
     (license license:gpl3+)))
+
+(define-public libdivsufsort
+  (package
+    (name "libdivsufsort")
+    (version "2.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/y-256/libdivsufsort.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fgdz9fzihlvjjrxy01md1bv9vh12rkgkwbm90b1hj5xpbaqp7z2"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f                      ; there are no tests
+       #:configure-flags
+       ;; Needed for rapmap and sailfish.
+       '("-DBUILD_DIVSUFSORT64=ON")))
+    (home-page "https://github.com/y-256/libdivsufsort")
+    (synopsis "Lightweight suffix-sorting library")
+    (description "libdivsufsort is a software library that implements a
+lightweight suffix array construction algorithm.  This library provides a
+simple and an efficient C API to construct a suffix array and a
+Burrows-Wheeler transformed string from a given string over a constant-size
+alphabet.  The algorithm runs in O(n log n) worst-case time using only 5n+O(1)
+bytes of memory space, where n is the length of the string.")
+    (license license:expat)))
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index cfa98f63f2..7fe7766a15 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -67,7 +67,7 @@
   #:use-module (ice-9 match))
 
 (define-public diffoscope
-  (let ((version "129"))
+  (let ((version "131"))
     (package
       (name "diffoscope")
       (version version)
@@ -79,7 +79,7 @@
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1r8hq93gga9n4jv4fyf1divc9cwvvjadkzl47lazzrfy3nn1qjwr"))))
+                  "0jai3kycjlrc64f4vg8yklri6ds1451qy6r6sw2646bhjr0gs233"))))
       (build-system python-build-system)
       (arguments
        `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 0b8f742c38..21afc0ec5c 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -102,7 +102,7 @@
                        (assoc-ref %build-inputs "shadow")
                        "/etc/login.defs")
         (string-append "-DQT_IMPORTS_DIR="
-                       (assoc-ref %outputs "out") "/qml")
+                       (assoc-ref %outputs "out") "/lib/qt5/qml")
         (string-append "-DCMAKE_INSTALL_SYSCONFDIR="
                        (assoc-ref %outputs "out") "/etc"))
        #:modules ((guix build cmake-build-system)
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index a8e0277e95..7e7bc5d002 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -348,14 +348,14 @@ account authentication.")
     (version "1.10.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jazzband/django-debug-toolbar/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jazzband/django-debug-toolbar.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1rww056hyzks8spbgf4h7kf6ybxlc5p08a2b6gn1nqrrzs4yx9sy"))))
+         "0zr6yjsms97wlvvd17rdbrx01irkg887dn9x70c1hzfjmfvp9afk"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-sqlparse" ,python-sqlparse)
@@ -456,14 +456,14 @@ merging, minifying and compiling CSS and Javascript files.")
     (version "2.4.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/niwinz/django-jinja/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/niwinz/django-jinja.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0bzrb4m6wx9ph5cpvz7wpvg5k6ksvj0dnxlg0nhhqskhvp46brs1"))))
+         "1fcrxlznlq1xvl26y3j1r22vvy6m08r5l97xi2wj50rdmxhfvhis"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-django" ,python-django)
@@ -695,6 +695,9 @@ project.")
              (or
               (not tests?)
               (begin
+                (setenv "PYTHONPATH"
+                        (string-append (getcwd) ":"
+                                       (getenv "PYTHONPATH")))
                 (setenv "DJANGO_SETTINGS_MODULE" "tests.settings")
                 (invoke "django-admin" "test" "tests"))))))))
     (propagated-inputs
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 5d7ddd2004..71c85029fd 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -167,7 +167,7 @@ of categories with some of the activities available in that category.
        ("gettext" ,gettext-minimal)
        ("perl" ,perl)
        ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("openssl" ,openssl)
        ("python-2" ,python-2)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 58cde1ff13..c37d4aa206 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -4814,13 +4814,14 @@ variants.")
     (name "emacs-solarized-theme")
     (version "1.2.2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/bbatsov/solarized-emacs/"
-                                  "archive/v"  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/bbatsov/solarized-emacs/")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ha3slc6d9wi9ilkhmwrzkvf308n6ph7b0k69pk369s9304awxzx"))))
+                "0zcj9jf8nlsj9vms888z2vs76q54n8g8r9sh381xad3x8d6lrlb3"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)))
@@ -5936,13 +5937,14 @@ possible to query other endpoints like DBPedia.")
     (version "0.1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/technomancy/better-defaults"
-                           "/archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/technomancy/better-defaults")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2"))))
+         "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/technomancy/better-defaults")
     (synopsis "Better defaults for Emacs")
@@ -7945,14 +7947,14 @@ passive voice.")
     (version "0.5.2")
     (home-page "https://github.com/jaypei/emacs-neotree")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/jaypei/" name
-                    "/archive/" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url home-page)
+                     (commit version)))
               (sha256
                (base32
-                "1zd6dchwyijnf7kgchfcp51gs938l204dk9z6mljrfqf2zy0gp12"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+                "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
+              (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (synopsis "Folder tree view for Emacs")
     (description "This Emacs package provides a folder tree view.")
@@ -8033,13 +8035,14 @@ files that you would find in @file{contrib/} from the git repository.")))
     (version "0.6.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/lewang/"
-                           "flx/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/lewang/flx.git")
+              (commit (string-append "v" version))))
        (sha256
         (base32
-         "0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+         "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
+       (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (home-page "https://github.com/lewang/flx")
     (synopsis "Fuzzy matching for Emacs")
@@ -8057,13 +8060,14 @@ Flx has support for ido (interactively do things) through flx-ido.")
     (version "1.19")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
-                           "archive/" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/n3mo/cyberpunk-theme.el/")
+              (commit version)))
        (sha256
         (base32
-         "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+         "1npwrw3pgdmvqhihcqcfi2yrs178iiip5fcj8zhpp6cr9yqsvvgi"))
+       (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (home-page "https://github.com/n3mo/cyberpunk-theme.el")
     (synopsis "Cyberpunk theme for emacs built-in color theme support")
@@ -8131,13 +8135,14 @@ by zenburn, sinburn and similar themes, but slowly diverging from them.")
     (version "1.5.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/auto-complete/"
-                           "auto-complete/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/auto-complete/auto-complete.git")
+              (commit (string-append "v" version))))
        (sha256
         (base32
-         "1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+         "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
+       (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-popup" ,emacs-popup)))
@@ -8467,13 +8472,14 @@ been adapted to work with mu4e.")
     (version "2.0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/akatov/pretty-mode/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/akatov/pretty-mode/")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1fan7m4vnqs8kpg7r54kx3g7faadkpkf9kzarfv8n57kq8w157pl"))))
+         "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/akatov/pretty-mode")
     (synopsis "Redisplay parts of the buffer as Unicode symbols")
@@ -11223,14 +11229,14 @@ supports multiple backends such as @code{vlc}, @code{mpg123},
     (name "emacs-groovy-modes")
     (version "2.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes"
-                    "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "15j0hnkx9nppjzda5cqsxxz5f3bq9hc4xfyjcdypzqiypcvmpa39"))))
+                "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-s" ,emacs-s)))
@@ -12658,13 +12664,14 @@ region instead.")
     (name "emacs-validate")
     (version "1.0.5")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/Malabarba/validate.el"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/Malabarba/validate.el")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
+                "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Malabarba/validate.el")
     (synopsis "Emacs library for scheme validation")
@@ -13031,13 +13038,14 @@ confused by comments or @code{foo-bar} matching @code{foo}.")
     (version "0.15")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/phillord/m-buffer-el"
-                           "/archive/" "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/phillord/m-buffer-el")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
+         "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -13358,13 +13366,14 @@ grouping buffers by their projectile root directory.")
     (version "1.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/istib/helm-mode-manager/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/istib/helm-mode-manager")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
+         "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
@@ -14048,13 +14057,14 @@ split to display more windows and more buffers, the buffer exits
     (name "emacs-rsw-elisp")
     (version "1.0.5")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rswgnu/rsw-elisp"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/rswgnu/rsw-elisp")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
+                "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rswgnu/rsw-elisp")
     (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
@@ -14267,13 +14277,14 @@ compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
     (version "0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/alezost/shift-number.el"
-                           "/archive/" "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/alezost/shift-number.el")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
+         "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/alezost/shift-number.el")
     (synopsis "Increase or decrease the number at point")
@@ -14483,7 +14494,7 @@ Emacs minor mode to escape sequences in code.")
 (define-public emacs-dashboard
   (package
     (name "emacs-dashboard")
-    (version "1.5.0")
+    (version "1.6.0")
     (source
      (origin
        (method git-fetch)
@@ -14492,7 +14503,7 @@ Emacs minor mode to escape sequences in code.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ihpcagwgc9qy70lf2y3dvx2bm5h9lnqh4sx6643cr8pp06ysbvq"))))
+        (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-page-break-lines" ,emacs-page-break-lines)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 294105a757..c5e2f58aeb 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -373,7 +373,7 @@ features.")))
        ("imagemagick" ,imagemagick)
        ("gerbv" ,gerbv)
        ("ghostscript" ,ghostscript)
-       ("xvfb" ,xorg-server)))
+       ("xvfb" ,xorg-server-for-tests)))
     (home-page "http://pcb.geda-project.org/")
     (synopsis "Design printed circuit board layouts")
     (description
@@ -1771,7 +1771,7 @@ parallel computing platforms.  It also supports serial execution.")
          ("python" ,python-2) ; for tests
          ("matplotlib" ,python2-matplotlib) ; for tests
          ("numpy" ,python2-numpy) ; for tests
-         ("xorg-server" ,xorg-server))) ; for tests
+         ("xorg-server" ,xorg-server-for-tests))) ; for tests
       (inputs
        `(("adms" ,adms)
          ("asco" ,asco)
@@ -2174,7 +2174,7 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
        ("imagemagick" ,imagemagick)
        ("ps" ,procps)
        ("python" ,python)
-       ("xvfb" ,xorg-server)))
+       ("xvfb" ,xorg-server-for-tests)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3d825cbe61..613b3acfeb 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3840,29 +3840,22 @@ programmers may also add their own favorite language.")
 (define-public bambam
   (package
     (name "bambam")
-    (version "0.6")
+    (version "1.0.0")
     (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/porridge/bambam")
-              (commit version)))
+              (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "08hcd0gzia3pz7fzk4pqc5kbq1074j4q0jcmbpgvr7n623nj2xa5"))))
+         (base32 "18cwd1wpyyx8y61cags9bkdhx9x858xicc4y1c9c2s0xjmgzhl3i"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2
-       #:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'build)
-         (add-before 'install 'patch-data-dir-location
-           (lambda _
-             (substitute* "bambam.py"
-               (("'data'") "'../share/bambam/data'"))
-             #t))
+         (delete 'build)                ; nothing to build
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out   (assoc-ref outputs "out"))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index b3e85f8df9..528b67e6cf 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -339,6 +339,7 @@ shared NFS home directories.")
            (variable "GIO_EXTRA_MODULES")
            (files '("lib/gio/modules")))))
    (search-paths native-search-paths)
+   (properties '((hidden? . #t)))
 
    (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
    (description
@@ -348,6 +349,34 @@ dynamic loading, and an object system.")
    (home-page "https://developer.gnome.org/glib/")
    (license license:lgpl2.1+)))
 
+(define-public glib-with-documentation
+  ;; glib's doc must be built in a separate package since it requires gtk-doc,
+  ;; which in turn depends on glib.
+  (package
+    (inherit glib)
+    (properties (alist-delete 'hidden? (package-properties glib)))
+    (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
+    (native-inputs
+     `(("gtk-doc" ,gtk-doc)             ; for the doc
+       ("docbook-xml" ,docbook-xml)
+       ("libxml2" ,libxml2)
+       ,@(package-native-inputs glib)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments glib)
+       ((#:configure-flags flags ''())
+        `(cons "-Dgtk_doc=true" ,flags))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (doc (assoc-ref outputs "doc"))
+                     (html (string-append "/share/gtk-doc")))
+                 (copy-recursively (string-append out html)
+                                   (string-append doc html))
+                 (delete-file-recursively (string-append out html))
+                 #t)))))))))
+
 (define gobject-introspection
   (package
     (name "gobject-introspection")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d8545eaa58..11ed035919 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2025,7 +2025,7 @@ since ca. 2006, when GTK+ itself incorporated printing support.")
     (native-inputs
      `(("glib" ,glib "bin")             ; for glib-genmarshal, etc.
        ("intltool" ,intltool)
-       ("xorg-server" ,xorg-server) ; For running the tests
+       ("xorg-server" ,xorg-server-for-tests) ; For running the tests
        ("pkg-config" ,pkg-config)))
     (home-page "https://developer.gnome.org/libbonoboui/")
     (synopsis "Some user interface controls using Bonobo")
@@ -2338,28 +2338,28 @@ libraries written in C.")
 (define-public vte
   (package
     (name "vte")
-    (version "0.56.3")
+    (version "0.58.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/vte/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "vte-" version ".tar.xz"))
               (sha256
                (base32
-                "0j166gic5znssdb9r45qazq4kb4v9fial82czand5wa8i2yd988p"))))
-    (build-system gnu-build-system)
+                "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
        ("vala" ,vala)
        ("gobject-introspection" ,gobject-introspection)
-       ("glib" ,glib "bin") ; for glib-genmarshal, etc.
+       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
        ("gperf" ,gperf)
        ("xmllint" ,libxml2)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)                             ;required by vte-2.91.pc
-       ("gnutls" ,gnutls)                         ;ditto
-       ("pcre2" ,pcre2)))                         ;ditto
+     `(("gtk+" ,gtk+)                   ; required by vte-2.91.pc
+       ("gnutls" ,gnutls)               ; ditto
+       ("pcre2" ,pcre2)))               ; ditto
     (home-page "https://www.gnome.org/")
     (synopsis "Virtual Terminal Emulator")
     (description
@@ -4374,7 +4374,7 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.34.1")
+    (version "3.34.2")
     (source
      (origin
        (method url-fetch)
@@ -4382,7 +4382,7 @@ USB transfers with your high-level application or system daemon.")
                            (version-major+minor version) "/"
                            "simple-scan-" version ".tar.xz"))
        (sha256
-        (base32 "0glzskxdc7p9z7nwcakqc7qzij4l79adlvvb2cj5fmis731zw9yq"))))
+        (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
     (build-system meson-build-system)
     ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
     (arguments
@@ -4591,7 +4591,7 @@ principles are simplicity and standards compliance.")
        ("pkg-config" ,pkg-config)
        ("python-pep8" ,python-pep8)
        ("xmllint" ,libxml2)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("gobject-introspection" ,gobject-introspection)
        ("gtk+" ,gtk+)
@@ -7752,7 +7752,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
 
        ;; For tests.
        ("aspell-dict-en" ,aspell-dict-en)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
      `(("enchant" ,enchant)))            ;enchant.pc is required by gspell-1.pc
     (home-page "https://wiki.gnome.org/Projects/gspell")
@@ -8167,7 +8167,7 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
      `(("glib" ,glib "bin")             ; glib-compile-resources
        ("pkg-config" ,pkg-config)
        ;; For tests.
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("glib" ,glib)
        ("gobject-introspection" ,gobject-introspection)
@@ -8257,7 +8257,7 @@ functionality.")
 (define-public gthumb
   (package
     (name "gthumb")
-    (version "3.8.1")
+    (version "3.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gthumb/"
@@ -8265,7 +8265,7 @@ functionality.")
                                   "gthumb-" version ".tar.xz"))
               (sha256
                (base32
-                "184zn79w4s9y1zy42ar31p3jsg8rmkxy8k6iry51nz8aizbcs7jb"))))
+                "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -8389,9 +8389,9 @@ advanced image management tool")
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
-       ("xorg-server" ,xorg-server)
 
        ;; Test suite dependencies.
+       ("xorg-server" ,xorg-server-for-tests)
        ("hicolor-icon-theme" ,hicolor-icon-theme)))
     (home-page "https://source.puri.sm/Librem5/libhandy")
     (synopsis "Library full of GTK+ widgets for mobile phones")
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index de916a8829..af017e108d 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gnome)
@@ -70,6 +72,8 @@
        ("icu4c" ,icu4c)
        ("glib" ,glib)
        ("gtk" ,gtk+)
+       ("libdbi" ,libdbi)
+       ("libdbi-drivers" ,libdbi-drivers)
        ("libgnomecanvas" ,libgnomecanvas)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
@@ -89,8 +93,7 @@
     (arguments
      `(#:test-target "check"
        #:configure-flags
-       (list "-DWITH_OFX=OFF"           ; libofx is not available yet
-             "-DWITH_SQL=OFF")          ; without dbi.h
+       (list "-DWITH_OFX=OFF")          ; libofx is not available yet
        #:make-flags '("GUILE_AUTO_COMPILE=0")
        #:modules ((guix build cmake-build-system)
                   ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
@@ -147,6 +150,10 @@
              (for-each (lambda (prog)
                          (wrap-program (string-append (assoc-ref outputs "out")
                                                       "/bin/" prog)
+                           `("GNC_DBD_DIR" =
+                             (,(string-append
+                                (assoc-ref inputs "libdbi-drivers")
+                                "/lib/dbd")))
                            `("PERL5LIB" ":" prefix
                              ,(map (lambda (o)
                                      (string-append o "/lib/perl5/site_perl/"
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 0904022f08..9d53ca5b80 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -55,7 +55,9 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages upnp)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages vim)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages backup)
@@ -232,7 +234,7 @@ supports HTTP, HTTPS and GnuTLS.")
 (define-public gnunet
   (package
    (name "gnunet")
-   (version "0.10.1")
+   (version "0.11.8")
    (source
     (origin
       (method url-fetch)
@@ -240,53 +242,67 @@ supports HTTP, HTTPS and GnuTLS.")
                           ".tar.gz"))
       (sha256
        (base32
-        "04wxzm3wkgqbn42b8ksr4cx6m5cckyig5cls1adh0nwdczwvnp7n"))))
+        "1zkmcq75sfr3iyg8rgxp9dbl7fwsvc1a71rc0vgisghcbrx1n7yj"))))
    (build-system gnu-build-system)
    (inputs
-    `(("glpk" ,glpk)
+    `(("bluez" ,bluez)
+      ("glpk" ,glpk)
       ("gnurl" ,gnurl)
-      ("gstreamer" ,gstreamer)
-      ("gst-plugins-base" ,gst-plugins-base)
       ("gnutls" ,gnutls/dane)
+      ("gstreamer" ,gstreamer)
+      ("jansson" ,jansson)
       ("libextractor" ,libextractor)
+      ("libidn" ,libidn2)
       ("libgcrypt" ,libgcrypt)
-      ("libidn" ,libidn)
-      ("libmicrohttpd" ,libmicrohttpd) ; hostlist, pt, contrib, and more
       ("libltdl" ,libltdl)
-      ("libunistring" ,libunistring) ; fs and more
-      ("openssl" ,openssl) ; transport, certificate creation, contribs
-      ("opus" ,opus) ; gnunet-conversation
-      ("pulseaudio" ,pulseaudio) ; conversation
-      ("sqlite" ,sqlite) ; sqlite bindings, *store
-      ("zlib" ,zlib)
-      ("perl" ,perl) ; doxygen and more
-      ("jansson" ,jansson) ; identity, taler (external), gnunet-json, gns
-      ("nss" ,nss) ; gns
-      ("gmp" ,gmp) ; util
-      ("bluez" ,bluez) ; gnunet-transport
-      ("glib" ,glib)
-      ("libogg" ,libogg) ; gnunet-conversation
-      ("python-2" ,python-2))) ; tests, gnunet-qr
+      ("libmicrohttpd" ,libmicrohttpd)
+      ("libogg" ,libogg)
+      ("libunistring" ,libunistring)
+      ("miniupnpc" ,miniupnpc)
+      ("opus" ,opus)
+      ("pulseaudio" ,pulseaudio)
+      ("sqlite" ,sqlite)
+      ("zbar" ,zbar)
+      ("zlib" ,zlib)))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    `(("pkg-config" ,pkg-config)
+      ("python" ,python)
+      ("xxd" ,xxd)
+      ("which" ,(@ (gnu packages base) which))))
    (arguments
-    '(#:configure-flags
-      (list (string-append "--with-nssdir=" %output "/lib"))
-      #:parallel-tests? #f
-      ;; test_gnunet_service_arm fails; reported upstream
-      #:tests? #f
+    '(#:parallel-tests? #f ; Parallel tests aren't supported.
       #:phases
       (modify-phases %standard-phases
-        ;; swap check and install phases and set paths to installed binaries
+        (add-after 'configure 'remove-failing-tests
+          ;; These tests fail in Guix's building envrionment.
+          (lambda _
+            (substitute* "src/transport/Makefile"
+              (("test_transport_api_udp_nat\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_transport_api_manipulation_cfg\\$\\(EXEEXT\\) \\\\\n") ""))
+            (substitute* "src/topology/Makefile"
+              (("^check_PROGRAMS.*") "\n")
+              (("test_gnunet_daemon_topology\\$\\(EXEEXT\\)\n") ""))
+            (substitute* "src/namestore/Makefile"
+              (("\\$\\(am__append_2\\)") ""))
+            (substitute* "src/gns/Makefile"
+              (("\\$\\(am__append_4\\)") ""))
+            (substitute* "contrib/Makefile"
+              (("^check_PROGRAMS.*") "\n"))
+            ;; 'test' from coreutils doesn't behave as the test expects.
+            (substitute* '("src/gns/gnunet-gns-proxy-setup-ca.in"
+                           "src/transport/gnunet-transport-certificate-creation.in")
+              (("gnutls-certtool") "certtool"))
+            #t))
+        ;; Swap 'check and 'install phases and add installed binaries to $PATH.
         (add-before 'check 'set-path-for-check
           (lambda* (#:key outputs #:allow-other-keys)
            (let ((out (assoc-ref outputs "out")))
              (setenv "GNUNET_PREFIX" (string-append out "/lib"))
              (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin")))
            #t))
+        (delete 'check)
         (add-after 'install 'check
-          (assoc-ref %standard-phases 'check))
-        (delete 'check))))
+          (assoc-ref %standard-phases 'check)))))
    (synopsis "Secure, decentralized, peer-to-peer networking framework")
    (description
      "GNUnet is a framework for secure peer-to-peer networking.  The
@@ -333,14 +349,14 @@ services.")
 (define-public gnunet-gtk
   (package (inherit gnunet)
     (name "gnunet-gtk")
-    (version (package-version gnunet))
+    (version "0.11.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/gnunet/gnunet-gtk-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1p38k1s6a2fmcfc9a7cf1zrdycm9h06kqdyand4s3k500nj6mb4g"))))
+                "061ifhqk6q9kx71z5404fm4d60yj2dihlwwmdqmhkn5nn4bvcwb5"))))
     (arguments
      `(#:configure-flags
        (list "--with-libunique"
@@ -348,14 +364,17 @@ services.")
              (string-append "--with-gnunet="
                             (assoc-ref %build-inputs "gnunet")))))
     (inputs
-     `(("gnunet" ,gnunet)
-       ("libgcrypt" ,libgcrypt)
+     `(("glade3" ,glade3)
+       ("gnunet" ,gnunet)
+       ("gnutls" ,gnutls/dane)
        ("gtk+" ,gtk+)
        ("libextractor" ,libextractor)
-       ("glade3" ,glade3)
-       ("qrencode" ,qrencode)
-       ("libunique" ,libunique)))
+       ("libgcrypt" ,libgcrypt)
+       ("libunique" ,libunique)
+       ("qrencode" ,qrencode)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libglade" ,libglade)))
-    (synopsis "Graphical front-end tools for GNUnet")))
+    (synopsis "Graphical front-end tools for GNUnet")
+    (properties '((ftp-server . "ftp.gnu.org")
+                  (ftp-directory . "/gnunet")))))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index f71c627781..23d3aba90e 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -247,14 +247,14 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.17")
+    (version "2.2.18")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "056mgy09lvsi03531a437qj58la1j2x1y1scvfi53diris3658mg"))))
+                "02pcdmb9p4a8hil88gyd86mnc85jldss3cl02jvbkcjmrbi7rlrh"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1045,7 +1045,7 @@ files, to verify signatures, and to manage the private and public keys.")
        ("perl-xml-twig" ,perl-xml-twig)
        ("torsocks" ,torsocks)))
     (native-inputs
-     `(("xorg-server" ,xorg-server)))
+     `(("xorg-server" ,xorg-server-for-tests)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 4f1c50b272..8795107dcb 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -758,7 +758,7 @@ realistic reflections, shading, perspective and other effects.")
        ("graphviz" ,graphviz)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xvfb" ,xorg-server)))
+       ("xvfb" ,xorg-server-for-tests)))
     (home-page "https://rapicorn.testbit.org/")
     (synopsis "Toolkit for rapid development of user interfaces")
     (description
@@ -1055,7 +1055,7 @@ requirements.")
                       (setenv "DISPLAY" ":1")
                       #t)))))
     (native-inputs
-     `(("xorg-server" ,xorg-server)))
+     `(("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("glew" ,glew)
        ("libxrandr" ,libxrandr)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3ed01d1967..02ec32ca27 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -360,7 +360,7 @@ diagrams.")
        ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
        ("pkg-config" ,pkg-config)
        ;; For testing.
-       ("xorg-server" ,xorg-server)
+       ("xorg-server" ,xorg-server-for-tests)
        ("shared-mime-info" ,shared-mime-info)))
     (propagated-inputs
      ;; As per the pkg-config file.
@@ -431,7 +431,7 @@ printing and other features typical of a source code editor.")
       ("pkg-config" ,pkg-config)
       ("vala" ,vala)
       ;; For testing.
-      ("xorg-server" ,xorg-server)
+      ("xorg-server" ,xorg-server-for-tests)
       ("shared-mime-info" ,shared-mime-info)))
    (propagated-inputs
     ;; gtksourceview-3.0.pc refers to all these.
@@ -1287,7 +1287,7 @@ write GNOME applications.")
 (define-public perl-cairo
   (package
     (name "perl-cairo")
-    (version "1.106")
+    (version "1.107")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1295,7 +1295,7 @@ write GNOME applications.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1i25kks408c54k2zxskvg54l5k3qadzm8n72ffga9jy7ic0h6j76"))))
+                "0sg1gf1f2pjq7pji0zsv4rbi3bzpsx82z98k7yqxafzrvlkf27ay"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 1e676566ac..e2eee47457 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
+;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2254,22 +2255,32 @@ list of components.  This module takes care of that for you.")
 (define-public guile-gi
   (package
     (name "guile-gi")
-    (version "0.2.0")
+    (version "0.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1n4pbrmbrjkrx826a4m31ag5c35rgkj1sirqh4qalk7gg67cfb41"))))
+                "1ah5bmkzplsmkrk7v9vlxlqch7i91qv4cq2d2nar9xshbpcrj484"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-gnu-filesystem-hierarchy")))
+     `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'start-xorg-server
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The init_check test requires a running X server.
+             (system (format #f "~a/bin/Xvfb :1 &"
+                             (assoc-ref inputs "xorg-server")))
+             (setenv "DISPLAY" ":1")
+             #t)))))
     (native-inputs
      `(("gettext" ,gnu-gettext)
        ("glib:bin" ,glib "bin") ; for glib-compile-resources
        ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("xorg-server" ,xorg-server)))
     (propagated-inputs
      `(("glib" ,glib)
        ("gobject-introspection" ,gobject-introspection)
@@ -2660,3 +2671,55 @@ anything other than straight complex DFTs.")
       ;; TODO: This might actually be LGPLv3+
       ;; See https://github.com/lloda/guile-ffi-fftw/issues/1
       (license license:gpl3+))))
+
+(define-public srfi-64-driver
+  (package
+    (name "srfi-64-driver")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://files.ngyro.com/srfi-64-driver/"
+                                  "srfi-64-driver-" version ".tar.gz"))
+              (sha256
+               (base32
+                "188b6mb7sjjg0a8zldikinglf40ky8mg8rwh5768gjmch6gkk3ph"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,guile-2.2)))
+    (home-page "https://ngyro.com/software/srfi-64-driver.html")
+    (synopsis "Automake test driver for SRFI 64 test suites")
+    (description "This package provides an Automake test driver that can
+run SRFI 64 test suites.  It gives Automake insight into the individual
+tests being run, resulting clearer and more specific output.")
+    (license license:gpl3+)))
+
+(define-public guile-semver
+  (package
+    (name "guile-semver")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://files.ngyro.com/guile-semver/"
+                                  "guile-semver-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06b66rj7nyhr6i3dpkwvfw1xb10w2pngrsw2hxfxkznwsbh9byfz"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("srfi-64-driver" ,srfi-64-driver)))
+    (inputs
+     `(("guile" ,guile-2.2)))
+    (home-page "https://ngyro.com/software/guile-semver.html")
+    (synopsis "Semantic Versioning (SemVer) for Guile")
+    (description "This Guile library provides tools for reading,
+comparing, and writing Semantic Versions.  It also includes ranges in
+the style of the Node Package Manager (NPM).")
+    (license license:gpl3+)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4419c48d1a..6526ad2a56 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -276,14 +276,14 @@ without requiring the source code to be rewritten.")
   (package
     (inherit guile-2.2)
     (name "guile-next")
-    (version "2.9.4")
+    (version "2.9.5")
     (source (origin
               (inherit (package-source guile-2.2))
               (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1milviqhipyfx400pqhngxpxyajalzwmp597dxn5514pkk0g7v0p"))))
+                "1db91mhvphzmiyw6f41ks9haysphygngv400ivgqf23lg22wn5zr"))))
     (native-search-paths
      (list (search-path-specification
             (variable "GUILE_LOAD_PATH")
@@ -541,7 +541,15 @@ Guile's foreign function interface.")
               (sha256
                (base32
                 "1nv8j7wk6b5n4p22szyi8lv8fs31rrzxhzz16gyj8r38c1fyp9qp"))
-              (file-name (string-append name "-" version "-checkout"))))
+              (file-name (string-append name "-" version "-checkout"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure.ac"
+                    (("^GUILE_PKG.*")
+                     "GUILE_PKG([3.0 2.2 2.0])\n"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -558,6 +566,9 @@ Guile's foreign function interface.")
 (define-public guile2.0-sqlite3
   (package-for-guile-2.0 guile-sqlite3))
 
+(define-public guile3.0-sqlite3
+  (package-for-guile-3.0 guile-sqlite3))
+
 (define-public guile-bytestructures
   (package
     (name "guile-bytestructures")
@@ -604,7 +615,21 @@ type system, elevating types to first-class status.")
               (sha256
                (base32
                 "018hmfsh0rjwfvr4h7y10jc6k8a2k9xsirngghy3pjasin4nd2yz"))
-              (file-name (git-file-name name version))))
+              (file-name (git-file-name name version))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure.ac"
+                    (("^GUILE_PKG.*")
+                     "GUILE_PKG([3.0 2.2 2.0])\n"))
+
+                  ;; The 'guile.m4' that's shipped is too old and fails to
+                  ;; recognize Guile 2.9/3.0.  Delete it and pick the one
+                  ;; provided by the Guile we're using.
+                  (delete-file "m4/guile.m4")
+
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -622,8 +647,19 @@ type system, elevating types to first-class status.")
 manipulate repositories of the Git version control system.")
     (license license:gpl3+)))
 
+(define-public guile3.0-git
+  (package-for-guile-3.0 guile-git))
+
 (define-public guile2.0-git
-  (package-for-guile-2.0 guile-git))
+  (let ((base (package-for-guile-2.0 guile-git)))
+    (package
+      (inherit base)
+      ;; Libgit2's Guile test driver requires (ice-9 textual-ports), which is
+      ;; not in Guile 2.0.  Thus, keep LIBGIT2 as-is here (i.e., built against
+      ;; Guile 2.2).
+      (inputs `(("libgit2" ,libgit2)
+                ,@(srfi-1:alist-delete "libgit2"
+                                       (package-inputs base)))))))
 
 ;;; guile.scm ends here
 
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 2579da3d6a..1961b47361 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -373,7 +373,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
              (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server) ; For running the tests
+       ("xorg-server" ,xorg-server-for-tests) ; For running the tests
        ("opencv-extra"
         ,(origin
            (method git-fetch)
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index d237a27c4a..c0300f5087 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
+;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,7 +73,9 @@
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "070axq8jpibcabmjfv4fmjmpk3k349vzvh4qhsi4n62bkcwl35wg"))))
+                "070axq8jpibcabmjfv4fmjmpk3k349vzvh4qhsi4n62bkcwl35wg"))
+              (patches
+               (search-patches "feh-fix-tests-for-imlib2-1.6.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 5a2bb97ce8..69e4d1e08c 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
 ;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -63,6 +63,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mcrypt)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
@@ -853,7 +854,7 @@ compose, and analyze GIF images.")
 (define-public imlib2
   (package
     (name "imlib2")
-    (version "1.5.1")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -861,19 +862,21 @@ compose, and analyze GIF images.")
                     "/imlib2-" version ".tar.bz2"))
               (sha256
                (base32
-                "1bms2iwmvnvpz5jqq3r52glarqkafif47zbh1ykz8hw85d2mfkps"))))
+                "07b9v3ycwhici35fnczvpyjpgkc7gbcdhajpl9dwhpzdzbfl1i6g"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkgconfig" ,pkg-config)))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
+     `(("bzip2" ,bzip2)
        ("freetype" ,freetype)
+       ("giflib" ,giflib)
+       ("libid3tag" ,libid3tag)
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("giflib" ,giflib)
-       ("bzip2" ,bzip2)))
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libwebp" ,libwebp)))
     (home-page "https://sourceforge.net/projects/enlightenment/")
     (synopsis
      "Loading, saving, rendering and manipulating image files")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 96aba546aa..e280b81c61 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -513,7 +513,7 @@ Internet).")
        ("extra-cmake-modules" ,extra-cmake-modules)
        ("inetutils" ,inetutils)
        ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
@@ -578,7 +578,7 @@ propagate their changes to their respective configuration files.")
        ("qttools" ,qttools)
        ("shared-mime-info" ,shared-mime-info)
        ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
-       ("xorg-server" ,xorg-server))) ; for the tests
+       ("xorg-server" ,xorg-server-for-tests))) ; for the tests
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
@@ -1108,7 +1108,7 @@ represented by a QPoint or a QSize.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
@@ -1158,7 +1158,7 @@ configuration pages, message boxes, and password requests.")
        ("dbus" ,dbus) ; for the tests
        ("openbox" ,openbox) ; for the tests
        ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server))) ; for the tests
+       ("xorg-server" ,xorg-server-for-tests))) ; for the tests
     (inputs
      `(("libxrender" ,libxrender)
        ("qtbase" ,qtbase)
@@ -2345,7 +2345,7 @@ their settings.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("kauth" ,kauth)
        ("kbookmarks" ,kbookmarks)
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 2802a5a461..e4360362db 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -96,7 +96,7 @@ manager which re-parents a Client window to a window decoration frame.")
 
        ;; For tests.
        ("dbus" ,dbus)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("kcmutils" ,kcmutils)
        ("kcrash" ,kcrash)
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index dcce02e467..636b5d60ba 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -558,9 +558,6 @@ different notification systems.")
          (add-after 'install 'wrap-executable
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (setenv "QT_PLUGIN_PATH"
-                       (string-append out "/lib/qt5/plugins"
-                                      ":" (getenv "QT_PLUGIN_PATH")))
                (wrap-qt-program out "../lib/libexec/kdeconnectd")
                (wrap-qt-program out "kdeconnect-cli")
                (wrap-qt-program out "kdeconnect-handler")
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index e6016d1049..878f9e58ed 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -305,25 +305,37 @@ wrapper for accessing libusb-1.0.")
 (define-public libplist
   (package
     (name "libplist")
-    (version "2.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.libimobiledevice.org/downloads/"
-                                  "libplist-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "00pnh9zf3iwdji2faccns7vagbmbrwbj9a8zp9s53a6rqaa9czis"))))
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libimobiledevice/libplist.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02vraf4j46bp746s0gz7vga2gv2dy3zd1v1bsy9x8algg9fpcb7n"))))
     (build-system gnu-build-system)
     (arguments
-     ;; Tests fail randomly when run in parallel because several of them write
-     ;; and read to/from the same file--e.g., "4.plist" is accessed by
-     ;; 'large.test' and 'largecmp.test'.
-     '(#:parallel-tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'configure-later
+           ;; Don't run ./configure during bootstrap.
+           (lambda _
+             (setenv "NOCONFIGURE" "set")
+             #t)))
+       ;; Tests fail randomly when run in parallel because several of them write
+       ;; and read to/from the same file--e.g., "4.plist" is accessed by
+       ;; 'large.test' and 'largecmp.test'.
+       #:parallel-tests? #f))
     (inputs
      `(("python" ,python)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python-cython" ,python-cython))) ; to build Python bindings
     (home-page "https://www.libimobiledevice.org/")
     (synopsis "C library to handle Apple Property List files")
     (description "This package provides a small portable C library to handle
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 32cacd7511..f16d24fa86 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -352,42 +352,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                         "linux-" version ".tar.xz"))
     (sha256 hash)))
 
-(define-public linux-libre-5.3-version "5.3.12")
+(define-public linux-libre-5.3-version "5.3.13")
 (define-public linux-libre-5.3-pristine-source
   (let ((version linux-libre-5.3-version)
-        (hash (base32 "184pmjyqh4bkrc3vj65zn6xnljzv9d1x7c1z0hlgj6fakpwgdgsk")))
+        (hash (base32 "0by9lmgmllf19yflzm9f24cy9glcq6m73ywm25bddsnh0czya14z")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.3)))
 
-(define-public linux-libre-4.19-version "4.19.85")
+(define-public linux-libre-4.19-version "4.19.86")
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1dsgbys73jga5h0a9icgif6qbi31g84315zlcdid9bzf1abkbx3v")))
+        (hash (base32 "1xmzcxsiydym574y7k313qd8s4c3mdahpb3nx3cingfl36ivnb5z")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.155")
+(define-public linux-libre-4.14-version "4.14.156")
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "10g4493ldc398qza304z5yz8qdp93w7a2bs5h5dwk0bbamwikmkp")))
+        (hash (base32 "1h47fxfbq0d5ry7j3jxz45v5c4103qncgm2vydpz6zdx1kmrz27q")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.202")
+(define-public linux-libre-4.9-version "4.9.203")
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "1gsfbvsswpwj6r56ynb6mmx7dc8hp9yhi7sfr0hhii0gs4ffq241")))
+        (hash (base32 "0jd8n8y3yf59sgfjhgjxsznxng7s4b30x5vdb48wrpgqmz7m1n8w")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
 
-(define-public linux-libre-4.4-version "4.4.202")
+(define-public linux-libre-4.4-version "4.4.203")
 (define-public linux-libre-4.4-pristine-source
   (let ((version linux-libre-4.4-version)
-        (hash (base32 "0adrmps7izfqy0yn4440isxvigslwzk1a375r9kh86idwbmcxb7x")))
+        (hash (base32 "02krniihix9mb9bc0ffs03q4i9grjhwymnfp10h1r6gmxa554qlj")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.4)))
@@ -4794,7 +4794,8 @@ of flash storage.")
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "0nsq81acrbkdr8zairxbwa33bj2a6126npp76b4srjl472sjfkxm"))))
+                "0nsq81acrbkdr8zairxbwa33bj2a6126npp76b4srjl472sjfkxm"))
+              (patches (search-patches "libseccomp-open-aarch64.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 80f7c91f06..01ec02df18 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -854,14 +854,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.29.2")
+    (version "0.29.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1pjmrnbn0iavm5pnw7wgfw5d6hg5i6miqfa6s7s4027vn94n3nhv"))))
+                "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index e7e14c54ae..f05efccece 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -162,7 +162,7 @@ the traditional flat-text whatis databases.")
 (define-public man-pages
   (package
     (name "man-pages")
-    (version "5.03")
+    (version "5.04")
     (source
      (origin
        (method url-fetch)
@@ -172,7 +172,7 @@ the traditional flat-text whatis databases.")
               (string-append "mirror://kernel.org/linux/docs/man-pages/Archive/"
                              "man-pages-" version ".tar.xz")))
        (sha256
-        (base32 "082i9258rl9xxjgpxpz3v8jcwk96dsk704ki9h9lq7q8z7m3mqbz"))))
+        (base32 "1bx4ws24bjq6iyfyilg7aih5f0qrhy9l97ksrwcd4yxvjh8gn13x"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9c576ee648..acee64a63f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -62,7 +62,6 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
@@ -2342,45 +2341,6 @@ sparse system of linear equations A x = b using Gaussian elimination.")
     (inputs
      (alist-delete "pt-scotch" (package-inputs mumps-openmpi)))))
 
-(define-public r-quadprog
-  (package
-    (name "r-quadprog")
-    (version "1.5-7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "quadprog" version))
-       (sha256
-        (base32
-         "0vg7i9p241bwvfdspjbydjrsvgipl6nsb8bjigp0hbbgvxbixx0s"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("gfortran" ,gfortran)))
-    (home-page "https://cran.r-project.org/web/packages/quadprog")
-    (synopsis "Functions to solve quadratic programming problems")
-    (description
-     "This package contains routines and documentation for solving quadratic
-programming problems.")
-    (license license:gpl3+)))
-
-(define-public r-pracma
-  (package
-    (name "r-pracma")
-    (version "2.2.5")
-    (source (origin
-      (method url-fetch)
-      (uri (cran-uri "pracma" version))
-      (sha256
-        (base32 "0isd3s0i4mzmva8lkh0j76hwjy1w50q7d1n9lhxsnnkgalx3xs1g"))))
-    (build-system r-build-system)
-    (home-page "https://cran.r-project.org/web/packages/pracma/")
-    (synopsis "Practical numerical math functions")
-    (description "This package provides functions for numerical analysis and
-linear algebra, numerical optimization, differential equations, plus some
-special functions.  It uses Matlab function names where appropriate to simplify
-porting.")
-    (license license:gpl3+)))
-
 (define-public ruby-asciimath
   (package
     (name "ruby-asciimath")
@@ -2992,7 +2952,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "19.09.0")
+    (version "19.11.1")
     (source
      (origin
        (method git-fetch)
@@ -3001,7 +2961,7 @@ point numbers.")
              (commit (string-append "Version-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "195j6j8z0jd6xg3a63ywbrbsc6dany795m3fb95nbx1vq0bqqvvn"))))
+        (base32 "16xizaddb27432n1083y89ir5zdqvllsgbwrzzk4jc2rw1ldxfsv"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -4368,57 +4328,6 @@ analysed.")
     (arguments
      '(#:configure-flags '("-DMCRL2_ENABLE_GUI_TOOLS=OFF")))))
 
-(define-public r-subplex
-  (package
-    (name "r-subplex")
-    (version "1.5-4")
-    (source
-    (origin
-      (method url-fetch)
-      (uri (cran-uri "subplex" version))
-      (sha256
-       (base32
-        "10cbgbx1bgsax5z7gz6716g360xpq4mvq19cf4qqrxv02mmwz57z"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("gfortran" ,gfortran)))
-    (home-page "https://cran.r-project.org/web/packages/subplex")
-    (synopsis "Unconstrained optimization using the subplex algorithm")
-    (description "This package implements the Subplex optimization algorithm.
-It solves unconstrained optimization problems using a simplex method on
-subspaces.  The method is well suited for optimizing objective functions that
-are noisy or are discontinuous at the solution.")
-    (license license:gpl3+)))
-
-(define-public r-desolve
-  (package
-    (name "r-desolve")
-    (version "1.24")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (cran-uri "deSolve" version))
-        (sha256
-         (base32
-          "0hkvspq0fp8j64l9zayab2l2nazazhwfgfym0jllh0xv5a12r99s"))))
-    (properties `((upstream-name . "deSolve")))
-    (build-system r-build-system)
-    (native-inputs
-     `(("gfortran" ,gfortran)))
-    (home-page "https://desolve.r-forge.r-project.org/")
-    (synopsis "Solvers for initial value problems of differential equations")
-    (description "This package provides functions that solve initial
-value problems of a system of first-order ordinary differential equations (ODE),
-of partial differential equations (PDE), of differential algebraic equations
-(DAE), and of delay differential equations.  The functions provide an interface
-to the FORTRAN functions lsoda, lsodar, lsode, lsodes of the ODEPACK collection,
-to the FORTRAN functions dvode and daspk and a C-implementation of solvers of
-the Runge-Kutta family with fixed or variable time steps.  The package contains
-routines designed for solving ODEs resulting from 1-D, 2-D and 3-D partial
-differential equations (PDE) that have been converted to ODEs by numerical
-differencing.")
-    (license license:gpl2+)))
-
 (define-public tcalc
   (package
   (name "tcalc")
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 1a55342279..59710c45ae 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -140,14 +140,14 @@ Guile.")
 (define-public mes
   (package
     (inherit mes-0.19)
-    (version "0.20")
+    (version "0.21")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mes/"
                                   "mes-" version ".tar.gz"))
               (sha256
                (base32
-                "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n"))))
+                "104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
     (propagated-inputs
      `(("mescc-tools" ,mescc-tools)
        ("nyacc" ,nyacc)))))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 694dfbb51d..2429bad3e5 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -644,7 +644,7 @@ else [])"))
     (native-inputs
      `(("intltool" ,intltool)
        ("python-docutils" ,python-docutils)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("adwaita-icon-theme" ,adwaita-icon-theme)
        ("gnome-keyring" ,gnome-keyring)
@@ -1822,13 +1822,13 @@ QMatrixClient project.")
 (define-public hangups
   (package
     (name "hangups")
-    (version "0.4.9")
+    (version "0.4.10")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hangups" version))
        (sha256
-        (base32 "1jw4i58cd4j1ymsnhv9224xsi26w8y0qrj6z4nw50dnbl45b6aaa"))))
+        (base32 "0ww9z9kcb02pwnr8q1ll31wkzspc1fci1ly8ifrwzxysp4rxy3j5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index c9a9c440d3..3afdbddc84 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -340,3 +342,27 @@ Daemon (MPD).  It supports playlists, multiple profiles (connecting to different
 MPD servers, search and multimedia key support.")
     (home-page "https://www.nongnu.org/sonata/")
     (license license:gpl3+)))
+
+(define-public ashuffle
+  (package
+    (name "ashuffle")
+    (version "2.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/joshkunz/ashuffle.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11aa95cg0yca2m2d00sar6wr14g3lc7cfm9bin1h7lk7asdm8azp"))))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("libmpdclient" ,libmpdclient)))
+    (build-system meson-build-system)
+    (home-page "https://github.com/joshkunz/ashuffle")
+    (synopsis "Automatic library-wide shuffle for mpd")
+    (description "ashuffle is an application for automatically shuffling your
+MPD library in a similar way to many other music players' 'shuffle library'
+feature. ashuffle works like any other MPD client, and can be used alongside
+other MPD frontends.")
+    (license license:expat)))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2c3b2ff5ff..87497f6f66 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
@@ -423,7 +423,10 @@ many input formats and provides a customisable Vi-style user interface.")
                             "Clarinet in Bb.denemo"))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")         ; for gtester
+     `(("intltool" ,intltool)
+       ("glib:bin" ,glib "bin")         ; for gtester
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -433,13 +436,10 @@ many input formats and provides a customisable Vi-style user interface.")
        ("fluidsynth" ,fluidsynth)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("gtk-doc" ,gtk-doc)
        ("gtksourceview" ,gtksourceview-3)
        ("guile" ,guile-2.0)
-       ("intltool" ,intltool)
        ("librsvg" ,librsvg)
        ("libsndfile" ,libsndfile)
-       ("libtool" ,libtool)
        ("libxml2" ,libxml2)
        ("lilypond" ,lilypond)
        ("portaudio" ,portaudio)
@@ -1128,6 +1128,40 @@ be used alone or in concert with Non Mixer and Non Sequencer to form a
 complete studio.")
     (license license:gpl2+)))
 
+(define-public bsequencer
+  (package
+    (name "bsequencer")
+    (version "1.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sjaehn/BSEQuencer.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08xwz5v8wrar0rx7qdr9pkpjz2k9sw6bn5glhpn6sp6453fabf8q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f ; there are none
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("cairo" ,cairo)
+       ("lv2" ,lv2)
+       ("libx11" ,libx11)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/sjaehn/BSEQuencer")
+    (synopsis "Multi-channel MIDI step sequencer LV2 plugin")
+    (description
+     "This package provides a multi-channel MIDI step sequencer LV2 plugin
+with a selectable pattern matrix size.")
+    (license license:gpl3+)))
+
 (define-public solfege
   (package
     (name "solfege")
@@ -3804,7 +3838,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.3.2")
+    (version "3.3.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3813,7 +3847,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r2xhhwv09v8ykgvh38fgpmpcmkra7lvhv7714xp7vb0wpcnh8l3"))
+                "11pcw2ihi7ddd4rr83y72i61yyc1qfj6v14a82zwlak2qnllpbmr"))
               (modules '((guix build utils)))
               (snippet
                ;; Un-bundle OpenSSL and remove unused libraries.
@@ -5013,3 +5047,62 @@ Soul Force), MVerb, Nekobi, and ProM.")
 MacArthur's AVLdrums.  This plugin provides a convenient way to sequence and mix
 MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
     (license license:gpl2+)))
+
+(define-public helm
+  (package
+    (name "helm")
+    (version "0.9.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/mtytel/helm.git")
+            (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f  ; no "check" target
+       #:make-flags
+       (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+             "lv2" "standalone")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'include-pnglib-code-and-remove-usr-from-paths
+           (lambda _
+             (substitute* "standalone/builds/linux/Makefile"
+               (("JUCE_INCLUDE_PNGLIB_CODE=0")
+                "JUCE_INCLUDE_PNGLIB_CODE=1"))
+             (substitute* "builds/linux/LV2/Makefile"
+               (("JUCE_INCLUDE_PNGLIB_CODE=0")
+                "JUCE_INCLUDE_PNGLIB_CODE=1"))
+             (substitute* "Makefile"
+               (("/usr") ""))
+             #t))
+         (add-before 'reset-gzip-timestamps 'make-gz-files-writable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each make-file-writable
+                       (find-files (string-append (assoc-ref outputs "out"))
+                                   ".*\\.gz$"))
+             #t))
+         (delete 'configure))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("curl" ,curl)
+       ("freetype2" ,freetype)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("libxcursor" ,libxcursor)
+       ("libxinerama", libxinerama)
+       ("jack", jack-1)
+       ("mesa" ,mesa)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("lv2", lv2)))
+    (home-page "https://tytel.org/helm/")
+    (synopsis "Polyphonic synth with lots of modulation")
+    (description "Helm is a cross-platform polyphonic synthesizer available standalone
+and as an LV2 plugin.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 87cabee645..3ab5e71828 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -553,7 +553,7 @@ and up to 1 Mbit/s downstream.")
 (define-public whois
   (package
     (name "whois")
-    (version "5.5.2")
+    (version "5.5.3")
     (source
      (origin
        (method url-fetch)
@@ -561,7 +561,7 @@ and up to 1 Mbit/s downstream.")
                            "whois_" version ".tar.xz"))
        (sha256
         (base32
-         "1h55zs3cj4w9b0hq0x3z7s2mn46v0jyc39gz320ra4hwr0xlsnf0"))))
+         "0imb87iz17a530fg1x9wnsm4bvr61hxydv29chfwzh015af3zhsm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index d820b855d8..9cd29f2004 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -5199,7 +5199,7 @@ then run the Bisect_ppx report tool on the generated visitation files.")
 (define-public ocaml-odoc
   (package
     (name "ocaml-odoc")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method git-fetch)
@@ -5208,8 +5208,7 @@ then run the Bisect_ppx report tool on the generated visitation files.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1i2j0krbzvb1n3dcic9h1pyyqxmf051ky82nrcyzx1nwqjb8zfh6"))))
+        (base32 "0rvhx139jx6wmlfz355mja6mk03x4swq1xxvk5ky6jzhalq3cf5i"))))
     (build-system dune-build-system)
     (inputs
      `(("ocaml-alcotest" ,ocaml-alcotest)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 98721fe1ff..0ad47bca0d 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -53,14 +53,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20191022")
+    (version "20191122")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "1a89x5ix9kls1abj8zkgxdf3g3s5phzb83xcd4cwpz4szfjfw6v4"))))
+       (base32 "01wmk3sf34d2lmhl37j4ga7aims2hcnzv1bydg1xs4pablar6ahq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index b3195f8f6b..e1555cc194 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -353,19 +353,19 @@ them out, at the source.")
 (define-public libpwquality
   (package
     (name "libpwquality")
-    (version "1.4.0")
+    (version "1.4.2")
     (source (origin
               (method url-fetch)
               (uri (list
-                    (string-append "https://github.com/" name "/" name
-                                   "/releases/download/" name  "-" version
-                                   "/" name "-" version ".tar.bz2")
+                    (string-append "https://github.com/libpwquality/libpwquality"
+                                   "/releases/download/libpwquality-" version
+                                   "/libpwquality-" version ".tar.bz2")
                     (string-append "https://launchpad.net/libpwquality/trunk/"
                                    version "/+download/"
-                                   name "-" version ".tar.bz2")))
+                                   "libpwquality-" version ".tar.bz2")))
               (sha256
                (base32
-                "0syyz8r54l8mqmbb0mw19qz4z2cx8gdgidicb8k2s5zjdh2gzrhx"))))
+                "13hw532fmzc5xjpy75d74rlfdlxf2a8ibb4hyy9c0s92wsgf0qsj"))))
     (build-system gnu-build-system)
     (arguments
      ;; XXX: have RUNPATH issue.
diff --git a/gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch b/gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch
new file mode 100644
index 0000000000..a91906dbe9
--- /dev/null
+++ b/gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch
@@ -0,0 +1,51 @@
+commit 8048fb542d0c36f868760ba1590fbe14a3a85df7
+Author: Pierre Langlois <pierre.langlois@gmx.com>
+Date:   Wed Nov 27 10:42:05 2019 +0000
+
+    Adapt tests for imlib2 1.6
+    
+    Reported upstream on https://github.com/derf/feh/issues/497
+
+diff --git a/test/list/custom b/test/list/custom
+index dbe2074..40ac557 100644
+--- a/test/list/custom
++++ b/test/list/custom
+@@ -1,4 +1,4 @@
+ test/ok/gif; 16; 4; list; gif; 256; 953; gif; 1; 16
+-test/ok/jpg; 16; 4; list; jpg; 256; 354; jpeg; 2; 16
++test/ok/jpg; 16; 4; list; jpg; 256; 354; jpg; 2; 16
+ test/ok/png; 16; 4; list; png; 256; 403; png; 3; 16
+ test/ok/pnm; 16; 4; list; pnm; 256; 269; pnm; 4; 16
+diff --git a/test/list/default b/test/list/default
+index bc0ef52..e480db3 100644
+--- a/test/list/default
++++ b/test/list/default
+@@ -1,5 +1,5 @@
+ NUM	FORMAT	WIDTH	HEIGHT	PIXELS	SIZE	ALPHA	FILENAME
+ 1	gif	16	16	256 	953 	-	test/ok/gif
+-2	jpeg	16	16	256 	354 	-	test/ok/jpg
++2	jpg	16	16	256 	354 	-	test/ok/jpg
+ 3	png	16	16	256 	403 	X	test/ok/png
+ 4	pnm	16	16	256 	269 	-	test/ok/pnm
+diff --git a/test/list/format_reverse b/test/list/format_reverse
+index 9216184..3301f78 100644
+--- a/test/list/format_reverse
++++ b/test/list/format_reverse
+@@ -1,5 +1,5 @@
+ NUM	FORMAT	WIDTH	HEIGHT	PIXELS	SIZE	ALPHA	FILENAME
+ 1	pnm	16	16	256 	269 	-	test/ok/pnm
+ 2	png	16	16	256 	403 	X	test/ok/png
+-3	jpeg	16	16	256 	354 	-	test/ok/jpg
++3	jpg	16	16	256 	354 	-	test/ok/jpg
+ 4	gif	16	16	256 	953 	-	test/ok/gif
+diff --git a/test/list/size b/test/list/size
+index cad60b0..7716239 100644
+--- a/test/list/size
++++ b/test/list/size
+@@ -1,5 +1,5 @@
+ NUM	FORMAT	WIDTH	HEIGHT	PIXELS	SIZE	ALPHA	FILENAME
+ 1	pnm	16	16	256 	269 	-	test/ok/pnm
+-2	jpeg	16	16	256 	354 	-	test/ok/jpg
++2	jpg	16	16	256 	354 	-	test/ok/jpg
+ 3	png	16	16	256 	403 	X	test/ok/png
+ 4	gif	16	16	256 	953 	-	test/ok/gif
diff --git a/gnu/packages/patches/libseccomp-open-aarch64.patch b/gnu/packages/patches/libseccomp-open-aarch64.patch
new file mode 100644
index 0000000000..6e62825892
--- /dev/null
+++ b/gnu/packages/patches/libseccomp-open-aarch64.patch
@@ -0,0 +1,27 @@
+This patch fixes the build failure on AArch64 reported
+at <https://github.com/seccomp/libseccomp/pull/191>.
+
+From cc21c1b48d35f9d34ef2da0e184af3855bfeee5f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Wed, 20 Nov 2019 14:11:12 -0500
+Subject: [PATCH] tests: use openat instead of open
+
+On arm64, __NR_open is not defined, openat is always used. Let's use openat
+instead, which is defined for architectures currently.
+---
+ tests/15-basic-resolver.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/15-basic-resolver.c b/tests/15-basic-resolver.c
+index 6badef1..4884faf 100644
+--- a/tests/15-basic-resolver.c
++++ b/tests/15-basic-resolver.c
+@@ -55,7 +55,7 @@ int main(int argc, char *argv[])
+ 	unsigned int arch;
+ 	char *name = NULL;
+ 
+-	if (seccomp_syscall_resolve_name("open") != __NR_open)
++	if (seccomp_syscall_resolve_name("openat") != __NR_openat)
+ 		goto fail;
+ 	if (seccomp_syscall_resolve_name("read") != __NR_read)
+ 		goto fail;
diff --git a/gnu/packages/patches/pam-mount-luks2-support.patch b/gnu/packages/patches/pam-mount-luks2-support.patch
new file mode 100644
index 0000000000..b59daf5ce1
--- /dev/null
+++ b/gnu/packages/patches/pam-mount-luks2-support.patch
@@ -0,0 +1,51 @@
+From d4434c05e7c0cf05d87089404cfa2deedc60811a Mon Sep 17 00:00:00 2001
+From: Ingo Franzki <ifranzki@linux.ibm.com>
+Date: Mon, 29 Oct 2018 16:47:40 +0100
+Subject: [PATCH] crypto: Add support for LUKS2
+
+Cryptsetup version 2.0 added support for LUKS2.
+This patch adds support for mounting LUKS2 volumes with
+pam_mount.
+
+Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
+---
+ src/crypto-dmc.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/crypto-dmc.c b/src/crypto-dmc.c
+index d0ab6ca..abd0358 100644
+--- a/src/crypto-dmc.c
++++ b/src/crypto-dmc.c
+@@ -21,6 +21,12 @@
+ #include "libcryptmount.h"
+ #include "pam_mount.h"
+ 
++#ifndef CRYPT_LUKS
++	#define CRYPT_LUKS	NULL /* Passing NULL to crypt_load will
++					default to LUKS(1) on older
++					libcryptsetup versions. */
++#endif
++
+ /**
+  * dmc_is_luks - check if @path points to a LUKS volume (cf. normal dm-crypt)
+  * @path:	path to the crypto container
+@@ -48,7 +54,7 @@ EXPORT_SYMBOL int ehd_is_luks(const char *path, bool blkdev)
+ 
+ 	ret = crypt_init(&cd, device);
+ 	if (ret == 0) {
+-		ret = crypt_load(cd, CRYPT_LUKS1, NULL);
++		ret = crypt_load(cd, CRYPT_LUKS, NULL);
+ 		if (ret == -EINVAL)
+ 			ret = false;
+ 		else if (ret == 0)
+@@ -106,7 +112,7 @@ static bool dmc_run(const struct ehd_mount_request *req,
+ #endif
+ 	}
+ 
+-	ret = crypt_load(cd, CRYPT_LUKS1, NULL);
++	ret = crypt_load(cd, CRYPT_LUKS, NULL);
+ 	if (ret == 0) {
+ 		ret = crypt_activate_by_passphrase(cd, mt->crypto_name,
+ 		      CRYPT_ANY_SLOT, req->key_data, req->key_size, flags);
+-- 
+2.21.0
diff --git a/gnu/packages/patches/xsane-fix-memory-leak.patch b/gnu/packages/patches/xsane-fix-memory-leak.patch
new file mode 100644
index 0000000000..4e03e57e13
--- /dev/null
+++ b/gnu/packages/patches/xsane-fix-memory-leak.patch
@@ -0,0 +1,34 @@
+From bbd54510f0297afa2d1a81927db060cb0b791f14 Mon Sep 17 00:00:00 2001
+From: Ralph Little <littlesincanada@yahoo.co.uk>
+Date: Sun, 1 Sep 2019 17:34:19 -0700
+Subject: [PATCH] Apply opensuse upstream patch xsane_memory_leak
+
+Removes completely redundant memory allocation.
+---
+ src/xsane-batch-scan.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/xsane-batch-scan.c b/src/xsane-batch-scan.c
+index 90cc0e0..e77caca 100644
+--- a/src/xsane-batch-scan.c
++++ b/src/xsane-batch-scan.c
+@@ -680,7 +680,6 @@ static GtkWidget *xsane_batch_scan_create_list_entry(Batch_Scan_Parameters *para
+  GtkWidget *list_item;
+  GtkWidget *hbox;
+  int size = 120;
+- char *data;
+ 
+   list_item = gtk_list_item_new();
+ 
+@@ -688,8 +687,6 @@ static GtkWidget *xsane_batch_scan_create_list_entry(Batch_Scan_Parameters *para
+   gtk_container_add(GTK_CONTAINER(list_item), hbox);
+   gtk_widget_show(hbox);
+ 
+-  data = calloc(size, size);
+-
+   parameters->gtk_preview = gtk_preview_new(GTK_PREVIEW_COLOR);
+   gtk_preview_size(GTK_PREVIEW(parameters->gtk_preview), size, size);
+   gtk_box_pack_start(GTK_BOX(hbox), parameters->gtk_preview, FALSE, FALSE, 0);
+-- 
+2.22.0
+
diff --git a/gnu/packages/patches/xsane-fix-pdf-floats.patch b/gnu/packages/patches/xsane-fix-pdf-floats.patch
new file mode 100644
index 0000000000..5f26fa140b
--- /dev/null
+++ b/gnu/packages/patches/xsane-fix-pdf-floats.patch
@@ -0,0 +1,85 @@
+From c126eea11c4ee39cbe9c0c76f920626b618b6ee9 Mon Sep 17 00:00:00 2001
+From: Ralph Little <littlesincanada@yahoo.co.uk>
+Date: Sun, 1 Sep 2019 17:03:44 -0700
+Subject: [PATCH] Apply debian upstream patch 0135-fix_pdf_floats
+
+Original patch commentary:
+
+Description: Fix floats in PDF and PostScript
+ Set LC_NUMERIC to POSIX before printing floats when building
+ PostScript or PDF output.
+Author: Julien BLACHE <jblache@debian.org>
+Forwarded: yes
+
+------------
+Looks like float printing format is affected by the current locale.
+Ensures that we always get POSIX formatting of floats.
+---
+ src/xsane-save.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/xsane-save.c b/src/xsane-save.c
+index f14df05..63550cc 100644
+--- a/src/xsane-save.c
++++ b/src/xsane-save.c
+@@ -26,6 +26,8 @@
+ #include "xsane-back-gtk.h"
+ #include "xsane-front-gtk.h"
+ #include "xsane-save.h"
++#include <locale.h>
++#include <string.h>
+ #include <time.h>
+ #include <sys/wait.h> 
+ 
+@@ -2425,6 +2427,7 @@ static void xsane_save_ps_create_image_header(FILE *outfile,
+                                               int flatedecode)
+ {
+  int depth; 
++ char *save_locale;
+ 
+   depth = image_info->depth;
+ 
+@@ -2442,8 +2445,15 @@ static void xsane_save_ps_create_image_header(FILE *outfile,
+ 
+   fprintf(outfile, "%d rotate\n", degree);
+   fprintf(outfile, "%d %d translate\n", position_left, position_bottom);
++
++  save_locale = strdup(setlocale(LC_NUMERIC, NULL));
++  setlocale(LC_NUMERIC, "POSIX");
++
+   fprintf(outfile, "%f %f scale\n", width, height);
+ 
++  setlocale(LC_NUMERIC, save_locale);
++  free(save_locale);
++
+   fprintf(outfile, "<<\n");
+   fprintf(outfile, " /ImageType 1\n");
+   fprintf(outfile, " /Width %d\n", image_info->image_width);
+@@ -3921,6 +3931,7 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr
+  int position_left, position_bottom, box_left, box_bottom, box_right, box_top, depth;
+  int left, bottom;
+  float rad;
++ char *save_locale;
+ 
+   DBG(DBG_proc, "xsane_save_pdf_create_page_header\n");
+ 
+@@ -4035,8 +4046,16 @@ static void xsane_save_pdf_create_page_header(FILE *outfile, struct pdf_xref *xr
+ 
+   fprintf(outfile, "q\n");
+   fprintf(outfile, "1 0 0 1 %d %d cm\n", position_left, position_bottom); /* translate */
++
++  save_locale = strdup(setlocale(LC_NUMERIC, NULL));
++  setlocale(LC_NUMERIC, "POSIX");
++
+   fprintf(outfile, "%f %f -%f %f 0 0 cm\n", cos(rad), sin(rad), sin(rad), cos(rad)); /* rotate */
+   fprintf(outfile, "%f 0 0 %f 0 0 cm\n", width, height); /* scale */
++
++  setlocale(LC_NUMERIC, save_locale);
++  free(save_locale);
++
+   fprintf(outfile, "BI\n");
+   fprintf(outfile, "  /W %d\n", image_info->image_width);
+   fprintf(outfile, "  /H %d\n", image_info->image_height);
+-- 
+2.22.0
+
diff --git a/gnu/packages/patches/xsane-fix-snprintf-buffer-length.patch b/gnu/packages/patches/xsane-fix-snprintf-buffer-length.patch
new file mode 100644
index 0000000000..412e127f5a
--- /dev/null
+++ b/gnu/packages/patches/xsane-fix-snprintf-buffer-length.patch
@@ -0,0 +1,72 @@
+From 893a5ce1f75e5eea7c8d383038ff92a150819c9c Mon Sep 17 00:00:00 2001
+From: Ralph Little <littlesincanada@yahoo.co.uk>
+Date: Thu, 19 Sep 2019 22:02:33 -0700
+Subject: [PATCH] xsane-*-project.c - reduced snprintf format pad to silence
+ warning about too long constrant string for buffer.
+
+---
+ src/xsane-email-project.c     | 4 ++--
+ src/xsane-fax-project.c       | 4 ++--
+ src/xsane-multipage-project.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/xsane-email-project.c b/src/xsane-email-project.c
+index f20cb12..ac93fc2 100644
+--- a/src/xsane-email-project.c
++++ b/src/xsane-email-project.c
+@@ -896,7 +896,7 @@ static void xsane_email_project_update_project_status()
+   snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.email_project);
+   projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */
+ 
+-  snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */
++  snprintf(buf, 33, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */
+   fprintf(projectfile, "%s\n", buf); /* first line is status of email */
+ 
+   fclose(projectfile);
+@@ -936,7 +936,7 @@ void xsane_email_project_save()
+   {
+    char buf[TEXTBUFSIZE];
+ 
+-    snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */
++    snprintf(buf, 33, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.email_status); /* fill 32 characters status line */
+     fprintf(projectfile, "%s\n", buf); /* first line is status of email */
+     gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.email_status));
+     xsane_progress_bar_set_fraction(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0);
+diff --git a/src/xsane-fax-project.c b/src/xsane-fax-project.c
+index f263313..0c60a97 100644
+--- a/src/xsane-fax-project.c
++++ b/src/xsane-fax-project.c
+@@ -452,7 +452,7 @@ static void xsane_fax_project_update_project_status()
+   snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project);
+   projectfile = fopen(filename, "r+b"); /* r+ = read and write, position = start of file */
+ 
+-  snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */
++  snprintf(buf, 33, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */
+   fprintf(projectfile, "%s\n", buf); /* first line is status of mail */
+ 
+   fclose(projectfile);
+@@ -498,7 +498,7 @@ void xsane_fax_project_save()
+   {
+    char buf[TEXTBUFSIZE];
+ 
+-    snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */
++    snprintf(buf, 33, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.fax_status); /* fill 32 characters status line */
+     fprintf(projectfile, "%s\n", buf); /* first line is status of mail */
+     gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.fax_status));
+     xsane_progress_bar_set_fraction(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0);
+diff --git a/src/xsane-multipage-project.c b/src/xsane-multipage-project.c
+index f23e5f8..9392e00 100644
+--- a/src/xsane-multipage-project.c
++++ b/src/xsane-multipage-project.c
+@@ -522,7 +522,7 @@ void xsane_multipage_project_save()
+   {
+    char buf[TEXTBUFSIZE];
+ 
+-    snprintf(buf, 32, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.multipage_status); /* fill 32 characters status line */
++    snprintf(buf, 33, "%s@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", xsane.multipage_status); /* fill 32 characters status line */
+     fprintf(projectfile, "%s\n", buf); /* first line is status of multipage */
+     gtk_progress_set_format_string(GTK_PROGRESS(xsane.project_progress_bar), _(xsane.multipage_status));
+     xsane_progress_bar_set_fraction(GTK_PROGRESS_BAR(xsane.project_progress_bar), 0.0);
+-- 
+2.23.0
+
diff --git a/gnu/packages/patches/xsane-support-ipv6.patch b/gnu/packages/patches/xsane-support-ipv6.patch
new file mode 100644
index 0000000000..4e3bb87a1a
--- /dev/null
+++ b/gnu/packages/patches/xsane-support-ipv6.patch
@@ -0,0 +1,153 @@
+From 62d9c172f258769e3a7540fe710e013bb39a704f Mon Sep 17 00:00:00 2001
+From: Ralph Little <littlesincanada@yahoo.co.uk>
+Date: Sat, 7 Sep 2019 12:39:45 -0700
+Subject: [PATCH] Apply opensuse upstream patch 004-ipv6-support
+
+Appears to be related to this:
+https://bugzilla.redhat.com/show_bug.cgi?id=198422
+
+-----
+Changes email socket connection code to use more IP version agnostic
+calls. It appears to only be used by the scan email option and
+originally comes from the RedHat IPv6 awareness program mentioned
+in the bug report.
+
+In practice, I'm not sure how practical the implementation for emailing
+scans in xsane is as it does not look to support encryption, pretty
+much a given in today's world.
+---
+ src/xsane-save.c | 96 +++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 62 insertions(+), 34 deletions(-)
+
+diff --git a/src/xsane-save.c b/src/xsane-save.c
+index 63550cc..ff3c459 100644
+--- a/src/xsane-save.c
++++ b/src/xsane-save.c
+@@ -31,6 +31,8 @@
+ #include <time.h>
+ #include <sys/wait.h> 
+ 
++#include <glib.h>
++
+ /* the following test is always false */
+ #ifdef _native_WIN32
+ # include <winsock.h>
+@@ -7540,55 +7542,81 @@ void write_email_attach_file(int fd_socket, char *boundary, FILE *infile, char *
+ /* returns fd_socket if sucessfull, < 0 when error occured */
+ int open_socket(char *server, int port)
+ {
+- int fd_socket;
+- struct sockaddr_in sin;
+- struct hostent *he;
++ int fd_socket, e;
++
++ struct addrinfo *ai_list, *ai;
++ struct addrinfo hints;
++ gchar *port_s;
++ gint connected;
++
++  memset(&hints, '\0', sizeof(hints));
++  hints.ai_flags = AI_ADDRCONFIG;
++  hints.ai_socktype = SOCK_STREAM;
++
++  port_s = g_strdup_printf("%d", port);
++  e = getaddrinfo(server, port_s, &hints, &ai_list);
++  g_free(port_s);
+ 
+-  he = gethostbyname(server);
+-  if (!he)
++  if (e != 0)
+   {
+-    DBG(DBG_error, "open_socket: Could not get hostname of \"%s\"\n", server);
++    DBG(DBG_error, "open_socket: Could not lookup \"%s\"\n", server);
+    return -1;
+   }
+-  else
++
++  connected = 0;
++  for (ai = ai_list; ai != NULL && !connected; ai = ai->ai_next)
+   {
+-    DBG(DBG_info, "open_socket: connecting to \"%s\" = %d.%d.%d.%d\n",
+-        he->h_name,
+-        (unsigned char) he->h_addr_list[0][0],
+-        (unsigned char) he->h_addr_list[0][1],
+-        (unsigned char) he->h_addr_list[0][2],
+-        (unsigned char) he->h_addr_list[0][3]);
+-  }
++    gchar hostname[NI_MAXHOST];
++    gchar hostaddr[NI_MAXHOST];
++
++    /* If all else fails */
++    strncpy(hostname, "(unknown name)", NI_MAXHOST-1);
++    strncpy(hostaddr, "(unknown address)", NI_MAXHOST-1);
++
++    /* Determine canonical name and IPv4/IPv6 address */
++    (void) getnameinfo(ai->ai_addr, ai->ai_addrlen, hostname, sizeof(hostname),
++                       NULL, 0, 0);
++    (void) getnameinfo(ai->ai_addr, ai->ai_addrlen, hostaddr, sizeof(hostaddr),
++                       NULL, 0, NI_NUMERICHOST);
++
++    DBG(DBG_info, "open_socket: connecting to \"%s\" (\"%s\"): %s\n",
++        server, hostname, hostaddr);
+  
+-  if (he->h_addrtype != AF_INET)
+-  {
+-    DBG(DBG_error, "open_socket: Unknown address family: %d\n", he->h_addrtype);
+-   return -1;
+-  }
++    if ((ai->ai_family != AF_INET) && (ai->ai_family != AF_INET6))
++    {
++      DBG(DBG_error, "open_socket: Unknown address family: %d\n", ai->ai_family);
++      continue;
++    }
+ 
+-  fd_socket = socket(AF_INET, SOCK_STREAM, 0);
++    fd_socket = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ 
+-  if (fd_socket < 0)
+-  {
+-    DBG(DBG_error, "open_socket: Could not create socket: %s\n", strerror(errno));
+-   return -1;
+-  }
++    if (fd_socket < 0)
++    {
++      DBG(DBG_error, "open_socket: Could not create socket: %s\n", strerror(errno));
++      continue;
++    }
+ 
+-/*  setsockopt (dev->ctl, level, TCP_NODELAY, &on, sizeof (on)); */
++    /*  setsockopt (dev->ctl, level, TCP_NODELAY, &on, sizeof (on)); */
+ 
+-  sin.sin_port = htons(port);
+-  sin.sin_family = AF_INET;
+-  memcpy(&sin.sin_addr, he->h_addr_list[0], he->h_length);
++    if (connect(fd_socket, ai->ai_addr, ai->ai_addrlen) != 0)
++    {
++      DBG(DBG_error, "open_socket: Could not connect with port %d of socket: %s\n", port, strerror(errno));
++      continue;
++    }
++
++    /* All went well */
++    connected = 1;
++  }
+ 
+-  if (connect(fd_socket, &sin, sizeof(sin)))
++  if (!connected)
+   {
+-    DBG(DBG_error, "open_socket: Could not connect with port %d of socket: %s\n", ntohs(sin.sin_port), strerror(errno));
+-   return -1;
++    DBG(DBG_info, "open_socket: Could not connect to any address");
++    return -1;
+   }
+ 
+-  DBG(DBG_info, "open_socket: Connected with port %d\n", ntohs(sin.sin_port));
++  DBG(DBG_info, "open_socket: Connected with port %d\n", port);
+ 
+- return fd_socket;
++  return fd_socket;
+ }
+ 
+ /* ---------------------------------------------------------------------------------------------------------------------- */
+-- 
+2.22.0
+
diff --git a/gnu/packages/patches/xsane-tighten-default-umask.patch b/gnu/packages/patches/xsane-tighten-default-umask.patch
new file mode 100644
index 0000000000..5ee5fdfd37
--- /dev/null
+++ b/gnu/packages/patches/xsane-tighten-default-umask.patch
@@ -0,0 +1,36 @@
+From 5dc1e301a165709c60c435f00ec9bb6d7d5f21f3 Mon Sep 17 00:00:00 2001
+From: Ralph Little <littlesincanada@yahoo.co.uk>
+Date: Tue, 27 Aug 2019 21:40:02 -0700
+Subject: [PATCH] Apply debian upstream patch 0160-fix_tighten_default_umask
+
+Original patch commentary:
+
+Description: Change default XSane umask from 0007 to 0077
+ A default umask of 0007 can be mildly insecure in a multiuser environment,
+ so tighten things up a bit and go with 0077 instead.
+Author: Adrien Thebo
+Bug-Debian: http://bugs.debian.org/592972
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/611950
+
+----
+As above.
+---
+ src/xsane.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xsane.h b/src/xsane.h
+index 67f06d4..fa04418 100644
+--- a/src/xsane.h
++++ b/src/xsane.h
+@@ -104,7 +104,7 @@
+ #define XSANE_DEBUG_ENVIRONMENT	"XSANE_DEBUG"
+ 
+ #define XSANE_PROGRESS_BAR_MIN_DELTA_PERCENT 0.025
+-#define XSANE_DEFAULT_UMASK		0007
++#define XSANE_DEFAULT_UMASK		0077
+ #define XSANE_HOLD_TIME			200
+ #define XSANE_CONTINUOUS_HOLD_TIME	10
+ #define XSANE_DEFAULT_DEVICE		"SANE_DEFAULT_DEVICE"
+-- 
+2.22.0
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index a7ef21ea4b..ebe0168ff2 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1027,20 +1027,18 @@ PDF Arranger was formerly known as PDF-Shuffler.")
 (define-public pdfposter
   (package
     (name "pdfposter")
-    (version "0.6.0")
+    (version "0.7.post1")
     (source (origin
               (method url-fetch)
-              (uri (pypi-uri "pdftools.pdfposter" version ".tar.bz2"))
+              (uri (pypi-uri "pdftools.pdfposter" version))
               (sha256
                (base32
-                "1i9jqawf279va089ykicglcq4zlsnwgcnsdzaa8vnm836lqhywma"))))
+                "0c1avpbr9q53yzq5ar2x485rmp9d0l3z27aham32bg7gplzd7w0j"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f  ; no test suite, only for visual control
-       #:python ,python-2))
+     `(#:tests? #f))  ; test-suite not included in source archive
     (inputs
-     ;; pdfposter 0.6.0 still uses the old pyPdf
-     `(("python2-pypdf" ,python2-pypdf)))
+     `(("python-pypdf2" ,python-pypdf2)))
     (home-page "https://pythonhosted.org/pdftools.pdfposter/")
     (synopsis "Scale and tile PDF images/pages to print on multiple pages")
     (description "@command{pdfposter} can be used to create a large poster by
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 0e1a0d653b..9944c31305 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1239,14 +1239,14 @@ makes fork(2) safe to use in test cases.")
 (define-public perl-test-simple
   (package
     (name "perl-test-simple")
-    (version "1.302164")
+    (version "1.302169")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
                                   "Test-Simple-" version ".tar.gz"))
               (sha256
                (base32
-                "05b61ndlf2d6xphq13caps001f0p0p76jb5hhzmm5k897xhpn9sh"))))
+                "08y7b817045w9bc1k9y01l5shl162q9fdc2g5qf7ny0gdxvh85s1"))))
     (build-system perl-build-system)
     (synopsis "Basic utilities for writing tests")
     (description
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6069413264..34a3f3f54e 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -779,15 +779,14 @@ library assert.h.")
 (define-public perl-carp-assert-more
   (package
     (name "perl-carp-assert-more")
-    (version "1.16")
+    (version "1.20")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
                            "Carp-Assert-More-" version ".tar.gz"))
        (sha256
-        (base32
-         "1x9jd6s3lq97na6gz7g0zaq62l8z297xsfpdj2v42p3ijpfirl4f"))))
+        (base32 "16jnhdjgfwymrc5fki4xlf1rlziszf9k6q0245g976124k708ac5"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
@@ -1221,16 +1220,17 @@ uses no non-core modules for any recent Perl.")
 (define-public perl-class-unload
   (package
     (name "perl-class-unload")
-    (version "0.08")
+    (version "0.11")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
                            "Class-Unload-" version ".tar.gz"))
        (sha256
-        (base32
-         "097gr3r2jgnm1175m4lpg4a97hv2mxrn9r0b2c6bn1x9xdhkywgh"))))
+        (base32 "0pqa98z3ij6a3v9wkmvc8b410kv30y0xxqf0i6if3lp4lx3rgqjj"))))
     (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-requires" ,perl-test-requires)))
     (propagated-inputs
      `(("perl-class-inspector" ,perl-class-inspector)))
     (home-page "https://metacpan.org/release/Class-Unload")
@@ -2190,16 +2190,15 @@ Date::Calc.")
 (define-public perl-date-manip
   (package
     (name "perl-date-manip")
-    (version "6.76")
+    (version "6.78")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://cpan.metacpan.org/authors/id/S/SB/SBECK/"
+       (uri (string-append "mirror://cpan/authors/id/S/SB/SBECK/"
                            "Date-Manip-" version ".tar.gz"))
        (sha256
-        (base32 "1a33mpkx7qqb9nqxyh2kkb596d8xq6jw0ljrd4xrwiz30f6cg1qw"))))
+        (base32 "1faxj6gafrqir9hvy9r8q57s93n57b412s04qycrks7r0520hdnb"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
     (arguments
      ;; Tests would require tzdata for timezone information, but tzdata is in
      ;; (gnu packages base) which would create a circular dependency.  TODO:
@@ -2237,15 +2236,14 @@ hours, minutes, seconds, and time zones.")
 (define-public perl-datetime
   (package
     (name "perl-datetime")
-    (version "1.50")
+    (version "1.51")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
                            "DateTime-" version ".tar.gz"))
        (sha256
-        (base32
-         "165iqk1xvhs5j0kzsipa7aqycx3h37wqsl2r4jl104yqvmqhqszd"))))
+        (base32 "1ibfq6acz1ih28vl613yygbb3r2d8ykx6di669vajhvswl6xl8ny"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
@@ -2906,15 +2904,14 @@ arbitrary parameters.")
 (define-public perl-devel-stacktrace
   (package
     (name "perl-devel-stacktrace")
-    (version "2.03")
+    (version "2.04")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/"
                            "Devel-StackTrace-" version ".tar.gz"))
        (sha256
-        (base32
-         "0j58kgjr9s3vibsgifmk9k5h7daag0cb9x45f30m9qi4pr7cs63n"))))
+        (base32 "0mb8bngjq7s3kbh95h3ig4p3jfb156c4r0d53z344gbxaknh6g6d"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Devel-StackTrace")
     (synopsis "Object representing a stack trace")
@@ -3873,14 +3870,14 @@ allows you to locate these files after installation.")
 (define-public perl-file-slurp
   (package
     (name "perl-file-slurp")
-    (version "9999.27")
+    (version "9999.28")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
                            "File-Slurp-" version ".tar.gz"))
        (sha256
-        (base32 "1x233kj1qifvii7j8d4wzarwhj5z11vnpxsqvdm98dsccr7qi79s"))))
+        (base32 "1vkwh880lbyr2qcrfka7yb3z4yz9id4va52gfjgdnyfb1c0wx1q5"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/File-Slurp")
     (synopsis "Reading/Writing/Modifying of complete files")
@@ -4286,7 +4283,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
 (define-public perl-indirect
   (package
     (name "perl-indirect")
-    (version "0.38")
+    (version "0.39")
     (source
      (origin
        (method url-fetch)
@@ -4294,8 +4291,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
              "mirror://cpan/authors/id/V/VP/VPIT/indirect-"
              version ".tar.gz"))
        (sha256
-        (base32
-         "13k5a8p903m8x3pcv9qqkzvnb8gpgq36cr3dvn3lk1ngsi9w5ydy"))))
+        (base32 "1r971mykvvsrzrp6a9ccl649ihr84h254jmlfpazv64f6i63qwvi"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/indirect")
     (synopsis "Lexically warn about using the indirect method call syntax")
@@ -6384,17 +6380,15 @@ an external class to the given attribute.")
 (define-public perl-moox-late
   (package
     (name "perl-moox-late")
-    (version "0.015")
+    (version "0.016")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-"
-             version
-             ".tar.gz"))
+             version ".tar.gz"))
        (sha256
-        (base32
-         "1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp"))))
+        (base32 "0kjy86rrpzfy6w5r9ykjq7njwdnvp7swd6r2k4gfrh3picz3kdhz"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-fatal" ,perl-test-fatal)
@@ -6405,8 +6399,7 @@ an external class to the given attribute.")
        ("perl-moox-handlesvia" ,perl-moox-handlesvia)))
     (propagated-inputs
      `(("perl-type-tiny" ,perl-type-tiny)))
-    (home-page
-     "https://metacpan.org/release/MooX-late")
+    (home-page "https://metacpan.org/release/MooX-late")
     (synopsis "Easily translate Moose code to Moo")
     (description
      "MooX::late does the following:
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index bc60539fb4..1535cd7645 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -59,7 +59,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.3.11")
+    (version "7.3.12")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -67,7 +67,7 @@
                                   "php-" version ".tar.xz"))
               (sha256
                (base32
-                "088hl1gyjr7a8ipdzylwy00c4xmvywn7mh2r1i4yja5c9d3gcz35"))
+                "1psmv3yw21rng2qqwck2b5w190s8q76qi35gqrh8i0mdc6c5xzma"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 67f4e47e8e..8f4a2334d9 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3996,14 +3996,14 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
 (define-public python-matplotlib
   (package
     (name "python-matplotlib")
-    (version "3.1.1")
+    (version "3.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "matplotlib" version))
        (sha256
         (base32
-         "14qc109dibp32xfd9lah54djc0rc76fhbsj9cwyb328lzqmd5sqz"))))
+         "1nmshfqh7wyg15i16hx1yiylcvzkws29ivn66n3i0wyqwcpjr3lf"))))
     (build-system python-build-system)
     (propagated-inputs ; the following packages are all needed at run time
      `(("python-cycler" ,python-cycler)
@@ -4068,8 +4068,14 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
              (for-each delete-file
                        ;; test_normal_axes, test_get_tightbbox_polar
                        '("lib/matplotlib/tests/test_axes.py"
+                         ;; We don't use the webagg backend and this test forces it.
+                         "lib/matplotlib/tests/test_backend_webagg.py"
                          ;; test_outward_ticks
                          "lib/matplotlib/tests/test_tightlayout.py"
+                         ;; test_hidden_axes fails with minor extent
+                         ;; differences, possibly due to the use of a
+                         ;; different version of FreeType.
+                         "lib/matplotlib/tests/test_constrainedlayout.py"
                          ;; Fontconfig returns no fonts.
                          "lib/matplotlib/tests/test_font_manager.py"))
              #t))
@@ -4087,7 +4093,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
              (invoke "python" "tests.py" "-v"
-                     "-m" "not network")))
+                     "-m" "not network and not webagg")))
          (add-before 'build 'configure-environment
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (let ((cairo (assoc-ref inputs "cairo")))
@@ -5944,14 +5950,14 @@ parsing (browser/HTTP) user agent strings.")
 (define-public python-dbus
   (package
     (name "python-dbus")
-    (version "1.2.10")
+    (version "1.2.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dbus.freedesktop.org/releases/dbus-python/"
                            "dbus-python-" version ".tar.gz"))
        (sha256
-        (base32 "11nqk01iq5bx2llgb3ksknyinijdp29w4ndj210glm009ayjncyl"))))
+        (base32 "0cdchkgnivlka4lf8q4qfk0yxq483i3r3aqickjf8hfn7nx0c0mi"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -5970,10 +5976,7 @@ implementation of D-Bus.")
     (inputs `(("python" ,python-2)
               ,@(alist-delete "python"
                               (package-inputs python-dbus)
-                              equal?)))
-    ;; FIXME: on Python 2, the test_utf8 fails with:
-    ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)"
-    (arguments `(#:tests? #f))))
+                              equal?)))))
 
 (define-public python-notify2
   (package
@@ -6265,7 +6268,19 @@ SVG, EPS, PNG and terminal output.")
        (method url-fetch)
        (uri (pypi-uri "seaborn" version))
        (sha256
-        (base32 "0bqysi3fxfjl1866m5jq8z7mynhqbqnikim74dmzn8539iwkzj3n"))))
+        (base32 "0bqysi3fxfjl1866m5jq8z7mynhqbqnikim74dmzn8539iwkzj3n"))
+       (patches
+        (list (origin
+                (method url-fetch)
+                ;; This has already been merged, but there is no new
+                ;; release including this patch.  It fixes problems
+                ;; with axis rotation that would lead to test
+                ;; failures.
+                (uri "https://patch-diff.githubusercontent.com/raw/mwaskom/seaborn/pull/1716.diff")
+                (sha256
+                 (base32
+                  "1lm870z316n9ivsyr86hpk1gxaraw0mrjvq42lqsm0znhjdp9q9w"))
+                (file-name "seaborn-0.9.0-axis-rotation.patch"))))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -6278,6 +6293,12 @@ SVG, EPS, PNG and terminal output.")
                (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
                (setenv "DISPLAY" ":1")
                #t)))
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             ;; test_cbar_ticks fails probably because of matplotlib's
+             ;; expectation of using an older version of FreeType.
+             (delete-file "seaborn/tests/test_matrix.py")
+             #t))
          (replace 'check (lambda _ (invoke "pytest" "seaborn") #t)))))
     (propagated-inputs
      `(("python-pandas" ,python-pandas)
@@ -6286,7 +6307,7 @@ SVG, EPS, PNG and terminal output.")
        ("python-scipy" ,python-scipy)))
     (native-inputs
      `(("python-pytest" ,python-pytest)
-       ("xorg-server" ,xorg-server)))
+       ("xorg-server" ,xorg-server-for-tests)))
     (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
     (synopsis "Statistical data visualization")
     (description
@@ -10855,13 +10876,13 @@ it will manage (install/update) them for you.")
 (define-public python-lazy-object-proxy
   (package
     (name "python-lazy-object-proxy")
-    (version "1.4.2")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "lazy-object-proxy" version))
               (sha256
                (base32
-                "1wgl0fmddi0ind78a74yyk2qrr9pb5llvj1892cdpp6z6n6mn4zx"))))
+                "1w1aaay424ciz8fz3fkzxb0pxzfxn184f2whpyn4fx72bn50x47k"))))
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm-3.3)))
     (build-system python-build-system)
@@ -14820,15 +14841,14 @@ files, and Makefiles.")
 (define-public python-whatever
   (package
     (name "python-whatever")
-    (version "0.5")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/Suor/whatever/archive/" version
                            ".tar.gz"))
        (sha256
-        (base32
-         "1iqvnaf0zpc6b4rvbqq4xy45mszcscyzpzknv8wg6j84pbp22sap"))
+        (base32 "1rchg9hrlvw4sn20lq1zspczr4x1pv57c02gv73igiqx1hqpy2nc"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system python-build-system)
     (arguments
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 631e060a1e..86685a325b 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1627,7 +1627,7 @@ module provides support functions to the automatically generated code.")
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (sip (string-append out "/share/sip"))
-                    (plugins (string-append out "/plugins"))
+                    (plugins (string-append out "/lib/qt5/plugins"))
                     (designer (string-append plugins "/designer"))
                     (qml (string-append plugins "/PyQt5"))
                     (python (assoc-ref inputs "python"))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 695c38694a..70b59e9156 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1256,17 +1256,16 @@ complexity.")
 (define-public ruby-oauth2
   (package
     (name "ruby-oauth2")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "oauth2" version))
        (sha256
-        (base32
-         "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh"))))
+        (base32 "15i9z4j5pcjkr30lkcd79xzbr4kpmy0bqgwa436fqyqk646fv036"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:tests? #f)) ; No included tests
+     '(#:tests? #f))                    ; no included tests
     (propagated-inputs
      `(("ruby-faraday" ,ruby-faraday)
        ("ruby-jwt" ,ruby-jwt)
@@ -1761,13 +1760,13 @@ the output produced by running shell commands.")
 (define-public ruby-notiffany
   (package
     (name "ruby-notiffany")
-    (version "0.1.1")
+    (version "0.1.3")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "notiffany" version))
               (sha256
                (base32
-                "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx"))))
+                "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk"))))
     (build-system ruby-build-system)
     ;; Tests are not included in the gem.
     (arguments `(#:tests? #f))
@@ -2067,13 +2066,13 @@ the SimpleCov code coverage tool for Ruby version 1.9 and above.")
 (define-public ruby-simplecov
   (package
     (name "ruby-simplecov")
-    (version "0.17.0")
+    (version "0.17.1")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "simplecov" version))
               (sha256
                (base32
-                "0dq0nkaxvbsnl70hkimy35g4yjfs3blx4s7nbpzbvgqx72hxgv5v"))))
+                "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"))))
     (build-system ruby-build-system)
     ;; Simplecov depends on rubocop for code style checking at build time.
     ;; Rubocop needs simplecov at build time.
@@ -2094,13 +2093,13 @@ suites.")
 (define-public ruby-useragent
   (package
     (name "ruby-useragent")
-    (version "0.16.8")
+    (version "0.16.10")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "useragent" version))
               (sha256
                (base32
-                "1139cjqyv1hk1qcw89k81ajjkqyakqgbcyvmfrsmjqi8yn9kgqhq"))))
+                "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p"))))
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f)) ; no test suite
@@ -3802,18 +3801,16 @@ for select languages.")
 (define-public ruby-prawn-manual-builder
   (package
     (name "ruby-prawn-manual-builder")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "prawn-manual_builder" version))
        (sha256
-        (base32
-         "0wbjnkqp55p5wmz85ldypcray223glckd209hmdxhnzk8s5pb3za"))))
+        (base32 "1vlg5w7wq43g2hgpgra2nrcxj1kb4ayqliz4gmja2rhs037j2vzs"))))
     (build-system ruby-build-system)
     (arguments
-     '(;; No included tests
-       #:tests? #f
+     '(#:tests? #f                      ; no included tests
        #:phases
        (modify-phases %standard-phases
          (add-after 'extract-gemspec 'patch-gemspec
@@ -3888,14 +3885,13 @@ suitable for a gemspec file.")
 (define-public ruby-progressbar
   (package
     (name "ruby-progressbar")
-    (version "1.10.0")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "ruby-progressbar" version))
        (sha256
-        (base32
-         "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk"))))
+        (base32 "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf"))))
     (build-system ruby-build-system)
     (arguments
      '(;; TODO: There looks to be a circular dependency with ruby-fuubar.
@@ -4408,18 +4404,16 @@ when working with Ruby code.")
 (define-public ruby-jaro-winkler
   (package
     (name "ruby-jaro-winkler")
-    (version "1.5.2")
+    (version "1.5.4")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "jaro_winkler" version))
        (sha256
-        (base32
-         "1zz27z88qznix4r65gd9h56gl177snlfpgv10b0s69vi8qpl909l"))))
+        (base32 "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh"))))
     (build-system ruby-build-system)
     (arguments
-     '(;; No included tests
-       #:tests? #f))
+     '(#:tests? #f))                    ; no included tests
     (synopsis "Ruby implementation of Jaro-Winkler distance algorithm")
     (description
      "@code{jaro_winkler} is an implementation of Jaro-Winkler distance
@@ -5973,14 +5967,13 @@ that TURN is no longer being maintained.")
 (define-public ruby-mimemagic
   (package
     (name "ruby-mimemagic")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "mimemagic" version))
        (sha256
-        (base32
-         "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q"))))
+        (base32 "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"))))
     (build-system ruby-build-system)
     (arguments
      '(#:phases
@@ -6417,18 +6410,16 @@ checking for the right Ruby version in software.")
 (define-public ruby-websocket-driver
   (package
    (name "ruby-websocket-driver")
-   (version "0.7.0")
+   (version "0.7.1")
    (source
     (origin
      (method url-fetch)
      (uri (rubygems-uri "websocket-driver" version))
      (sha256
-      (base32
-       "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"))))
+      (base32 "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2"))))
    (build-system ruby-build-system)
    (arguments
-    '(;; No included tests
-      #:tests? #f))
+    '(#:tests? #f))                     ; no included tests
    (propagated-inputs
     `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
    (synopsis "WebSocket protocol handler with pluggable I/O")
@@ -7569,13 +7560,13 @@ for the terminal.")
 (define-public ruby-command-line-reporter
   (package
     (name "ruby-command-line-reporter")
-    (version "4.0.0")
+    (version "4.0.1")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "command_line_reporter" version))
               (sha256
                (base32
-                "1qma35xrb772whxwy1rs9bicb9d6lvz0s2dd2dnn4fr6zcbcxc0a"))))
+                "1l0zxkh5n9dxfw46lpkg416ljpldlq1bgdhqh0d118dk338nz4ll"))))
     (build-system ruby-build-system)
     (arguments
      ;; No Rakefile
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index b371cf3105..98f7fd203a 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -21,11 +21,16 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages scanner)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses)
                 #:prefix licence:)
   #:use-module (guix packages)
@@ -148,3 +153,87 @@ package contains the library, but no drivers.")
 proving access to any raster image scanner hardware (flatbed scanner,
 hand-held scanner, video- and still-cameras, frame-grabbers, etc.).  The
 package contains the library and drivers.")))
+
+(define-public xsane
+  (package
+    (name "xsane")
+    (version "0.999")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/sane-project/frontend/xsane.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08zvxj7i1s88ckrsqldmsrikc3g62a6p3s3i5b5x4krcfpi3vs50"))
+       ;; Apply some important-looking fixes.  There are many more unreleased
+       ;; commits upstream.  A 1.0 release is planned.
+       (patches (search-patches "xsane-fix-memory-leak.patch"
+                                "xsane-fix-pdf-floats.patch"
+                                "xsane-fix-snprintf-buffer-length.patch"
+                                "xsane-support-ipv6.patch"
+                                "xsane-tighten-default-umask.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove ancient bundled lprng code under a non-free licence.  See
+           ;; <https://trisquel.info/en/issues/10713>, which solves the problem
+           ;; by replacing it with a newer (free) copy.  We let the build fall
+           ;; back to the system version instead, which appears to work fine.
+           (delete-file "lib/snprintf.c")
+           (substitute* "lib/Makefile.in"
+             (("snprintf\\.o ") ""))
+           #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "xsanedocdir=" (assoc-ref %outputs "out")
+                            "/share/doc/" ,name "-" ,version))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-invalid-dereference
+           ;; Fix the following compilation error with libpng:
+           ;;   xsane-save.c: In function ‘xsane_save_png’:
+           ;;   xsane-save.c:4913:21: error: dereferencing pointer to
+           ;;   incomplete type ‘png_struct {aka struct png_struct_def}’
+           ;;       if (setjmp(png_ptr->jmpbuf))
+           ;;                         ^
+           (lambda _
+             (substitute* "src/xsane-save.c"
+               (("png_ptr->jmpbuf") "png_jmpbuf(png_ptr)"))
+             #t))
+         (add-after 'unpack 'use-sane-help-browser
+           (lambda _
+             (substitute* "src/xsane.h"
+               (("netscape") (which "xdg-open")))
+             #t))
+         (add-after 'install 'delete-empty-/sbin
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (rmdir (string-append out "/sbin"))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("lcms" ,lcms)
+       ("libjpeg" ,libjpeg)
+       ("libtiff" ,libtiff)
+       ("sane-backends" ,sane-backends)
+
+       ;; To open the manual from the Help menu.
+       ("xdg-utils" ,xdg-utils)))
+    (home-page "https://gitlab.com/sane-project/frontend/xsane")
+    (synopsis "Featureful graphical interface for document and image scanners")
+    (description
+     "XSane is a graphical interface for controlling a scanner and acquiring
+images from it.  You can photocopy multi-page documents and save, fax, print,
+or e-mail your scanned images.  It is highly configurable and exposes all
+device settings, letting you fine-tune the final result.  It can also be used
+as a GIMP plugin to acquire images directly from a scanner.
+
+XSane talks to scanners through the @acronym{SANE, Scanner Access Now Easy}
+back-end library, which supports almost all existing scanners.")
+    (license licence:gpl2+)))
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 235353f617..3974cc75ab 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -143,6 +143,7 @@ joystick, and graphics hardware.")
                ("glib" ,glib)
                ("ibus" ,ibus)
                ("libxkbcommon" ,libxkbcommon)
+               ("libxcursor" ,libxcursor) ; enables X11 cursor support
                ("wayland" ,wayland)
                ("wayland-protocols" ,wayland-protocols))
              (package-inputs sdl)))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index ca8a928e60..3b7bc36889 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -49,14 +49,14 @@
 (define-public xapian
   (package
     (name "xapian")
-    (version "1.4.13")
+    (version "1.4.14")
     ;; Note: When updating Xapian, remember to update xapian-bindings below.
     (source (origin
               (method url-fetch)
               (uri (string-append "https://oligarchy.co.uk/xapian/" version
                                   "/xapian-core-" version ".tar.xz"))
               (sha256
-               (base32 "0z0k8902bz2ckdggikj5yz11ik2n8krmdwzvpqv60phcm3zzzy4k"))))
+               (base32 "0ja95vn0lkf6qkjhg2blkx306i10hg4fr8wlrhalmly93307lnlp"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)
               ("util-linux" ,util-linux)))
@@ -94,7 +94,7 @@ rich set of boolean query operators.")
                                   "/xapian-bindings-" version ".tar.xz"))
               (sha256
                (base32
-                "14jqm8mi55z4jxyi9qnnxdljli81zknsp2ja2yjx17hm28kmsnks"))))
+                "0qb17cw8n0g5gcg8dq5b3hs6i16w74rgxcryd0ja9n2h0rlda2an"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-python3")
@@ -104,9 +104,10 @@ rich set of boolean query operators.")
                             "/lib/python" ,(version-major+minor
                                             (package-version python))
                             "/site-packages/xapian"))))
+    (native-inputs
+     `(("python-sphinx" ,python-sphinx))) ;for documentation
     (inputs
      `(("python" ,python)
-       ("python-sphinx" ,python-sphinx) ; for documentation
        ("xapian" ,xapian)
        ("zlib" ,zlib)))
     (synopsis "Python bindings for the Xapian search engine library")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 83bbb55f6b..a5d2601de9 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -316,3 +316,26 @@ commands that are obsolete or contain a piece of sensitive information) or
 bookmark your favourite commands.")
     (home-page "http://me.mindforger.com/projects/hh.html")
     (license license:asl2.0)))
+
+(define-public shell-functools
+  (package
+    (name "shell-functools")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sharkdp/shell-functools.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0d6zzg7cxfrzwzh1wmpj7q85kz33sak6ac59ncsm6dlbin12h0hi"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/sharkdp/shell-functools/")
+    (synopsis "Functional programming tools for the shell")
+    (description "This package provides higher order functions like map,
+filter, foldl, sort_by and take_while as simple command-line tools. Following
+the UNIX philosophy, these commands are designed to be composed via pipes. A
+large collection of functions such as basename, replace, contains or is_dir
+are provided as arguments to these commands.")
+    (license license:expat)))
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index 0874b81cc7..30ee58c498 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +33,7 @@
 (define-public polyml
   (package
     (name "polyml")
-    (version "5.7.1")
+    (version "5.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -41,7 +42,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0j0wv3ijfrjkfngy7dswm4k1dchk3jak9chl5735dl8yrl8mq755"))))
+                "1jabrf9cnmsppawga6q5pjiq1cdayilxp66fkxykczs6vv2gz7f9"))))
     (build-system gnu-build-system)
     (inputs
      `(("gmp" ,gmp)
@@ -65,7 +66,7 @@
                          make-flags)
                    make-flags))
              (apply system* "make" (append flags (list "compiler"))))))))
-    (home-page "http://www.polyml.org/")
+    (home-page "https://www.polyml.org/")
     (synopsis "Standard ML implementation")
     (description "Poly/ML is a Standard ML implementation.  It is fully
 compatible with the ML97 standard.  It includes a thread library, a foreign
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index fa1d32a0e0..b82d280089 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -65,6 +65,7 @@
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (srfi srfi-1))
 
 (define-public libssh
@@ -257,6 +258,11 @@ Additionally, various channel-specific options can be negotiated.")
                   (substitute* "tests/server.scm"
                     (("= %libssh-minor-version 7")
                      ">= %libssh-minor-version 7"))
+
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure.ac"
+                    (("^GUILE_PKG.*$")
+                     "GUILE_PKG([3.0 2.2 2.0])\n"))
                   #t))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
@@ -265,9 +271,6 @@ Additionally, various channel-specific options can be negotiated.")
        #:configure-flags '("--disable-static")
 
        #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'autoreconf
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (invoke "autoreconf" "-vfi")))
                   (add-before 'build 'fix-libguile-ssh-file-name
                     (lambda* (#:key outputs #:allow-other-keys)
                       ;; Build and install libguile-ssh.so so that we can use
@@ -321,6 +324,39 @@ libssh library.")
     (inputs `(("guile" ,guile-2.0)
               ,@(alist-delete "guile" (package-inputs guile-ssh))))))
 
+(define-public guile3.0-ssh
+  (package
+    (inherit guile-ssh)
+    (name "guile3.0-ssh")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-ssh)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'bootstrap 'delete-old-guile-m4
+             (lambda _
+               ;; The old 'guile.m4' that's shipped would fail to recognize
+               ;; Guile 2.9 as "3.0".
+               (delete-file "m4/guile.m4")
+               #t))
+           (add-before 'build 'adjust-for-guile3
+             (lambda _
+               ;; Adjust for things that are deprecated in 2.2 and removed in
+               ;; 3.0.
+               (substitute* "tests/common.scm"
+                 (("define-module \\(tests common\\)")
+                  "define-module (tests common)
+  #:use-module (ice-9 threads)\n"))
+               (substitute* "modules/ssh/tunnel.scm"
+                 (("define-module \\(ssh tunnel\\)")
+                  "define-module (ssh tunnel)
+  #:use-module (ice-9 threads)"))
+               (substitute* "modules/srfi/srfi-64.upstream.scm"
+                 (("_IOLBF")
+                  "'line"))
+               #t))))))
+    (inputs `(("guile" ,guile-next)
+              ,@(alist-delete "guile" (package-inputs guile-ssh))))))
+
 (define-public corkscrew
   (package
     (name "corkscrew")
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index b4de0e812b..1c315c23ef 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -803,13 +803,13 @@ effects of different types of color-blindness.")
 (define-public r-digest
   (package
     (name "r-digest")
-    (version "0.6.22")
+    (version "0.6.23")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "digest" version))
        (sha256
-        (base32 "1qav52y1qmkg9j2g48mrl6bbjwhs0fs9dl55xb62lfkrihkappqh"))))
+        (base32 "18h5s8vkdcz2vhpsx6g3ig00zalrihr03skn95zw3lr2y56pafmp"))))
     (build-system r-build-system)
     ;; Vignettes require r-knitr, which requires r-digest, so we have to
     ;; disable them and the tests.
@@ -848,30 +848,6 @@ functions of regression coefficients, and @code{epredict} methods that handle
 non-estimable cases correctly.")
     (license license:gpl2+)))
 
-(define-public r-pheatmap
-  (package
-    (name "r-pheatmap")
-    (version "1.0.12")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "pheatmap" version))
-       (sha256
-        (base32
-         "1hdh74az3vyzz6dqa311rhxdm74n46lyr03p862kn80p0kp9d7ap"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-gtable" ,r-gtable)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-scales" ,r-scales)))
-    (home-page
-     "https://cran.r-project.org/web/packages/pheatmap")
-    (synopsis "Pretty heatmaps")
-    (description
-     "This package provides an implementation of heatmaps that offers more
-control over dimensions and appearance.")
-    (license license:gpl2+)))
-
 (define-public r-labeling
   (package
     (name "r-labeling")
@@ -1108,32 +1084,6 @@ the input of another.")
 using just two functions: melt and dcast (or acast).")
     (license license:expat)))
 
-(define-public r-scales
-  (package
-    (name "r-scales")
-    (version "1.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "scales" version))
-       (sha256
-        (base32 "0353dkh3d7x78463c6ds80hcml59lrqwr8rlv82a8dnkxla4l7qc"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-labeling" ,r-labeling)
-       ("r-munsell" ,r-munsell)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-r6" ,r-r6)
-       ("r-viridislite" ,r-viridislite)))
-    (home-page "https://github.com/hadley/scales")
-    (synopsis "Scale functions for visualization")
-    (description
-     "This package provides graphical scales that map data to aesthetics, and
-provides methods for automatically determining breaks and labels for axes and
-legends.")
-    (license license:expat)))
-
 (define-public r-ggplot2
   (package
     (name "r-ggplot2")
@@ -1656,13 +1606,13 @@ defined in different packages.")
 (define-public r-rlang
   (package
     (name "r-rlang")
-    (version "0.4.1")
+    (version "0.4.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rlang" version))
               (sha256
                (base32
-                "122hhc7pdri8wkjmk37y71m4h1gmdzaqcfdizfdjg1bhy935i10k"))))
+                "0fczcp17kaz3s4p0nd4126bppwl20vpxfybhsndpcky9h75wklgv"))))
     (build-system r-build-system)
     (home-page "http://rlang.tidyverse.org")
     (synopsis "Functions for base types, core R and Tidyverse features")
@@ -2309,13 +2259,13 @@ tables, autolinks and strikethrough text.")
 (define-public r-roxygen2
   (package
     (name "r-roxygen2")
-    (version "7.0.0")
+    (version "7.0.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "roxygen2" version))
               (sha256
                (base32
-                "13sani3y9ql56cvja8pfjpwsbq8pismc52ns1cq1zgi0jycgqja5"))))
+                "07v7f7may3vr80f4m1w1ll41qdahszycyx4c1yf8pw7asx73d77j"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-brew" ,r-brew)
@@ -3256,14 +3206,13 @@ analysis of large sparse or dense matrices.")
 (define-public r-glmnet
   (package
    (name "r-glmnet")
-   (version "3.0")
+   (version "3.0-1")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "glmnet" version))
      (sha256
-      (base32
-       "1fwspkxbsx7jy5h8zcdl0q8xsbj7svjjbcmg5lfpxdsgyyww46v7"))))
+      (base32 "04wa926mnss53p1fhx0mjgxnmwmmqls12sc0sy7w09kbmyqa3fq7"))))
    (build-system r-build-system)
    (native-inputs
     `(("gfortran" ,gfortran)))
@@ -4884,14 +4833,14 @@ analysis} (PCA) by projection pursuit.")
 (define-public r-rrcov
   (package
     (name "r-rrcov")
-    (version "1.4-7")
+    (version "1.4-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rrcov" version))
        (sha256
         (base32
-         "14zjyqcdiqx6js99nx5s8hmyx564ixy2d8s6i7wa50xmx368rl6b"))))
+         "11zvxidlb1pr2j5dzvmbjqdgsmmicsq8ppjf5wcfykfyf2fkcmz7"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cluster" ,r-cluster)
@@ -5020,14 +4969,13 @@ groupings.")
 (define-public r-vgam
   (package
     (name "r-vgam")
-    (version "1.1-1")
+    (version "1.1-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "VGAM" version))
        (sha256
-        (base32
-         "0lnsqx3q3k0c7sj8gj0n6shn2fyxwrh8xph8h1r1i23ybbb2n6fy"))))
+        (base32 "0kyan3a4ys2xbg9kf167cyf1gk7g963id62cjm2ij4i7y4wi61zq"))))
     (properties `((upstream-name . "VGAM")))
     (build-system r-build-system)
     (inputs
@@ -5088,14 +5036,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
 (define-public r-rcppeigen
   (package
     (name "r-rcppeigen")
-    (version "0.3.3.5.0")
+    (version "0.3.3.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppEigen" version))
        (sha256
         (base32
-         "01bz41c29591ybzqn4z88ss036ai3anh9figryvmfpqcfwbszip5"))))
+         "1b78qcjim0n9klgkr82n794d6bj9r9f33g0kcsszsns2hir65sk2"))))
     (properties `((upstream-name . "RcppEigen")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5268,14 +5216,13 @@ bootstrap test for generalized linear mixed models.")
 (define-public r-cardata
   (package
     (name "r-cardata")
-    (version "3.0-2")
+    (version "3.0-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "carData" version))
        (sha256
-        (base32
-         "152lfgaspgx6x2wzdb5p3zv6r87a0d2pg10h6fjmdr613kzlwp1v"))))
+        (base32 "0cg2yxzn0pdjqykr60my1fzpfkqac21fll5hv3m9w5c9sayq8swq"))))
     (properties `((upstream-name . "carData")))
     (build-system r-build-system)
     (home-page "https://r-forge.r-project.org/projects/car/")
@@ -5288,14 +5235,13 @@ Companion to Applied Regression, Third Edition, Sage.")
 (define-public r-car
   (package
     (name "r-car")
-    (version "3.0-4")
+    (version "3.0-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
-        (base32
-         "1mhfxrb62yanaz36f4n38p9hhnqbs5b19k0864w4ja1ccgh3nl3f"))))
+        (base32 "0w7fm81pn0wqrwzbjyddnrkpjl8gavg7ijh7rab9f21rkgkzgm3y"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-abind" ,r-abind)
@@ -5764,26 +5710,6 @@ table made by the command @code{show256Colors()}.  You can also set the colors
 to any arbitrary string.  In this case, it is up to you to set valid values.")
     (license license:gpl3+)))
 
-(define-public r-txtplot
-  (package
-    (name "r-txtplot")
-    (version "1.0-3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "txtplot" version))
-       (sha256
-        (base32
-         "1949ab1bzvysdb79g8x1gaknj0ih3d6g63pv9512h5m5l3a6c31h"))))
-    (build-system r-build-system)
-    (home-page "https://cran.r-project.org/web/packages/txtplot/")
-    (synopsis "Text-based plotting")
-    (description "This package provides functions to produce rudimentary ASCII
-graphics directly in the terminal window.  This package provides a basic
-plotting function (and equivalents of curve, density, acf and barplot) as well
-as a boxplot function.")
-    (license license:lgpl3+)))
-
 (define-public python-rpy2
   ;; We need to take this changeset instead of the RELEASE_3_0_4 tag, because
   ;; it fixes a regression when using ggplot 3.2.0.
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a23eac58fc..6d91989b19 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -263,6 +263,39 @@ required structures.")
     (inputs `(("unbound" ,unbound)
               ,@(package-inputs gnutls)))))
 
+(define gnutls-3.6.10
+  ;; This is for 'guile3.0-gnutls', below.  Version 3.6.10 is the first to
+  ;; introduce Guile 2.9/3.0 support.
+  (package
+    (inherit gnutls)
+    (version "3.6.10")
+    (source (origin
+              (inherit (package-source gnutls))
+              (uri (string-append "mirror://gnupg/gnutls/v"
+                                  (version-major+minor version)
+                                  "/gnutls-" version ".tar.xz"))
+              (sha256
+               (base32
+                "14r2h73yfj66cm14k9mnb3kgzq5a7qjg5b31m53bf19vcxkwmwxi"))))))
+
+(define-public guile3.0-gnutls
+  (package
+    (inherit gnutls-3.6.10)
+    (name "guile3.0-gnutls")
+    (arguments
+     (substitute-keyword-arguments (package-arguments gnutls-3.6.10)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-before 'build 'leave-guile-stdout-open
+             (lambda _
+               ;; Work around <https://bugs.gnu.org/38348>.
+               (substitute* "guile/Makefile"
+                 (("out=-") "out=/dev/null"))
+               #t))))))
+    (inputs `(("guile" ,guile-next)
+              ,@(alist-delete "guile"
+                              (package-inputs gnutls-3.6.10))))))
+
 (define-public openssl
   (package
    (name "openssl")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 25ea91d5c9..2ed4ed2dc1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1497,7 +1497,7 @@ projects while introducing many more.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.11.05")
+    (version "2019.11.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -1505,7 +1505,7 @@ projects while introducing many more.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "129461i4103slqj3nq69djnlmgjj3lfgmazn41avc5g967w29b85"))))
+                "0avdlp0dc9p3lm68mfnic21x6blxmr0zvlxa4br5vj4y4sckq2m8"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index ae07bcd9b6..b360d1fcbe 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -198,7 +198,7 @@ with the editor vim.")))
                                                     display " &")))))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server)
+       ("xorg-server" ,xorg-server-for-tests)
        ,@(package-native-inputs vim)))
     (inputs
      `(("acl" ,acl)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 5a62a1796e..dd0222730f 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1089,15 +1089,15 @@ virtual machines.")
 (define-public bubblewrap
   (package
     (name "bubblewrap")
-    (version "0.3.3")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/projectatomic/bubblewrap/"
+              (uri (string-append "https://github.com/containers/bubblewrap/"
                                   "releases/download/v" version "/bubblewrap-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1zsd6rxryg97dkkhibr0fvq16x3s75qj84rvhdv8p42ag58mz966"))))
+                "08r0f4c3fjkb4zjrb4kkax1zfcgcgic702vb62sjjw5xfhppvzp5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1134,7 +1134,7 @@ virtual machines.")
     (native-inputs
      `(("python-2" ,python-2)
        ("util-linux" ,util-linux)))
-    (home-page "https://github.com/projectatomic/bubblewrap")
+    (home-page "https://github.com/containers/bubblewrap")
     (synopsis "Unprivileged sandboxing tool")
     (description "Bubblewrap is aimed at running applications in a sandbox,
 restricting their access to parts of the operating system or user data such as
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c673139d19..63da1143ca 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1596,14 +1596,14 @@ language known as SASS.")
 (define-public perl-apache-logformat-compiler
   (package
     (name "perl-apache-logformat-compiler")
-    (version "0.35")
+    (version "0.36")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
                            "Apache-LogFormat-Compiler-" version ".tar.gz"))
        (sha256
-        (base32 "06i70ydxk2wa2rcqn16842kra2qz3jwk0vk1abq8lah4180c0m0n"))))
+        (base32 "05xcl7j65vakx7x79jqjikyw0nzf60bc2w6hhc0q5sklxq1ral4l"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-http-message" ,perl-http-message)
@@ -4190,8 +4190,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
   (package-with-python2 python-feedparser))
 
 (define-public guix-data-service
-  (let ((commit "23f60a6bbb923a9510d95250b4a1626cb8a84b7f")
-        (revision "5"))
+  (let ((commit "af1324855e1ecaf9b1dd7afcc714d09aaa38f081")
+        (revision "6"))
     (package
       (name "guix-data-service")
       (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4203,7 +4203,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "08v6wdj5ia139krplc7y74s4rm1iblqf91713z69yhh5zbkvyxg8"))))
+                  "1qxs1sbyx894njw4f898wzc5shjj85h9kgz95p8mq1acmazhlhkv"))))
       (build-system gnu-build-system)
       (arguments
        '(#:modules ((guix build utils)
@@ -5588,7 +5588,7 @@ inspired by Ruby's @code{fakeweb}.")
 (define-public jo
   (package
     (name "jo")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
@@ -5596,7 +5596,7 @@ inspired by Ruby's @code{fakeweb}.")
                            version "/jo-" version ".tar.gz"))
        (sha256
         (base32
-         "1bmdck53jslrl3anqqpm6iyjdxrz445qzcc4fr37hr3wjg22zv1n"))))
+         "0r6yb8pjsbcqfyac4240a0sj93pb91fv385bpk395cx3f5bcj9fy"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/jpmens/jo")
     (synopsis "Output JSON from a shell")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 43fccc71b8..bf48b5c0b2 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5072,7 +5072,7 @@ over Xlib, including:
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.20.5")
+    (version "1.20.6")
     (source
       (origin
         (method url-fetch)
@@ -5081,7 +5081,7 @@ over Xlib, including:
               "xorg-server-" version ".tar.bz2"))
         (sha256
          (base32
-          "17dc3g8cc55nbkx3np64dsz04n621dnzjmcc9wys0xbyyd1q47d8"))
+          "1laib9z17jksgzb67z69blcmnpbvj7i7m604b5ns7s760iii85k3"))
         (patches
          (list
           ;; See:
@@ -5203,7 +5203,16 @@ draggable titlebars and borders.")
 (define-public xorg-server-for-tests
   (hidden-package
    (package
-     (inherit xorg-server))))
+     (inherit xorg-server)
+     (version "1.20.5")
+     (source (origin
+               (inherit (package-source xorg-server))
+               (uri (string-append
+                     "mirror://xorg/individual/xserver/"
+                     "xorg-server-" version ".tar.bz2"))
+               (sha256
+                (base32
+                 "17dc3g8cc55nbkx3np64dsz04n621dnzjmcc9wys0xbyyd1q47d8")))))))
 
 (define-public xorg-server-xwayland
   (package
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3fa9fd4ba5..9d4ed10ce5 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -235,10 +235,12 @@ made available under the /xchg CIFS share."
                                   #:memory-size #$memory-size
                                   #:make-disk-image? #$make-disk-image?
                                   #:single-file-output? #$single-file-output?
-                                  ;; FIXME: ‘target-arm32?’ may not operate on
-                                  ;; the right system/target values.  Rewrite
+                                  ;; FIXME: ‘target-arm32?’ and
+                                  ;; ‘target-aarch64?’ may not operate on the
+                                  ;; right system/target values.  Rewrite
                                   ;; using ‘let-system’ when available.
                                   #:target-arm32? #$(target-arm32?)
+                                  #:target-aarch64? #$(target-aarch64?)
                                   #:disk-image-format #$disk-image-format
                                   #:disk-image-size size
                                   #:references-graphs graphs))))))
@@ -452,10 +454,10 @@ system."
                       ;; bootloaders if we are not targeting ARM because UEFI
                       ;; support in U-Boot is experimental.
                       ;;
-                      ;; FIXME: ‘target-arm32?’ may be not operate on the right
+                      ;; FIXME: ‘target-arm?’ may be not operate on the right
                       ;; system/target values.  Rewrite using ‘let-system’ when
                       ;; available.
-                      (if #$(target-arm32?)
+                      (if #$(target-arm?)
                           '()
                           (list (partition
                                  ;; The standalone grub image is about 10MiB, but
@@ -466,10 +468,11 @@ system."
                                  ;; when mounting. The actual FAT-ness is based
                                  ;; on file system size (16 in this case).
                                  (file-system "vfat")
-                                 (flags '(esp))))))))
+                                 (flags '(esp)))))))
+                    (grub-efi #$(and (not (target-arm?)) grub-efi)))
                (initialize-hard-disk "/dev/vda"
                                      #:partitions partitions
-                                     #:grub-efi #$grub-efi
+                                     #:grub-efi grub-efi
                                      #:bootloader-package
                                      #$(bootloader-package bootloader)
                                      #:bootcfg #$bootcfg-drv