summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk26
-rw-r--r--gnu/packages/abiword.scm5
-rw-r--r--gnu/packages/accessibility.scm37
-rw-r--r--gnu/packages/admin.scm213
-rw-r--r--gnu/packages/algebra.scm14
-rw-r--r--gnu/packages/android.scm9
-rw-r--r--gnu/packages/avr.scm23
-rw-r--r--gnu/packages/backup.scm7
-rw-r--r--gnu/packages/base.scm35
-rw-r--r--gnu/packages/benchmark.scm38
-rw-r--r--gnu/packages/bioinformatics.scm17
-rw-r--r--gnu/packages/bootloaders.scm24
-rw-r--r--gnu/packages/cdrom.scm14
-rw-r--r--gnu/packages/chemistry.scm27
-rw-r--r--gnu/packages/compton.scm22
-rw-r--r--gnu/packages/coq.scm48
-rw-r--r--gnu/packages/cran.scm5
-rw-r--r--gnu/packages/docker.scm46
-rw-r--r--gnu/packages/efi.scm218
-rw-r--r--gnu/packages/emacs-xyz.scm297
-rw-r--r--gnu/packages/embedded.scm12
-rw-r--r--gnu/packages/emulators.scm14
-rw-r--r--gnu/packages/engineering.scm22
-rw-r--r--gnu/packages/finance.scm92
-rw-r--r--gnu/packages/freeipmi.scm5
-rw-r--r--gnu/packages/games.scm8
-rw-r--r--gnu/packages/gnome.scm90
-rw-r--r--gnu/packages/golang.scm33
-rw-r--r--gnu/packages/guile-xyz.scm172
-rw-r--r--gnu/packages/ipfs.scm98
-rw-r--r--gnu/packages/libusb.scm53
-rw-r--r--gnu/packages/linux.scm31
-rw-r--r--gnu/packages/lisp.scm4
-rw-r--r--gnu/packages/mail.scm10
-rw-r--r--gnu/packages/maths.scm508
-rw-r--r--gnu/packages/messaging.scm6
-rw-r--r--gnu/packages/monitoring.scm8
-rw-r--r--gnu/packages/mpi.scm38
-rw-r--r--gnu/packages/music.scm11
-rw-r--r--gnu/packages/networking.scm6
-rw-r--r--gnu/packages/ocaml.scm1141
-rw-r--r--gnu/packages/package-management.scm28
-rw-r--r--gnu/packages/patches/ao-cad-aarch64-support.patch18
-rw-r--r--gnu/packages/patches/blender-newer-ffmpeg.patch80
-rw-r--r--gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch33
-rw-r--r--gnu/packages/patches/cool-retro-term-fix-array-size.patch25
-rw-r--r--gnu/packages/patches/cool-retro-term-memory-leak-1.patch32
-rw-r--r--gnu/packages/patches/glibc-memchr-overflow-i686.patch74
-rw-r--r--gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch169
-rw-r--r--gnu/packages/patches/hdf5-mpi-deprecations.patch61
-rw-r--r--gnu/packages/patches/mcron-install.patch22
-rw-r--r--gnu/packages/patches/musescore-fix-use_webengine.patch165
-rw-r--r--gnu/packages/patches/net-tools-bitrot.patch108
-rw-r--r--gnu/packages/patches/nyx-show-header-stats-with-python3.patch70
-rw-r--r--gnu/packages/patches/ocaml-findlib-make-install.patch20
-rw-r--r--gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch34
-rw-r--r--gnu/packages/patches/openldap-CVE-2017-9287.patch37
-rw-r--r--gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch16
-rw-r--r--gnu/packages/patches/readline-7.0-mingw.patch28
-rw-r--r--gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch57
-rw-r--r--gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch1485
-rw-r--r--gnu/packages/patches/u-boot-pinebook-dts.patch388
-rw-r--r--gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch98
-rw-r--r--gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch70
-rw-r--r--gnu/packages/patches/u-boot-pinebook-syscon-node.patch38
-rw-r--r--gnu/packages/patches/u-boot-pinebook-video-bridge.patch50
-rw-r--r--gnu/packages/patches/xboing-CVE-2004-0149.patch134
-rw-r--r--gnu/packages/perl-compression.scm14
-rw-r--r--gnu/packages/photo.scm6
-rw-r--r--gnu/packages/python-xyz.scm135
-rw-r--r--gnu/packages/rdesktop.scm4
-rw-r--r--gnu/packages/scheme.scm6
-rw-r--r--gnu/packages/sdl.scm4
-rw-r--r--gnu/packages/shellutils.scm23
-rw-r--r--gnu/packages/spice.scm4
-rw-r--r--gnu/packages/ssh.scm10
-rw-r--r--gnu/packages/suckless.scm10
-rw-r--r--gnu/packages/syncthing.scm25
-rw-r--r--gnu/packages/terminals.scm24
-rw-r--r--gnu/packages/time.scm41
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/tor.scm21
-rw-r--r--gnu/packages/uml.scm10
-rw-r--r--gnu/packages/version-control.scm39
-rw-r--r--gnu/packages/video.scm8
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/vpn.scm7
-rw-r--r--gnu/packages/web.scm6
-rw-r--r--gnu/packages/wine.scm8
-rw-r--r--gnu/packages/wm.scm15
90 files changed, 3518 insertions, 3739 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a63f595b30..1ea8069308 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -152,6 +152,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ebook.scm			\
   %D%/packages/ed.scm				\
   %D%/packages/education.scm			\
+  %D%/packages/efi.scm				\
   %D%/packages/electronics.scm			\
   %D%/packages/elf.scm				\
   %D%/packages/elixir.scm			\
@@ -639,7 +640,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
   %D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch	\
-  %D%/packages/patches/ao-cad-aarch64-support.patch		\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
   %D%/packages/patches/aria2-CVE-2019-3500.patch		\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
@@ -663,7 +663,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/biber-fix-encoding-write.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/blast+-fix-makefile.patch		\
-  %D%/packages/patches/blender-newer-ffmpeg.patch		\
   %D%/packages/patches/boost-fix-icu-build.patch		\
   %D%/packages/patches/byobu-writable-status.patch		\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
@@ -696,9 +695,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/coda-use-system-libs.patch		\
   %D%/packages/patches/combinatorial-blas-awpm.patch		\
   %D%/packages/patches/combinatorial-blas-io-fix.patch		\
-  %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch	\
-  %D%/packages/patches/cool-retro-term-fix-array-size.patch	\
-  %D%/packages/patches/cool-retro-term-memory-leak-1.patch	\
   %D%/packages/patches/cpio-CVE-2016-2037.patch			\
   %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
   %D%/packages/patches/cracklib-CVE-2016-6318.patch		\
@@ -822,7 +818,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hurd-magic-pid.patch		\
   %D%/packages/patches/glibc-ldd-x86_64.patch			\
   %D%/packages/patches/glibc-locales.patch			\
-  %D%/packages/patches/glibc-memchr-overflow-i686.patch		\
   %D%/packages/patches/glibc-o-largefile.patch			\
   %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch	\
   %D%/packages/patches/glibc-vectorized-strcspn-guards.patch	\
@@ -872,6 +867,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/hdf4-reproducibility.patch 		\
   %D%/packages/patches/hdf4-shared-fortran.patch 		\
   %D%/packages/patches/hdf5-config-date.patch			\
+  %D%/packages/patches/hdf5-mpi-deprecations.patch		\
+  %D%/packages/patches/hdf5-1.8-mpi-deprecations.patch		\
   %D%/packages/patches/hdf-eos2-build-shared.patch 		\
   %D%/packages/patches/hdf-eos2-remove-gctp.patch		\
   %D%/packages/patches/hdf-eos2-fortrantests.patch		\
@@ -1029,7 +1026,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
   %D%/packages/patches/maven-generate-component-xml.patch		\
   %D%/packages/patches/maven-generate-javax-inject-named.patch		\
-  %D%/packages/patches/mcron-install.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
@@ -1054,9 +1050,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
+  %D%/packages/patches/musescore-fix-use_webengine.patch 	\
   %D%/packages/patches/mutt-store-references.patch		\
   %D%/packages/patches/m4-gnulib-libio.patch			\
-  %D%/packages/patches/net-tools-bitrot.patch			\
   %D%/packages/patches/netcdf-date-time.patch			\
   %D%/packages/patches/netcdf-tst_h_par.patch			\
   %D%/packages/patches/netsurf-message-timestamp.patch		\
@@ -1071,15 +1067,12 @@ dist_patch_DATA =						\
   %D%/packages/patches/nvi-dbpagesize-binpower.patch		\
   %D%/packages/patches/nvi-db4.patch				\
   %D%/packages/patches/nyacc-binary-literals.patch		\
-  %D%/packages/patches/nyx-show-header-stats-with-python3.patch	\
   %D%/packages/patches/oath-toolkit-glibc-compat.patch		\
   %D%/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch	\
   %D%/packages/patches/ocaml-bitstring-fix-configure.patch \
   %D%/packages/patches/ocaml-CVE-2015-8869.patch		\
   %D%/packages/patches/ocaml-Add-a-.file-directive.patch	\
   %D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch	\
-  %D%/packages/patches/ocaml-findlib-make-install.patch	\
-  %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch	\
   %D%/packages/patches/omake-fix-non-determinism.patch	\
   %D%/packages/patches/ola-readdir-r.patch			\
   %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
@@ -1087,7 +1080,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch	\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
-  %D%/packages/patches/openldap-CVE-2017-9287.patch		\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
   %D%/packages/patches/openssh-CVE-2018-20685.patch		\
@@ -1169,7 +1161,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-cffi-x87-stack-clean.patch	\
   %D%/packages/patches/python-fix-tests.patch			\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
-  %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch	\
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-faker-fix-build-32bit.patch	\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
@@ -1202,7 +1193,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/rct-add-missing-headers.patch		\
   %D%/packages/patches/readline-link-ncurses.patch		\
   %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
-  %D%/packages/patches/readline-7.0-mingw.patch			\
   %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch	\
   %D%/packages/patches/reptyr-fix-gcc-7.patch			\
   %D%/packages/patches/ripperx-missing-file.patch		\
@@ -1242,6 +1232,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/streamlink-update-test.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
+  %D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch	\
   %D%/packages/patches/superlu-dist-scotchmetis.patch		\
   %D%/packages/patches/swig-guile-gc.patch			\
   %D%/packages/patches/swish-e-search.patch			\
@@ -1278,12 +1269,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/totem-meson-easy-codec.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-include-qregexpvalidator.patch	\
-  %D%/packages/patches/u-boot-pinebook-a64-update-dts.patch	\
-  %D%/packages/patches/u-boot-pinebook-mmc-calibration.patch	\
-  %D%/packages/patches/u-boot-pinebook-r_i2c-controller.patch	\
-  %D%/packages/patches/u-boot-pinebook-dts.patch		\
-  %D%/packages/patches/u-boot-pinebook-syscon-node.patch	\
-  %D%/packages/patches/u-boot-pinebook-video-bridge.patch	\
   %D%/packages/patches/unzip-CVE-2014-8139.patch		\
   %D%/packages/patches/unzip-CVE-2014-8140.patch		\
   %D%/packages/patches/unzip-CVE-2014-8141.patch		\
@@ -1337,7 +1322,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch	\
   %D%/packages/patches/wpa-supplicant-krack-followups.patch	\
   %D%/packages/patches/x265-arm-flags.patch			\
-  %D%/packages/patches/xboing-CVE-2004-0149.patch		\
   %D%/packages/patches/xf86-video-ark-remove-mibstore.patch	\
   %D%/packages/patches/xf86-video-geode-glibc-2.20.patch	\
   %D%/packages/patches/xf86-video-i128-remove-mibstore.patch	\
diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm
index 02f132f6f0..9d8c253a62 100644
--- a/gnu/packages/abiword.scm
+++ b/gnu/packages/abiword.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,8 +52,8 @@
       (origin
         (method url-fetch)
         (uri
-          (string-append "https://www.abisource.com/downloads/" name "/" version
-                         "/source/" name "-" version ".tar.gz"))
+          (string-append "https://www.abisource.com/downloads/abiword/" version
+                         "/source/abiword-" version ".tar.gz"))
         (sha256
          (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg"))
         (patches
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index d399f98f09..35c8c8f19b 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,7 +45,7 @@
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/florence/florence/" version
-                           "/" name "-" version ".tar.bz2"))
+                           "/florence-" version ".tar.bz2"))
        (sha256
         (base32
          "07h9qm22krlwayhzvc391lr23vicw81s48g7rirvx1fj0zyr4aa2"))))
@@ -122,3 +123,37 @@ available to help to click.")
 It works for both single pedal devices and three pedal devices.  All supported
 devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
     (license license:expat))))
+
+(define-public xmagnify
+  (package
+    (name "xmagnify")
+    (version "0.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/amiloradovsky/magnify.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ngnp5f5zl3v35vhbdyjpymy6mwrs0476fm5nd7dzkba7n841jdh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; none included
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("libX11" ,libx11)))
+    (home-page "https://gitlab.com/amiloradovsky/magnify")
+    (synopsis "Tiny screen magnifier for X11")
+    (description
+     "This program magnifies a screen region by an integer positive factor and
+draws the result on a window.  It is useful as an accessibility tool, which
+works with every X Window System based GUI (depends only on libX11); or as an
+assistant for graphic designers, who need to select individual pixels.")
+    ;; Licensed either under Expat or GPLv2+.
+    (license (list license:expat license:gpl2+))))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index dd98e087a8..f4c34e10fe 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -148,13 +148,15 @@ usual file attributes can be checked for inconsistencies.")
   (package
     (name "progress")
     (version "0.14")
-    (source (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/Xfennec/"
-                          name "/archive/v" version ".tar.gz"))
-      (sha256
-       (base32 "1wcanixfsi5k4i9h5vrnncgjdncalsdfqllrxibxwpgfnf20sji1"))
-      (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Xfennec/progress.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -162,12 +164,12 @@ usual file attributes can be checked for inconsistencies.")
     (inputs
      `(("ncurses" ,ncurses)))
     (arguments
-     `(#:tests? #f ; There is no test suite.
+     `(#:tests? #f                      ; no test suite
        #:make-flags (list "CC=gcc"
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)))) ; There's no configure phase.
+         (delete 'configure))))         ; no configure script
     (home-page "https://github.com/Xfennec/progress")
     (synopsis "Program to view the progress of the coreutils commands")
     (description "A program that looks for coreutils basic commands (cp, mv,
@@ -219,8 +221,8 @@ interface and is based on GNU Guile.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://cr.yp.to/" name "/"
-                    name "-" version ".tar.gz"))
+                    "https://cr.yp.to/daemontools/"
+                    "daemontools-" version ".tar.gz"))
               (sha256
                (base32
                 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"))))
@@ -231,7 +233,7 @@ interface and is based on GNU Guile.")
        (modify-phases %standard-phases
          (add-after 'unpack 'chdir
            (lambda _
-             (chdir ,(string-append name "-" version))
+             (chdir ,(string-append "daemontools-" version))
              #t))
          (delete 'configure)
          (add-before 'build 'patch
@@ -1539,14 +1541,13 @@ degradation and failure.")
     (version "1.6.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/adrianlopezroche/fdupes/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/adrianlopezroche/fdupes.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1sj9pa40pbz6xdwbxfwhdhkvhdf1xc5gvggk9mdq26c41gdnyswx"))))
+        (base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1703,13 +1704,13 @@ lookup to YAML Mode.  You could enable the mode with @code{(add-hook
     (version "0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/opsengine/cpulimit/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/opsengine/cpulimit.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1nn2w849xd5bw4y5sqnll29nxdwl5h0cv4smc7dwmpb9qnd2ycb4"))))
+        (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1864,7 +1865,7 @@ platform-specific methods.")
     (version "2.8.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append home-page name "-" version ".tar.gz"))
+              (uri (string-append home-page "audit-" version ".tar.gz"))
               (sha256
                (base32
                 "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454"))))
@@ -1979,22 +1980,22 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
   (package
     (name "dstat")
     (version "0.7.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/dagwieers/dstat/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append "dstat-" version ".tar.gz"))
-              (sha256
-               (base32
-                "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dagwieers/dstat.git")
+             (commit version)))
+       (file-name (git-file-name "dstat" version))
+       (sha256
+        (base32 "0sbpna531034gr40w4g9cwz35s2fpf9h654paznsxw9fih91rfa5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;; no make check
+     `(#:tests? #f                      ; no make check
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list (string-append "DESTDIR=" out)
                             "prefix=/"))
-       ;; no configure script
+       ;; No configure script.
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs `(("python-2" ,python-2)))
     (synopsis "Versatile resource statistics tool")
@@ -2014,16 +2015,17 @@ throughput (in the same interval).")
 (define-public thefuck
   (package
     (name "thefuck")
-    (version "3.27")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/nvbn/thefuck/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96"))
-              (patches (search-patches "thefuck-test-environ.patch"))))
+    (version "3.28")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nvbn/thefuck.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "070b2sx8r0b4hry6xg97psxlikxghmz91zicg2cm6kc1yhgz4agc"))
+       (patches (search-patches "thefuck-test-environ.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -2089,23 +2091,24 @@ produce uniform output across heterogeneous networks.")
   (package
     (name "cbatticon")
     (version "1.6.8")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/valr/"
-                                  name "/archive/" version ".tar.gz"))
-              (sha256
-               (base32
-                "185lzvaijvyq7y8r7dvizhri0rf9lpc1anfgbbn4lznr1fr3z7rn"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/valr/cbatticon.git")
+             (commit version)))
+       (sha256
+        (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)))) ; no configure script
+         (delete 'configure))))         ; no configure script
     (inputs
      `(("gtk+" ,gtk+)
        ("gettext" ,gettext-minimal)
@@ -2123,22 +2126,22 @@ the status of your battery in the system tray.")
         (commit "896543735e1c99144765fdbd7b6e6b5afbd8b881"))
     (package
       (name "interrobang")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/TrilbyWhite/interrobang")
-                      (commit commit)))
-                (file-name (string-append name "-" version))
-                (sha256
-                 (base32
-                  "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/TrilbyWhite/interrobang.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1n13m70p1hfba5dy3i8hfclbr6k9q3d9dai3dg4jvhdhmxcpjzdf"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f ; no tests
+       `(#:tests? #f                    ; no tests
          #:phases
          (modify-phases %standard-phases
-           (delete 'configure)) ; no configure script
+           (delete 'configure))         ; no configure script
          #:make-flags (list (string-append "PREFIX="
                                            (assoc-ref %outputs "out")))))
       (inputs
@@ -2158,8 +2161,8 @@ shortcut syntax and completion options.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://archives.eyrie.org/software/kerberos/" name "-"
-                    version ".tar.xz"))
+                    "https://archives.eyrie.org/software/kerberos/"
+                    "pam-krb5-" version ".tar.xz"))
               (sha256
                (base32
                 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb"))))
@@ -2205,11 +2208,12 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
     (version "1.4.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/linux-sunxi/"
-                           "sunxi-tools/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/linux-sunxi/sunxi-tools.git")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "08iqwj95qw2s7ilhrdi2lkbc8dx64zk5lzz1qk587jr0lla81x41"))
+        (base32 "04f3jqg8ww4jxsf9c6ddcdgy2xbhkyp0b3l5f1hvvbv94p81rjxd"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove binaries contained in the tarball which are only for the
@@ -2217,7 +2221,7 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
         '(begin
            (delete-file-recursively "bin")
            #t))
-       (file-name (string-append name "-" version ".tar.gz"))))
+       (file-name (git-file-name name version))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
@@ -2300,16 +2304,16 @@ in order to be able to find it.
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/aureliojargas/sedsed/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aureliojargas/sedsed.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0139jkqvm8ipiwfj7k69ry2f9b1ffgpk79arpz4r7w9kf6h23bnh"))))
+        (base32 "0009lsjsxhqmgaklpwq15hhd94hpiy7r4va69yy0ig3mxi6zbg2z"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f ; No tests.
+     `(#:tests? #f                      ; no tests
        #:python ,python-2
        #:phases
        (modify-phases %standard-phases
@@ -2364,7 +2368,7 @@ buffers.")
               (method url-fetch)
               (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
                                   "intel-gpu-tools/snapshot/"
-                                  name "-" version ".tar.gz"))
+                                  "igt-gpu-tools-" version ".tar.gz"))
               (sha256
                (base32
                 "0vzv2i4jfv2pkbqby5k3ap9pzidkmajwqmg3s7wnv8i1h33775iq"))))
@@ -2494,7 +2498,7 @@ you are running, what theme or icon set you are using, etc.")
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
-                           version "/" name "-v" version ".tar.gz"))
+                           version "/nnn-v" version ".tar.gz"))
        (sha256
         (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
     (build-system gnu-build-system)
@@ -2565,14 +2569,15 @@ on systems running the Linux kernel.")
   (package
     (name "masscan")
     (version "1.0.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/robertdavidgraham/masscan"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0wxddsgyx27z45906icdhdbfsvfj8ij805208qpqjx46i0lnjs50"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/robertdavidgraham/masscan.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q0c7bsf0pbl8napry1qyg0gl4pd8wn872h4mz9b56dx4rx90vqg"))))
     (build-system gnu-build-system)
     (inputs
      `(("libpcap" ,libpcap)))
@@ -2608,7 +2613,7 @@ application, collecting the information received.")
               (method url-fetch)
               (uri (string-append "https://github.com/jwilk/hungrycat/"
                                   "releases/download/" version "/"
-                                  name "-" version ".tar.gz"))
+                                  "hungrycat-" version ".tar.gz"))
               (sha256
                (base32
                 "03fc1zsrf99lvxa7b4ps6pbi43304wbxh1f6ci4q0vkal370yfwh"))))
@@ -2640,7 +2645,7 @@ late.")
               (method url-fetch)
               (uri (string-append
                     "https://github.com/LLNL/LaunchMON/releases/download/v"
-                    version "/" name "-v" version ".tar.gz"))
+                    version "/launchmon-v" version ".tar.gz"))
               (sha256
                (base32
                 "0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x"))))
@@ -2810,17 +2815,17 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
 (define-public pscircle
   (package
     (name "pscircle")
-    (version "1.1.0")
+    (version "1.3.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://gitlab.com/mildlyparallel/pscircle/-/archive/v"
-             version "/pscircle-v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/mildlyparallel/pscircle.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1k757yf2bmgfrjd417l6kpcf83hlvi0z1791vz967mwcklrsb3fj"))))
+         "0qsif00dkqa8ky3vl2ycx5anx2yk62nrv47f5lrlqzclz91f00fx"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2917,7 +2922,7 @@ Logitech Unifying Receiver.")
 (define-public lynis
   (package
     (name "lynis")
-    (version "2.7.0")
+    (version "2.7.1")
     (source
      (origin
        (method git-fetch)
@@ -2927,7 +2932,7 @@ Logitech Unifying Receiver.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rzc0y8lk22bymf56249jzmllki2lh0rz5in4lkrc5fkmp29c2wv"))
+         "1nv2dqd2k2n8mcdr6xl5g713xxkgvja6487by1wn4k0b416jij9i"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 757b1111d6..52eb6ee366 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,13 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -246,7 +246,7 @@ precision.")
 (define-public giac-xcas
   (package
     (name "giac-xcas")
-    (version "1.5.0-29")
+    (version "1.5.0-37")
     (source (origin
               (method url-fetch)
               ;; "~parisse/giac" is not used because the maintainer regularly
@@ -258,7 +258,7 @@ precision.")
                                   "source/giac_" version ".tar.gz"))
               (sha256
                (base32
-                "1d904w02x6i26crbvw2d25v7j1hv1w461casyj5mgh42kzcdhb4c"))))
+                "1c6jmswv3ay13n6mjgh9w7nbpdgm5lbwdcmva5sli3vqn4chn3vq"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))            ;77MiB of documentation
     (arguments
@@ -663,7 +663,11 @@ cosine/ sine transforms or DCT/DST).")
     (arguments
      (substitute-keyword-arguments (package-arguments fftw)
        ((#:configure-flags cf)
-        `(cons "--enable-mpi" ,cf))))
+        `(cons "--enable-mpi" ,cf))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-before 'check 'mpi-setup
+             ,%openmpi-setup)))))
     (description
      (string-append (package-description fftw)
                     "  With OpenMPI parallelism support."))))
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 17bf428fe6..80eaab3e5c 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docker)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
@@ -49,7 +51,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages xml))
 
 (define-public android-make-stub
   (package
@@ -871,14 +873,14 @@ useful for reverse engineering, analysis of Android applications and more.")
 (define-public fdroidserver
   (package
     (name "fdroidserver")
-    (version "1.0.10")
+    (version "1.1.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fdroidserver" version))
         (sha256
          (base32
-          "0n6kkby65qzqdx1jn72grfffvr1w1j1rby5pwm9z8rymmsh8s0pm"))))
+          "0fp7q8faicx6i6wxm717qqaham3jpilb23mvynpz6v73z7hm6wcg"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -892,6 +894,7 @@ useful for reverse engineering, analysis of Android applications and more.")
      `(("python-androguard" ,python-androguard)
        ("python-apache-libcloud" ,python-apache-libcloud)
        ("python-clint" ,python-clint)
+       ("python-defusedxml" ,python-defusedxml)
        ("python-docker-py" ,python-docker-py)
        ("python-gitpython" ,python-gitpython)
        ("python-mwclient" ,python-mwclient)
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index a84b43da6a..eaa3c7d046 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
@@ -138,18 +140,19 @@ C++.")
   (package
     (name "microscheme")
     (version "0.9.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ryansuchocki/"
-                                  "microscheme/archive/v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1n404mh7z2icy3ga1mx249lk9x091k7idj6xpcf20hnmzabd0k0x"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ryansuchocki/microscheme.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1r3ng4pw1s9yy1h5rafra1rq19d3vmb5pzbpcz1913wz22qdd976"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:parallel-build? #f ; fails to build otherwise
-       #:tests? #f ; no tests
+     `(#:parallel-build? #f             ; fails to build otherwise
+       #:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index d50c7e4fdc..c312f23c1a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -564,6 +564,11 @@ detection, and lossless compression.")
                ;; HOME=/homeless-shelter.
                (setenv "HOME" "/tmp")
                #t)))
+         (add-after 'unpack 'remove-documentation-timestamps ; reproducibility
+           (lambda _
+             (substitute* "setup.py"
+               (("write\\(':Date:'.*") "\n"))
+             #t))
          ;; The tests need to be run after Borg is installed.
          (delete 'check)
          (add-after 'install 'check
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 38d9524653..67fab7c114 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1,11 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
@@ -35,9 +35,11 @@
                 #:select (gpl3+ lgpl2.0+ lgpl3+ public-domain))
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages ed)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages compression)
@@ -55,6 +57,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:export (glibc
             libiconv-if-needed))
 
@@ -501,6 +505,33 @@ included.")
    (license gpl3+)
    (home-page "https://www.gnu.org/software/binutils/")))
 
+(define-public binutils-gold
+  (package
+    (inherit binutils)
+    (name "binutils-gold")
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'patch-more-shebangs
+           (lambda _
+             (substitute* "gold/Makefile.in"
+               (("/bin/sh") (which "sh")))
+             #t)))
+       ,@(substitute-keyword-arguments (package-arguments binutils)
+         ; Upstream is aware of unrelocatable test failures on arm*.
+         ((#:tests? _ #f)
+          (if (any (cute string-prefix? <> (or (%current-target-system)
+                                               (%current-system)))
+                   '("i686" "x86_64"))
+              '#t '#f))
+         ((#:configure-flags flags)
+          `(cons* "--enable-gold=default"
+                 (delete "LDFLAGS=-static-libgcc" ,flags))))))
+     (native-inputs
+     `(("bc" ,bc)))
+     (inputs
+     `(("gcc:lib" ,gcc "lib")))))
+
 (define* (make-ld-wrapper name #:key
                           (target (const #f))
                           binutils
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index c670a9af1c..43d42b37ad 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages linux)
@@ -114,16 +116,15 @@ is to write a job file matching the I/O load one wants to simulate.")
 (define (imb mpi)
   (package
     (name (string-append "imb-" (package-name mpi)))
-    (version "2017.2")
+    (version "2019.1")
     (source
      (origin
-      (method url-fetch)
-      (uri (match (string-split version #\.)
-             ((major minor)
-              (string-append
-               "https://software.intel.com/sites/default/files/managed/76/6c/IMB_"
-               major "_Update" minor ".tgz"))))
-      (sha256 (base32 "11nczxm686rsppmw9gjc2p2sxc0jniv5kv18yxm1lzp5qfh5rqyb"))))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/intel/mpi-benchmarks.git")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256 (base32 "18hfdyvl5i172gadiq9si1qxif5rvic0lifxpbrr7s59ylg8f9c4"))))
     (build-system gnu-build-system)
     (inputs
      `(("mpi" ,mpi)))
@@ -135,22 +136,19 @@ is to write a job file matching the I/O load one wants to simulate.")
          (replace 'build
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((mpi-home (assoc-ref inputs "mpi")))
-               ;; Not safe for parallel build
-               (invoke "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
-                       (string-append "MPI_HOME=" mpi-home)))))
+               ;; Override default parallelism
+               (substitute* "Makefile"
+                 (("make -j[[:digit:]]+")
+                  (format #f "make -j~d" (parallel-job-count))))
+               (invoke "make" "SHELL=sh" "CC=mpicc" "CXX=mpic++"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/" ,name))
                     (bin (string-append out "/bin")))
-               (with-directory-excursion "imb/src"
-                 (for-each
-                  (lambda (file)
-                    (install-file file bin))
-                  '("IMB-IO" "IMB-EXT" "IMB-MPI1" "IMB-NBC" "IMB-RMA")))
-               (mkdir-p doc)
-               (with-directory-excursion "imb"
-                 (copy-recursively "license" doc)))
+               (for-each
+                (lambda (file)
+                  (install-file file bin))
+                '("IMB-IO" "IMB-EXT" "IMB-MPI1" "IMB-NBC" "IMB-RMA" "IMB-MT")))
              #t)))))
     (home-page "https://software.intel.com/en-us/articles/intel-mpi-benchmarks")
     (synopsis "Intel MPI Benchmarks")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 23eba74175..02cafb2358 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6020,7 +6020,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
 (define-public star
   (package
     (name "star")
-    (version "2.7.0a")
+    (version "2.7.0b")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6029,7 +6029,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1yx28gra6gqdx1ps5y8mpdinsn8r0dhsc2m3gcvjfrk71i9yhd6l"))
+                "1lih6cbpvnvhyvvswdhy06mwyzvwax96m723378v4z6psqzsh11d"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -6055,6 +6055,13 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
                (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
                 (string-append pre "Built with Guix" post)))
              #t))
+         ;; See https://github.com/alexdobin/STAR/pull/562
+         (add-after 'enter-source-dir 'add-missing-header
+           (lambda _
+             (substitute* "SoloReadFeature_inputRecords.cpp"
+               (("#include \"binarySearch2.h\"" h)
+                (string-append h "\n#include <math.h>")))
+             #t))
          (add-after 'enter-source-dir 'do-not-use-bundled-htslib
            (lambda _
              (substitute* "Makefile"
@@ -8657,7 +8664,7 @@ library implementing most of the pipeline's features.")
 (define-public rcas-web
   (package
     (name "rcas-web")
-    (version "0.0.5")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
@@ -8666,7 +8673,7 @@ library implementing most of the pipeline's features.")
                            "/rcas-web-" version ".tar.gz"))
        (sha256
         (base32
-         "0igz7jpcf7cm9800zcag6p3gd1i649figrhbdba6cjkm8f4gfspr"))))
+         "0wq951aj45gqki1bickg876i993lmawkp8x24agg264br5x716db"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -8689,7 +8696,7 @@ library implementing most of the pipeline's features.")
        ("r-rcas" ,r-rcas)
        ("guile-next" ,guile-2.2)
        ("guile-json" ,guile-json)
-       ("guile-redis" ,guile2.2-redis)))
+       ("guile-redis" ,guile-redis)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/BIMSBbioinfo/rcas-web")
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 0fbf481893..5bd784f73c 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -376,7 +376,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
 (define u-boot
   (package
     (name "u-boot")
-    (version "2018.11")
+    (version "2019.01")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -384,7 +384,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
                     "u-boot-" version ".tar.bz2"))
               (sha256
                (base32
-                "0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))))
+                "08hwsmh5xsb1gcxsv8gvx00bai938dm5y3889n8jif3a8rd7xgah"))))
     (native-inputs
      `(("bc" ,bc)
        ("bison" ,bison)
@@ -440,6 +440,11 @@ also initializes the boards (RAM etc).")
               (("def test_ctrl_c")
                "@pytest.mark.skip(reason='Guix has problems with SIGINT')
 def test_ctrl_c"))
+             ;; This test requires a sound system, which is un-used in u-boot-tools.
+             (for-each (lambda (file)
+                              (substitute* file
+                                  (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
+                              (find-files "configs" "sandbox_.*defconfig$"))
              #t))
          (replace 'configure
            (lambda* (#:key make-flags #:allow-other-keys)
@@ -595,20 +600,7 @@ board-independent tools.")))
   (make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu"))
 
 (define-public u-boot-pinebook
-  (let ((base (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu")))
-    (package
-      (inherit base)
-      (source (origin
-              (inherit (package-source u-boot))
-              (patches (search-patches
-                        ;; Add patches to enable Pinebook support from sunxi
-                        ;; maintainer tree: git://git.denx.de/u-boot-sunxi.git
-                        "u-boot-pinebook-a64-update-dts.patch"
-                        "u-boot-pinebook-syscon-node.patch"
-                        "u-boot-pinebook-mmc-calibration.patch"
-                        "u-boot-pinebook-video-bridge.patch"
-                        "u-boot-pinebook-r_i2c-controller.patch"
-                        "u-boot-pinebook-dts.patch")))))))
+  (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu"))
 
 (define-public u-boot-bananapi-m2-ultra
   (make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf"))
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index b44cc3bce9..546e1a20d0 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -525,7 +525,7 @@ from an audio CD.")
 (define-public abcde
   (package
     (name "abcde")
-    (version "2.9.2")
+    (version "2.9.3")
     (home-page "https://abcde.einval.com/")
     (source (origin
               (method url-fetch)
@@ -533,19 +533,13 @@ from an audio CD.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l"))
+                "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04"))
               (modules '((guix build utils)))
               (snippet
-               `(begin
+               '(begin
                   (substitute* "Makefile"
-                    ;; Fix abcde 2.9.2 still thinking it's 2.9.1.
-                    ;; XXX This will be fixed in the next release.
-                    (("(abcde_version = abcde-)(2.9.1)" _ good bad)
-                     (string-append good ,version))
                     (("/usr/bin/install")
-                     "install")
-                    (("^etcdir = .*$")
-                     (string-append "etcdir = $(prefix)/etc\n")))
+                     "install"))
                   #t))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index a493af16f5..b6345b9d27 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages boost)
@@ -44,18 +46,19 @@
   (package
     (name "avogadro")
     (version "1.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/cryos/avogadro/archive/"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "02v4h6hi1m7ilv0apdf74a8l1cm6dxnxyqp0rdaidrp3i9pf6lv4"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (patches
-               (search-patches "avogadro-eigen3-update.patch"
-                               "avogadro-python-eigen-lib.patch"
-                               "avogadro-boost148.patch"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cryos/avogadro.git")
+             (commit version)))
+       (sha256
+        (base32 "0258py3lkba85qhs5ynancinyym61vlp0zaq9yrfs3hhnhpzv9n2"))
+       (file-name (git-file-name name version))
+       (patches
+        (search-patches "avogadro-eigen3-update.patch"
+                        "avogadro-python-eigen-lib.patch"
+                        "avogadro-boost148.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f
diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm
index dec9a94eba..c5b4c4ef5f 100644
--- a/gnu/packages/compton.scm
+++ b/gnu/packages/compton.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,7 +20,7 @@
 (define-module (gnu packages compton)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
-  #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -38,15 +39,16 @@
       (name "compton")
       (version (string-filter (char-set-complement (char-set #\_))
                               upstream-version))
-      (source (origin
-                (method url-fetch)
-                (uri (string-append
-                      "https://github.com/chjj/" name "/archive/v"
-                      upstream-version ".tar.gz"))
-                (sha256
-                 (base32
-                  "02dhlqqcwnmlf2dxg7rd4lapgqahgndzixdkbpxicq9jawmdb73v"))
-                (file-name (string-append name "-" version "-checkout"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/chjj/compton.git")
+               (commit (string-append "v" upstream-version))))
+         (sha256
+          (base32
+           "0v65viilhnd2xgvmdpzc1srxszcg8kj1vhi5gy9292j48w0s2fx1"))
+         (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs
        `(("dbus" ,dbus)
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 51dd5dedcf..e42f8af1ab 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ocaml)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -444,3 +446,49 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 simplifying the proofs of inequalities on expressions of real numbers for the
 Coq proof assistant.")
     (license license:cecill-c)))
+
+(define-public coq-autosubst
+  ;; Latest commit on that branch, where work on supporting coq 8.6 and
+  ;; more recent versions of coq happen.
+  (let ((branch "coq86-devel")
+        (commit "d0d73557979796b3d4be7aac72135581c33f26f7"))
+    (package
+      (name "coq-autosubst")
+      (version (git-version "1" branch commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "git://github.com/uds-psl/autosubst.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "1852xb5cwkjw3dlc0lp2sakwa40bjzw37qmwz4bn3vqazg1hnh6r"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
+               (invoke "make"
+                       (string-append "COQLIB=" (assoc-ref outputs "out")
+                                      "/lib/coq/")
+                       "install"))))))
+      (native-inputs
+       `(("coq" ,coq)))
+      (home-page "https://www.ps.uni-saarland.de/autosubst/")
+      (synopsis "Coq library for parallel de Bruijn substitutions")
+      (description "Formalizing syntactic theories with variable binders is
+not easy.  Autosubst is a library for the Coq proof assistant to
+automate this process.  Given an inductive definition of syntactic objects in
+de Bruijn representation augmented with binding annotations, Autosubst
+synthesizes the parallel substitution operation and automatically proves the
+basic lemmas about substitutions.  This library contains an automation
+tactic that solves equations involving terms and substitutions.  This makes the
+usage of substitution lemmas unnecessary.  The tactic is based on our current
+work on a decision procedure for the equational theory of an extension of the
+sigma-calculus by Abadi et al.  The library is completely written in Coq and
+uses Ltac to synthesize the substitution operation.")
+      (license license:bsd-3))))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index f6f4a08aab..975884e881 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1827,7 +1827,10 @@ matrices.")
     (properties `((upstream-name . "Rmpi")))
     (build-system r-build-system)
     (arguments
-     `(#:configure-flags '("--configure-args=\"--with-Rmpi-type=OPENMPI\"")))
+     `(#:configure-flags '("--configure-args=\"--with-Rmpi-type=OPENMPI\"")
+       #:phases (modify-phases %standard-phases
+                  (add-before 'install 'mpi-setup
+                    ,%openmpi-setup))))
     (inputs
      `(("openmpi" ,openmpi)))
     (native-inputs
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index fef4a180f3..992eb0dcc1 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -160,7 +162,7 @@ Python without keeping their credentials in a Docker configuration file.")
 (define-public containerd
   (package
     (name "containerd")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
       (method git-fetch)
@@ -170,7 +172,7 @@ Python without keeping their credentials in a Docker configuration file.")
       (file-name (git-file-name name version))
       (sha256
        (base32
-        "16zn6p1ky3yrgn53z8h9wza53ch91fj47wj5xgz6w4c57j30f66p"))))
+        "065snv0s3v3z0ghadlii4w78qnhchcbx2kfdrvm8fk8gb4pkx1ya"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/containerd/containerd"
@@ -526,5 +528,43 @@ provisioning etc.")
        ("pkg-config" ,pkg-config)))
     (synopsis "Command line interface to Docker")
     (description "This package provides a command line interface to Docker.")
-    (home-page "http://www.docker.com/")
+    (home-page "https://www.docker.com/")
     (license license:asl2.0)))
+
+(define-public cqfd
+  (package
+    (name "cqfd")
+    (version "5.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/savoirfairelinux/cqfd.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1z4v16lbpbwd5ykawizdclpryp2k006lbk2mv427a4b3nvcd9wik"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The test suite requires a docker daemon and connectivity.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; Fix the directory of the bash completion.
+               (substitute* "Makefile"
+                 (("completionsdir=.*$")
+                  (string-append "completionsdir=" out
+                                 "/etc/bash_completion.d; \\\n")))
+               (invoke "make" "install"
+                       (string-append "PREFIX=" out))))))))
+    (home-page "https://github.com/savoirfairelinux/cqfd")
+    (synopsis "Convenience wrapper for Docker")
+    (description "cqfd is a Bash script that provides a quick and convenient
+way to run commands in the ecurrent directory, but within a Docker container
+defined in a per-project configuration file.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
new file mode 100644
index 0000000000..43e660743a
--- /dev/null
+++ b/gnu/packages/efi.scm
@@ -0,0 +1,218 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages efi)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define-public gnu-efi
+  (package
+    (name "gnu-efi")
+    (version "3.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/gnu-efi/"
+                           name "-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1w3p4aqlc5j93q44la7dc8cr3hky20zvsd0h0k2lyzhwmrzfl5b7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; None exist.
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (synopsis "EFI toolchain")
+    (description "This package provides an EFI (Extensible Firmware
+Interface) toolchain for building programs that can run in the
+environment presented by Intel's EFI.")
+    (home-page "https://directory.fsf.org/wiki/GNU_EFI")
+    ;; Distribution is allowed only when accepting all those licenses.
+    (license (list license:bsd-2 license:bsd-3 license:bsd-4 license:expat))))
+
+(define-public sbsigntools
+  (package
+    (name "sbsigntools")
+    (version "0.9.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git")
+         (commit (string-append "v" version))
+         (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "116649ixr6gvw9fqiljfflxsv4293hgm73bmba5ilxrzn4kpbzvb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-more-shebangs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/ccan.git/tools/create-ccan-tree"
+              (("#!/bin/bash")
+               (string-append "#!"
+                              (assoc-ref inputs "bash")
+                              "/bin/bash")))
+             #t))
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* '("configure.ac"
+                            "tests/Makefile.am")
+              (("/usr/include/efi")
+               (string-append (assoc-ref inputs "gnu-efi")
+                              "/include/efi"))
+              (("/usr/lib/gnuefi")
+               (string-append (assoc-ref inputs "gnu-efi")
+                              "/lib")))
+             #t))
+         (add-after 'unpack 'setenv
+           (lambda _
+             (setenv "CC" "gcc")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("bash" ,bash)
+       ("help2man" ,help2man)
+       ("pkg-config" ,pkg-config)
+       ("util-linux" ,util-linux))) ; getopt
+    (inputs
+     `(("gnu-efi" ,gnu-efi)
+       ("openssl" ,openssl)))
+    (synopsis "EFI signing tools")
+    (description "This package provides tools for signing EFI binaries.")
+    (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/")
+    (license license:gpl3+)))
+
+(define-public efitools
+  (package
+    (name "efitools")
+    (version "1.9.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0jabgl2pxvfl780yvghq131ylpf82k7banjz0ksjhlm66ik8gb1i"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f  ; No tests exist.
+       #:make-flags
+       '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "Make.rules"
+              (("/usr/include/efi")
+               (string-append (assoc-ref inputs "gnu-efi")
+                              "/include/efi"))
+              (("\\$\\(DESTDIR\\)/usr")
+               (string-append (assoc-ref outputs "out")))
+              (("/usr/lib/gnuefi")
+               (string-append (assoc-ref inputs "gnu-efi")
+                              "/lib")))
+             #t))
+         (add-after 'unpack 'patch-more-shebangs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "xxdi.pl"
+              (("#!.*")
+               (string-append "#!"
+                              (assoc-ref inputs "perl")
+                              "/bin/perl\n")))
+             #t))
+         (delete 'configure))))
+    (native-inputs
+     `(("help2man" ,help2man)
+       ("perl" ,perl)
+       ("perl-file-slurp" ,perl-file-slurp)
+       ("sbsigntools" ,sbsigntools)))
+    (inputs
+     `(("gnu-efi" ,gnu-efi)
+       ("openssl" ,openssl)))
+    (synopsis "EFI tools (key management, variable management)")
+    (description "This package provides EFI tools for EFI key management
+and EFI variable management.")
+    (home-page "https://blog.hansenpartnership.com/efitools-1-4-with-linux-key-manipulation-utilities-released/")
+    ;; Programs are under GPL 2.
+    ;; Library routines (in lib/) are under LGPL 2.1.
+    ;; Compiling/linking/using OpenSSL is permitted.
+    (license (list license:gpl2
+                   license:lgpl2.1))))
+
+(define-public efilinux
+  (package
+    (name "efilinux")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mfleming/efilinux.git")
+                    (commit (string-append "efilinux-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0b4nxzr3wl5v4b52r79iw1arfgasz26xb38r2blw9v2qz2s1q9w2"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "INCDIR=" (assoc-ref %build-inputs "gnu-efi")
+                            "/include")
+             (string-append "LIBDIR=" (assoc-ref %build-inputs "gnu-efi")
+                            "/lib"))
+       #:tests? #f ; No tests exist.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "efilinux.efi"
+                           (string-append (assoc-ref outputs "out")
+                                          "/libexec"))
+             #t)))))
+    (inputs
+     `(("gnu-efi" ,gnu-efi)))
+    (synopsis "Minimal Linux loader for UEFI")
+    (description "This package provides a minimal Linux loader as an UEFI
+program.")
+    (home-page "https://github.com/mfleming/efilinux")
+    (license license:bsd-2)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 29b4487d05..5d8aa0e863 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16,9 +16,9 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
@@ -3078,7 +3078,7 @@ in @code{html-mode}.")
 (define-public emacs-slime
   (package
     (name "emacs-slime")
-    (version "2.22")
+    (version "2.23")
     (source
      (origin
        (file-name (string-append name "-" version ".tar.gz"))
@@ -3088,7 +3088,7 @@ in @code{html-mode}.")
              version ".tar.gz"))
        (sha256
         (base32
-         "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms"))))
+         "01gkrqfpifcx1vipwrbhns2r4s8izp3z1w4p41azc943s1a2d5nc"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -4000,8 +4000,8 @@ navigate code in a tree-like fashion.")
 (define-public emacs-lispy
   ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
   ;; since.
-  (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
-        (revision "0"))
+  (let ((commit "f94cfc6b8f9c3afe7d028c366928049c011023de")
+        (revision "1"))
     (package
       (name "emacs-lispy")
       (version (git-version "0.26.0" revision commit))
@@ -4011,7 +4011,7 @@ navigate code in a tree-like fashion.")
                 (uri (git-reference (url home-page) (commit commit)))
                 (sha256
                  (base32
-                  "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
+                  "1bm2cpwizg1qfpm377gpx1af1hm5maw69if1csnk5vwaphmv8c4g"))
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
@@ -4031,10 +4031,8 @@ S-expression.")
       (license license:gpl3+))))
 
 (define-public emacs-lispyville
-  ;; Later versions need a more recent Evil, with an evil-define-key*
-  ;; supporting nil for the state.
-  (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
-        (revision "0"))
+  (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
+        (revision "1"))
     (package
       (name "emacs-lispyville")
       (version (git-version "0.1" revision commit))
@@ -4044,7 +4042,7 @@ S-expression.")
                 (uri (git-reference (url home-page) (commit commit)))
                 (sha256
                  (base32
-                  "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
+                  "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
                 (file-name (git-file-name name version))))
       (propagated-inputs
        `(("emacs-evil" ,emacs-evil)
@@ -5184,35 +5182,34 @@ news items, openrc and runscripts.")
     (license license:gpl2+)))
 
 (define-public emacs-evil
-  (let ((commit "230b87212c81aaa68ef5547a6b998d9c365fe139"))
-    (package
-      (name "emacs-evil")
-      (version (git-version "1.2.13" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacs-evil/evil")
-               (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
-         (sha256
-          (base32
-           "0c9zy3bpck10gcrv79kd3h7i4ygd5bgbgy773n0lg7a2r5kwn1gx"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-undo-tree" ,emacs-undo-tree)
-         ("emacs-goto-chg" ,emacs-goto-chg)))
-      (home-page "https://github.com/emacs-evil/evil")
-      (synopsis "Extensible Vi layer for Emacs")
-      (description
-       "Evil is an extensible vi layer for Emacs.  It emulates the
+  (package
+    (name "emacs-evil")
+    (version "1.2.14")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-evil/evil")
+             (commit version)))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-undo-tree" ,emacs-undo-tree)
+       ("emacs-goto-chg" ,emacs-goto-chg)))
+    (home-page "https://github.com/emacs-evil/evil")
+    (synopsis "Extensible Vi layer for Emacs")
+    (description
+     "Evil is an extensible vi layer for Emacs.  It emulates the
 main features of Vim, and provides facilities for writing custom
 extensions.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-evil-collection
-  (let ((commit "4e1f0e0b17153d460805a0da90d6191d66b2673d")
-        (revision "5"))
+  (let ((commit "0cfdf4ecf0420aac2a9dd29ff7b54067c3433d71")
+        (revision "6"))
     (package
       (name "emacs-evil-collection")
       (version (git-version "0.0.1" revision commit))
@@ -5224,7 +5221,7 @@ extensions.")
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "11d5ppdnb2y2mwsdd9g62h7zds962kw3nss89zv5iwgcf9f1fb5x"))))
+                  "1igsvgxvij918myc397cjhfybmm11znc7961vnbcd5xlviq2p01y"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-evil" ,emacs-evil)))
@@ -5349,14 +5346,14 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update its sha256
     ;; checksum as well.
-    (version "9.2")
+    (version "9.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://elpa.gnu.org/packages/org-"
                                   version ".tar"))
               (sha256
                (base32
-                "14ydwh2r360fpi6v2g9rgf0zazy2ddq1pcdxvzn73h65glnnclz9"))))
+                "0ggca29pyksvfblyd2ciqhgi392wlqx0nmph7ck4m5wbzmk2qnry"))))
     (build-system emacs-build-system)
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
@@ -5370,14 +5367,14 @@ programming and reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20181230")
+    (version "20190203")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
                                   version ".tar"))
               (sha256
                (base32
-                "0gibwcjlardjwq19bh0zzszv0dxxlml0rh5iikkcdynbgndk1aa1"))))
+                "060rm62p1660n9f6i5w8l932w7gn5ign93q92gva4jy4bkmvczyb"))))
     (arguments
      `(#:modules ((guix build emacs-build-system)
                   (guix build utils)
@@ -6959,7 +6956,9 @@ Emacs.")
          (modify-phases %standard-phases
            (add-after 'install 'install-executable
              (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
+               (let ((out (assoc-ref outputs "out"))
+                     (source-directory (string-append
+                                  (getenv "TMPDIR") "/source")))
                  (substitute* "bin/ert-runner"
                    (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
                     (string-append "ERT_RUNNER=\"" out
@@ -6968,7 +6967,10 @@ Emacs.")
                  (install-file "bin/ert-runner" (string-append out "/bin"))
                  (wrap-program (string-append out "/bin/ert-runner")
                    (list "EMACSLOADPATH" ":" 'prefix
-                         (string-split (getenv "EMACSLOADPATH") #\:)))
+                         ;; Do not capture the transient source directory in
+                         ;; the wrapper.
+                         (delete source-directory
+                                 (string-split (getenv "EMACSLOADPATH") #\:))))
                  #t))))
          #:include (cons* "^reporters/.*\\.el$" %default-include)))
       (home-page "https://github.com/rejeep/ert-runner.el")
@@ -11305,39 +11307,38 @@ Org-mode.  It features:
       (license license:gpl3+))))
 
 (define-public emacs-fish-completion
-  (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
-    (package
-      (name "emacs-fish-completion")
-      (version (git-version "20180616" "1" commit))
-      (source
-       (origin
-         (method url-fetch)
-         (uri (string-append
-               "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
-               "archive.tar.gz?ref="
-               commit))
-         (sha256
-          (base32
-           "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
-      (build-system emacs-build-system)
-      (inputs `(("fish" ,fish)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'configure
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((fish (assoc-ref inputs "fish")))
-                 ;; Specify the absolute file names of the various
-                 ;; programs so that everything works out-of-the-box.
-                 (emacs-substitute-variables
-                     "fish-completion.el"
-                   ("fish-completion-command"
-                    (string-append fish "/bin/fish")))))))))
-      (home-page
-       "https://gitlab.com/Ambrevar/emacs-fish-completion")
-      (synopsis "Fish completion for Emacs pcomplete")
-      (description
-       "This package provides completion for the Fish shell to pcomplete (used
+  (package
+    (name "emacs-fish-completion")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
+             "archive.tar.gz?ref="
+             version))
+       (sha256
+        (base32
+         "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0"))))
+    (build-system emacs-build-system)
+    (inputs `(("fish" ,fish)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((fish (assoc-ref inputs "fish")))
+               ;; Specify the absolute file names of the various
+               ;; programs so that everything works out-of-the-box.
+               (emacs-substitute-variables
+                   "fish-completion.el"
+                 ("fish-completion-command"
+                  (string-append fish "/bin/fish")))))))))
+    (home-page
+     "https://gitlab.com/Ambrevar/emacs-fish-completion")
+    (synopsis "Fish completion for Emacs pcomplete")
+    (description
+     "This package provides completion for the Fish shell to pcomplete (used
 by shell and Eshell).  You can set it up globally with:
 
 @example
@@ -11352,7 +11353,7 @@ shell/Eshell mode hook.
 The package @code{emacs-bash-completion} is an optional dependency: if available,
 @code{fish-completion-complete} can be configured to fall back on bash to further
 try completing.  See @code{fish-completion-fallback-on-bash-p}.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-gif-screencast
   (let ((commit "12b25442b97b84abae74ecb5190a9d14ff7cfe5a"))
@@ -12970,3 +12971,143 @@ comments.")
       (description "This package provides an Emacs major mode which acts as a
 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
       (license license:gpl3+))))
+
+(define-public emacs-mkmcc-gnuplot-mode
+  (package
+    (name "emacs-mkmcc-gnuplot-mode")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mkmcc/gnuplot-mode")
+             (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
+    (build-system emacs-build-system)
+    (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
+    (synopsis "Minimal emacs major mode for editing gnuplot scripts")
+    (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
+mode for editing gnuplot scripts.  It provides syntax highlighting,
+indentation and a command to plot the file.")
+    (license license:gpl3+)))
+
+(define-public emacs-dtrt-indent
+  (package
+    (name "emacs-dtrt-indent")
+    (version "0.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jscheid/dtrt-indent")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/jscheid/dtrt-indent")
+    (synopsis "Minor mode that guesses the indentation offset")
+    (description "This package provides a minor mode that guesses the
+indentation offset originally used for creating source code files and
+transparently adjusts the corresponding settings in Emacs, making it more
+convenient to edit foreign files.")
+    (license license:gpl2+)))
+
+(define-public emacs-repo
+  (package
+    (name "emacs-repo")
+    (version "0.1.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/canatella/repo-el")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("emacs-el-mock" ,emacs-el-mock)
+       ("ert-runner" ,emacs-ert-runner)))
+    (propagated-inputs
+     `(("emacs-f" ,emacs-f)
+       ("magit" ,emacs-magit)))
+    (home-page "https://github.com/canatella/repo-el")
+    (synopsis "Emacs interface for the Google Repo tool")
+    (description "This package provides integration of the Google Repo tool
+with emacs.  It displays the output of the @code{repo status} command in a
+buffer and launches Magit from the status buffer for the project at point.")
+    (license license:gpl3+)))
+
+(define-public emacs-alect-themes
+  (package
+    (name "emacs-alect-themes")
+    (version "0.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/alezost/alect-themes")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/alezost/alect-themes")
+    (synopsis "Low contrast, light, dark and black color theme for Emacs")
+    (description "@code{emacs-alect-themes} provides configurable light, dark
+and black color themes for Emacs.  The themes are intended to be used with
+GUI.")
+    (license license:gpl3+)))
+
+(define-public emacs-google-c-style
+  (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
+        (revision "0"))
+    (package
+      (name "emacs-google-c-style")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/google/styleguide")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/google/styleguide")
+      (synopsis "Emacs settings file for Google C/C++ style")
+      (description "@code{emacs-google-c-style} provides an Emacs settings
+file for Google C and C++ style.")
+      (license license:gpl1+))))
+
+(define-public emacs-redshank
+  (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
+        (revision "1"))
+    (package
+      (name "emacs-redshank")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "http://www.foldr.org/~michaelw/projects/redshank.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-paredit" ,emacs-paredit)))
+      (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
+      (synopsis "Common Lisp Editing Extensions (for Emacs)")
+      (description "Redshank is a collection of code-wrangling Emacs macros
+mostly geared towards Common Lisp, but some are useful for other Lisp
+dialects, too.  Redshank's code transformations aim to be expression-based (as
+opposed to character-based).")
+      (license license:gpl1+))))
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 1e7fd098cb..990aa05dd8 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -977,14 +977,14 @@ SPI, I2C, JTAG.")
 (define-public fc-host-tools
   (package
     (name "fc-host-tools")
-    (version "8")
+    (version "9a")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ftp.freecalypso.org/pub/GSM/"
                                   "FreeCalypso/fc-host-tools-r" version ".tar.bz2"))
               (sha256
                (base32
-                "00kl9442maaxnsjvl5qc4c6fzjkgr3hac9ax1z2k6ry6byfknj6z"))))
+                "15w1njlvbzzbr9bwj2hwy8na3a55p1z1cysk5h9iziz9y955ansg"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; No tests exist.
@@ -1001,15 +1001,15 @@ SPI, I2C, JTAG.")
          (add-after 'handle-tarbomb 'patch-installation-paths
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* '("Makefile"
-                            "rvinterf/libasync/launchrvif.c"
+                            "rvinterf/etmsync/fsiomain.c"
+                            "rvinterf/etmsync/fsnew.c"
+                            "rvinterf/asyncshell/help.c"
+                            "rvinterf/libinterf/launchrvif.c"
                             "loadtools/defpath.c"
                             "loadtools/Makefile"
                             "miscutil/c139explore"
                             "miscutil/pirexplore"
                             "ffstools/tiffs-wrappers/installpath.c"
-                            "rvinterf/rvtat/launchrvif.c"
-                            "rvinterf/etmsync/launchrvif.c"
-                            "rvinterf/libasync/launchrvif.c"
                             "uptools/atcmd/atinterf.c")
                (("/opt/freecalypso/loadtools")
                 (string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools"))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 19050af1ed..184a3bc859 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
 ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;;
@@ -1053,7 +1053,7 @@ emulation community.  It provides highly accurate emulation.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.7.5")
+    (version "1.7.6")
     (source
      (origin
        (method git-fetch)
@@ -1062,7 +1062,7 @@ emulation community.  It provides highly accurate emulation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jfpgl34jjxn3dvxd1kd564swkw7v98hnn562v998b7vllz3dxdm"))))
+        (base32 "122c6cqax92qk2mhm9ywnwhw3qkv8f1ybma9gal5w6i2gsmp0s0s"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -1072,10 +1072,14 @@ emulation community.  It provides highly accurate emulation.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (etc (string-append out "/etc"))
-                    (vulkan (assoc-ref inputs "vulkan-loader")))
+                    (vulkan (assoc-ref inputs "vulkan-loader"))
+                    (wayland-protocols (assoc-ref inputs "wayland-protocols")))
                ;; Hard-code the path to libvulkan.so.
                (substitute* "gfx/common/vulkan_common.c"
                  (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
+               (substitute* "gfx/common/wayland/generate_wayland_protos.sh"
+                 (("/usr/local/share/wayland-protocols")
+                 (string-append wayland-protocols "/share/wayland-protocols")))
                (substitute* "qb/qb.libs.sh"
                  (("/bin/true") (which "true")))
                ;; Use shared zlib.
@@ -1100,6 +1104,7 @@ emulation community.  It provides highly accurate emulation.")
        ("libxinerama" ,libxinerama)
        ("libxkbcommon" ,libxkbcommon)
        ("libxml2" ,libxml2)
+       ("libxrandr" ,libxrandr)
        ("libxv" ,libxv)
        ("mesa" ,mesa)
        ("openal" ,openal)
@@ -1113,6 +1118,7 @@ emulation community.  It provides highly accurate emulation.")
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)
        ("which" ,which)))
     (home-page "https://www.libretro.com/")
     (synopsis "Reference frontend for the libretro API")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index ea5dd885d1..ad7ae18781 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1911,3 +1912,24 @@ editors.")
                    license:cc0 ; libs/optional, libs/sexpresso
                    license:bsd-2 ; libs/optional/tests/catch.hpp
                    license:lgpl2.1+)))) ; libs/quazip
+
+(define-public gpx
+  (package
+    (name "gpx")
+    (version "2.5.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/markwal/GPX.git")
+                    (commit version)))
+              (sha256
+               (base32
+                "1yab269x8qyf7rd04vaxyqyjv4pzz9lp4sc4dwh927k23avr3rw5"))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/markwal/GPX")
+    (synopsis "Converting gcode to x3g files for 3D printing")
+    (description
+     "GPX is a post processing utility for converting gcode output from 3D
+slicing software to x3g files for standalone 3D printing on common 3D
+printers.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 250b1db144..ce67694cfe 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -6,10 +6,10 @@
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
-;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -139,17 +139,17 @@ line client and a client based on Qt.")
   (package
     (name "ledger")
     (version "3.1.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/ledger/ledger/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h"))
-              (patches (search-patches "ledger-revert-boost-python-fix.patch"
-                                       "ledger-fix-uninitialized.patch"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ledger/ledger.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1j4p7djkmdmd858hylrsc3inamh9z0vkfl98s9wiqfmrzw51pmxp"))
+       (patches (search-patches "ledger-revert-boost-python-fix.patch"
+                                "ledger-fix-uninitialized.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -252,16 +252,16 @@ in ability, and easy to use.")
     (version "0.9.13")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/stesie/geierlein"
-                           "/archive/V" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stesie/geierlein.git")
+             (commit (string-append "V" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "11jfa7mxvvf0ldhx0hsvjbx3xwvzvn2wrfjpms8c7qmrnqhwh4wp"))))
+        (base32 "00zpwr3lk2vdmd60fgdwdk0xxs52wvnm19ln2m75yfphydvkglic"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; would require npm, python and a lot more
+     `(#:tests? #f                  ; would require npm, python and a lot more
        #:phases
         (modify-phases %standard-phases
           (delete 'configure)           ; no configure script
@@ -590,13 +590,13 @@ Monero GUI client.")
     (version "0.9.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/romanz/trezor-agent/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/romanz/trezor-agent.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0h8jb147vpjk7mqbl4za0xdh7lblhx07n9dfk80kn2plwnvrry1x"))))
+        (base32 "15aaqk79d9y9nbsfznf2iscz12z5ispcj8kr8v5bc0sqqj2brs12"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -604,7 +604,7 @@ Monero GUI client.")
          (delete 'check)
          (add-after 'install 'check
            (lambda* (#:key outputs inputs #:allow-other-keys)
-             ;; Make installed package available for running the tests
+             ;; Make installed package available for running the tests.
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test"))))))
     (propagated-inputs
@@ -855,7 +855,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
 (define-public python-duniterpy
   (package
     (name "python-duniterpy")
-    (version "0.51.0")
+    (version "0.52.0")
     (source
      (origin
        (method git-fetch)
@@ -866,7 +866,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "074mh2kh3s00ib0h99050ss3j4c51v57py6dzm7crida6l0iydbv"))))
+         "07liba2d21hb8m3n6yccfamq9yq0ryywh18vs9g2sgywfsnv82lh"))))
     (build-system python-build-system)
     (arguments
      ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
@@ -884,16 +884,17 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
                (copy-recursively "docs/_build/html" doc))
              #t)))))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+     `(("sphinx" ,python-sphinx)
+       ("sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-attr" ,python-attr)
-       ("python-base58" ,python-base58)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-libnacl" ,python-libnacl)
-       ("python-pylibscrypt" ,python-pylibscrypt)
-       ("python-pypeg2" ,python-pypeg2)))
+     `(("aiohttp" ,python-aiohttp)
+       ("attr" ,python-attr)
+       ("base58" ,python-base58)
+       ("jsonschema" ,python-jsonschema)
+       ("libnacl" ,python-libnacl)
+       ("pyaes" ,python-pyaes)
+       ("pylibscrypt" ,python-pylibscrypt)
+       ("pypeg2" ,python-pypeg2)))
     (home-page "https://git.duniter.org/clients/python/duniterpy")
     (synopsis "Python implementation of Duniter API")
     (description "@code{duniterpy} is an implementation of
@@ -912,7 +913,7 @@ main features are:
 (define-public silkaj
   (package
     (name "silkaj")
-    (version "0.6.1")
+    (version "0.6.5")
     (source
      (origin
        (method git-fetch)
@@ -922,17 +923,16 @@ main features are:
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0a99gbgdd7m9wisqhqpfyaim0rlv9gkp8gmrppkagqf6j0683igh"))))
+         "1fy509vsmz7rs9m3vah0ky0jvq9mxmfga6b18rkrkl2lbjk872q2"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;no test
     (inputs
-     `(("python-commandlines" ,python-commandlines)
-       ("python-ipaddress" ,python-ipaddress)
-       ("python-pyaes" ,python-pyaes)
-       ("python-pynacl" ,python-pynacl)
-       ("python-scrypt" ,python-scrypt)
-       ("python-tabulate" ,python-tabulate)))
+     `(("click" ,python-click)
+       ("duniterpy" ,python-duniterpy)
+       ("ipaddress" ,python-ipaddress)
+       ("pynacl" ,python-pynacl)
+       ("tabulate" ,python-tabulate)))
     (home-page "https://silkaj.duniter.org/")
     (synopsis "Command line client for Duniter network")
     (description "@code{Silkaj} is a command line client for the
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 523f9e6334..5f1931e7fe 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,14 +28,14 @@
 (define-public freeipmi
   (package
     (name "freeipmi")
-    (version "1.6.2")
+    (version "1.6.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0jhjf21gn1m9lhjsc1ard9zymq25mk7rxcyygjfxgy0vb4j36l9i"))))
+               "1sg12ycig2g5yv9l3vx25wsjmz7ybnrsvji0vs51yjmclwsygm5a"))))
     (build-system gnu-build-system)
     (inputs
      `(("libgcrypt" ,libgcrypt)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 07f36bba4e..5d7c89a880 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4544,7 +4544,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad-data
   (package
     (name "0ad-data")
-    (version "0.0.23-alpha")
+    (version "0.0.23b-alpha")
     (source
      (origin
        (method url-fetch)
@@ -4553,7 +4553,7 @@ fight against their plot and save his fellow rabbits from slavery.")
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1b6qcvd8yyyxavgdwpcs7asmln3xgnvjkglz6ggvwb956x37ggzx"))
+         "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1"))
        (modules '((guix build utils)))
        (snippet
         #~(begin
@@ -4597,7 +4597,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad
   (package
     (name "0ad")
-    (version "0.0.23-alpha")
+    (version "0.0.23b-alpha")
     (source
      (origin
        (method url-fetch)
@@ -4606,7 +4606,7 @@ fight against their plot and save his fellow rabbits from slavery.")
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0qz1sg4n5y766qwgi63drrrx6k17kk0rcnn9a4a9crllk2vf78fg"))))
+         "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1"))))
        ;; A snippet here would cause a build failure because of timestamps
        ;; reset.  See https://bugs.gnu.org/26734.
     (inputs
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4f2b24b8ee..3ea1cf5978 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -50,27 +50,20 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages gnome)
-  #: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 cmake)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix build-system glib-or-gtk)
-  #:use-module (guix build-system meson)
-  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages calendar)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -78,87 +71,94 @@
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages dns)
-  #:use-module (gnu packages documentation)
-  #:use-module (gnu packages flex)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages gperf)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages openldap)
-  #:use-module (gnu packages pdf)
-  #:use-module (gnu packages polkit)
-  #:use-module (gnu packages popt)
-  #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages inkscape)
   #:use-module (gnu packages ibus)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages inkscape)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libunistring)
-  #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages lua)
-  #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages mail)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
+  #:use-module (gnu packages speech)
+  #:use-module (gnu packages spice)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
-  #:use-module (gnu packages xml)
-  #:use-module (gnu packages gl)
-  #:use-module (gnu packages graphviz)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages spice)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
-  #:use-module (gnu packages xiph)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages mail)
-  #:use-module (gnu packages kerberos)
-  #:use-module (gnu packages multiprecision)
-  #:use-module (gnu packages backup)
-  #:use-module (gnu packages nettle)
-  #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages cdrom)
-  #:use-module (gnu packages samba)
-  #:use-module (gnu packages readline)
-  #:use-module (gnu packages fonts)
-  #:use-module (gnu packages speech)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages vpn)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xorg)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e6269f526f..768e641786 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
@@ -399,6 +399,10 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                  #t)))))))
     (native-inputs
      `(("go" ,go-1.4)
+       ,@(match (%current-system)
+           ((or "armhf-linux" "aarch64-linux")
+            `(("gold" ,binutils-gold)))
+           (_ `()))
        ,@(package-native-inputs go-1.4)))
     (supported-systems %supported-systems)))
 
@@ -2730,7 +2734,7 @@ needing to use secp256k1 elliptic curve cryptography.")
 
 (define-public go-github-com-minio-sha256-simd
   (let ((commit "51976451ce1942acbb55707a983ed232fa027110")
-        (revision "0"))
+        (revision "2"))
     (package
       (name "go-github-com-minio-sha256-simd")
       (version (git-version "0.0.0" revision commit))
@@ -3365,3 +3369,28 @@ have super fancy logs.")
       (synopsis "Filesystem-related functions for Go")
       (description "Package fs provides filesystem-related functions.")
       (license license:bsd-3))))
+
+(define-public go-github-com-direnv-go-dotenv
+  (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
+        (revision "0"))
+    (package
+      (name "go-github-com-direnv-go-dotenv")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/direnv/go-dotenv")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/direnv/go-dotenv"))
+      (home-page "https://github.com/direnv/go-dotenv")
+      (synopsis "Go dotenv parsing library")
+      (description "This package provides a library for parsing the dotenv
+format in Go.")
+      (license license:expat))))
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 5c6a6c7e0b..ae05197e16 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -45,8 +45,10 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages ed)
+  #:use-module (gnu packages emacs)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
@@ -62,6 +64,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
@@ -84,7 +87,7 @@
 
 (define-public artanis
   (let ((release "0.3.1")
-	(revision 0))
+        (revision 0))
     (package
       (name "artanis")
       (version (if (zero? revision)
@@ -151,6 +154,13 @@
          #:test-target "test"
          #:phases
          (modify-phases %standard-phases
+           (add-after 'unpack 'patch-site-dir
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "artanis/commands/help.scm"
+                 (("\\(%site-dir\\)")
+                  (string-append "\""
+                                 (assoc-ref outputs "out")
+                                 "/share/guile/site/2.2\"")))))
            (add-before 'install 'substitute-root-dir
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((out  (assoc-ref outputs "out")))
@@ -161,14 +171,16 @@
                  (mkdir-p (string-append out "/bin")) ;for the `art' executable
                  #t)))
            (add-after 'install 'wrap-art
-             (lambda* (#:key outputs #:allow-other-keys)
+             (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin"))
                       (scm (string-append out "/share/guile/site/2.2"))
                       (go  (string-append out "/lib/guile/2.2/site-ccache")))
                  (wrap-program (string-append bin "/art")
-                   `("GUILE_LOAD_PATH" ":" prefix (,scm))
-                   `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))
+                   `("GUILE_LOAD_PATH" ":" prefix
+                     (,scm ,(getenv "GUILE_LOAD_PATH")))
+                   `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
                  #t))))))
       (synopsis "Web application framework written in Guile")
       (description "GNU Artanis is a web application framework written in Guile
@@ -548,6 +560,45 @@ HTML (via SXML) or any other format for rendering.")
 It has a nice, simple s-expression based syntax.")
     (license license:lgpl3+)))
 
+(define-public guile-squee
+  (let ((commit "a85902a92bf6f58a1d35fd974a01ade163deda8d")
+        (revision "0"))
+    (package
+      (name "guile-squee")
+      (version (string-append "0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://notabug.org/cwebber/guile-squee.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0p1lpsp4kx57j3ai1dkxilm4ziavzzx8wbbc42m3hpziq0a7qz5z"))))
+      (build-system guile-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "squee.scm"
+                 (("dynamic-link \"libpq\"")
+                  (string-append
+                   "dynamic-link \""
+                   (assoc-ref inputs "postgresql") "/lib/libpq.so"
+                   "\"")))
+               #t)))))
+      (inputs
+       `(("postgresql" ,postgresql)))
+      (native-inputs
+       `(("guile" ,guile-2.2)))
+      (home-page "https://notabug.org/cwebber/guile-squee")
+      (synopsis "Connect to PostgreSQL using Guile")
+      (description
+       "@code{squee} is a Guile library for connecting to PostgreSQL databases
+using Guile's foreign function interface.")
+      (license license:lgpl3+))))
+
 (define-public guile-colorized
   (package
     (name "guile-colorized")
@@ -1045,8 +1096,10 @@ library}.")
        (list (string-append
               "--with-guile-site-dir=" %output "/share/guile/site/2.2"))
        #:make-flags
-       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:"
-                            (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib"))
+       (list (string-append
+              "LDFLAGS=-Wl,-rpath=" %output "/lib:"
+              (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib" ":"
+              (assoc-ref %build-inputs "guile-dbd-postgresql") "/lib"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'patch-extension-path
@@ -1058,7 +1111,8 @@ library}.")
                (substitute* dbi.scm (("libguile-dbi") ext))
                #t))))))
     (inputs
-     `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files
+     `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3)
+       ("guile-dbd-postgresql" ,guile-dbd-postgresql))) ; only shared library, no scheme files
     (propagated-inputs
      `(("guile" ,guile-2.2)))
     (synopsis "Guile database abstraction layer")
@@ -1105,6 +1159,62 @@ It currently supports MySQL, Postgres and SQLite3.")
 SQL databases.  This package implements the interface for SQLite.")
     (license license:gpl2+)))
 
+(define-public guile-dbd-postgresql
+  (let ((commit "e97589b6b018b206c901e4cc24db463407a4036b")
+        (revision 0))
+    (package
+      (name "guile-dbd-postgresql")
+      (version (string-append
+                "2.1.6-" (number->string revision) "." (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/opencog/guile-dbi.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0n1gv9a0kdys10a4qmnrwvg5sydwb03880asri4gqdchcj3fimni"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _
+               ;; The upstream Git repository contains all the code, so change
+               ;; to the relevant directory.
+               (chdir "guile-dbd-postgresql")
+               #t))
+           (add-after 'chdir 'patch-src/Makefile.am
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/Makefile.am"
+                 (("/usr/include")
+                  (string-append (assoc-ref inputs "postgresql") "/include")))
+               #t))
+           (add-after 'patch-src/Makefile.am 'patch-src
+             (lambda _
+               (substitute* "src/guile-dbd-postgresql.c"
+                 (("postgresql/libpq-fe\\.h") "libpq-fe.h"))
+               #t)))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("automake" ,automake)
+         ("autoconf" ,autoconf)
+         ("perl" ,perl)
+         ("libtool" ,libtool)
+         ("guile-dbi-bootstrap" ,guile-dbi-bootstrap)))
+      (inputs
+       `(("postgresql" ,postgresql)
+         ("zlib" ,zlib)))
+      (synopsis "Guile DBI driver for PostgreSQL")
+      (home-page
+       "https://github.com/opencog/guile-dbi/tree/master/guile-dbd-postgresql")
+      (description
+       "@code{guile-dbi} is a library for Guile that provides a convenient
+interface to SQL databases.  This package implements the interface for
+PostgreSQL.")
+      (license license:gpl2+))))
+
 (define-public guile-config
   (package
     (name "guile-config")
@@ -1236,7 +1346,7 @@ The library is shipped with documentation in Info format and usage examples.")
 (define-public guile-wisp
   (package
     (name "guile-wisp")
-    (version "0.9.9")
+    (version "0.9.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://bitbucket.org/ArneBab/"
@@ -1244,13 +1354,18 @@ The library is shipped with documentation in Info format and usage examples.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1xa0f0fvcrimqap50azv5872bfx8jbhc6baxa1prpbwcksbh8gdz"))))
+                "1ii14qz1lx7ffhb8i9q7dgaiwbif8g2q182skx17j11skp65c8r3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
+                  ((guix build emacs-build-system) #:prefix emacs:)
                   (guix build utils)
+                  (guix build emacs-utils)
                   (ice-9 rdelim)
                   (ice-9 popen))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-build-system)
+                           (guix build emacs-utils))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-/usr/bin/env
@@ -1284,12 +1399,19 @@ The library is shipped with documentation in Info format and usage examples.")
                              (invoke "guild" "compile" "-L" module-dir
                                      file "-o" go)))
                          (find-files module-dir "\\.scm$"))
-               #t))))))
+               #t)))
+         (add-after 'install 'install-emacs-files
+           (assoc-ref emacs:%standard-phases 'install))
+         (add-after 'install-emacs-files 'compile-emacs-files
+           (assoc-ref emacs:%standard-phases 'build))
+         (add-after 'compile-emacs-files 'make-autoloads
+           (assoc-ref emacs:%standard-phases 'make-autoloads)))))
     (home-page "https://draketo.de/english/wisp")
     (inputs
      `(("guile" ,guile-2.2)))
     (native-inputs
-     `(("python" ,python)
+     `(("emacs" ,emacs-minimal)
+       ("python" ,python)
        ("pkg-config" ,pkg-config)))
     (synopsis "Whitespace to lisp syntax for Guile")
     (description "Wisp is a syntax for Guile which provides a Python-like
@@ -1715,14 +1837,14 @@ interface for reading articles in any format.")
 (define-public guile-redis
   (package
     (name "guile-redis")
-    (version "1.0.0")
+    (version "1.3.0")
     (home-page "https://github.com/aconchillo/guile-redis")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "/archive/" version ".tar.gz"))
               (sha256
                (base32
-                "1dp5fmqvma59pvp1nfpq6hqgbmjici8sd1y8llahl87fynw1dvr9"))))
+                "1li70a2716my9q9zfq0qn2x5d1cir9k2vx0jm9glm464yaf1vj39"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -1839,3 +1961,27 @@ format is also supported.")
 (define-public mcron2
   ;; This was mthl's mcron development branch, and it became mcron 1.1.
   (deprecated-package "mcron2" mcron))
+
+(define-public guile-picture-language
+  (let ((commit "1531116036d1b5e0d2482ff2c8d77ad21f1d2bef")
+        (revision "1"))
+    (package
+      (name "guile-picture-language")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.elephly.net/software/guile-picture-language.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "04salmqf5x84vb3qkkxx47b64jyl290zsf3ik81l9hg6fwvvlmq3"))))
+      (build-system guile-build-system)
+      (inputs
+       `(("guile" ,guile-2.2)))
+      (home-page "https://git.elephly.net/software/guile-picture-language.git")
+      (synopsis "Picture language for Guile")
+      (description
+       "This package provides a simple SVG-based picture language for Guile.
+The picture values can directly be displayed in Geiser.")
+      (license license:lgpl3+))))
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index a67919691f..9d00c9c981 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -101,58 +102,55 @@ that are shared between @command{go-ipfs/commands} and its rewrite
       (license license:expat))))
 
 (define-public gx
-  (let ((commit
-          "89338e509426d2895f20086685cf4c77d64cc5df")
-        (revision "0"))
-    (package
-      (name "gx")
-      (version (git-version "0.14.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/whyrusleeping/gx.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "08gh04jln8rxpq0j4fm4chjap162wp8cjwj9szbvj9c7123s42rd"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/whyrusleeping/gx"))
-      (native-inputs
-       `(("go-github-com-blang-semver" ,go-github-com-blang-semver)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-ipfs-go-ipfs-api" ,go-github-com-ipfs-go-ipfs-api)
-         ("go-github-com-ipfs-go-ipfs-cmdkit-files" ,go-github-com-ipfs-go-ipfs-cmdkit-files)
-         ("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
-         ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-         ("go-github-com-libp2p-go-libp2p-metrics" ,go-github-com-libp2p-go-libp2p-metrics)
-         ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
-         ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
-         ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
-         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
-         ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))
-         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-         ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
-         ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
-         ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
-         ("go-github-com-whyrusleeping-json-filter" ,go-github-com-whyrusleeping-json-filter)
-         ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
-         ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)))
-      (home-page "https://github.com/whyrusleeping/gx")
-      (synopsis "Package management tool using IPFS")
-      (description "@command{gx} is a packaging tool built around the
+  (package
+    (name "gx")
+    (version "0.14.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/whyrusleeping/gx.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0pfx2p59xdbmqzfbgaf8xvlnzh8m05hkg596glq5kvl8ib65i4ha"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/whyrusleeping/gx"))
+    (native-inputs
+     `(("go-github-com-blang-semver" ,go-github-com-blang-semver)
+       ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
+       ("go-github-com-ipfs-go-ipfs-api" ,go-github-com-ipfs-go-ipfs-api)
+       ("go-github-com-ipfs-go-ipfs-cmdkit-files" ,go-github-com-ipfs-go-ipfs-cmdkit-files)
+       ("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
+       ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
+       ("go-github-com-libp2p-go-libp2p-metrics" ,go-github-com-libp2p-go-libp2p-metrics)
+       ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
+       ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
+       ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
+       ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
+       ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
+       ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
+       ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
+       ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
+       ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
+       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
+       ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
+       ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))
+       ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
+       ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
+       ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
+       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
+       ("go-github-com-whyrusleeping-json-filter" ,go-github-com-whyrusleeping-json-filter)
+       ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
+       ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)))
+    (home-page "https://github.com/whyrusleeping/gx")
+    (synopsis "Package management tool using IPFS")
+    (description "@command{gx} is a packaging tool built around the
 distributed, content addressed filesystem IPFS.  It aims to be flexible,
 powerful and simple.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public go-github-com-whyrusleeping-gx-util
   (package
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index e27cffa331..f0725d77e8 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -368,10 +368,10 @@ connections from and to iOS devices by connecting to a socket provided by a
                             "m"))))
     (propagated-inputs
      `(("openssl" ,openssl)
+       ("libplist" ,libplist)
        ("libusbmuxd" ,libusbmuxd)))
     (inputs
-     `(("libplist" ,libplist)
-       ("python" ,python)))
+     `(("python" ,python)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-cython" ,python-cython)
@@ -386,6 +386,55 @@ addressbook/calendars/notes and bookmarks and (using libgpod) synchronize
 music and video to the device.")
     (license license:lgpl2.1+)))
 
+(define-public ifuse
+  (package
+    (name "ifuse")
+    (version "1.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.libimobiledevice.org/downloads/"
+                                  "ifuse-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1p9a4n36jb194cnp6v57cz2bggwbywaz8pbpb95ch83pzdkdx257"))))
+    (inputs
+     `(("fuse" ,fuse)
+       ("libimobiledevice" ,libimobiledevice)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (home-page "http://www.libimobiledevice.org/")
+    (synopsis "Mount iOS devices")
+    (description "This package provides @command{ifuse}, a command to mount
+iOS devices and access their contents.")
+    (license license:lgpl2.1+)))
+
+(define-public usbmuxd
+  (package
+    (name "usbmuxd")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.libimobiledevice.org/downloads/"
+                                  "usbmuxd-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0bdlc7a8plvglqqx39qqampqm6y0hcdws76l9dffwl22zss4i29y"))))
+    (inputs
+     `(("libplist" ,libplist)
+       ("libusb" ,libusb)
+       ("libimobiledevice" ,libimobiledevice)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (home-page "http://www.libimobiledevice.org/")
+    (synopsis "Multiplex connections over USB to an iOS device")
+    (description "This package provides the @code{usbmuxd} daemon
+which multiplexes connections over USB to an iOS device.  To
+users, it means you can sync your music, contacts, photos, etc.
+over USB.")
+    (license license:gpl2+)))
+
 (define-public libmtp
   (package
     (name "libmtp")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 78bfadca26..f3b5476f2d 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -413,8 +413,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
 It has been modified to remove all non-free binary blobs.")
     (license license:gpl2)))
 
-(define %linux-libre-version "4.20.5")
-(define %linux-libre-hash "1fis4izy97d35wb5626av235agn22ww8dfmmcdlbiay37ihwwm98")
+(define %linux-libre-version "4.20.7")
+(define %linux-libre-hash "05jbpg4ivcbr8xi5ki03f4n57hnhc52nfjk1ik8czag7f4ph9v0b")
 
 (define %linux-libre-4.20-patches
   (list %boot-logo-patch
@@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.20-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.19-version "4.19.18")
-(define %linux-libre-4.19-hash "1m3qbd09zd7llq0fjsccyjr070n6szl5dj10qrlpd54bnvry22fc")
+(define %linux-libre-4.19-version "4.19.20")
+(define %linux-libre-4.19-hash "1rs4jvp88n23n9a6f037sn498fzl1fn96zsjjmjngb8nmjr1y9vp")
 
 (define %linux-libre-4.19-patches
   (list %boot-logo-patch
@@ -441,8 +441,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.19-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.96")
-(define %linux-libre-4.14-hash "03g28n9n4ci8y2qs59vili7dkqag7fmhr9q6ah8l66qn37d375k9")
+(define %linux-libre-4.14-version "4.14.98")
+(define %linux-libre-4.14-hash "165wlqqpb16zhrwihsb75y153xyz8q5dbi14xim7jsnvwlbh5i79")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -451,14 +451,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.153"
-                    "1ks910wk4nggp7ygai2pnr5b61ix2j3gxk95rv9wkd5za15sgbqa"
+  (make-linux-libre "4.9.155"
+                    "0fyj8dqhpqi3jh6i58avyvmg4mp9bplnpiffpp3fdka4v85lx152"
                     '("x86_64-linux" "i686-linux")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.172"
-                    "000bz3jfg0li3rwlf2c80df6682lhi59hj1kwm4hw7whgg69xi7b"
+  (make-linux-libre "4.4.173"
+                    "1iy8qzjvcssf7ppb590lqzhb01ap2fjqv9iam691q1d4r8vmgcsh"
                     '("x86_64-linux" "i686-linux")
                     #:configuration-file kernel-config))
 
@@ -1252,7 +1252,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
 (define-public iproute
   (package
     (name "iproute2")
-    (version "4.19.0")
+    (version "4.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1260,7 +1260,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "114rlb3bvrf7q6yr03mn1rj6gl7mrg0psvm2dx0qb2kxyjhmrv6r"))))
+                "1a7xyvqjxfnm7rk21amm0xgxa38clg7q7cmc4dmlg27q81mambf8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                                ; no test suite
@@ -4718,6 +4718,13 @@ libraries, which are often integrated directly into libfabric.")
                          (string-append %output "/include")))
                       (substitute* "Makefile"
                         (("/lib64") "/lib"))
+                      #t))
+                  (add-after 'unpack 'patch-sysmacros
+                    (lambda _
+                      (substitute* "ipath/ipath_proto.c"
+                        (("#include <sys/poll.h>" m)
+                         (string-append m "\n"
+                                        "#include <sys/sysmacros.h>")))
                       #t)))))
     (synopsis "Intel Performance Scaled Messaging (PSM) Libraries")
     (description
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 465454aad6..93dc1aaf80 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
@@ -3612,7 +3612,7 @@ portability, and boilerplate reduction in CSS.")
 (define-public cl-css
   (sbcl-package->cl-source-package sbcl-cl-css))
 
-(define-public ecl-cl-markup
+(define-public ecl-cl-css
   (sbcl-package->ecl-package sbcl-cl-css))
 
 (define-public sbcl-portable-threads
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index c5e422fbd5..4f2c1c31e7 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -1861,7 +1861,7 @@ converts them to maildir format directories.")
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.4.0")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
@@ -1869,7 +1869,7 @@ converts them to maildir format directories.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "14xsvpm5bc1wycisq882gqrnamnyi1q4rlk6anlw8ihzvwgm4h2j"))))
+         "1rx5mhgqkm7swbynrhbsz32v85h0rydb4kqfgfs9jrznd9d14m2d"))))
     (build-system gnu-build-system)
     (inputs
      `(("gnutls" ,gnutls)
@@ -2317,7 +2317,7 @@ on the fly.  Both programs are written in C and are very fast.")
 (define-public swaks
   (package
     (name "swaks")
-    (version "20170101.0")
+    (version "20181104.0")
     (source
      (origin
        (method url-fetch)
@@ -2326,7 +2326,7 @@ on the fly.  Both programs are written in C and are very fast.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4"))))
+         "0n1yd27xcyb1ylp5gln3yv5gzi9r377hjy1j32367kgb3247ygq2"))))
     (build-system perl-build-system)
     (inputs
      `(("perl-net-dns" ,perl-net-dns)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 871b4a5a3f..7d3ac773b3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -749,7 +749,7 @@ incompatible with HDF5.")
 (define-public hdf5
   (package
     (name "hdf5")
-    (version "1.8.19")
+    (version "1.8.21")
     (source
      (origin
       (method url-fetch)
@@ -759,12 +759,14 @@ incompatible with HDF5.")
                                 version ".tar.bz2")
                  (string-append "https://support.hdfgroup.org/ftp/HDF5/"
                                 "current"
-                                (apply string-append
-                                       (take (string-split version #\.) 2))
+                                (match (string-split version #\.)
+                                  ((major minor _ ...)
+                                   (string-append major minor)))
                                 "/src/hdf5-" version ".tar.bz2")))
       (sha256
-       (base32 "0f3jfbqpaaq21ighi40qzs52nb52kc2d2yjk541rjmsx20b3ih2r"))
-      (patches (list (search-patch "hdf5-config-date.patch")))))
+       (base32 "03glk4w4wyb1jyb443g53y3y1ncnf6mj2cqwm6avfr2awkgb3cg5"))
+      (patches (search-patches "hdf5-config-date.patch"
+                               "hdf5-1.8-mpi-deprecations.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -877,7 +879,8 @@ extremely large and complex data collections.")
                                 "/src/hdf5-" version ".tar.bz2")))
       (sha256
        (base32 "1pr85fa1sh2ky6ai2hs3f21lp252grl2cq3wbyi4rh7dm83gyrqj"))
-      (patches (list (search-patch "hdf5-config-date.patch")))))))
+      (patches (search-patches "hdf5-config-date.patch"
+                               "hdf5-mpi-deprecations.patch"))))))
 
 (define-public hdf-java
   (package
@@ -2331,7 +2334,8 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
               "RowPerm = NOROWPERM;"))
            #t))
        (patches (search-patches "superlu-dist-scotchmetis.patch"
-                                "superlu-dist-awpm-grid.patch"))))
+                                "superlu-dist-awpm-grid.patch"
+                                "superlu-dist-fix-mpi-deprecations.patch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("tcsh" ,tcsh)))
@@ -2691,7 +2695,7 @@ to BMP, JPEG or PNG image formats.")
 (define-public maxima
   (package
     (name "maxima")
-    (version "5.42.1")
+    (version "5.42.2")
     (source
      (origin
        (method url-fetch)
@@ -2699,7 +2703,7 @@ to BMP, JPEG or PNG image formats.")
                            version "-source/" name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ka0xf70a55ndgmyrq7p5xxbd78pq7bfkqhgxsivaqdw6gn5lmcg"))
+         "0kdncy6137sg3rradirxzj10mkcvafxd892zlclwhr9sa7b12zhn"))
        (patches (search-patches "maxima-defsystem-mkdir.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -2802,7 +2806,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "18.11.4")
+    (version "19.01.3")
     (source
      (origin
        (method git-fetch)
@@ -2812,7 +2816,7 @@ point numbers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1sz8n9v23q442l7yjj67pjh0dk78rl4cbcc3j8m1bm88anlfxl9r"))))
+         "1vwahx3zxkn3qlv4z0fm7v8wh0wspvs026alrh7ff7s0c2dcy95x"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -4244,3 +4248,485 @@ linear algebra primitives specifically targeting graph analytics.")
               license:gpl2+             ;include/psort/(funnel|sort)*.h
               license:x11               ;usort and psort
               license:bsd-3))))         ;CombBLAS and MersenneTwister.h
+
+(define-public dune-common
+  (package
+    (name "dune-common")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-common-" version ".tar.gz"))
+       (sha256
+        (base32
+         "019wcr1qf7jwyxx1y5y290wdlglylskvbb2m01ljkzcza2xnlmhw"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags)))
+         ;; These tests fail because they require a fully functional MPI
+         ;; environment.
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (setenv "ARGS"
+                     (string-append "--exclude-regex '("
+                                    (string-join
+                                     (list
+                                      "remoteindicestest"
+                                      "remoteindicestest-mpi-2"
+                                      "syncertest"
+                                      "syncertest-mpi-2"
+                                      "variablesizecommunicatortest"
+                                      "variablesizecommunicatortest-mpi-2"
+                                      "arithmetictestsuitetest"
+                                      "assertandreturntest"
+                                      "assertandreturntest_ndebug"
+                                      "concept"
+                                      "debugaligntest"
+                                      "mpicollectivecommunication"
+                                      "mpicollectivecommunication-mpi-2"
+                                      "mpiguardtest"
+                                      "mpiguardtest-mpi-2"
+                                      "mpihelpertest"
+                                      "mpihelpertest-mpi-2"
+                                      "mpihelpertest2"
+                                      "mpihelpertest2-mpi-2")
+                                     "|")
+                                    ")'"))
+             #t)))))
+    (inputs
+     `(("gmp" ,gmp)
+       ("metis" ,metis)
+       ("openmpi" ,openmpi)
+       ("openblas" ,openblas)
+       ("python" ,python)
+       ("superlu" ,superlu)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "DUNE, the Distributed and Unified Numerics Environment is a
+modular toolbox for solving @dfn{partial differential equations} (PDEs) with
+grid-based methods.  It supports the easy implementation of methods like
+@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite
+Differences} (FD).")
+    ;; GPL version 2 with "runtime exception" to make it behave like LGPLv2.
+    (license license:gpl2)))
+
+(define-public dune-geometry
+  (package
+    (name "dune-geometry")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-geometry-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hlaaxjyv9j05blasvb67sy02hd0w4g9znf68gdh3l731dd1aqbn"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags))))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("openblas" ,openblas)
+       ("gmp" ,gmp)
+       ("python" ,python)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "DUNE, the Distributed and Unified Numerics Environment is a
+modular toolbox for solving @dfn{partial differential equations} (PDEs) with
+grid-based methods.  It supports the easy implementation of methods like
+@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite
+Differences} (FD).
+
+This package contains the basic DUNE geometry classes.")
+    ;; GPL version 2 with "runtime exception"
+    (license license:gpl2)))
+
+(define-public dune-grid
+  (package
+    (name "dune-grid")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-grid-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1jp4vscm9yb9xg0lh7apzccfkhvgbnk652yahigmh3cvzpl4acd0"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags)))
+         ;; These tests fail because they require a fully functional MPI
+         ;; environment.
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (setenv "ARGS"
+                     (string-append "--exclude-regex '("
+                                    (string-join
+                                     (list
+                                      "scsgmappertest"
+                                      "conformvolumevtktest"
+                                      "gnuplottest"
+                                      "nonconformboundaryvtktest"
+                                      "subsamplingvtktest"
+                                      "vtktest"
+                                      "vtktest-mpi-2"
+                                      "vtksequencetest"
+                                      "gmshtest-onedgrid"
+                                      "test-dgf-yasp"
+                                      "test-dgf-yasp-offset"
+                                      "test-dgf-oned"
+                                      "test-geogrid-yaspgrid"
+                                      "test-gridinfo"
+                                      "test-identitygrid"
+                                      "testiteratorranges"
+                                      "test-hierarchicsearch"
+                                      "test-parallel-ug-mpi-2"
+                                      "test-yaspgrid-backuprestore-equidistant"
+                                      "test-yaspgrid-backuprestore-equidistant-mpi-2"
+                                      "test-yaspgrid-backuprestore-equidistantoffset"
+                                      "test-yaspgrid-backuprestore-equidistantoffset-mpi-2"
+                                      "test-yaspgrid-backuprestore-tensor"
+                                      "test-yaspgrid-backuprestore-tensor-mpi-2"
+                                      "test-yaspgrid-tensorgridfactory"
+                                      "test-yaspgrid-tensorgridfactory-mpi-2"
+                                      "test-yaspgrid-yaspfactory-1d"
+                                      "test-yaspgrid-yaspfactory-1d-mpi-2"
+                                      "test-yaspgrid-yaspfactory-2d"
+                                      "test-yaspgrid-yaspfactory-2d-mpi-2"
+                                      "test-yaspgrid-yaspfactory-3d"
+                                      "test-yaspgrid-yaspfactory-3d-mpi-2"
+                                      "globalindexsettest"
+                                      "persistentcontainertest"
+                                      "structuredgridfactorytest"
+                                      "tensorgridfactorytest"
+                                      "vertexordertest")
+                                     "|")
+                                    ")'"))
+             #t)))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("dune-geometry" ,dune-geometry)
+       ("gmp" ,gmp)
+       ("metis" ,metis)
+       ("openblas" ,openblas)
+       ("openmpi" ,openmpi)
+       ("python" ,python)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "DUNE, the Distributed and Unified Numerics Environment is a
+modular toolbox for solving @dfn{partial differential equations} (PDEs) with
+grid-based methods.  It supports the easy implementation of methods like
+@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite
+Differences} (FD).
+
+This package contains the basic DUNE grid classes.")
+    ;; GPL version 2 with "runtime exception"
+    (license license:gpl2)))
+
+(define-public dune-istl
+  (package
+    (name "dune-istl")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-istl-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l2gyrvys5w6wsmk0ckbb7295s80b7yk7qrl7x66akv2jv1nzq2w"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags)))
+         ;; These tests fail because they require a fully functional MPI
+         ;; environment.
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (setenv "ARGS"
+                     (string-append "--exclude-regex '("
+                                    (string-join
+                                     (list
+                                      "galerkintest"
+	                              "hierarchytest"
+	                              "pamgtest"
+	                              "pamg_comm_repart_test"
+	                              "matrixredisttest"
+	                              "vectorcommtest"
+	                              "matrixmarkettest")
+                                     "|")
+                                    ")'"))
+             #t)))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("metis" ,metis)
+       ("superlu" ,superlu)
+       ("openblas" ,openblas)
+       ("gmp" ,gmp)
+       ("python" ,python)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "DUNE, the Distributed and Unified Numerics Environment is a
+modular toolbox for solving @dfn{partial differential equations} (PDEs) with
+grid-based methods.
+
+This is the iterative solver template library which provides generic sparse
+matrix/vector classes and a variety of solvers based on these classes.  A
+special feature is the use of templates to exploit the recursive block
+structure of finite element matrices at compile time.  Available solvers
+include Krylov methods, (block-) incomplete decompositions and
+aggregation-based algebraic multigrid.")
+    ;; GPL version 2 with "runtime exception"
+    (license license:gpl2)))
+
+(define-public dune-localfunctions
+  (package
+    (name "dune-localfunctions")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-localfunctions-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19c6zjinwwpy8jh4v4prhphyd438rapd4x80fj93apmwgw04nrhl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags))))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("dune-geometry" ,dune-geometry)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("metis" ,metis)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment") ; TODO
+    (description "This DUNE module provides interface and implementation for
+shape functions defined on the DUNE reference elements.  In addition to the
+shape function, interpolation operators and special keys are provided which
+can be used to assemble global function spaces on finite-element grids.
+
+This package provides an interface and implementation for shape functions
+defined on the DUNE reference elements.  In addition to the shape function,
+interpolation operators and special keys are provided which can be used to
+assemble global function spaces on finite-element grids.")
+    ;; GPL version 2 with "runtime exception"
+    (license license:gpl2)))
+
+(define-public dune-alugrid
+  (package
+    (name "dune-alugrid")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-alugrid-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; 7 of 8 tests fail because they need a full MPI
+                   ; environment
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-include
+           (lambda _
+             (substitute* "dune/alugrid/test/test-alugrid.cc"
+               (("doc/grids/gridfactory/testgrids")
+                "doc/dune-grid/grids/gridfactory/testgrids"))
+             #t))
+         (add-after 'build 'build-tests
+           (lambda* (#:key inputs make-flags #:allow-other-keys)
+             (setenv "CPLUS_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "dune-grid") "/share:"
+                                    (getenv "CPLUS_INCLUDE_PATH")))
+             (apply invoke "make" "build_tests" make-flags))))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("dune-geometry" ,dune-geometry)
+       ("dune-grid" ,dune-grid)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("metis" ,metis)
+       ("openblas" ,openblas)
+       ("python" ,python)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "ALUGrid is an adaptive, loadbalancing, unstructured
+implementation of the DUNE grid interface supporting either simplices or
+cubes.")
+    (license license:gpl2+)))
+
+(define-public dune-typetree
+  (package
+    (name "dune-typetree")
+    (version "2.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.dune-project.org/staging/dune-typetree.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0mnv6w2f22lz3j4bdpdjq55vjm8xxfx9v4vvhg9bd36xpsbjpjp9"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-tests
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "build_tests" make-flags))))))
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("openblas" ,openblas)
+       ("python" ,python)
+       ("metis" ,metis)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "TypeTree is a template library for constructing and
+operating on statically typed trees of objects.")
+    ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
+    (license (list license:lgpl3+ license:gpl2))))
+
+(define-public dune-functions
+  (package
+    (name "dune-functions")
+    (version "2.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.dune-project.org/staging/dune-functions.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1an8gb477n8j0kzpbrv7nr1snh8pxip0gsxq6w63jc83gg3dj200"))))
+    (build-system cmake-build-system)
+    (arguments `(#:tests? #f)) ; FIXME: tests require dune-uugrid
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("dune-istl" ,dune-istl)
+       ("dune-localfunctions" ,dune-localfunctions)
+       ("dune-grid" ,dune-grid)
+       ("dune-geometry" ,dune-geometry)
+       ("dune-typetree" ,dune-typetree)
+       ("openmpi" ,openmpi)
+       ("openblas" ,openblas)
+       ("metis" ,metis)
+       ("python" ,python)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "The dune-functions module provides an abstraction layer for
+global finite element functions.  Its two main concepts are functions
+implemented as callable objects, and bases of finite element spaces.")
+    ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
+    (license (list license:lgpl3+ license:gpl2))))
+
+(define-public dune-pdelab
+  (package
+    (name "dune-pdelab")
+    (version "2.6.0-rc1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.dune-project.org/pdelab/dune-pdelab")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07g0s9448z65vjrq88g5rv3340iifil85k170n8kbqchsvi4ny5v"))))
+    (build-system cmake-build-system)
+    (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled
+    (inputs
+     `(("dune-common" ,dune-common)
+       ("dune-istl" ,dune-istl)
+       ("dune-localfunctions" ,dune-localfunctions)
+       ("dune-geometry" ,dune-geometry)
+       ("dune-grid" ,dune-grid)
+       ("dune-typetree" ,dune-typetree)
+       ("dune-functions" ,dune-functions)
+       ("openmpi" ,openmpi)
+       ;; Optional
+       ("openblas" ,openblas)
+       ("eigen" ,eigen)
+       ("metis" ,metis)
+       ("python" ,python)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Differential equations solver toolbox")
+    (description "PDELab is a partial differential equations solver toolbox
+built on top of DUNE, the Distributed and Unified Numerics Environment.")
+    ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
+    (license (list license:lgpl3+ license:gpl2))))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 3356cb3992..d8ec64f6c3 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -492,14 +492,14 @@ compromised.")
 (define-public znc
   (package
     (name "znc")
-    (version "1.7.1")
+    (version "1.7.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://znc.in/releases/archive/znc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1i1r1lh9q2mr1bg520zrvrlwhrhy6wibrin78wjxq1gab1qymks4"))))
+                "1ac2csl5jr56vahnxdynlvrhwlvcc1gqxvyifckc6cn5aj7ygd30"))))
     ;; TODO: autotools support has been deprecated, and new features like i18n
     ;; are only supported when building with cmake.
     (build-system gnu-build-system)
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index a638dd7c80..4384406227 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
-;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
@@ -371,18 +371,20 @@ demand.")
 (define-public python-prometheus-client
   (package
     (name "python-prometheus-client")
-    (version "0.1.1")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "prometheus_client" version))
        (sha256
         (base32
-         "164qzzg8q8awqk0angcm87p2sjiibaj1wgjz0xk6j0klvqi5q2mz"))))
+         "0g7rpv1pq2lab1nfqdx98z9d3bqwc400alg1j4ynrpjkrbsizhg8"))))
     (build-system python-build-system)
     (arguments
      '(;; No included tests.
        #:tests? #f))
+    (propagated-inputs
+     `(("python-twisted" ,python-twisted)))
     (home-page
      "https://github.com/prometheus/client_python")
     (synopsis "Python client for the Prometheus monitoring system")
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 6e56142bd1..0a43c55b7a 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
@@ -33,6 +33,7 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages xorg)
@@ -40,6 +41,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages parallel)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
@@ -156,7 +158,7 @@ bind processes, and much more.")
 (define-public openmpi
   (package
     (name "openmpi")
-    (version "3.0.1")
+    (version "4.0.0")
     (source
      (origin
       (method url-fetch)
@@ -165,12 +167,13 @@ bind processes, and much more.")
                           "/downloads/openmpi-" version ".tar.bz2"))
       (sha256
        (base32
-        "0pbqrm5faf57nasy1s81wqivl7zvxmv8lzjh8hvb0f3qxv8m0d36"))))
+        "0srnjwzsmyhka9hhnmqm86qck4w3xwjm8g6sbns58wzbrwv8l2rg"))))
     (build-system gnu-build-system)
     (inputs
      `(("hwloc" ,hwloc "lib")
        ("gfortran" ,gfortran)
        ("libfabric" ,libfabric)
+       ("libevent" ,libevent)
        ,@(if (and (not (%current-target-system))
                   (member (%current-system) (package-supported-systems psm)))
              `(("psm" ,psm))
@@ -180,7 +183,8 @@ bind processes, and much more.")
              `(("psm2" ,psm2))
              '())
        ("rdma-core" ,rdma-core)
-       ("valgrind" ,valgrind)))
+       ("valgrind" ,valgrind)
+       ("slurm" ,slurm)))              ;for PMI support (launching via "srun")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("perl" ,perl)))
@@ -189,15 +193,15 @@ bind processes, and much more.")
      `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work
                            "--enable-memchecker"
                            "--with-sge"
-
-                           ;; VampirTrace is obsoleted by scorep and disabling
-                           ;; it reduces the closure size considerably.
-                           "--disable-vt"
-
-                           ,(string-append "--with-valgrind="
-                                           (assoc-ref %build-inputs "valgrind"))
-                           ,(string-append "--with-hwloc="
-                                           (assoc-ref %build-inputs "hwloc")))
+                           "--with-psm"
+                           "--with-psm2"
+                           "--with-valgrind"
+                           "--with-hwloc=external"
+                           "--with-libevent"
+                           ;; Enable support for SLURM's Process Manager
+                           ;; Interface (PMI).
+                           ,(string-append "--with-pmi="
+                                           (assoc-ref %build-inputs "slurm")))
        #:phases (modify-phases %standard-phases
                   (add-before 'build 'remove-absolute
                     (lambda _
@@ -212,8 +216,8 @@ bind processes, and much more.")
                         (("_ABSOLUTE") ""))
                       ;; Avoid valgrind (which pulls in gdb etc.).
                       (substitute*
-                          '("./ompi/mca/io/romio314/src/io_romio314_component.c")
-                        (("MCA_io_romio314_COMPLETE_CONFIGURE_FLAGS")
+                          '("./ompi/mca/io/romio321/src/io_romio321_component.c")
+                        (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS")
                          "\"[elided to reduce closure]\""))
                       #t))
                   (add-before 'build 'scrub-timestamps ;reproducibility
@@ -263,7 +267,7 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
      (setenv "OMPI_MCA_plm_rsh_agent" (which "false"))
      ;; Allow oversubscription in case there are less physical cores available
      ;; in the build environment than the package wants while testing.
-     (setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes")
+     (setenv "OMPI_MCA_rmaps_base_mapping_policy" "core:OVERSUBSCRIBE")
      #t))
 
 (define-public python-mpi4py
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4fe352fe96..c4333364e1 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2793,6 +2793,7 @@ of tools for manipulating and accessing your music.")
        #:configure-flags '("-DCMAKE_CXX_FLAGS=-ljack")))
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("lhasa" ,lhasa)
        ("jack" ,jack-1)
        ("rtmidi" ,rtmidi)
        ("sdl" ,sdl2)
@@ -3636,7 +3637,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.0.1")
+    (version "3.0.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3645,7 +3646,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "085qwfv3fsgry1pnx531w83lnyvf7kbaklipdf8zqa9shi6d3x9i"))
+                "1w9il6gg0dh4yi20nbdcibx5z5z4bvzppq8wsqf1l916hnczsj3s"))
               (modules '((guix build utils)))
               (snippet
                ;; Un-bundle OpenSSL and remove unused libraries.
@@ -3659,7 +3660,11 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
                             '("thirdparty/freetype"
                               "thirdparty/openssl"
                               "thirdparty/portmidi"))
-                  #t))))
+                  #t))
+              ;; Fix compilation error due to BUILD_WEBENGINE CMake option not
+              ;; properly handled.  Applied upstream already:
+              ;; <https://github.com/musescore/MuseScore/commit/bb0c1a9b4940f3f6b52c0df535289ec8a3bc9e03>
+              (patches (search-patches "musescore-fix-use_webengine.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6ba544ecd9..c71ae4a24d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -590,7 +590,7 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "2.6.5")
+    (version "2.6.6")
     (source
      (origin
        (method url-fetch)
@@ -598,7 +598,7 @@ of the same name.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "12j3fw0j8qcr86c1vsz4bsb55j9inp0ll3wjjdvg1cj4hmwmn5ck"))))
+         "0qz8a1ays63712pq1v7nnw7c57zlqkcifq7himfv5nsv0zm36ya8"))))
     (build-system gnu-build-system)
     (inputs `(("c-ares" ,c-ares)
               ("glib" ,glib)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index a32cee44dc..07fcf92aea 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -805,64 +805,21 @@ libpanel, librsvg and quartz.")
 (define-public unison
   (package
     (name "unison")
-    (version "2.48.3")
-    (source
-      (origin
-        (method svn-fetch)
-        (uri (svn-reference
-              (url (string-append "https://webdav.seas.upenn.edu/svn/"
-                                  "unison/branches/"
-                                  (version-major+minor version)))
-              (revision 535)))
-        (file-name (string-append name "-" version "-checkout"))
-        (sha256
-         (base32
-          "0486s53wyayicj9f2raj2dvwvk4xyzar219rccc1iczdwixm4x05"))
-        (modules '((guix build utils)
-                   (ice-9 rdelim)
-                   (ice-9 regex)
-                   (srfi srfi-1)))
-        (snippet
-         `(begin
-            ;; The svn revision in the release tarball appears to be
-            ;; artificially manipulated in order to set the desired point
-            ;; version number.  Because the point version is calculated during
-            ;; the build, we can offset pointVersionOrigin by the desired
-            ;; point version and write that into "Rev: %d".  We do this rather
-            ;; than hardcoding the necessary revision number, for
-            ;; maintainability.
-            (with-atomic-file-replacement "src/mkProjectInfo.ml"
-              (lambda (in out)
-                (let ((pt-ver (string->number (third (string-split ,version #\.))))
-                      (pt-rx  (make-regexp "^let pointVersionOrigin = ([0-9]+)"))
-                      (rev-rx (make-regexp "Rev: [0-9]+")))
-                  (let loop ((pt-origin #f))
-                    (let ((line (read-line in 'concat)))
-                      (cond
-                       ((regexp-exec pt-rx line)
-                        => (lambda (m)
-                             (display line out)
-                             (loop (string->number (match:substring m 1)))))
-                       ((regexp-exec rev-rx line)
-                        => (lambda (m)
-                             (format out "~aRev: ~d~a"
-                                     (match:prefix m)
-                                     (+ pt-origin pt-ver)
-                                     (match:suffix m))
-                             (dump-port in out))) ;done
-                       (else
-                        (display line out)
-                        (loop pt-origin))))))))
-            ;; Without the '-fix' argument, the html file produced does not
-            ;; have functioning internal hyperlinks.
-            (substitute* "doc/Makefile"
-              (("hevea unison") "hevea -fix unison"))
-            #t))))
+    (version "2.51.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bcpierce00/unison.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 1.9 MiB of documentation
     (native-inputs
-     `(("ocaml" ,ocaml-4.02)
+     `(("ocaml" ,ocaml)
        ;; For documentation
        ("ghostscript" ,ghostscript)
        ("texlive" ,texlive-tiny)
@@ -1391,14 +1348,14 @@ coverage information.")
 (define-public dune
   (package
     (name "dune")
-    (version "1.2.1")
+    (version "1.6.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/ocaml/dune/releases/"
                                   "download/" version "/dune-" version ".tbz"))
               (sha256
                (base32
-                "00c5dbm4hkdapc2i7pg07b2lj8sv6ly38qr7zid58cdmbmzq21z9"))))
+                "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
@@ -1419,24 +1376,24 @@ following a very simple s-expression syntax.")
 (define-public ocaml-migrate-parsetree
   (package
     (name "ocaml-migrate-parsetree")
-    (version "1.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml-ppx/"
-                                  "ocaml-migrate-parsetree/releases/download/v"
-                                  version "/ocaml-migrate-parsetree-"
-                                  version ".tbz"))
-              (sha256
-               (base32
-                "01zjp1q4hryqaxv4apkjd868fycz2kf887r6lkb6x2a545h1lh7f"))))
+    (version "1.2.0")
+    (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append home-page ".git"))
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "16kas19iwm4afijv3yxd250s08absabmdcb4yj57wc8r4fmzv5dm"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f
-       #:jbuild? #t))
+     `(#:tests? #f))
     (propagated-inputs
-     `(("ocamlbuild" ,ocamlbuild)
+     `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
+       ("ocamlbuild" ,ocamlbuild)
        ("ocaml-result" ,ocaml-result)))
-    (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
     (synopsis "OCaml parsetree convertor")
     (description "This library converts between parsetrees of different OCaml
 versions.  For each version, there is a snapshot of the parsetree and conversion
@@ -4694,6 +4651,38 @@ Dedukti files.")
 syntax checking on dedukti files.")
       (license license:cecill-b))))
 
+(define-public ocaml-ppx-inline-test
+  (package
+    (name "ocaml-ppx-inline-test")
+    (version "0.11.0")
+    (home-page "https://github.com/janestreet/ppx_inline_test")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append home-page ".git"))
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "11n94fz1asjf5vqdgriv0pvsa5lbfpqcyk525c7816w23vskcvq6"))))
+    (build-system dune-build-system)
+    (arguments
+     ;see home page README for further information
+     `(#:tests? #f))
+    (inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-compiler-libs" ,ocaml-compiler-libs)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)
+       ("ocaml-stdio" ,ocaml-stdio)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (synopsis "Syntax extension for writing in-line tests in ocaml code")
+    (description "This package contains a syntax extension for writing
+in-line tests in ocaml code.  It is part of Jane Street's PPX rewriters
+collection.")
+    (license license:expat)))
+
 (define-public ocaml-biniou
  (package
    (name "ocaml-biniou")
@@ -4987,7 +4976,7 @@ parsexp_io.")
         (base32
          "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb"))))
     (build-system dune-build-system)
-    (inputs
+    (propagated-inputs
      `(("ocaml-num" ,ocaml-num)
        ("ocaml-parsexp" ,ocaml-parsexp)
        ("ocaml-sexplib0" ,ocaml-sexplib0)))
@@ -5014,7 +5003,7 @@ functionality for parsing and pretty-printing s-expressions.")
         (base32
          "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir"))))
     (build-system dune-build-system)
-    (inputs
+    (propagated-inputs
      `(("ocaml-sexplib0" ,ocaml-sexplib0)))
     (arguments
      `(#:phases
@@ -5077,8 +5066,9 @@ is now @code{Ocaml_common.Ast_helper}.")
         (base32
          "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn"))))
     (build-system dune-build-system)
-    (inputs `(("ocaml-base" ,ocaml-base)
-              ("ocaml-sexplib0" ,ocaml-sexplib0)))
+    (propagated-inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)))
     (arguments
      '(#:tests? #f)) ;no tests
     (synopsis "Standard IO library for OCaml")
@@ -5107,6 +5097,7 @@ a more consistent API.")
     (build-system dune-build-system)
     (arguments
      '(#:tests? #f)) ;no tests
+    (properties `((upstream-name . "ppx_derivers")))
     (synopsis "Shared @code{@@deriving} plugin registry")
     (description
      "Ppx_derivers is a tiny package whose sole purpose is to allow
@@ -5130,7 +5121,7 @@ as part of the same ocaml-migrate-parsetree driver.")
         (base32
          "1nr4igf5m4prvigvv470dnhfdhdw0p6hz6zw8gnm5bzcv7s2lg5l"))))
     (build-system dune-build-system)
-    (inputs
+    (propagated-inputs
      `(("ocaml-base" ,ocaml-base)
        ("ocaml-compiler-libs" ,ocaml-compiler-libs)
        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
@@ -5138,8 +5129,6 @@ as part of the same ocaml-migrate-parsetree driver.")
        ("ocaml-stdio" ,ocaml-stdio)
        ("ocaml-result" ,ocaml-result)
        ("ocaml-sexplib0" ,ocaml-sexplib0)))
-    (native-inputs
-     `(("ocaml-findlib" ,ocaml-findlib)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -5147,7 +5136,7 @@ as part of the same ocaml-migrate-parsetree driver.")
            (lambda* (#:key inputs #:allow-other-keys)
              ;; add the line #directory ".." at the top of each file
              ;; using #use "topfind";; to be able to find topfind
-             (let* ((findlib-path (assoc-ref inputs "ocaml-findlib"))
+             (let* ((findlib-path (assoc-ref inputs "findlib"))
                     (findlib-libdir
                      (string-append findlib-path "/lib/ocaml/site-lib")))
                (substitute* '("test/base/test.ml"
@@ -5175,3 +5164,999 @@ OCaml AST in the OCaml syntax;
 @item a generator of open recursion classes from type definitions.
 @end itemize")
     (license license:expat)))
+
+(define-public ocaml-ppx-compare
+  (package
+    (name "ocaml-ppx-compare")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_compare.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_compare")))
+    (home-page "https://github.com/janestreet/ppx_compare")
+    (synopsis "Generation of comparison functions from types")
+    (description "Generation of fast comparison functions from type expressions
+and definitions.  Ppx_compare is a ppx rewriter that derives comparison functions
+from type representations.  The scaffolded functions are usually much faster
+than ocaml's Pervasives.compare.  Scaffolding functions also gives you more
+flexibility by allowing you to override them for a specific type and more safety
+by making sure that you only compare comparable values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-fieldslib
+  (package
+    (name "ocaml-fieldslib")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version) "/files/"
+                                  "fieldslib-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "12948pzxrl360lybm9fzyvplgcl87zjbn4m3sk1aw75zk85p1388"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "fieldslib")))
+    (home-page "https://github.com/janestreet/fieldslib")
+    (synopsis "Syntax extension to record fields")
+    (description "Syntax extension to define first class values representing
+record fields, to get and set record fields, iterate and fold over all fields
+of a record and create new record values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-variantslib
+  (package
+    (name "ocaml-variantslib")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/variantslib-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hsdwmkslvk4cznqr4lyyiy7vvk5spil226k0z2in26fxq6y0hf3"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "variantslib")))
+    (home-page "https://github.com/janestreet/variantslib")
+    (synopsis "OCaml variants as first class values")
+    (description "The Core suite of libraries is an alternative to OCaml's
+standard library.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-fields-conv
+  (package
+    (name "ocaml-ppx-fields-conv")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_fields_conv-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-fieldslib" ,ocaml-fieldslib)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_fields_conv")))
+    (home-page "https://github.com/janestreet/ppx_fields_conv")
+    (synopsis "Generation of accessor and iteration functions for ocaml records")
+    (description "Ppx_fields_conv is a ppx rewriter that can be used to define
+first class values representing record fields, and additional routines, to get
+and set record fields, iterate and fold over all fields of a record and create
+new record values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-sexp-conv
+  (package
+    (name "ocaml-ppx-sexp-conv")
+    (version "0.11.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_sexp_conv.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_sexp_conv")))
+    (home-page "https://github.com/janestreet/ppx_sexp_conv")
+    (synopsis "Generation of S-expression conversion functions from type definitions")
+    (description "This package generates S-expression conversion functions from type
+definitions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-variants-conv
+  (package
+    (name "ocaml-ppx-variants-conv")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_variants_conv.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-variantslib" ,ocaml-variantslib)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties
+      `((upstream-name . "ppx_variants_conv")))
+    (home-page
+      "https://github.com/janestreet/ppx_variants_conv")
+    (synopsis "Generation of accessor and iteration functions for OCaml variant types")
+    (description
+      "This package generates accessors and interation functions for OCaml
+variant types.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-custom-printf
+  (package
+    (name "ocaml-ppx-custom-printf")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_custom_printf-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_custom_printf")))
+    (home-page "https://github.com/janestreet/ppx_custom_printf")
+    (synopsis "Printf-style format-strings for user-defined string conversion")
+    (description "Extensions to printf-style format-strings for user-defined
+string conversion.")
+    (license license:asl2.0)))
+
+(define-public ocaml-bin-prot
+  (package
+    (name "ocaml-bin-prot")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/bin_prot-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rsd91gx36prj4whi76nsiz1bzpgal9nzyw3pxdz1alv4ilk2il6"))))
+    (build-system dune-build-system)
+    (inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf)
+        ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
+    (properties `((upstream-name . "bin_prot")))
+    (home-page "https://github.com/janestreet/bin_prot")
+    (synopsis "Binary protocol generator")
+    (description "This library contains functionality for reading and writing
+OCaml-values in a type-safe binary protocol.  It is extremely efficient,
+typically supporting type-safe marshalling and unmarshalling of even highly
+structured values at speeds sufficient to saturate a gigabit connection.  The
+protocol is also heavily optimized for size, making it ideal for long-term
+storage of large amounts of data.")
+    (license (list
+               license:asl2.0
+               license:bsd-3))))
+
+(define-public ocaml-octavius
+  (package
+    (name "ocaml-octavius")
+    (version "1.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml-doc/octavius")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gqfbwsh0zq4b9mvvlmg3zhpbfbvq8swqr31320aibbqydwf77hr"))))
+    (build-system dune-build-system)
+    (properties `((upstream-name . "octavius")))
+    (home-page "https://github.com/ocaml-doc/octavius")
+    (synopsis "Ocamldoc comment syntax parser")
+    (description "Octavius is a library to parse the `ocamldoc` comment syntax.")
+    (license license:isc)))
+
+(define-public ocaml-ppx-hash
+  (package
+    (name "ocaml-ppx-hash")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_hash.git")
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_hash")))
+    (home-page "https://github.com/janestreet/ppx_hash")
+    (synopsis "Generation of hash functions from type expressions and definitions")
+    (description "This package is a collecton of ppx rewriters that generate
+hash functions from type exrpessions and definitions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-enumerate
+  (package
+    (name "ocaml-ppx-enumerate")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_enumerate.git")
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_enumerate")))
+    (home-page "https://github.com/janestreet/ppx_enumerate")
+    (synopsis "Generate a list containing all values of a finite type")
+    (description "Ppx_enumerate is a ppx rewriter which generates a definition
+for the list of all values of a type (for a type which only has finitely
+many values).")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-bench
+  (package
+    (name "ocaml-ppx-bench")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_bench-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ys4pblbcjbk9dn073rqiwm7r6rc7fah03j7riklkwnb5n44andl"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_bench")))
+    (home-page "https://github.com/janestreet/ppx_bench")
+    (synopsis "Syntax extension for writing in-line benchmarks in ocaml code")
+    (description "Syntax extension for writing in-line benchmarks in ocaml code.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-here
+  (package
+    (name "ocaml-ppx-here")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_here-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wxcak3ay4jpigm3pfdcpr65qw4hxfa8whhkryhcd8gy71x056z5"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; broken tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_here")))
+    (home-page "https://github.com/janestreet/ppx_here")
+    (synopsis "Expands [%here] into its location")
+    (description
+      "Part of the Jane Street's PPX rewriters collection.")
+    (license license:asl2.0)))
+
+(define-public ocaml-typerep
+  (package
+    (name "ocaml-typerep")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/typerep-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zi7hy0prpgzqhr4lkacr04wvlvbp21jfbdfvffhrm6cd400rb5v"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs `(("ocaml-base" ,ocaml-base)))
+    (home-page "https://github.com/janestreet/typerep")
+    (synopsis "Typerep is a library for runtime types")
+    (description "Typerep is a library for runtime types.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-sexp-value
+  (package
+    (name "ocaml-ppx-sexp-value")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_sexp_value-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xnalfrln6k5khsyxvxkg6v32q8fpr4cqamsjqfih29jdv486xrs"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_sexp_value")))
+    (home-page "https://github.com/janestreet/ppx_sexp_value")
+    (synopsis "Simplify building s-expressions from ocaml values")
+    (description "A ppx rewriter that simplifies building s-expressions from
+ocaml values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-sexp-message
+  (package
+    (name "ocaml-ppx-sexp-message")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_sexp_message-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yh440za0w9cvrbxbmqacir8715kdaw6sw24ys9xj80av9nqpiw7"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_sexp_message")))
+    (home-page "https://github.com/janestreet/ppx_sexp_message")
+    (synopsis "A ppx rewriter for easy construction of s-expressions")
+    (description "Ppx_sexp_message aims to ease the creation of s-expressions
+in OCaml.  This is mainly motivated by writing error and debugging messages,
+where one needs to construct a s-expression based on various element of the
+context such as function arguments.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-pipebang
+  (package
+    (name "ocaml-ppx-pipebang")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_pipebang-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wrrzlb4kdvkkcmzi01fw25jar38r2jlnyn0i6pn4z0lq4gpm9m0"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_pipebang")))
+    (home-page "https://github.com/janestreet/ppx_pipebang")
+    (synopsis "Inline reverse application operators `|>` and `|!`")
+    (description "A ppx rewriter that inlines reverse application operators
+@code{|>} and @code{|!}.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-optional
+  (package
+    (name "ocaml-ppx-optional")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_optional-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1z8z2bga95k2vksljljfglg10vygkjd24kn1b37sk4z3nmp47x0h"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_optional")))
+    (home-page "https://github.com/janestreet/ppx_optional")
+    (synopsis "Pattern matching on flat options")
+    (description
+      "A ppx rewriter that rewrites simple match statements with an if then
+else expression.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-optcomp
+  (package
+    (name "ocaml-ppx-optcomp")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_optcomp-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bb52p2j2h4s9f06vrcpla80rj93jinnzq6jzilapyx9q068929i"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_optcomp")))
+    (home-page "https://github.com/janestreet/ppx_optcomp")
+    (synopsis "Optional compilation for OCaml")
+    (description "Ppx_optcomp stands for Optional Compilation.  It is a tool
+used to handle optional compilations of pieces of code depending of the word
+size, the version of the compiler, ...")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-let
+  (package
+    (name "ocaml-ppx-let")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_let-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_let")))
+    (home-page "https://github.com/janestreet/ppx_let")
+    (synopsis "Monadic let-bindings")
+    (description "A ppx rewriter for monadic and applicative let bindings,
+match expressions, and if expressions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-fail
+  (package
+    (name "ocaml-ppx-fail")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_fail-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "07plqsvljiwvngggfypwq55g46s5my55y45mvlmalrxyppzr03s8"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_fail")))
+    (home-page "https://github.com/janestreet/ppx_fail")
+    (synopsis "Add location to calls to failwiths")
+    (description "Syntax extension that makes [failwiths] always include a
+position.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-assert
+  (package
+    (name "ocaml-ppx-assert")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_assert-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "17kd311n0l9f72gblf9kv8i5rghr106w37x4f0m5qwh6nlgl0j9k"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_assert")))
+    (home-page "https://github.com/janestreet/ppx_assert")
+    (synopsis "Assert-like extension nodes that raise useful errors on failure")
+    (description "This package contains assert-like extension nodes that raise
+useful errors on failure.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-expect
+  (package
+    (name "ocaml-ppx-expect")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_expect.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0bnz3cpj3vwdw409r6f8raakl8n364q5l7wy4i6gckr34a4vla69"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:jbuild? #t))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf)
+        ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)
+        ("ocaml-re" ,ocaml-re)))
+    (properties `((upstream-name . "ppx_expect")))
+    (home-page "https://github.com/janestreet/ppx_expect")
+    (synopsis "Cram like framework for OCaml")
+    (description "Expect-test is a framework for writing tests in OCaml, similar
+to Cram.  Expect-tests mimics the existing inline tests framework with the
+@code{let%expect_test} construct.  The body of an expect-test can contain
+output-generating code, interleaved with @code{%expect} extension expressions
+to denote the expected output.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-js-style
+  (package
+    (name "ocaml-ppx-js-style")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_js_style-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0z3fc55jdjhhsblla6z4fqc13kljpcz29q79rvs5h2vsraqrldr2"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-octavius" ,ocaml-octavius)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_js_style")))
+    (home-page "https://github.com/janestreet/ppx_js_style")
+    (synopsis "Code style checker for Jane Street Packages")
+    (description "This packages is a no-op ppx rewriter.  It is used as a
+@code{lint} tool to enforce some coding conventions across all Jane Street
+packages.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-typerep-conv
+  (package
+    (name "ocaml-ppx-typerep-conv")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_typerep_conv.git")
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0a13dpfrrg0rsm8qni1bh7pqcda30l70z8r6yzi5a64bmwk7g5ah"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-typerep" ,ocaml-typerep)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_typerep_conv")))
+    (home-page "https://github.com/janestreet/ppx_typerep_conv")
+    (synopsis "Generation of runtime types from type declarations")
+    (description "This package can automatically generate runtime types
+from type definitions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-base
+  (package
+    (name "ocaml-ppx-base")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_base-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0aq206pg330jmj7lhcagiiwm3a0b3gsqm801m8ajd4ysyw7idkym"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (propagated-inputs
+      `(("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate)
+        ("ocaml-ppx-hash" ,ocaml-ppx-hash)
+        ("ocaml-ppx-js-style" ,ocaml-ppx-js-style)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_base")))
+    (home-page "https://github.com/janestreet/ppx_base")
+    (synopsis "Base set of ppx rewriters")
+    (description "Ppx_base is the set of ppx rewriters used for Base.
+
+Note that Base doesn't need ppx to build, it is only used as a
+verification tool.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-bin-prot
+  (package
+    (name "ocaml-ppx-bin-prot")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/ppx_bin_prot.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1h60i75bzvhna1axyn662gyrzhh441l79vl142d235i5x31dmnkz"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; Cyclic dependency with ocaml-ppx-jane
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-bin-prot" ,ocaml-bin-prot)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_bin_prot")))
+    (home-page "https://github.com/janestreet/ppx_bin_prot")
+    (synopsis "Generation of bin_prot readers and writers from types")
+    (description "Generation of binary serialization and deserialization
+functions from type definitions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-jane
+  (package
+    (name "ocaml-ppx-jane")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/ppx_jane-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0lgppkw3aixrfnixihrsz2ipafv8fpvkdpy3pw8n0r615gg8x8la"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (propagated-inputs
+      `(("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-ppx-base" ,ocaml-ppx-base)
+        ("ocaml-ppx-bench" ,ocaml-ppx-bench)
+        ("ocaml-ppx-bin-prot" ,ocaml-ppx-bin-prot)
+        ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf)
+        ("ocaml-ppx-expect" ,ocaml-ppx-expect)
+        ("ocaml-ppx-fail" ,ocaml-ppx-fail)
+        ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+        ("ocaml-ppx-let" ,ocaml-ppx-let)
+        ("ocaml-ppx-optcomp" ,ocaml-ppx-optcomp)
+        ("ocaml-ppx-optional" ,ocaml-ppx-optional)
+        ("ocaml-ppx-pipebang" ,ocaml-ppx-pipebang)
+        ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message)
+        ("ocaml-ppx-sexp-value" ,ocaml-ppx-sexp-value)
+        ("ocaml-ppx-typerep-conv" ,ocaml-ppx-typerep-conv)
+        ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_jane")))
+    (home-page "https://github.com/janestreet/ppx_jane")
+    (synopsis "Standard Jane Street ppx rewriters")
+    (description "This package installs a ppx-jane executable, which is a ppx
+driver including all standard Jane Street ppx rewriters.")
+    (license license:asl2.0)))
+
+(define-public ocaml-splittable-random
+  (package
+    (name "ocaml-splittable-random")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/splittable_random-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l1wbd881mymlnpzlq5q53mmdz3g5d7qjhyc7lfaq1x0iaccn5lc"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-jane" ,ocaml-ppx-jane)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
+    (properties `((upstream-name . "splittable_random")))
+    (home-page "https://github.com/janestreet/splittable_random")
+    (synopsis "PRNG that can be split into independent streams")
+    (description "This package provides a splittable
+@acronym{PRNG,pseudo-random number generator} functions like a PRNG that can
+be used as a stream of random values; it can also be split to produce a
+second, independent stream of random values.
+
+This library implements a splittable pseudo-random number generator that sacrifices
+cryptographic-quality randomness in favor of performance.")
+    (license license:asl2.0)))
+
+(define-public ocaml-jane-street-headers
+  (package
+    (name "ocaml-jane-street-headers")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/jane-street-headers-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (home-page "https://github.com/janestreet/jane-street-headers")
+    (synopsis "Jane Street C header files")
+    (description "This package provides C header files shared between the
+various Jane Street packages.")
+    (license license:asl2.0)))
+
+(define-public ocaml-configurator
+  (package
+    (name "ocaml-configurator")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                  (version-major+minor version)
+                                  "/files/configurator-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0kwgi3sh92v4n242dk5hgpwd85zzgnczgbkqi0q0kr6m93zgbf7p"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; No tests
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-stdio" ,ocaml-stdio)))
+    (home-page "https://github.com/janestreet/configurator")
+    (synopsis "Helper library for gathering system configuration")
+    (description "Configurator is a small library that helps writing OCaml
+scripts that test features available on the system, in order to generate config.h
+files for instance.
+
+Configurator allows one to:
+@itemize
+@item test if a C program compiles
+@item query pkg-config
+@item import #define from OCaml header files
+@item generate config.h file
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public ocaml-spawn
+  (package
+    (name "ocaml-spawn")
+    (version "0.12.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/spawn.git")
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-tests
+           (lambda _
+             (substitute* "test/tests.ml"
+               (("/bin/pwd") (which "pwd"))
+               (("/bin/echo") (which "echo")))
+             #t)))))
+    (native-inputs
+     `(("ocaml-ppx-expect" ,ocaml-ppx-expect)))
+    (home-page "https://github.com/janestreet/spawn")
+    (synopsis "Spawning sub-processes")
+    (description
+      "Spawn is a small library exposing only one functionality: spawning sub-process.
+
+It has three main goals:
+
+@itemize
+@item provide missing features of Unix.create_process such as providing a
+working directory,
+@item provide better errors when a system call fails in the
+sub-process.  For instance if a command is not found, you get a proper
+@code{Unix.Unix_error} exception,
+@item improve performances by using vfork when available.  It is often
+claimed that nowadays fork is as fast as vfork, however in practice
+fork takes time proportional to the process memory while vfork is
+constant time.  In application using a lot of memory, vfork can be
+thousands of times faster than fork.
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public ocaml-core
+  (package
+    (name "ocaml-core")
+    (version "0.11.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/core.git")
+                     (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:jbuild? #t
+       ;; Require a cyclic dependency: core_extended
+       #:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-configurator" ,ocaml-configurator)
+        ("ocaml-core-kernel" ,ocaml-core-kernel)
+        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-ppx-jane" ,ocaml-ppx-jane)
+        ("ocaml-sexplib" ,ocaml-sexplib)
+        ("ocaml-spawn" ,ocaml-spawn)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (home-page "https://github.com/janestreet/core")
+    (synopsis "Alternative to OCaml's standard library")
+    (description "The Core suite of libraries is an alternative to OCaml's
+standard library that was developed by Jane Street.")
+    ;; Also contains parts of OCaml, relicensed to asl2.0, as permitted
+    ;; by OCaml's license for consortium members (see THIRD-PARTY.txt).
+    (license license:asl2.0)))
+
+(define-public ocaml-core-kernel
+  (package
+    (name "ocaml-core-kernel")
+    (version "0.11.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/core_kernel.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dg7ygy7i64c5gaakb1cp1b26p9ks81vbxmb8fd7jff2q60j2z2g"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; Cyclic dependency with ocaml-core
+     `(#:tests? #f))
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-bin-prot" ,ocaml-bin-prot)
+        ("ocaml-configurator" ,ocaml-configurator)
+        ("ocaml-fieldslib" ,ocaml-fieldslib)
+        ("ocaml-jane-street-headers" ,ocaml-jane-street-headers)
+        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-ppx-base" ,ocaml-ppx-base)
+        ("ocaml-ppx-hash" ,ocaml-ppx-hash)
+        ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+        ("ocaml-ppx-jane" ,ocaml-ppx-jane)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message)
+        ("ocaml-sexplib" ,ocaml-sexplib)
+        ("ocaml-splittable-random" ,ocaml-splittable-random)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("ocaml-typerep" ,ocaml-typerep)
+        ("ocaml-variantslib" ,ocaml-variantslib)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
+    (properties `((upstream-name . "core_kernel")))
+    (home-page "https://github.com/janestreet/core_kernel")
+    (synopsis "Portable standard library for OCaml")
+    (description "Core is an alternative to the OCaml standard library.
+
+Core_kernel is the system-independent part of Core.  It is aimed for cases when
+the full Core is not available, such as in Javascript.")
+    (license (list
+               ;; this package and parts of OCaml, relicensed by janestreet
+               license:asl2.0
+               ;; MLton and sjs
+               license:expat))))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index ef38a6f61a..2e69cd151e 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -4,9 +4,9 @@
 ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
 ;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -356,7 +356,7 @@ the Nix package manager.")
                (let ((out (assoc-ref outputs "out")))
                  (substitute* (find-files (string-append out "/libexec"))
                    (("exec \".*/bin/guix\"")
-                    "exec /var/guix/profiles/per-user/root/current-guix/bin/guix"))
+                    "exec \"${GUIX:-/var/guix/profiles/per-user/root/current-guix/bin/guix}\""))
                  #t)))
            (delete 'wrap-program)))))))
 
@@ -836,23 +836,14 @@ on top of GNU Guix.")
 (define-public gcab
   (package
     (name "gcab")
-    (version "1.1")
+    (version "1.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
+              (uri (string-append "mirror://gnome/sources/gcab/"
+                                  version "/gcab-" version ".tar.xz"))
               (sha256
                (base32
-                "0l19sr6pg0cfcddmi5n79d08mjjbhn427ip5jlsy9zddq9r24aqr"))
-              ;; gcab 1.1 has a hard dependency on git — even when building
-              ;; from a tarball.  Remove it early so ‘guix environment gcab’
-              ;; can actually build what ‘guix build --source gcab’ returns.
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* "meson.build"
-                    (("git_version = .*$") "git_version = []\n"))
-                  #t))))
+                "038h5kk41si2hc9d9169rrlvp8xgsxq27kri7hv2vr39gvz9cbas"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-mkenums
@@ -961,7 +952,7 @@ the bootloader configuration.")
 (define-public flatpak
   (package
    (name "flatpak")
-   (version "1.1.0")
+   (version "1.2.0")
    (source
     (origin
      (method url-fetch)
@@ -969,7 +960,7 @@ the bootloader configuration.")
                          version "/flatpak-" version ".tar.xz"))
      (sha256
       (base32
-       "0bkjwh49kajyd78vdh0g9arb352a7rccaifas9zxa78phhja2v2p"))))
+       "1bdk6qmsvy4d80245x1si9qvrga2f2yalj9qfmf1lqj5ljxxxifv"))))
    (build-system gnu-build-system)
    (arguments
     '(#:tests? #f ;; Tests fail due to trying to create files where it can't.
@@ -988,6 +979,7 @@ the bootloader configuration.")
                     ("pkg-config" ,pkg-config)))
    (inputs `(("appstream-glib" ,appstream-glib)
              ("bubblewrap" ,bubblewrap)
+             ("dconf" ,dconf)
              ("gdk-pixbuf" ,gdk-pixbuf)
              ("gpgme" ,gpgme)
              ("json-glib" ,json-glib)
diff --git a/gnu/packages/patches/ao-cad-aarch64-support.patch b/gnu/packages/patches/ao-cad-aarch64-support.patch
deleted file mode 100644
index 291369cd9b..0000000000
--- a/gnu/packages/patches/ao-cad-aarch64-support.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Support in ao-cad for aarch64.
-
-Submitted upstream at https://github.com/mkeeter/ao/issues/69
-
---- ao/ui/vendor/efsw/src/efsw/inotify-nosys.h.orig	2017-12-14 16:27:16.125871099 -0600
-+++ ao/ui/vendor/efsw/src/efsw/inotify-nosys.h	2017-12-14 16:26:39.786022981 -0600
-@@ -69,6 +69,11 @@
- # define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317)
- # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318)
- 
-+#elif defined (__aarch64__)
-+# define __NR_inotify_init 1043
-+# define __NR_inotify_add_watch 27
-+# define __NR_inotify_rm_watch 28
-+
- #elif defined (__frv__)
- # define __NR_inotify_init 291
- # define __NR_inotify_add_watch 292
diff --git a/gnu/packages/patches/blender-newer-ffmpeg.patch b/gnu/packages/patches/blender-newer-ffmpeg.patch
deleted file mode 100644
index 363489bc70..0000000000
--- a/gnu/packages/patches/blender-newer-ffmpeg.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-https://sources.debian.org/data/main/b/blender/2.79.b+dfsg0-4/debian/patches/0008-fix_building_with_latest_versions_of_FFmpeg.patch
-
-From: Bastien Montagne <montagne29@wanadoo.fr>
-Date: Tue, 8 May 2018 16:00:52 +0200
-Subject: fix_building_with_latest_versions_of_FFmpeg
-
-Some years-old deprecated stuff has now been removed.
-
-Correct solution is probably to use valid defines etc. in own code, but
-this is more FFMEPG maintainer task (since it also may change how old
-FFMPEG we do support...).
----
- intern/ffmpeg/ffmpeg_compat.h                  | 39 ++++++++++++++++++++++++++
- source/blender/blenkernel/intern/writeffmpeg.c |  3 +-
- 2 files changed, 41 insertions(+), 1 deletion(-)
-
-diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
-index 9c06c8a..f7f437c 100644
---- a/intern/ffmpeg/ffmpeg_compat.h
-+++ b/intern/ffmpeg/ffmpeg_compat.h
-@@ -109,6 +109,45 @@ int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt)
- 
- #endif
- 
-+/* XXX TODO Probably fix to correct modern flags in code? Not sure how old FFMPEG we want to support though,
-+ * so for now this will do. */
-+
-+#ifndef FF_MIN_BUFFER_SIZE
-+#  ifdef AV_INPUT_BUFFER_MIN_SIZE
-+#    define FF_MIN_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE
-+#  endif
-+#endif
-+
-+#ifndef FF_INPUT_BUFFER_PADDING_SIZE
-+#  ifdef AV_INPUT_BUFFER_PADDING_SIZE
-+#    define FF_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
-+#  endif
-+#endif
-+
-+#ifndef CODEC_FLAG_GLOBAL_HEADER
-+#  ifdef AV_CODEC_FLAG_GLOBAL_HEADER
-+#    define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
-+#  endif
-+#endif
-+
-+#ifndef CODEC_FLAG_GLOBAL_HEADER
-+#  ifdef AV_CODEC_FLAG_GLOBAL_HEADER
-+#    define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
-+#  endif
-+#endif
-+
-+#ifndef CODEC_FLAG_INTERLACED_DCT
-+#  ifdef AV_CODEC_FLAG_INTERLACED_DCT
-+#    define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT
-+#  endif
-+#endif
-+
-+#ifndef CODEC_FLAG_INTERLACED_ME
-+#  ifdef AV_CODEC_FLAG_INTERLACED_ME
-+#    define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME
-+#  endif
-+#endif
-+
- /* FFmpeg upstream 1.0 is the first who added AV_ prefix. */
- #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 59, 100)
- #  define AV_CODEC_ID_NONE CODEC_ID_NONE
-diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
-index a19e414..04d508a 100644
---- a/source/blender/blenkernel/intern/writeffmpeg.c
-+++ b/source/blender/blenkernel/intern/writeffmpeg.c
-@@ -605,7 +605,8 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int
- 	c->rc_buffer_aggressivity = 1.0;
- #endif
- 
--	c->me_method = ME_EPZS;
-+	/* Deprecated and not doing anything since July 2015, deleted in recent ffmpeg */
-+	//c->me_method = ME_EPZS;
- 	
- 	codec = avcodec_find_encoder(c->codec_id);
- 	if (!codec)
diff --git a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch
deleted file mode 100644
index c6e1d27315..0000000000
--- a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001
-From: Petter <petter@mykolab.ch>
-Date: Thu, 27 Apr 2017 20:28:02 +0200
-Subject: [PATCH] Avoid checking uninitialized member + simplify condition
-
----
- qmltermwidget/lib/TerminalDisplay.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp
-index 189a609..36d2cd2 100644
---- a/qmltermwidget/lib/TerminalDisplay.cpp
-+++ b/qmltermwidget/lib/TerminalDisplay.cpp
-@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent)
- ,_terminalSizeHint(false)
- ,_terminalSizeStartup(true)
- ,_bidiEnabled(false)
-+,_mouseMarks(false)
- ,_actSel(0)
- ,_wordSelectionMode(false)
- ,_lineSelectionMode(false)
-@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev)
-   }
-   else if ( ev->button() == Qt::MidButton )
-   {
--    if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) )
-+    if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) )
-       emitSelection(true,ev->modifiers() & Qt::ControlModifier);
-     else
-       emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0);
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gnu/packages/patches/cool-retro-term-fix-array-size.patch
deleted file mode 100644
index 04a2a27971..0000000000
--- a/gnu/packages/patches/cool-retro-term-fix-array-size.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c91d7ae5dbb00c8392a9f93283dc56c3e296cccd Mon Sep 17 00:00:00 2001
-From: Petter <petter@mykolab.ch>
-Date: Thu, 27 Apr 2017 20:19:21 +0200
-Subject: [PATCH] Fix size of the array passed to memset()
-
----
- qmltermwidget/lib/History.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/qmltermwidget/lib/History.cpp b/qmltermwidget/lib/History.cpp
-index 0f9c13f..ab6f7be 100644
---- a/qmltermwidget/lib/History.cpp
-+++ b/qmltermwidget/lib/History.cpp
-@@ -515,7 +515,7 @@ void HistoryScrollBlockArray::addCells(const Character a[], int count)
-   // put cells in block's data
-   assert((count * sizeof(Character)) < ENTRIES);
- 
--  memset(b->data, 0, ENTRIES);
-+  memset(b->data, 0, sizeof(b->data));
- 
-   memcpy(b->data, a, count * sizeof(Character));
-   b->size = count * sizeof(Character);
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch
deleted file mode 100644
index f3fbac17de..0000000000
--- a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 08628fda19128b75248548357e416bc373f14f91 Mon Sep 17 00:00:00 2001
-From: Yen Chi Hsuan <yan12125@gmail.com>
-Date: Sat, 18 Mar 2017 02:50:34 +0800
-Subject: [PATCH] Fix memory leak in hotspot (URLs & emails) detection
-
----
- qmltermwidget/lib/Filter.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/qmltermwidget/lib/Filter.cpp b/qmltermwidget/lib/Filter.cpp
-index 5ca7bee..2e8d2fb 100644
---- a/qmltermwidget/lib/Filter.cpp
-+++ b/qmltermwidget/lib/Filter.cpp
-@@ -26,6 +26,7 @@
- // Qt
- #include <QAction>
- #include <QApplication>
-+#include <QtAlgorithms>
- #include <QClipboard>
- #include <QString>
- #include <QTextStream>
-@@ -194,6 +195,7 @@ Filter::~Filter()
- }
- void Filter::reset()
- {
-+    qDeleteAll(_hotspotList);
-     _hotspots.clear();
-     _hotspotList.clear();
- }
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/glibc-memchr-overflow-i686.patch b/gnu/packages/patches/glibc-memchr-overflow-i686.patch
deleted file mode 100644
index 0b1b5b9f96..0000000000
--- a/gnu/packages/patches/glibc-memchr-overflow-i686.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Extracted from glibc upstream git repository.  Changes to the ChangeLog have
-been removed.  This patch is needed to fix spurious segmentation faults on
-i686.
-
-From 3abeeec5f46ff036bd9df60bb096e20314ccd078 Mon Sep 17 00:00:00 2001
-From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-Date: Tue, 14 Mar 2017 14:16:13 -0300
-Subject: [PATCH] Fix i686 memchr overflow calculation (BZ#21182)
-
-This patch fixes the regression added by 23d2770 for final address
-overflow calculation.  The subtraction of the considered size (16)
-at line 120 is at wrong place, for sizes less than 16 subsequent
-overflow check will not take in consideration an invalid size (since
-the subtraction will be negative).  Also, the lea instruction also
-does not raise the carry flag (CF) that is used in subsequent jbe
-to check for overflow.
-
-The fix is to follow x86_64 logic from 3daef2c where the overflow
-is first check and a sub instruction is issued.  In case of resulting
-negative size, CF will be set by the sub instruction and a NULL
-result will be returned.  The patch also add similar tests reported
-in bug report.
-
-Checked on i686-linux-gnu and x86_64-linux-gnu.
-
-	* string/test-memchr.c (do_test): Add BZ#21182 checks for address
-	near end of a page.
-	* sysdeps/i386/i686/multiarch/memchr-sse2.S (__memchr): Fix
-	overflow calculation.
----
- string/test-memchr.c                      | 6 ++++++
- sysdeps/i386/i686/multiarch/memchr-sse2.S | 2 +-
- 3 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/string/test-memchr.c b/string/test-memchr.c
-index 2403c9242b..669e092e7d 100644
---- a/string/test-memchr.c
-+++ b/string/test-memchr.c
-@@ -210,6 +210,12 @@ test_main (void)
-       do_test (0, i, i + 1, i + 1, 0);
-     }
- 
-+  /* BZ#21182 - wrong overflow calculation for i686 implementation
-+     with address near end of the page.  */
-+  for (i = 2; i < 16; ++i)
-+    /* page_size is in fact getpagesize() * 2.  */
-+    do_test (page_size / 2 - i, i, i, 1, 0x9B);
-+
-   do_random_tests ();
-   return ret;
- }
-diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/i686/multiarch/memchr-sse2.S
-index 910679cfc0..e41f324a77 100644
---- a/sysdeps/i386/i686/multiarch/memchr-sse2.S
-+++ b/sysdeps/i386/i686/multiarch/memchr-sse2.S
-@@ -117,7 +117,6 @@ L(crosscache):
- 
- # ifndef USE_AS_RAWMEMCHR
- 	jnz	L(match_case2_prolog1)
--	lea	-16(%edx), %edx
-         /* Calculate the last acceptable address and check for possible
-            addition overflow by using satured math:
-            edx = ecx + edx
-@@ -125,6 +124,7 @@ L(crosscache):
- 	add	%ecx, %edx
- 	sbb	%eax, %eax
- 	or	%eax, %edx
-+	sub	$16, %edx
- 	jbe	L(return_null)
- 	lea	16(%edi), %edi
- # else
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch b/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch
new file mode 100644
index 0000000000..29242dc4e8
--- /dev/null
+++ b/gnu/packages/patches/hdf5-1.8-mpi-deprecations.patch
@@ -0,0 +1,169 @@
+--- a/src/H5.c
++++ b/src/H5.c
+@@ -138,7 +138,7 @@
+         if (mpi_initialized && !mpi_finalized) {
+             int key_val;
+ 
+-            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, 
++            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN, 
+                                                                  (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, 
+                                                                  &key_val, NULL)))
+                 HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)
+--- hdf5-1.8.19/testpar/t_cache.c
++++ hdf5-1.8.19/testpar/t_cache.c
+@@ -1187,20 +1187,20 @@
+     struct mssg_t sample; /* used to compute displacements */
+ 
+     /* setup the displacements array */
+-    if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) {
++    if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) {
+ 
+         nerrors++;
+         success = FALSE;
+         if ( verbose ) {
+-            HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n",
++            HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n",
+                       world_mpi_rank, fcn_name);
+         }
+ 
+@@ -1215,14 +1215,14 @@
+ 
+     if ( success ) {
+ 
+-        result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
++        result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
+ 
+         if ( result != MPI_SUCCESS ) {
+ 
+             nerrors++;
+             success = FALSE;
+             if ( verbose ) {
+-                HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n",
++                HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n",
+                           world_mpi_rank, fcn_name);
+             }
+         }
+--- hdf5-1.8.19/testpar/t_mpi.c
++++ hdf5-1.8.19/testpar/t_mpi.c
+@@ -279,7 +279,7 @@
+ 	printf("Skipped GB file range test "
+ 		"because MPI_Offset cannot support it\n");
+     }else{
+-	buf = HDmalloc(MB);
++	buf = (char *)HDmalloc(MB);
+ 	VRFY((buf!=NULL), "malloc succeed");
+ 
+ 	/* open a new file. Remove it first in case it exists. */
+@@ -624,7 +624,7 @@
+ and this platform.
+ 
+ 1. Details for the test:
+-1) Create two derived datatypes with MPI_Type_hindexed:
++1) Create two derived datatypes with MPI_Type_create_hindexed:
+         datatype1:
+ 	count = 1, blocklens = 1, offsets = 0,
+ 	base type = MPI_BYTE(essentially a char)
+@@ -633,7 +633,7 @@
+ 	base type = MPI_BYTE
+ 
+ 2) Using these two derived datatypes,
+-   Build another derived datatype with MPI_Type_struct:
++   Build another derived datatype with MPI_Type_create_struct:
+         advtype: derived from datatype1 and datatype2
+         advtype:
+ 	count = 2, blocklens[0] = 1, blocklens[1]=1,
+@@ -676,10 +676,9 @@
+     int  mpi_err_strlen;
+     int  mpi_err;
+     int  i;
+-    int  nerrors = 0;		/* number of errors */
+     MPI_Datatype  etype,filetype;
+     MPI_Datatype  adv_filetype,bas_filetype[2];
+-    MPI_Datatype  etypenew, filetypenew;
++    MPI_Datatype  filetypenew;
+     MPI_Offset    disp;
+     MPI_Status    Status;
+     MPI_Aint      adv_disp[2];
+@@ -715,7 +714,7 @@
+     blocklens[0] = 1;
+     offsets[0]   = 0;
+ 
+-    if((mpi_err= MPI_Type_hindexed(count,blocklens,offsets,MPI_BYTE,&filetype))
++    if((mpi_err= MPI_Type_create_hindexed(count,blocklens,offsets,MPI_BYTE,&filetype))
+        != MPI_SUCCESS){
+       	MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen);
+ 	printf("MPI_Type_contiguous failed (%s)\n", mpi_err_str);
+@@ -731,7 +730,7 @@
+     count = 1;
+     blocklens[0]=1;
+     offsets[0] = 1;
+-    if((mpi_err= MPI_Type_hindexed(count,blocklens,offsets,MPI_BYTE,&filetypenew))
++    if((mpi_err= MPI_Type_create_hindexed(count,blocklens,offsets,MPI_BYTE,&filetypenew))
+        != MPI_SUCCESS){
+       	MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen);
+ 	printf("MPI_Type_contiguous failed (%s)\n", mpi_err_str);
+@@ -752,10 +751,10 @@
+     bas_filetype[0]  = filetype;
+     bas_filetype[1]  = filetypenew;
+ 
+-    if((mpi_err= MPI_Type_struct(outcount,adv_blocklens,adv_disp,bas_filetype,&adv_filetype))
++    if((mpi_err= MPI_Type_create_struct(outcount,adv_blocklens,adv_disp,bas_filetype,&adv_filetype))
+        != MPI_SUCCESS){
+       	MPI_Error_string(mpi_err, mpi_err_str, &mpi_err_strlen);
+-	printf("MPI_Type_struct failed (%s)\n", mpi_err_str);
++	printf("MPI_Type_create_struct failed (%s)\n", mpi_err_str);
+ 	return 1;
+     }
+     if((mpi_err=MPI_Type_commit(&adv_filetype))!=MPI_SUCCESS){
+@@ -842,7 +841,7 @@
+ processes are needed.
+ 
+ 1. Details for the test:
+-1) Create one derived datatype with MPI_Type_hindexed:
++1) Create one derived datatype with MPI_Type_create_hindexed:
+ 
+ 2) Choosing at least two processes to contribute none for IO with
+    the buf size inside MPI_Write_at_all to 0.
+@@ -898,7 +897,7 @@
+     offsets[1] = (mpi_size+mpi_rank)*count;
+ 
+     if(count !=0) {
+-        if((mpi_err = MPI_Type_hindexed(2,
++        if((mpi_err = MPI_Type_create_hindexed(2,
+                                         blocklens,
+                                         offsets,
+                                         etype,
+@@ -914,7 +913,7 @@
+             return 1;
+         } /* end if */
+ 
+-        if((mpi_err = MPI_Type_hindexed(2,
++        if((mpi_err = MPI_Type_create_hindexed(2,
+                                         blocklens,
+                                         offsets,
+                                         etype,
+@@ -1098,7 +1097,7 @@
+      * calls.  By then, MPI calls may not work.
+      */
+     if (H5dont_atexit() < 0){
+-	printf("Failed to turn off atexit processing. Continue.\n", mpi_rank);
++	printf("Failed to turn off atexit processing. Continue.\n");
+     };
+     H5open();
+     if (parse_options(argc, argv) != 0){
diff --git a/gnu/packages/patches/hdf5-mpi-deprecations.patch b/gnu/packages/patches/hdf5-mpi-deprecations.patch
new file mode 100644
index 0000000000..eb5d1cb681
--- /dev/null
+++ b/gnu/packages/patches/hdf5-mpi-deprecations.patch
@@ -0,0 +1,61 @@
+--- a/src/H5.c
++++ b/src/H5.c
+@@ -138,7 +138,7 @@
+         if (mpi_initialized && !mpi_finalized) {
+             int key_val;
+ 
+-            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, 
++            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN, 
+                                                                  (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, 
+                                                                  &key_val, NULL)))
+                 HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)
+--- hdf5-1.10.4/testpar/t_cache.c
++++ hdf5-1.10.4/testpar/t_cache.c
+@@ -1217,20 +1217,20 @@
+     struct mssg_t sample; /* used to compute displacements */
+ 
+     /* setup the displacements array */
+-    if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) ||
+-         ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) {
++    if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) ||
++         ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) {
+ 
+         nerrors++;
+         success = FALSE;
+         if ( verbose ) {
+-            HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n",
++            HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n",
+                       world_mpi_rank, FUNC);
+         }
+ 
+@@ -1245,14 +1245,14 @@
+ 
+     if ( success ) {
+ 
+-        result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
++        result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
+ 
+         if ( result != MPI_SUCCESS ) {
+ 
+             nerrors++;
+             success = FALSE;
+             if ( verbose ) {
+-                HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n",
++                HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n",
+                           world_mpi_rank, FUNC);
+             }
+         }
diff --git a/gnu/packages/patches/mcron-install.patch b/gnu/packages/patches/mcron-install.patch
deleted file mode 100644
index 3cd291f576..0000000000
--- a/gnu/packages/patches/mcron-install.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-This patch allows us to install the Vixie-compatible binaries as
-non-root without creating /var/run, etc.
-
---- mcron-1.0.6/makefile.in	2010-06-19 20:44:17.000000000 +0200
-+++ mcron-1.0.6/makefile.in	2010-07-04 16:16:25.000000000 +0200
-@@ -1004,15 +1004,11 @@ mcron.c : main.scm crontab.scm makefile.
- 	@rm -f mcron.escaped.scm > /dev/null 2>&1
- 
- install-exec-hook:
--	@if [ "x@NO_VIXIE_CLOBBER@" != "xyes"   -a   "`id -u`" -eq "0" ]; then \
-+	@if [ "x@NO_VIXIE_CLOBBER@" != "xyes" ]; then \
-        rm -f $(fpp)cron$(EXEEXT) > /dev/null 2>&1; \
-        $(INSTALL) --mode='u=rwx' mcron$(EXEEXT) $(fpp)cron$(EXEEXT); \
-        rm -f $(fpp)crontab$(EXEEXT) > /dev/null 2>&1; \
-        $(INSTALL) --mode='u=rwxs,og=rx' mcron$(EXEEXT) $(fpp)crontab$(EXEEXT); \
--       $(INSTALL) -d --mode='u=rwx' $(DESTDIR)/var/cron; \
--       $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)/var/run; \
--       $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@; \
--       $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@/mcron; \
-     elif [ "x@NO_VIXIE_CLOBBER@" = "xyes" ]; then \
-        echo "Not installing Vixie-style programs"; \
-     else \
diff --git a/gnu/packages/patches/musescore-fix-use_webengine.patch b/gnu/packages/patches/musescore-fix-use_webengine.patch
new file mode 100644
index 0000000000..b0b8216a42
--- /dev/null
+++ b/gnu/packages/patches/musescore-fix-use_webengine.patch
@@ -0,0 +1,165 @@
+From bb0c1a9b4940f3f6b52c0df535289ec8a3bc9e03 Mon Sep 17 00:00:00 2001
+From: Dmitri Ovodok <dmitrio95@yandex.ru>
+Date: Mon, 4 Feb 2019 21:35:25 +0300
+Subject: [PATCH] Fix build without USE_WEBENGINE and SCRIPT_INTERFACE
+
+Old-style login dialog is used if USE_WEBENGINE is turned off
+---
+ mscore/logindialog.h            |  2 ++
+ mscore/musescore.cpp            |  4 +++-
+ mscore/network/loginmanager.cpp | 13 +++++++++++--
+ mscore/network/loginmanager.h   |  4 ++++
+ mscore/network/loginmanager_p.h |  4 ++++
+ 5 files changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/mscore/logindialog.h b/mscore/logindialog.h
+index 4e86ae7985..f44511d8c0 100644
+--- a/mscore/logindialog.h
++++ b/mscore/logindialog.h
+@@ -21,6 +21,8 @@ class LoginManager;
+ 
+ //---------------------------------------------------------
+ //   LoginDialog
++//    Old-style login dialog in case QtWebEngine is
++//    unavailable.
+ //---------------------------------------------------------
+ 
+ class LoginDialog : public QDialog, public Ui::LoginDialog
+diff --git a/mscore/musescore.cpp b/mscore/musescore.cpp
+index 80c712aea9..5bb8354992 100644
+--- a/mscore/musescore.cpp
++++ b/mscore/musescore.cpp
+@@ -7572,12 +7572,14 @@ bool MuseScore::exportPartsPdfsToJSON(const QString& inFilePath, const QString&
+       }
+ 
+ //---------------------------------------------------------
+-//   getQmlEngine
++//   getPluginEngine
+ //---------------------------------------------------------
+ 
++#ifdef SCRIPT_INTERFACE
+ QmlPluginEngine* MuseScore::getPluginEngine()
+       {
+       if (!_qmlEngine)
+             _qmlEngine = new QmlPluginEngine(this);
+       return _qmlEngine;
+       }
++#endif
+diff --git a/mscore/network/loginmanager.cpp b/mscore/network/loginmanager.cpp
+index a53d7fe811..664786ccc8 100644
+--- a/mscore/network/loginmanager.cpp
++++ b/mscore/network/loginmanager.cpp
+@@ -18,7 +18,9 @@
+ #include "kQOAuth/kqoauthrequest.h"
+ #include "kQOAuth/kqoauthrequest_xauth.h"
+ 
++#ifdef USE_WEBENGINE
+ #include <QWebEngineCookieStore>
++#endif
+ 
+ namespace Ms {
+ 
+@@ -286,8 +288,11 @@ void LoginManager::onTryLoginError(const QString& error)
+       disconnect(this, SIGNAL(getUserError(QString)), this, SLOT(onTryLoginError(QString)));
+       connect(this, SIGNAL(loginSuccess()), this, SLOT(tryLogin()));
+       logout();
++#ifdef USE_WEBENGINE
+       loginInteractive();
+-//       mscore->showLoginDialog(); // TODO: switch depending on USE_WEBENGINE
++#else
++      mscore->showLoginDialog();
++#endif
+       }
+ /*------- END - TRY LOGIN ROUTINES ----------------------------*/
+ 
+@@ -295,6 +300,7 @@ void LoginManager::onTryLoginError(const QString& error)
+ //   loginInteractive
+ //---------------------------------------------------------
+ 
++#ifdef USE_WEBENGINE
+ void LoginManager::loginInteractive()
+       {
+       QWebEngineView* webView = new QWebEngineView;
+@@ -326,6 +332,7 @@ void LoginManager::loginInteractive()
+       webView->load(ApiInfo::loginUrl);
+       webView->show();
+       }
++#endif
+ 
+ //---------------------------------------------------------
+ //   login
+@@ -346,7 +353,7 @@ void LoginManager::login(QString login, QString password)
+       connect(reply, &QNetworkReply::finished, this, [this, reply] {
+             onReplyFinished(reply, RequestType::LOGIN);
+             });
+-     }
++      }
+ 
+ //---------------------------------------------------------
+ //   onLoginSuccessReply
+@@ -874,6 +881,7 @@ ApiRequest ApiRequestBuilder::build() const
+ //    musescore.com
+ //---------------------------------------------------------
+ 
++#ifdef USE_WEBENGINE
+ void ApiWebEngineRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo& request)
+       {
+       const ApiInfo& apiInfo = ApiInfo::instance();
+@@ -881,4 +889,5 @@ void ApiWebEngineRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo&
+       request.setHttpHeader(apiInfo.clientIdHeader, apiInfo.clientId);
+       request.setHttpHeader(apiInfo.apiKeyHeader, apiInfo.apiKey);
+       }
++#endif
+ }
+diff --git a/mscore/network/loginmanager.h b/mscore/network/loginmanager.h
+index 584eeea30d..327d9fc966 100644
+--- a/mscore/network/loginmanager.h
++++ b/mscore/network/loginmanager.h
+@@ -13,6 +13,8 @@
+ #ifndef __LOGINMANAGER_H__
+ #define __LOGINMANAGER_H__
+ 
++#include "config.h"
++
+ namespace Ms {
+ 
+ //---------------------------------------------------------
+@@ -83,7 +85,9 @@ class LoginManager : public QObject
+    public:
+       LoginManager(QAction* uploadAudioMenuAction, QObject* parent = 0);
+       void login(QString login, QString password);
++#ifdef USE_WEBENGINE
+       void loginInteractive();
++#endif
+       void upload(const QString& path, int nid, const QString& title, const QString& description, const QString& priv, const QString& license, const QString& tags, const QString& changes);
+       bool hasAccessToken();
+       void getUser();
+diff --git a/mscore/network/loginmanager_p.h b/mscore/network/loginmanager_p.h
+index 88228a3958..2848dde35a 100644
+--- a/mscore/network/loginmanager_p.h
++++ b/mscore/network/loginmanager_p.h
+@@ -20,6 +20,8 @@
+ #ifndef __LOGINMANAGER_P_H__
+ #define __LOGINMANAGER_P_H__
+ 
++#include "config.h"
++
+ namespace Ms {
+ 
+ //---------------------------------------------------------
+@@ -102,6 +104,7 @@ class ApiRequestBuilder
+ //   ApiWebEngineRequestInterceptor
+ //---------------------------------------------------------
+ 
++#ifdef USE_WEBENGINE
+ class ApiWebEngineRequestInterceptor : public QWebEngineUrlRequestInterceptor
+       {
+       Q_OBJECT
+@@ -109,6 +112,7 @@ class ApiWebEngineRequestInterceptor : public QWebEngineUrlRequestInterceptor
+       ApiWebEngineRequestInterceptor(QObject* parent) : QWebEngineUrlRequestInterceptor(parent) {}
+       void interceptRequest(QWebEngineUrlRequestInfo& info) override;
+       };
++#endif
+ 
+ //---------------------------------------------------------
+ //   HttpStatus
diff --git a/gnu/packages/patches/net-tools-bitrot.patch b/gnu/packages/patches/net-tools-bitrot.patch
deleted file mode 100644
index 89ab6f19eb..0000000000
--- a/gnu/packages/patches/net-tools-bitrot.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Starting with libc 2.20, this file would fail to build with "NULL undeclared".
-Include the fine header to solve that.
-
---- net-tools-1.60/lib/ec_hw.c	1999-11-20 22:02:53.000000000 +0100
-+++ net-tools-1.60/lib/ec_hw.c	2014-10-06 22:48:43.811027768 +0200
-@@ -16,6 +16,7 @@
- 
- #if HAVE_HWEC
- 
-+#include <stddef.h>
- #include <net/if_arp.h>
- #include "net-support.h"
-
-
-Avoid "label at end of compound statement" errors.
-
---- net-tools-1.60/lib/inet_sr.c	2000-02-20 22:46:45.000000000 +0100
-+++ net-tools-1.60/lib/inet_sr.c	2014-10-06 22:51:22.575023126 +0200
-@@ -104,7 +104,6 @@ static int INET_setroute(int action, int
-        isnet = 1; break;
-     case 2:
-        isnet = 0; break;
--    default:
-     }
- 
-     /* Fill in the other fields. */
-
---- net-tools-1.60/hostname.c	2001-04-08 19:04:23.000000000 +0200
-+++ net-tools-1.60/hostname.c	2014-10-06 23:01:04.235006119 +0200
-@@ -77,7 +77,6 @@ static void setnname(char *nname)
-         case EINVAL:
-             fprintf(stderr, _("%s: name too long\n"), program_name);
-             break;
--        default:
-         }
- 	exit(1);
-     }
-@@ -97,7 +96,6 @@ static void sethname(char *hname)
- 	case EINVAL:
- 	    fprintf(stderr, _("%s: name too long\n"), program_name);
- 	    break;
--	default:
- 	}
- 	exit(1);
-     };
-@@ -116,7 +114,6 @@ static void setdname(char *dname)
- 	case EINVAL:
- 	    fprintf(stderr, _("%s: name too long\n"), program_name);
- 	    break;
--	default:
- 	}
- 	exit(1);
-     };
-@@ -173,7 +170,6 @@ static void showhname(char *hname, int c
- 	    *p = '\0';
- 	printf("%s\n", hp->h_name);
- 	break;
--    default:
-     }
- }
-
-
-Work around the assumption that an 'x25_address' typedef exists.
-
---- net-tools-1.60/lib/x25_sr.c	2000-05-20 15:38:10.000000000 +0200
-+++ net-tools-1.60/lib/x25_sr.c	2014-10-06 22:59:35.787008705 +0200
-@@ -77,7 +77,7 @@ static int X25_setroute(int action, int
-   rt.sigdigits=sigdigits;
- 
-   /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
--  memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
-+  memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address));
- 
-   while (*args) {
- 	if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
-
-
-Fix the multi-line string literal syntax.
-
---- net-tools-1.60/mii-tool.c	2000-05-21 16:31:17.000000000 +0200
-+++ net-tools-1.60/mii-tool.c	2014-10-06 23:07:42.002994489 +0200
-@@ -379,16 +379,16 @@ static void watch_one_xcvr(int skfd, cha
- /*--------------------------------------------------------------------*/
- 
- const char *usage =
--"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
--       -V, --version               display version information
--       -v, --verbose               more verbose output
--       -R, --reset                 reset MII to poweron state
--       -r, --restart               restart autonegotiation
--       -w, --watch                 monitor for link status changes
--       -l, --log                   with -w, write events to syslog
--       -A, --advertise=media,...   advertise only specified media
--       -F, --force=media           force specified media technology
--media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
-+"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\
-+       -V, --version               display version information\n\
-+       -v, --verbose               more verbose output\n\
-+       -R, --reset                 reset MII to poweron state\n\
-+       -r, --restart               restart autonegotiation\n\
-+       -w, --watch                 monitor for link status changes\n\
-+       -l, --log                   with -w, write events to syslog\n\
-+       -A, --advertise=media,...   advertise only specified media\n\
-+       -F, --force=media           force specified media technology\n\
-+media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\
-        (to advertise both HD and FD) 100baseTx, 10baseT\n";
- 
- int main(int argc, char **argv)
diff --git a/gnu/packages/patches/nyx-show-header-stats-with-python3.patch b/gnu/packages/patches/nyx-show-header-stats-with-python3.patch
deleted file mode 100644
index 5b20f180f7..0000000000
--- a/gnu/packages/patches/nyx-show-header-stats-with-python3.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Fri, 22 Jun 2018 02:56:39 +0200
-Subject: nyx: Show header stats.
-
-The following patch was taken verbatim from the upstream repository and
-will be included in the next release.
----
-commit 3494111cc81ad4985e81d0c1ea5e451d8f7a2bcc
-Author: Damian Johnson <atagar@torproject.org>
-Date:   Mon Feb 5 20:07:40 2018 -0800
-
-    Header stats missing with python3
-    
-    Ick! took me a while to find this. Python3 changed division from providing ints
-    to floats. This in turn caused our header panel to call addstr with float x/y
-    coordinates, which made that funciton fail silently. End result is that when
-    the header panel showed two columns of stats the right column was missing.
-    
-    Caught thanks to Stijn.
-
-diff --git a/nyx/panel/header.py b/nyx/panel/header.py
-index 09e3838..fb6f2f7 100644
---- a/nyx/panel/header.py
-+++ b/nyx/panel/header.py
-@@ -155,7 +155,7 @@ class HeaderPanel(nyx.panel.DaemonPanel):
-     # space available for content
- 
-     interface = nyx_interface()
--    left_width = max(subwindow.width / 2, 77) if is_wide else subwindow.width
-+    left_width = max(subwindow.width // 2, 77) if is_wide else subwindow.width
-     right_width = subwindow.width - left_width
- 
-     _draw_platform_section(subwindow, 0, 0, left_width, vals)
-diff --git a/web/changelog/index.html b/web/changelog/index.html
-index 333fa84..196d82b 100644
---- a/web/changelog/index.html
-+++ b/web/changelog/index.html
-@@ -74,6 +74,12 @@
-           </ul>
-         </li>
- 
-+        <li><span class="component">Header</span>
-+          <ul>
-+            <li>Right column of stats missing when using python 3.x</li>
-+          </ul>
-+        </li>
-+
-         <li><span class="component">Connections</span>
-           <ul>
-             <li>Geoip information unavailable for inbound connections</li>
-diff --git a/web/changelog/legacy.html b/web/changelog/legacy.html
-index a380806..02d405f 100644
---- a/web/changelog/legacy.html
-+++ b/web/changelog/legacy.html
-@@ -137,13 +137,13 @@
-           </ul>
-         </li>
- 
--        <li><span class="component">Startup</span>
-+        <li><span class="component">Graph</span>
-           <ul>
-             <li>Crash when pausing if we showed accounting stats</li>
-           </ul>
-         </li>
- 
--        <li><span class="component">Startup</span>
-+        <li><span class="component">Logging</span>
-           <ul>
-             <li>Skip reading from malformed tor log files</li>
-             <li>Unable to log GUARD events</li>
diff --git a/gnu/packages/patches/ocaml-findlib-make-install.patch b/gnu/packages/patches/ocaml-findlib-make-install.patch
deleted file mode 100644
index 238f9ca3ce..0000000000
--- a/gnu/packages/patches/ocaml-findlib-make-install.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Ocaml wants to install its "core" libraries in OCAML_CORE_STDLIB.  That
-does not work in a store-based distribution.
-
-A solution was already provided by Nix
-
-    https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/ocaml/findlib/install_topfind.patch
-
-regenerated for Guix.
-
---- findlib-1.5.3/src/findlib/Makefile	2014-09-16 13:21:46.000000000 +0200
-+++ findlib-1.5.3/src/findlib/Makefile.new	2014-10-01 14:30:54.141082521 +0200
-@@ -89,7 +89,7 @@
- install: all
- 	mkdir -p "$(prefix)$(OCAML_SITELIB)/$(NAME)"
- 	mkdir -p "$(prefix)$(OCAMLFIND_BIN)"
--	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)"
-+	test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_SITELIB)"
- 	files=`$(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib.cmxa findlib.a findlib.cmxs findlib_dynload.cma findlib_dynload.cmxa findlib_dynload.a findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi META` && \
- 	cp $$files "$(prefix)$(OCAML_SITELIB)/$(NAME)"
- 	f="ocamlfind$(EXEC_SUFFIX)"; { test -f ocamlfind_opt$(EXEC_SUFFIX) && f="ocamlfind_opt$(EXEC_SUFFIX)"; }; \
diff --git a/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch
deleted file mode 100644
index 9f8713e3d3..0000000000
--- a/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 354ef78aac0b887fae3c10b28eb2b0d83f66bdfe Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Mon, 2 Jan 2017 17:05:24 +0100
-Subject: [PATCH] Honor SOURCE_DATE_EPOCH
-
----
- Makefile.in | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index a32b4b8..ef4c174 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -113,11 +113,16 @@ graph.cmx: $(CMI) $(CMX)
-	$(OCAMLOPT) $(INCLUDES) -pack -o $@ $^
- 
- VERSION=1.8.7
-+ifdef SOURCE_DATE_EPOCH
-+BUILD_DATE=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" 2>/dev/null || date)
-+else
-+BUILD_DATE=$(shell date)
-+endif
- 
- src/version.ml: Makefile
-	rm -f $@
-	echo "let version = \""$(VERSION)"\"" > $@
--	echo "let date = \""`date`"\"" >> $@
-+	echo "let date = \""$(BUILD_DATE)"\"" >> $@
- 
- # gtk2 graph editor
- ###################
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/openldap-CVE-2017-9287.patch b/gnu/packages/patches/openldap-CVE-2017-9287.patch
deleted file mode 100644
index 5ca2a60c60..0000000000
--- a/gnu/packages/patches/openldap-CVE-2017-9287.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Fix CVE-2017-9287:
-
-https://www.openldap.org/its/?findid=8655
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9287
-
-Patch copied from upstream source repository:
-
-https://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=commit;h=0cee1ffb6021b1aae3fcc9581699da1c85a6dd6e
-
-From 0cee1ffb6021b1aae3fcc9581699da1c85a6dd6e Mon Sep 17 00:00:00 2001
-From: Ryan Tandy <ryan@nardis.ca>
-Date: Wed, 17 May 2017 20:07:39 -0700
-Subject: [PATCH] ITS#8655 fix double free on paged search with pagesize 0
-
-Fixes a double free when a search includes the Paged Results control
-with a page size of 0 and the search base matches the filter.
----
- servers/slapd/back-mdb/search.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/servers/slapd/back-mdb/search.c b/servers/slapd/back-mdb/search.c
-index 301d1a498c..43442aa242 100644
---- a/servers/slapd/back-mdb/search.c
-+++ b/servers/slapd/back-mdb/search.c
-@@ -1066,7 +1066,8 @@ notfound:
- 			/* check size limit */
- 			if ( get_pagedresults(op) > SLAP_CONTROL_IGNORED ) {
- 				if ( rs->sr_nentries >= ((PagedResultsState *)op->o_pagedresults_state)->ps_size ) {
--					mdb_entry_return( op, e );
-+					if (e != base)
-+						mdb_entry_return( op, e );
- 					e = NULL;
- 					send_paged_response( op, rs, &lastid, tentries );
- 					goto done;
--- 
-2.13.0
-
diff --git a/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch b/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch
deleted file mode 100644
index 53f8fde9de..0000000000
--- a/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Drop SPARQLWrapper from the required install inputs under Python 2, as it
-creates a circular dependency.
-
-diff -u rdflib-4.1.2.alt/setup.py rdflib-4.1.2/setup.py
---- rdflib-4.1.2.alt/setup.py	2014-03-04 12:40:26.000000000 +0100
-+++ rdflib-4.1.2/setup.py	2015-01-23 21:52:59.000000000 +0100
-@@ -52,7 +52,7 @@
-         kwargs['test_suite'] = "nose.collector"
-         kwargs['install_requires'] = [
-             'isodate',
--            'pyparsing', 'SPARQLWrapper']
-+            'pyparsing']
- 
-         if sys.version_info[1]<7:  # Python 2.6
-             kwargs['install_requires'].append('ordereddict')
-
diff --git a/gnu/packages/patches/readline-7.0-mingw.patch b/gnu/packages/patches/readline-7.0-mingw.patch
deleted file mode 100644
index 1dc491d556..0000000000
--- a/gnu/packages/patches/readline-7.0-mingw.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Configure checks for chown; add missing shields in code.
-
-Upstream status: not yet presented upstream.
-
---- readline-7.0/histfile.c.orig	2016-12-06 20:04:10.058901731 +0100
-+++ readline-7.0/histfile.c	2016-12-06 20:05:09.220083801 +0100
-@@ -610,8 +610,10 @@
-      user is running this, it's a no-op.  If the shell is running after sudo
-      with a shared history file, we don't want to leave the history file
-      owned by root. */
-+#if HAVE_CHOWN
-   if (rv == 0 && exists)
-     r = chown (filename, finfo.st_uid, finfo.st_gid);
-+#endif
- 
-   xfree (filename);
-   FREE (tempname);
-@@ -757,8 +759,10 @@
-      user is running this, it's a no-op.  If the shell is running after sudo
-      with a shared history file, we don't want to leave the history file
-      owned by root. */
-+#if HAVE_CHOWN
-   if (rv == 0 && exists)
-     mode = chown (histname, finfo.st_uid, finfo.st_gid);
-+#endif
- 
-   FREE (histname);
-   FREE (tempname);
diff --git a/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch
new file mode 100644
index 0000000000..25f0aaf2f3
--- /dev/null
+++ b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch
@@ -0,0 +1,57 @@
+From c9cbcf8730221e366c7495073f8f8d819ee8ce89 Mon Sep 17 00:00:00 2001
+From: Eric Bavier <bavier@member.fsf.org>
+Date: Wed, 6 Feb 2019 10:06:59 -0600
+Subject: [PATCH] Replace deprecated MPI_Attr_get.
+
+Fixes build with OpenMPI version 4.0.
+
+* SRC/pdgstrf.c, SRC/pdgstrf.c, SRC/superlu_grid.c: 'MPI_Attr_get' ->
+  'MPI_Comm_get_attr'.
+---
+ SRC/pdgstrf.c      | 2 +-
+ SRC/pzgstrf.c      | 2 +-
+ SRC/superlu_grid.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/SRC/pdgstrf.c b/SRC/pdgstrf.c
+index 736ffa2..f92a1ba 100644
+--- a/SRC/pdgstrf.c
++++ b/SRC/pdgstrf.c
+@@ -426,7 +426,7 @@ pdgstrf(superlu_dist_options_t * options, int m, int n, double anorm,
+     s_eps = smach_dist("Epsilon");
+     thresh = s_eps * anorm;
+ 
+-    MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
++    MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
+     if (!flag) {
+         fprintf (stderr, "Could not get TAG_UB\n");
+         return (-1);
+diff --git a/SRC/pzgstrf.c b/SRC/pzgstrf.c
+index 8896548..8800057 100644
+--- a/SRC/pzgstrf.c
++++ b/SRC/pzgstrf.c
+@@ -426,7 +426,7 @@ pzgstrf(superlu_dist_options_t * options, int m, int n, double anorm,
+     s_eps = smach_dist("Epsilon");
+     thresh = s_eps * anorm;
+ 
+-    MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
++    MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
+     if (!flag) {
+         fprintf (stderr, "Could not get TAG_UB\n");
+         return (-1);
+diff --git a/SRC/superlu_grid.c b/SRC/superlu_grid.c
+index 1213d27..0c0fb90 100644
+--- a/SRC/superlu_grid.c
++++ b/SRC/superlu_grid.c
+@@ -150,7 +150,7 @@ void superlu_gridmap(
+     {
+ 	int tag_ub;
+ 	if ( !grid->iam ) {
+-	    MPI_Attr_get(Bcomm, MPI_TAG_UB, &tag_ub, &info);
++	    MPI_Comm_get_attr(Bcomm, MPI_TAG_UB, &tag_ub, &info);
+ 	    printf("MPI_TAG_UB %d\n", tag_ub);
+ 	    /* returns 4295677672
+ 	       In reality it is restricted to no greater than 16384. */
+-- 
+2.20.1
+
diff --git a/gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch b/gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch
deleted file mode 100644
index 9d0a08c8bf..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch
+++ /dev/null
@@ -1,1485 +0,0 @@
-From 1b39a1834ed182bbd8036a5cd74a9ea111fa4691 Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara@arm.com>
-Date: Mon, 29 Oct 2018 00:56:47 +0000
-Subject: [PATCH 03/13] sunxi: A64: Update .dts/.dtsi files
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Update the .dts/.dtsi file from the Linux sunxi/dt64-for-4.20 tree:
-commit 679294497be31596e1c9c61507746d72b6b05f26
-Author: Rodrigo Exterckötter Tjäder <rodrigo@tjader.xyz>
-Date:   Wed Sep 26 19:48:24 2018 +0000
-    arm64: dts: allwinner: a64: a64-olinuxino: set the PHY TX delay
-
-Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Reviewed-by: Jagan Teki <jagan@openedev.com>
----
- arch/arm/dts/sun50i-a64-amarula-relic.dts    | 168 +++++++++++++-
- arch/arm/dts/sun50i-a64-bananapi-m64.dts     |  34 ++-
- arch/arm/dts/sun50i-a64-nanopi-a64.dts       |  89 +++++++-
- arch/arm/dts/sun50i-a64-olinuxino.dts        | 103 ++++++++-
- arch/arm/dts/sun50i-a64-orangepi-win.dts     | 179 ++++++++++++++-
- arch/arm/dts/sun50i-a64-pine64.dts           |  32 ++-
- arch/arm/dts/sun50i-a64-sopine-baseboard.dts |  32 ++-
- arch/arm/dts/sun50i-a64-sopine.dtsi          |  15 ++
- arch/arm/dts/sun50i-a64.dtsi                 | 313 +++++++++++++++++++++++++--
- 9 files changed, 920 insertions(+), 45 deletions(-)
-
-diff --git a/arch/arm/dts/sun50i-a64-amarula-relic.dts b/arch/arm/dts/sun50i-a64-amarula-relic.dts
-index f3b4e93ece..6cb2b7f0c8 100644
---- a/arch/arm/dts/sun50i-a64-amarula-relic.dts
-+++ b/arch/arm/dts/sun50i-a64-amarula-relic.dts
-@@ -22,11 +22,11 @@
- 		stdout-path = "serial0:115200n8";
- 	};
- 
--	reg_vcc3v3: vcc3v3 {
--		compatible = "regulator-fixed";
--		regulator-name = "vcc3v3";
--		regulator-min-microvolt = <3300000>;
--		regulator-max-microvolt = <3300000>;
-+	wifi_pwrseq: wifi-pwrseq {
-+		compatible = "mmc-pwrseq-simple";
-+		clocks = <&rtc 1>;
-+		clock-names = "ext_clock";
-+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* WL-PMU-EN: PL2 */
- 	};
- };
- 
-@@ -34,10 +34,34 @@
- 	status = "okay";
- };
- 
-+&mmc1 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc1_pins>;
-+	vmmc-supply = <&reg_dcdc1>;
-+	/*
-+	 * Schematic shows both dldo4 and eldo1 connected for vcc-io-wifi, but
-+	 * dldo4 connection shows DNP(Do Not Populate) and eldo1 connected with
-+	 * 0Ohm register to vcc-io-wifi so eldo1 is used.
-+	 */
-+	vqmmc-supply = <&reg_eldo1>;
-+	mmc-pwrseq = <&wifi_pwrseq>;
-+	bus-width = <4>;
-+	non-removable;
-+	status = "okay";
-+
-+	brcmf: wifi@1 {
-+		reg = <1>;
-+		compatible = "brcm,bcm4329-fmac";
-+		interrupt-parent = <&r_pio>;
-+		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>;	/* WL-WAKE-AP: PL3 */
-+		interrupt-names = "host-wake";
-+	};
-+};
-+
- &mmc2 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&mmc2_pins>;
--	vmmc-supply = <&reg_vcc3v3>;
-+	vmmc-supply = <&reg_dcdc1>;
- 	bus-width = <8>;
- 	non-removable;
- 	cap-mmc-hw-reset;
-@@ -48,9 +72,138 @@
- 	status = "okay";
- };
- 
-+&r_rsb {
-+	status = "okay";
-+
-+	axp803: pmic@3a3 {
-+		compatible = "x-powers,axp803";
-+		reg = <0x3a3>;
-+		interrupt-parent = <&r_intc>;
-+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-+		x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
-+	};
-+};
-+
-+#include "axp803.dtsi"
-+
-+&reg_aldo1 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <2800000>;
-+	regulator-max-microvolt = <2800000>;
-+	regulator-name = "avdd-csi";
-+};
-+
-+&reg_aldo2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-pl";
-+};
-+
-+&reg_aldo3 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <3000000>;
-+	regulator-max-microvolt = <3000000>;
-+	regulator-name = "vcc-pll-avcc";
-+};
-+
-+&reg_dcdc1 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-3v3";
-+};
-+
-+&reg_dcdc2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1040000>;
-+	regulator-max-microvolt = <1300000>;
-+	regulator-name = "vdd-cpux";
-+};
-+
-+/* DCDC3 is polyphased with DCDC2 */
-+
-+&reg_dcdc5 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1500000>;
-+	regulator-max-microvolt = <1500000>;
-+	regulator-name = "vcc-dram";
-+};
-+
-+&reg_dcdc6 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1100000>;
-+	regulator-max-microvolt = <1100000>;
-+	regulator-name = "vdd-sys";
-+};
-+
-+&reg_dldo1 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-hdmi-dsi-sensor";
-+};
-+
-+&reg_dldo2 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-mipi";
-+};
-+
-+&reg_dldo3 {
-+	regulator-min-microvolt = <2800000>;
-+	regulator-max-microvolt = <2800000>;
-+	regulator-name = "dovdd-csi";
-+};
-+
-+&reg_dldo4 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-wifi-io";
-+};
-+
-+&reg_drivevbus {
-+	regulator-name = "usb0-vbus";
-+	status = "okay";
-+};
-+
-+&reg_eldo1 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <1800000>;
-+	regulator-name = "cpvdd";
-+};
-+
-+&reg_eldo3 {
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <1800000>;
-+	regulator-name = "dvdd-csi";
-+};
-+
-+&reg_fldo1 {
-+	regulator-min-microvolt = <1200000>;
-+	regulator-max-microvolt = <1200000>;
-+	regulator-name = "vcc-1v2-hsic";
-+};
-+
-+/*
-+ * The A64 chip cannot work without this regulator off, although
-+ * it seems to be only driving the AR100 core.
-+ * Maybe we don't still know well about CPUs domain.
-+ */
-+&reg_fldo2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1100000>;
-+	regulator-max-microvolt = <1100000>;
-+	regulator-name = "vdd-cpus";
-+};
-+
-+&reg_rtc_ldo {
-+	regulator-name = "vcc-rtc";
-+};
-+
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
-@@ -61,5 +214,6 @@
- 
- &usbphy {
- 	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-+	usb0_vbus-supply = <&reg_drivevbus>;
- 	status = "okay";
- };
-diff --git a/arch/arm/dts/sun50i-a64-bananapi-m64.dts b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
-index 0716b14411..ef1c90401b 100644
---- a/arch/arm/dts/sun50i-a64-bananapi-m64.dts
-+++ b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
-@@ -60,6 +60,17 @@
- 		stdout-path = "serial0:115200n8";
- 	};
- 
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+
- 	leds {
- 		compatible = "gpio-leds";
- 
-@@ -86,6 +97,10 @@
- 	};
- };
- 
-+&de {
-+	status = "okay";
-+};
-+
- &ehci0 {
- 	status = "okay";
- };
-@@ -103,6 +118,17 @@
- 	status = "okay";
- };
- 
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
- &i2c1 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&i2c1_pins>;
-@@ -151,7 +177,7 @@
- 
- &mmc2 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&mmc2_pins>;
-+	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
- 	vmmc-supply = <&reg_dcdc1>;
- 	bus-width = <8>;
- 	non-removable;
-@@ -296,9 +322,13 @@
- 	regulator-name = "vcc-rtc";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
-diff --git a/arch/arm/dts/sun50i-a64-nanopi-a64.dts b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
-index e2dce48fa2..31884dbc88 100644
---- a/arch/arm/dts/sun50i-a64-nanopi-a64.dts
-+++ b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
-@@ -51,12 +51,44 @@
- 	compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
- 
- 	aliases {
-+		ethernet0 = &emac;
- 		serial0 = &uart0;
- 	};
- 
- 	chosen {
- 		stdout-path = "serial0:115200n8";
- 	};
-+
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+
-+	leds {
-+		compatible = "gpio-leds";
-+
-+		blue {
-+			label = "nanopi-a64:blue:status";
-+			gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
-+		};
-+	};
-+
-+	wifi_pwrseq: wifi_pwrseq {
-+		compatible = "mmc-pwrseq-simple";
-+		clocks = <&rtc 1>;
-+		clock-names = "ext_clock";
-+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
-+	};
-+};
-+
-+&de {
-+	status = "okay";
- };
- 
- &ehci0 {
-@@ -67,6 +99,26 @@
- 	status = "okay";
- };
- 
-+&emac {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&rgmii_pins>;
-+	phy-mode = "rgmii";
-+	phy-handle = <&ext_rgmii_phy>;
-+	phy-supply = <&reg_dcdc1>;
-+	status = "okay";
-+};
-+
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
- /* i2c1 connected with gpio headers like pine64, bananapi */
- &i2c1 {
- 	pinctrl-names = "default";
-@@ -78,6 +130,13 @@
- 	bias-pull-up;
- };
- 
-+&mdio {
-+	ext_rgmii_phy: ethernet-phy@1 {
-+		compatible = "ethernet-phy-ieee802.3-c22";
-+		reg = <7>;
-+	};
-+};
-+
- &mmc0 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&mmc0_pins>;
-@@ -88,6 +147,24 @@
- 	status = "okay";
- };
- 
-+&mmc1 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc1_pins>;
-+	vmmc-supply = <&reg_dcdc1>;
-+	vqmmc-supply = <&reg_dldo4>;
-+	mmc-pwrseq = <&wifi_pwrseq>;
-+	bus-width = <4>;
-+	non-removable;
-+	status = "okay";
-+
-+	rtl8189etv: wifi@1 {
-+		reg = <1>;
-+		interrupt-parent = <&r_pio>;
-+		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
-+		interrupt-names = "host-wake";
-+	};
-+};
-+
- &ohci0 {
- 	status = "okay";
- };
-@@ -125,9 +202,9 @@
- 
- &reg_dcdc1 {
- 	regulator-always-on;
--	regulator-min-microvolt = <3000000>;
--	regulator-max-microvolt = <3000000>;
--	regulator-name = "vcc-3v";
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-3v3";
- };
- 
- &reg_dcdc2 {
-@@ -195,9 +272,13 @@
- 	regulator-name = "vcc-rtc";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
-diff --git a/arch/arm/dts/sun50i-a64-olinuxino.dts b/arch/arm/dts/sun50i-a64-olinuxino.dts
-index 3b3081b10e..f7a4bccaa5 100644
---- a/arch/arm/dts/sun50i-a64-olinuxino.dts
-+++ b/arch/arm/dts/sun50i-a64-olinuxino.dts
-@@ -51,6 +51,7 @@
- 	compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64";
- 
- 	aliases {
-+		ethernet0 = &emac;
- 		serial0 = &uart0;
- 	};
- 
-@@ -58,12 +59,74 @@
- 		stdout-path = "serial0:115200n8";
- 	};
- 
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+
-+	reg_usb1_vbus: usb1-vbus {
-+		compatible = "regulator-fixed";
-+		regulator-name = "usb1-vbus";
-+		regulator-min-microvolt = <5000000>;
-+		regulator-max-microvolt = <5000000>;
-+		regulator-boot-on;
-+		enable-active-high;
-+		gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */
-+		status = "okay";
-+	};
-+
- 	wifi_pwrseq: wifi_pwrseq {
- 		compatible = "mmc-pwrseq-simple";
- 		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
- 	};
- };
- 
-+&de {
-+	status = "okay";
-+};
-+
-+&ehci0 {
-+	status = "okay";
-+};
-+
-+&ehci1 {
-+	status = "okay";
-+};
-+
-+&emac {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&rgmii_pins>;
-+	phy-mode = "rgmii";
-+	phy-handle = <&ext_rgmii_phy>;
-+	phy-supply = <&reg_dcdc1>;
-+	allwinner,tx-delay-ps = <600>;
-+	status = "okay";
-+};
-+
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
-+&mdio {
-+	ext_rgmii_phy: ethernet-phy@1 {
-+		compatible = "ethernet-phy-ieee802.3-c22";
-+		reg = <1>;
-+	};
-+};
-+
- &mmc0 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&mmc0_pins>;
-@@ -92,6 +155,14 @@
- 	};
- };
- 
-+&ohci0 {
-+	status = "okay";
-+};
-+
-+&ohci1 {
-+	status = "okay";
-+};
-+
- &r_rsb {
- 	status = "okay";
- 
-@@ -100,6 +171,7 @@
- 		reg = <0x3a3>;
- 		interrupt-parent = <&r_intc>;
- 		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-+		x-powers,drive-vbus-en;	/* set N_VBUSEN as output pin */
- 	};
- };
- 
-@@ -142,10 +214,14 @@
- 
- /* DCDC3 is polyphased with DCDC2 */
- 
-+/*
-+ * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal
-+ * 1.35V that the PMIC can drive.
-+ */
- &reg_dcdc5 {
- 	regulator-always-on;
--	regulator-min-microvolt = <1500000>;
--	regulator-max-microvolt = <1500000>;
-+	regulator-min-microvolt = <1360000>;
-+	regulator-max-microvolt = <1360000>;
- 	regulator-name = "vcc-ddr3";
- };
- 
-@@ -180,6 +256,11 @@
- 	regulator-name = "vcc-wifi-io";
- };
- 
-+&reg_drivevbus {
-+	regulator-name = "usb0-vbus";
-+	status = "okay";
-+};
-+
- &reg_eldo1 {
- 	regulator-min-microvolt = <1800000>;
- 	regulator-max-microvolt = <1800000>;
-@@ -214,8 +295,24 @@
- 	regulator-name = "vcc-rtc";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
-+	status = "okay";
-+};
-+
-+&usb_otg {
-+	dr_mode = "otg";
-+	status = "okay";
-+};
-+
-+&usbphy {
- 	status = "okay";
-+	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-+	usb0_vbus-supply = <&reg_drivevbus>;
-+	usb1_vbus-supply = <&reg_usb1_vbus>;
- };
-diff --git a/arch/arm/dts/sun50i-a64-orangepi-win.dts b/arch/arm/dts/sun50i-a64-orangepi-win.dts
-index bf42690a33..b0c64f7579 100644
---- a/arch/arm/dts/sun50i-a64-orangepi-win.dts
-+++ b/arch/arm/dts/sun50i-a64-orangepi-win.dts
-@@ -1,5 +1,6 @@
- /*
-  * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
-+ * Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org>
-  *
-  * This file is dual-licensed: you can use it either under the terms
-  * of the GPL or the X11 license, at your option. Note that this dual
-@@ -51,23 +52,127 @@
- 	compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64";
- 
- 	aliases {
-+		ethernet0 = &emac;
- 		serial0 = &uart0;
-+		serial1 = &uart1;
-+		serial2 = &uart2;
-+		serial3 = &uart3;
-+		serial4 = &uart4;
- 	};
- 
- 	chosen {
- 		stdout-path = "serial0:115200n8";
- 	};
-+
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+
-+	leds {
-+		compatible = "gpio-leds";
-+
-+		status {
-+			label = "orangepi:green:status";
-+			gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
-+		};
-+	};
-+
-+	reg_gmac_3v3: gmac-3v3 {
-+		compatible = "regulator-fixed";
-+		regulator-name = "gmac-3v3";
-+		regulator-min-microvolt = <3300000>;
-+		regulator-max-microvolt = <3300000>;
-+		regulator-boot-on;
-+		enable-active-high;
-+		gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */
-+		status = "okay";
-+	};
-+
-+	reg_usb1_vbus: usb1-vbus {
-+		compatible = "regulator-fixed";
-+		regulator-name = "usb1-vbus";
-+		regulator-min-microvolt = <5000000>;
-+		regulator-max-microvolt = <5000000>;
-+		regulator-boot-on;
-+		enable-active-high;
-+		gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */
-+		status = "okay";
-+	};
-+
-+	wifi_pwrseq: wifi_pwrseq {
-+		compatible = "mmc-pwrseq-simple";
-+		reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
-+	};
-+};
-+
-+&de {
-+	status = "okay";
-+};
-+
-+&ehci0 {
-+	status = "okay";
- };
- 
- &ehci1 {
- 	status = "okay";
- };
- 
-+&emac {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&rgmii_pins>;
-+	phy-mode = "rgmii";
-+	phy-handle = <&ext_rgmii_phy>;
-+	phy-supply = <&reg_gmac_3v3>;
-+	status = "okay";
-+};
-+
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
-+&mdio {
-+	ext_rgmii_phy: ethernet-phy@1 {
-+		compatible = "ethernet-phy-ieee802.3-c22";
-+		reg = <1>;
-+	};
-+};
-+
- &mmc0 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&mmc0_pins>;
- 	vmmc-supply = <&reg_dcdc1>;
--	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
-+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
-+	disable-wp;
-+	bus-width = <4>;
-+	status = "okay";
-+};
-+
-+&mmc1 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc1_pins>;
-+	vmmc-supply = <&reg_dldo2>;
-+	vqmmc-supply = <&reg_dldo4>;
-+	mmc-pwrseq = <&wifi_pwrseq>;
-+	bus-width = <4>;
-+	non-removable;
-+	status = "okay";
-+};
-+
-+&ohci0 {
- 	status = "okay";
- };
- 
-@@ -89,9 +194,8 @@
- #include "axp803.dtsi"
- 
- &reg_aldo1 {
--	regulator-always-on;
--	regulator-min-microvolt = <1800000>;
--	regulator-max-microvolt = <3300000>;
-+	regulator-min-microvolt = <2800000>;
-+	regulator-max-microvolt = <2800000>;
- 	regulator-name = "afvcc-csi";
- };
- 
-@@ -163,12 +267,23 @@
- 	regulator-name = "vcc-wifi-io";
- };
- 
-+&reg_drivevbus {
-+	regulator-name = "usb0-vbus";
-+	status = "okay";
-+};
-+
- &reg_eldo1 {
- 	regulator-min-microvolt = <1800000>;
- 	regulator-max-microvolt = <1800000>;
- 	regulator-name = "cpvdd";
- };
- 
-+&reg_eldo3 {
-+	regulator-min-microvolt = <1500000>;
-+	regulator-max-microvolt = <1800000>;
-+	regulator-name = "dvdd-csi";
-+};
-+
- &reg_fldo1 {
- 	regulator-min-microvolt = <1200000>;
- 	regulator-max-microvolt = <1200000>;
-@@ -191,13 +306,65 @@
- 	regulator-name = "vcc-rtc";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
-+&spi0 {
-+	status = "okay";
-+
-+	spi-flash@0 {
-+		compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
-+		reg = <0>;
-+		spi-max-frequency = <80000000>;
-+		m25p,fast-read;
-+		status = "okay";
-+	};
-+};
-+
-+/* On debug connector */
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
--&usbphy {
-+/* Bluetooth */
-+&uart1 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
-+	status = "okay";
-+};
-+
-+/* On Pi-2 connector, RTS/CTS optional */
-+&uart2 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&uart2_pins>;
-+	status = "disabled";
-+};
-+
-+/* On Pi-2 connector, RTS/CTS optional */
-+&uart3 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&uart3_pins>;
-+	status = "disabled";
-+};
-+
-+/* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */
-+&uart4 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&uart4_pins>;
-+	status = "disabled";
-+};
-+
-+&usb_otg {
-+	dr_mode = "otg";
- 	status = "okay";
- };
- 
-+&usbphy {
-+	usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-+	usb0_vbus-supply = <&reg_drivevbus>;
-+	usb1_vbus-supply = <&reg_usb1_vbus>;
-+	status = "okay";
-+};
-diff --git a/arch/arm/dts/sun50i-a64-pine64.dts b/arch/arm/dts/sun50i-a64-pine64.dts
-index a75825798a..c077b6c1f4 100644
---- a/arch/arm/dts/sun50i-a64-pine64.dts
-+++ b/arch/arm/dts/sun50i-a64-pine64.dts
-@@ -62,6 +62,21 @@
- 	chosen {
- 		stdout-path = "serial0:115200n8";
- 	};
-+
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+};
-+
-+&de {
-+	status = "okay";
- };
- 
- &ehci0 {
-@@ -82,6 +97,17 @@
- 
- };
- 
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
- &i2c1 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&i2c1_pins>;
-@@ -229,6 +255,10 @@
- 	regulator-name = "vcc-rtc";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
- /* On Euler connector */
- &spdif {
- 	status = "disabled";
-@@ -237,7 +267,7 @@
- /* On Exp and Euler connectors */
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
-diff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
-index abe179de35..53fcc9098d 100644
---- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
-+++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
-@@ -61,6 +61,17 @@
- 		stdout-path = "serial0:115200n8";
- 	};
- 
-+	hdmi-connector {
-+		compatible = "hdmi-connector";
-+		type = "a";
-+
-+		port {
-+			hdmi_con_in: endpoint {
-+				remote-endpoint = <&hdmi_out_con>;
-+			};
-+		};
-+	};
-+
- 	reg_vcc1v8: vcc1v8 {
- 		compatible = "regulator-fixed";
- 		regulator-name = "vcc1v8";
-@@ -69,6 +80,10 @@
- 	};
- };
- 
-+&de {
-+	status = "okay";
-+};
-+
- &ehci0 {
- 	status = "okay";
- };
-@@ -86,6 +101,17 @@
- 	status = "okay";
- };
- 
-+&hdmi {
-+	hvcc-supply = <&reg_dldo1>;
-+	status = "okay";
-+};
-+
-+&hdmi_out {
-+	hdmi_out_con: endpoint {
-+		remote-endpoint = <&hdmi_con_in>;
-+	};
-+};
-+
- &mdio {
- 	ext_rgmii_phy: ethernet-phy@1 {
- 		compatible = "ethernet-phy-ieee802.3-c22";
-@@ -134,9 +160,13 @@
- 	regulator-name = "vcc-wifi";
- };
- 
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
- &uart0 {
- 	pinctrl-names = "default";
--	pinctrl-0 = <&uart0_pins_a>;
-+	pinctrl-0 = <&uart0_pb_pins>;
- 	status = "okay";
- };
- 
-diff --git a/arch/arm/dts/sun50i-a64-sopine.dtsi b/arch/arm/dts/sun50i-a64-sopine.dtsi
-index 43418bd881..6723b8695e 100644
---- a/arch/arm/dts/sun50i-a64-sopine.dtsi
-+++ b/arch/arm/dts/sun50i-a64-sopine.dtsi
-@@ -45,6 +45,8 @@
- 
- #include "sun50i-a64.dtsi"
- 
-+#include <dt-bindings/gpio/gpio.h>
-+
- &mmc0 {
- 	pinctrl-names = "default";
- 	pinctrl-0 = <&mmc0_pins>;
-@@ -52,6 +54,7 @@
- 	non-removable;
- 	disable-wp;
- 	bus-width = <4>;
-+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
- 	status = "okay";
- };
- 
-@@ -66,6 +69,18 @@
- 	};
- };
- 
-+&spi0  {
-+	status = "okay";
-+
-+	flash@0 {
-+		#address-cells = <1>;
-+		#size-cells = <1>;
-+		compatible = "jedec,spi-nor";
-+		reg = <0>;
-+		spi-max-frequency = <40000000>;
-+	};
-+};
-+
- #include "axp803.dtsi"
- 
- &reg_aldo2 {
-diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi
-index 7a083637c4..f3a66f8882 100644
---- a/arch/arm/dts/sun50i-a64.dtsi
-+++ b/arch/arm/dts/sun50i-a64.dtsi
-@@ -43,9 +43,12 @@
-  */
- 
- #include <dt-bindings/clock/sun50i-a64-ccu.h>
-+#include <dt-bindings/clock/sun8i-de2.h>
- #include <dt-bindings/clock/sun8i-r-ccu.h>
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- #include <dt-bindings/reset/sun50i-a64-ccu.h>
-+#include <dt-bindings/reset/sun8i-de2.h>
-+#include <dt-bindings/reset/sun8i-r-ccu.h>
- 
- / {
- 	interrupt-parent = <&gic>;
-@@ -57,17 +60,21 @@
- 		#size-cells = <1>;
- 		ranges;
- 
--/*
-- * The pipeline mixer0-lcd0 depends on clock CLK_MIXER0 from DE2 CCU.
-- * However there is no support for this clock on A64 yet, so we depend
-- * on the upstream clocks here to keep them (and thus CLK_MIXER0) up.
-- */
- 		simplefb_lcd: framebuffer-lcd {
- 			compatible = "allwinner,simple-framebuffer",
- 				     "simple-framebuffer";
- 			allwinner,pipeline = "mixer0-lcd0";
- 			clocks = <&ccu CLK_TCON0>,
--				 <&ccu CLK_DE>, <&ccu CLK_BUS_DE>;
-+				 <&display_clocks CLK_MIXER0>;
-+			status = "disabled";
-+		};
-+
-+		simplefb_hdmi: framebuffer-hdmi {
-+			compatible = "allwinner,simple-framebuffer",
-+				     "simple-framebuffer";
-+			allwinner,pipeline = "mixer1-lcd1-hdmi";
-+			clocks = <&display_clocks CLK_MIXER1>,
-+				 <&ccu CLK_TCON1>, <&ccu CLK_HDMI>;
- 			status = "disabled";
- 		};
- 	};
-@@ -81,6 +88,7 @@
- 			device_type = "cpu";
- 			reg = <0>;
- 			enable-method = "psci";
-+			next-level-cache = <&L2>;
- 		};
- 
- 		cpu1: cpu@1 {
-@@ -88,6 +96,7 @@
- 			device_type = "cpu";
- 			reg = <1>;
- 			enable-method = "psci";
-+			next-level-cache = <&L2>;
- 		};
- 
- 		cpu2: cpu@2 {
-@@ -95,6 +104,7 @@
- 			device_type = "cpu";
- 			reg = <2>;
- 			enable-method = "psci";
-+			next-level-cache = <&L2>;
- 		};
- 
- 		cpu3: cpu@3 {
-@@ -102,7 +112,20 @@
- 			device_type = "cpu";
- 			reg = <3>;
- 			enable-method = "psci";
-+			next-level-cache = <&L2>;
- 		};
-+
-+		L2: l2-cache {
-+			compatible = "cache";
-+			cache-level = <2>;
-+		};
-+	};
-+
-+	de: display-engine {
-+		compatible = "allwinner,sun50i-a64-display-engine";
-+		allwinner,pipelines = <&mixer0>,
-+				      <&mixer1>;
-+		status = "disabled";
- 	};
- 
- 	osc24M: osc24M_clk {
-@@ -168,10 +191,92 @@
- 		#size-cells = <1>;
- 		ranges;
- 
-+		de2@1000000 {
-+			compatible = "allwinner,sun50i-a64-de2";
-+			reg = <0x1000000 0x400000>;
-+			allwinner,sram = <&de2_sram 1>;
-+			#address-cells = <1>;
-+			#size-cells = <1>;
-+			ranges = <0 0x1000000 0x400000>;
-+
-+			display_clocks: clock@0 {
-+				compatible = "allwinner,sun50i-a64-de2-clk";
-+				reg = <0x0 0x100000>;
-+				clocks = <&ccu CLK_DE>,
-+					 <&ccu CLK_BUS_DE>;
-+				clock-names = "mod",
-+					      "bus";
-+				resets = <&ccu RST_BUS_DE>;
-+				#clock-cells = <1>;
-+				#reset-cells = <1>;
-+			};
-+
-+			mixer0: mixer@100000 {
-+				compatible = "allwinner,sun50i-a64-de2-mixer-0";
-+				reg = <0x100000 0x100000>;
-+				clocks = <&display_clocks CLK_BUS_MIXER0>,
-+					 <&display_clocks CLK_MIXER0>;
-+				clock-names = "bus",
-+					      "mod";
-+				resets = <&display_clocks RST_MIXER0>;
-+
-+				ports {
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+
-+					mixer0_out: port@1 {
-+						reg = <1>;
-+
-+						mixer0_out_tcon0: endpoint {
-+							remote-endpoint = <&tcon0_in_mixer0>;
-+						};
-+					};
-+				};
-+			};
-+
-+			mixer1: mixer@200000 {
-+				compatible = "allwinner,sun50i-a64-de2-mixer-1";
-+				reg = <0x200000 0x100000>;
-+				clocks = <&display_clocks CLK_BUS_MIXER1>,
-+					 <&display_clocks CLK_MIXER1>;
-+				clock-names = "bus",
-+					      "mod";
-+				resets = <&display_clocks RST_MIXER1>;
-+
-+				ports {
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+
-+					mixer1_out: port@1 {
-+						reg = <1>;
-+
-+						mixer1_out_tcon1: endpoint {
-+							remote-endpoint = <&tcon1_in_mixer1>;
-+						};
-+					};
-+				};
-+			};
-+		};
-+
- 		syscon: syscon@1c00000 {
--			compatible = "allwinner,sun50i-a64-system-controller",
--				"syscon";
-+			compatible = "allwinner,sun50i-a64-system-control";
- 			reg = <0x01c00000 0x1000>;
-+			#address-cells = <1>;
-+			#size-cells = <1>;
-+			ranges;
-+
-+			sram_c: sram@18000 {
-+				compatible = "mmio-sram";
-+				reg = <0x00018000 0x28000>;
-+				#address-cells = <1>;
-+				#size-cells = <1>;
-+				ranges = <0 0x00018000 0x28000>;
-+
-+				de2_sram: sram-section@0 {
-+					compatible = "allwinner,sun50i-a64-sram-c";
-+					reg = <0x0000 0x28000>;
-+				};
-+			};
- 		};
- 
- 		dma: dma-controller@1c02000 {
-@@ -185,6 +290,75 @@
- 			#dma-cells = <1>;
- 		};
- 
-+		tcon0: lcd-controller@1c0c000 {
-+			compatible = "allwinner,sun50i-a64-tcon-lcd",
-+				     "allwinner,sun8i-a83t-tcon-lcd";
-+			reg = <0x01c0c000 0x1000>;
-+			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
-+			clock-names = "ahb", "tcon-ch0";
-+			clock-output-names = "tcon-pixel-clock";
-+			resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
-+			reset-names = "lcd", "lvds";
-+
-+			ports {
-+				#address-cells = <1>;
-+				#size-cells = <0>;
-+
-+				tcon0_in: port@0 {
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					reg = <0>;
-+
-+					tcon0_in_mixer0: endpoint@0 {
-+						reg = <0>;
-+						remote-endpoint = <&mixer0_out_tcon0>;
-+					};
-+				};
-+
-+				tcon0_out: port@1 {
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					reg = <1>;
-+				};
-+			};
-+		};
-+
-+		tcon1: lcd-controller@1c0d000 {
-+			compatible = "allwinner,sun50i-a64-tcon-tv",
-+				     "allwinner,sun8i-a83t-tcon-tv";
-+			reg = <0x01c0d000 0x1000>;
-+			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
-+			clock-names = "ahb", "tcon-ch1";
-+			resets = <&ccu RST_BUS_TCON1>;
-+			reset-names = "lcd";
-+
-+			ports {
-+				#address-cells = <1>;
-+				#size-cells = <0>;
-+
-+				tcon1_in: port@0 {
-+					reg = <0>;
-+
-+					tcon1_in_mixer1: endpoint {
-+						remote-endpoint = <&mixer1_out_tcon1>;
-+					};
-+				};
-+
-+				tcon1_out: port@1 {
-+					#address-cells = <1>;
-+					#size-cells = <0>;
-+					reg = <1>;
-+
-+					tcon1_out_hdmi: endpoint@1 {
-+						reg = <1>;
-+						remote-endpoint = <&hdmi_in_tcon1>;
-+					};
-+				};
-+			};
-+		};
-+
- 		mmc0: mmc@1c0f000 {
- 			compatible = "allwinner,sun50i-a64-mmc";
- 			reg = <0x01c0f000 0x1000>;
-@@ -227,6 +401,11 @@
- 			#size-cells = <0>;
- 		};
- 
-+		sid: eeprom@1c14000 {
-+			compatible = "allwinner,sun50i-a64-sid";
-+			reg = <0x1c14000 0x400>;
-+		};
-+
- 		usb_otg: usb@1c19000 {
- 			compatible = "allwinner,sun8i-a33-musb";
- 			reg = <0x01c19000 0x0400>;
-@@ -356,7 +535,7 @@
- 			};
- 
- 			mmc2_pins: mmc2-pins {
--				pins = "PC1", "PC5", "PC6", "PC8", "PC9",
-+				pins = "PC5", "PC6", "PC8", "PC9",
- 				       "PC10","PC11", "PC12", "PC13",
- 				       "PC14", "PC15", "PC16";
- 				function = "mmc2";
-@@ -364,6 +543,18 @@
- 				bias-pull-up;
- 			};
- 
-+			mmc2_ds_pin: mmc2-ds-pin {
-+				pins = "PC1";
-+				function = "mmc2";
-+				drive-strength = <30>;
-+				bias-pull-up;
-+			};
-+
-+			pwm_pin: pwm_pin {
-+				pins = "PD22";
-+				function = "pwm";
-+			};
-+
- 			rmii_pins: rmii_pins {
- 				pins = "PD10", "PD11", "PD13", "PD14", "PD17",
- 				       "PD18", "PD19", "PD20", "PD22", "PD23";
-@@ -394,7 +585,7 @@
- 				function = "spi1";
- 			};
- 
--			uart0_pins_a: uart0 {
-+			uart0_pb_pins: uart0-pb-pins {
- 				pins = "PB8", "PB9";
- 				function = "uart0";
- 			};
-@@ -474,15 +665,6 @@
- 			status = "disabled";
- 		};
- 
--		pwm: pwm@1c21400 {
--			compatible = "allwinner,sun50i-a64-pwm",
--				     "allwinner,sun5i-a13-pwm";
--			reg = <0x01c21400 0x8>;
--			clocks = <&osc24M>;
--			#pwm-cells = <3>;
--			status = "disabled";
--		};
--
- 		uart0: serial@1c28000 {
- 			compatible = "snps,dw-apb-uart";
- 			reg = <0x01c28000 0x400>;
-@@ -617,8 +799,6 @@
- 			clocks = <&ccu CLK_BUS_EMAC>;
- 			clock-names = "stmmaceth";
- 			status = "disabled";
--			#address-cells = <1>;
--			#size-cells = <0>;
- 
- 			mdio: mdio {
- 				compatible = "snps,dwmac-mdio";
-@@ -638,11 +818,69 @@
- 			#interrupt-cells = <3>;
- 		};
- 
-+		pwm: pwm@1c21400 {
-+			compatible = "allwinner,sun50i-a64-pwm",
-+				     "allwinner,sun5i-a13-pwm";
-+			reg = <0x01c21400 0x400>;
-+			clocks = <&osc24M>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&pwm_pin>;
-+			#pwm-cells = <3>;
-+			status = "disabled";
-+		};
-+
-+		hdmi: hdmi@1ee0000 {
-+			compatible = "allwinner,sun50i-a64-dw-hdmi",
-+				     "allwinner,sun8i-a83t-dw-hdmi";
-+			reg = <0x01ee0000 0x10000>;
-+			reg-io-width = <1>;
-+			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-+				 <&ccu CLK_HDMI>;
-+			clock-names = "iahb", "isfr", "tmds";
-+			resets = <&ccu RST_BUS_HDMI1>;
-+			reset-names = "ctrl";
-+			phys = <&hdmi_phy>;
-+			phy-names = "hdmi-phy";
-+			status = "disabled";
-+
-+			ports {
-+				#address-cells = <1>;
-+				#size-cells = <0>;
-+
-+				hdmi_in: port@0 {
-+					reg = <0>;
-+
-+					hdmi_in_tcon1: endpoint {
-+						remote-endpoint = <&tcon1_out_hdmi>;
-+					};
-+				};
-+
-+				hdmi_out: port@1 {
-+					reg = <1>;
-+				};
-+			};
-+		};
-+
-+		hdmi_phy: hdmi-phy@1ef0000 {
-+			compatible = "allwinner,sun50i-a64-hdmi-phy";
-+			reg = <0x01ef0000 0x10000>;
-+			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-+				 <&ccu 7>;
-+			clock-names = "bus", "mod", "pll-0";
-+			resets = <&ccu RST_BUS_HDMI0>;
-+			reset-names = "phy";
-+			#phy-cells = <0>;
-+		};
-+
- 		rtc: rtc@1f00000 {
- 			compatible = "allwinner,sun6i-a31-rtc";
- 			reg = <0x01f00000 0x54>;
- 			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
- 				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-+			clock-output-names = "rtc-osc32k", "rtc-osc32k-out";
-+			clocks = <&osc32k>;
-+			#clock-cells = <1>;
- 		};
- 
- 		r_intc: interrupt-controller@1f00c00 {
-@@ -664,6 +902,29 @@
- 			#reset-cells = <1>;
- 		};
- 
-+		r_i2c: i2c@1f02400 {
-+			compatible = "allwinner,sun50i-a64-i2c",
-+				     "allwinner,sun6i-a31-i2c";
-+			reg = <0x01f02400 0x400>;
-+			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&r_ccu CLK_APB0_I2C>;
-+			resets = <&r_ccu RST_APB0_I2C>;
-+			status = "disabled";
-+			#address-cells = <1>;
-+			#size-cells = <0>;
-+		};
-+
-+		r_pwm: pwm@1f03800 {
-+			compatible = "allwinner,sun50i-a64-pwm",
-+				     "allwinner,sun5i-a13-pwm";
-+			reg = <0x01f03800 0x400>;
-+			clocks = <&osc24M>;
-+			pinctrl-names = "default";
-+			pinctrl-0 = <&r_pwm_pin>;
-+			#pwm-cells = <3>;
-+			status = "disabled";
-+		};
-+
- 		r_pio: pinctrl@1f02c00 {
- 			compatible = "allwinner,sun50i-a64-r-pinctrl";
- 			reg = <0x01f02c00 0x400>;
-@@ -675,6 +936,16 @@
- 			interrupt-controller;
- 			#interrupt-cells = <3>;
- 
-+			r_i2c_pl89_pins: r-i2c-pl89-pins {
-+				pins = "PL8", "PL9";
-+				function = "s_i2c";
-+			};
-+
-+			r_pwm_pin: pwm {
-+				pins = "PL10";
-+				function = "s_pwm";
-+			};
-+
- 			r_rsb_pins: rsb {
- 				pins = "PL0", "PL1";
- 				function = "s_rsb";
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/u-boot-pinebook-dts.patch b/gnu/packages/patches/u-boot-pinebook-dts.patch
deleted file mode 100644
index 48c004fdfc..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-dts.patch
+++ /dev/null
@@ -1,388 +0,0 @@
-From b972831c3cd24f3c9bb0995ed61db8f8239f3391 Mon Sep 17 00:00:00 2001
-From: Vasily Khoruzhick <anarsoul@gmail.com>
-Date: Mon, 5 Nov 2018 20:24:31 -0800
-Subject: [PATCH 10/13] sunxi: DT: add support for Pinebook
-
-Pinebook is a laptop produced by Pine64, with USB-connected keyboard,
-USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP
-bridge from Analogix.
-
-Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Cc: Vagrant Cascadian <vagrant@debian.org>
-Reviewed-by: Jagan Teki <jagan@openedev.com>
----
- arch/arm/dts/Makefile                        |   1 +
- arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi |  15 ++
- arch/arm/dts/sun50i-a64-pinebook.dts         | 294 +++++++++++++++++++++++++++
- configs/pinebook_defconfig                   |  22 ++
- 4 files changed, 332 insertions(+)
- create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
- create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts
- create mode 100644 configs/pinebook_defconfig
-
-diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
-index 3093c1185e..eae6b9ee5d 100644
---- a/arch/arm/dts/Makefile
-+++ b/arch/arm/dts/Makefile
-@@ -406,6 +406,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
- 	sun50i-a64-orangepi-win.dtb \
- 	sun50i-a64-pine64-plus.dtb \
- 	sun50i-a64-pine64.dtb \
-+	sun50i-a64-pinebook.dtb \
- 	sun50i-a64-sopine-baseboard.dtb
- dtb-$(CONFIG_MACH_SUN9I) += \
- 	sun9i-a80-optimus.dtb \
-diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
-new file mode 100644
-index 0000000000..a99b7171d0
---- /dev/null
-+++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi
-@@ -0,0 +1,15 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
-+ *
-+ */
-+
-+/* The ANX6345 eDP-bridge is on r_i2c */
-+&r_i2c {
-+	anx6345: edp-bridge@38 {
-+		compatible = "analogix,anx6345";
-+		reg = <0x38>;
-+		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
-+		status = "okay";
-+	};
-+};
-diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts
-new file mode 100644
-index 0000000000..ec537c5297
---- /dev/null
-+++ b/arch/arm/dts/sun50i-a64-pinebook.dts
-@@ -0,0 +1,294 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
-+ * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
-+ *
-+ */
-+
-+/dts-v1/;
-+
-+#include "sun50i-a64.dtsi"
-+
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/input/input.h>
-+#include <dt-bindings/pwm/pwm.h>
-+
-+/ {
-+	model = "Pinebook";
-+	compatible = "pine64,pinebook", "allwinner,sun50i-a64";
-+
-+	aliases {
-+		serial0 = &uart0;
-+		ethernet0 = &rtl8723cs;
-+	};
-+
-+	vdd_bl: regulator@0 {
-+		compatible = "regulator-fixed";
-+		regulator-name = "bl-3v3";
-+		regulator-min-microvolt = <3300000>;
-+		regulator-max-microvolt = <3300000>;
-+		gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
-+		enable-active-high;
-+	};
-+
-+	backlight: backlight {
-+		compatible = "pwm-backlight";
-+		pwms = <&pwm 0 50000 0>;
-+		brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
-+		default-brightness-level = <2>;
-+		enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
-+		power-supply = <&vdd_bl>;
-+	};
-+
-+	chosen {
-+		stdout-path = "serial0:115200n8";
-+
-+		framebuffer-lcd {
-+			panel-supply = <&reg_dc1sw>;
-+			dvdd25-supply = <&reg_dldo2>;
-+			dvdd12-supply = <&reg_fldo1>;
-+		};
-+	};
-+
-+	gpio_keys {
-+		compatible = "gpio-keys";
-+
-+		lid_switch {
-+			label = "Lid Switch";
-+			gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
-+			linux,input-type = <EV_SW>;
-+			linux,code = <SW_LID>;
-+			linux,can-disable;
-+			wakeup-source;
-+		};
-+	};
-+
-+	reg_vcc3v3: vcc3v3 {
-+		compatible = "regulator-fixed";
-+		regulator-name = "vcc3v3";
-+		regulator-min-microvolt = <3300000>;
-+		regulator-max-microvolt = <3300000>;
-+	};
-+
-+	wifi_pwrseq: wifi_pwrseq {
-+		compatible = "mmc-pwrseq-simple";
-+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
-+	};
-+};
-+
-+&ehci0 {
-+	phys = <&usbphy 0>;
-+	phy-names = "usb";
-+	status = "okay";
-+};
-+
-+&ehci1 {
-+	status = "okay";
-+};
-+
-+&mmc0 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc0_pins>;
-+	vmmc-supply = <&reg_dcdc1>;
-+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
-+	disable-wp;
-+	bus-width = <4>;
-+	status = "okay";
-+};
-+
-+&mmc1 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc1_pins>;
-+	vmmc-supply = <&reg_dldo4>;
-+	vqmmc-supply = <&reg_eldo1>;
-+	mmc-pwrseq = <&wifi_pwrseq>;
-+	bus-width = <4>;
-+	non-removable;
-+	status = "okay";
-+
-+	rtl8723cs: wifi@1 {
-+		reg = <1>;
-+	};
-+};
-+
-+&mmc2 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
-+	vmmc-supply = <&reg_dcdc1>;
-+	vqmmc-supply = <&reg_eldo1>;
-+	bus-width = <8>;
-+	non-removable;
-+	cap-mmc-hw-reset;
-+	mmc-hs200-1_8v;
-+	status = "okay";
-+};
-+
-+&ohci0 {
-+	phys = <&usbphy 0>;
-+	phy-names = "usb";
-+	status = "okay";
-+};
-+
-+&ohci1 {
-+	status = "okay";
-+};
-+
-+&pwm {
-+	status = "okay";
-+};
-+
-+&r_rsb {
-+	status = "okay";
-+
-+	axp803: pmic@3a3 {
-+		compatible = "x-powers,axp803";
-+		reg = <0x3a3>;
-+		interrupt-parent = <&r_intc>;
-+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-+	};
-+};
-+
-+/* The ANX6345 eDP-bridge is on r_i2c */
-+&r_i2c {
-+	clock-frequency = <100000>;
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&r_i2c_pl89_pins>;
-+	status = "okay";
-+};
-+
-+#include "axp803.dtsi"
-+
-+&reg_aldo1 {
-+	regulator-min-microvolt = <2800000>;
-+	regulator-max-microvolt = <2800000>;
-+	regulator-name = "vcc-csi";
-+};
-+
-+&reg_aldo2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-pl";
-+};
-+
-+&reg_aldo3 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <2700000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-pll-avcc";
-+};
-+
-+&reg_dc1sw {
-+	regulator-name = "vcc-lcd";
-+};
-+
-+&reg_dcdc1 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-3v3";
-+};
-+
-+&reg_dcdc2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1000000>;
-+	regulator-max-microvolt = <1300000>;
-+	regulator-name = "vdd-cpux";
-+};
-+
-+/* DCDC3 is polyphased with DCDC2 */
-+
-+&reg_dcdc5 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1200000>;
-+	regulator-max-microvolt = <1200000>;
-+	regulator-name = "vcc-dram";
-+};
-+
-+&reg_dcdc6 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1100000>;
-+	regulator-max-microvolt = <1100000>;
-+	regulator-name = "vdd-sys";
-+};
-+
-+&reg_dldo1 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-hdmi";
-+};
-+
-+&reg_dldo2 {
-+	regulator-min-microvolt = <2500000>;
-+	regulator-max-microvolt = <2500000>;
-+	regulator-name = "vcc-edp";
-+};
-+
-+&reg_dldo3 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "avdd-csi";
-+};
-+
-+&reg_dldo4 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-wifi";
-+};
-+
-+&reg_eldo1 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <1800000>;
-+	regulator-name = "cpvdd";
-+};
-+
-+&reg_eldo3 {
-+	regulator-min-microvolt = <1800000>;
-+	regulator-max-microvolt = <1800000>;
-+	regulator-name = "vdd-1v8-csi";
-+};
-+
-+&reg_fldo1 {
-+	regulator-min-microvolt = <1200000>;
-+	regulator-max-microvolt = <1200000>;
-+	regulator-name = "vcc-1v2-hsic";
-+};
-+
-+&reg_fldo2 {
-+	regulator-always-on;
-+	regulator-min-microvolt = <1100000>;
-+	regulator-max-microvolt = <1100000>;
-+	regulator-name = "vdd-cpus";
-+};
-+
-+&reg_ldo_io0 {
-+	regulator-min-microvolt = <3300000>;
-+	regulator-max-microvolt = <3300000>;
-+	regulator-name = "vcc-usb";
-+	status = "okay";
-+};
-+
-+&reg_rtc_ldo {
-+	regulator-name = "vcc-rtc";
-+};
-+
-+&simplefb_hdmi {
-+	vcc-hdmi-supply = <&reg_dldo1>;
-+};
-+
-+&uart0 {
-+	pinctrl-names = "default";
-+	pinctrl-0 = <&uart0_pb_pins>;
-+	status = "okay";
-+};
-+
-+&usb_otg {
-+	dr_mode = "host";
-+};
-+
-+&usbphy {
-+	usb0_vbus-supply = <&reg_ldo_io0>;
-+	usb1_vbus-supply = <&reg_ldo_io0>;
-+	status = "okay";
-+};
-diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig
-new file mode 100644
-index 0000000000..5294dbd2eb
---- /dev/null
-+++ b/configs/pinebook_defconfig
-@@ -0,0 +1,22 @@
-+CONFIG_ARM=y
-+CONFIG_ARCH_SUNXI=y
-+CONFIG_SPL=y
-+CONFIG_MACH_SUN50I=y
-+CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
-+CONFIG_DRAM_CLK=552
-+CONFIG_DRAM_ZQ=3881949
-+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
-+CONFIG_R_I2C_ENABLE=y
-+# CONFIG_CMD_FLASH is not set
-+# CONFIG_SPL_DOS_PARTITION is not set
-+# CONFIG_SPL_EFI_PARTITION is not set
-+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook"
-+CONFIG_DM_REGULATOR=y
-+CONFIG_DM_REGULATOR_FIXED=y
-+CONFIG_DM_PWM=y
-+CONFIG_PWM_SUNXI=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
-+# CONFIG_USB_GADGET is not set
-+CONFIG_VIDEO_BRIDGE=y
-+CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch b/gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch
deleted file mode 100644
index 118bdf8e0c..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 20940ef2a397446a209350900d3bd618c3fd5b94 Mon Sep 17 00:00:00 2001
-From: Vasily Khoruzhick <anarsoul@gmail.com>
-Date: Mon, 5 Nov 2018 20:24:28 -0800
-Subject: [PATCH 07/13] mmc: sunxi: add support for automatic delay calibration
-
-A64 and H6 support automatic delay calibration and Linux driver uses it
-instead of hardcoded delays. Add support for it to u-boot driver.
-
-Fixes eMMC instability on Pinebook
-
-Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
-Cc: Vagrant Cascadian <vagrant@debian.org>
-Reviewed-by: Jagan Teki <jagan@openedev.com>
----
- arch/arm/include/asm/arch-sunxi/mmc.h |  6 +++++-
- drivers/mmc/sunxi_mmc.c               | 21 ++++++++++++++++++++-
- 2 files changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h
-index d98c53faaa..f2deafddd2 100644
---- a/arch/arm/include/asm/arch-sunxi/mmc.h
-+++ b/arch/arm/include/asm/arch-sunxi/mmc.h
-@@ -46,7 +46,9 @@ struct sunxi_mmc {
- 	u32 cbda;		/* 0x94 */
- 	u32 res2[26];
- #if defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
--	u32 res3[64];
-+	u32 res3[17];
-+	u32 samp_dl;
-+	u32 res4[46];
- #endif
- 	u32 fifo;		/* 0x100 / 0x200 FIFO access address */
- };
-@@ -130,5 +132,7 @@ struct sunxi_mmc {
- #define SUNXI_MMC_COMMON_CLK_GATE		(1 << 16)
- #define SUNXI_MMC_COMMON_RESET			(1 << 18)
- 
-+#define SUNXI_MMC_CAL_DL_SW_EN		(0x1 << 7)
-+
- struct mmc *sunxi_mmc_init(int sdc_no);
- #endif /* _SUNXI_MMC_H */
-diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
-index 39f15eb423..147eb9b4d5 100644
---- a/drivers/mmc/sunxi_mmc.c
-+++ b/drivers/mmc/sunxi_mmc.c
-@@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
- {
- 	unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly;
- 	bool new_mode = false;
-+	bool calibrate = false;
- 	u32 val = 0;
- 
- 	if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2))
- 		new_mode = true;
- 
-+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
-+	calibrate = true;
-+#endif
-+
- 	/*
- 	 * The MMC clock has an extra /2 post-divider when operating in the new
- 	 * mode.
-@@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
- 		val = CCM_MMC_CTRL_MODE_SEL_NEW;
- 		setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW);
- #endif
--	} else {
-+	} else if (!calibrate) {
-+		/*
-+		 * Use hardcoded delay values if controller doesn't support
-+		 * calibration
-+		 */
- 		val = CCM_MMC_CTRL_OCLK_DLY(oclk_dly) |
- 			CCM_MMC_CTRL_SCLK_DLY(sclk_dly);
- 	}
-@@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *priv, struct mmc *mmc)
- 	rval &= ~SUNXI_MMC_CLK_DIVIDER_MASK;
- 	writel(rval, &priv->reg->clkcr);
- 
-+#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6)
-+	/* A64 supports calibration of delays on MMC controller and we
-+	 * have to set delay of zero before starting calibration.
-+	 * Allwinner BSP driver sets a delay only in the case of
-+	 * using HS400 which is not supported by mainline U-Boot or
-+	 * Linux at the moment
-+	 */
-+	writel(SUNXI_MMC_CAL_DL_SW_EN, &priv->reg->samp_dl);
-+#endif
-+
- 	/* Re-enable Clock */
- 	rval |= SUNXI_MMC_CLK_ENABLE;
- 	writel(rval, &priv->reg->clkcr);
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch b/gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch
deleted file mode 100644
index 824a16b9db..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 31a4ac4d79d75baeede3edfa95515fd4169ef502 Mon Sep 17 00:00:00 2001
-From: Vasily Khoruzhick <anarsoul@gmail.com>
-Date: Mon, 5 Nov 2018 20:24:30 -0800
-Subject: [PATCH 09/13] sun50i: A64: add support for R_I2C controller
-
-Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has
-two groups of pinmuxes on PL bank, so it's called R_I2C.
-
-Add support for this I2C controller and the pinmux which doesn't conflict
-with RSB.
-
-Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Cc: Vagrant Cascadian <vagrant@debian.org>
-Acked-by: Jagan Teki <jagan@openedev.com>
----
- arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
- arch/arm/mach-sunxi/Kconfig            | 1 +
- board/sunxi/board.c                    | 6 ++++++
- 3 files changed, 8 insertions(+)
-
-diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
-index 6a5eafc3d3..2daf23f6f5 100644
---- a/arch/arm/include/asm/arch-sunxi/gpio.h
-+++ b/arch/arm/include/asm/arch-sunxi/gpio.h
-@@ -211,6 +211,7 @@ enum sunxi_gpio_number {
- #define SUN8I_H3_GPL_R_TWI	2
- #define SUN8I_A23_GPL_R_TWI	3
- #define SUN8I_GPL_R_UART	2
-+#define SUN50I_GPL_R_TWI	2
- 
- #define SUN9I_GPN_R_RSB		3
- 
-diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
-index 6277abc3cc..560dc9b25d 100644
---- a/arch/arm/mach-sunxi/Kconfig
-+++ b/arch/arm/mach-sunxi/Kconfig
-@@ -278,6 +278,7 @@ config MACH_SUN50I
- 	select ARM64
- 	select DM_I2C
- 	select PHY_SUN4I_USB
-+	select SUN6I_PRCM
- 	select SUNXI_DE2
- 	select SUNXI_GEN_SUN6I
- 	select SUPPORT_SPL
-diff --git a/board/sunxi/board.c b/board/sunxi/board.c
-index b196d48674..64ccbc7245 100644
---- a/board/sunxi/board.c
-+++ b/board/sunxi/board.c
-@@ -168,10 +168,16 @@ void i2c_init_board(void)
- #endif
- 
- #ifdef CONFIG_R_I2C_ENABLE
-+#ifdef CONFIG_MACH_SUN50I
-+	clock_twi_onoff(5, 1);
-+	sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI);
-+	sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI);
-+#else
- 	clock_twi_onoff(5, 1);
- 	sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
- 	sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
- #endif
-+#endif
- }
- 
- #if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT)
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/u-boot-pinebook-syscon-node.patch b/gnu/packages/patches/u-boot-pinebook-syscon-node.patch
deleted file mode 100644
index 9289645bec..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-syscon-node.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ababb5920e8992c9bb7956df3cc85dc68d27dfe8 Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara@arm.com>
-Date: Mon, 29 Oct 2018 00:56:48 +0000
-Subject: [PATCH 04/13] sunxi: A64: Re-add syscon to DT node
-
-The sun50i-a64.dtsi changes introduced in Linux v4.19-rc1 changed the
-compatible name for the syscon controller, dropping the generic "syscon"
-fallback. Using this new DT node will make the Ethernet driver in every
-older kernel (or non-Linux kernels) fail to initialise the MAC device.
-
-To allow booting distribution kernels (from installer images via UEFI,
-for instance), re-add the syscon compatible string as a fallback. This
-works with both older and newer kernels.
-
-Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Reviewed-by: Jagan Teki <jagan@openedev.com>
----
- arch/arm/dts/sun50i-a64.dtsi | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi
-index f3a66f8882..ff41abc96a 100644
---- a/arch/arm/dts/sun50i-a64.dtsi
-+++ b/arch/arm/dts/sun50i-a64.dtsi
-@@ -259,7 +259,8 @@
- 		};
- 
- 		syscon: syscon@1c00000 {
--			compatible = "allwinner,sun50i-a64-system-control";
-+			compatible = "allwinner,sun50i-a64-system-control",
-+				"syscon";
- 			reg = <0x01c00000 0x1000>;
- 			#address-cells = <1>;
- 			#size-cells = <1>;
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/u-boot-pinebook-video-bridge.patch b/gnu/packages/patches/u-boot-pinebook-video-bridge.patch
deleted file mode 100644
index 8c6ca8a992..0000000000
--- a/gnu/packages/patches/u-boot-pinebook-video-bridge.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8336a43792a103c13d939b3925cb75322911f7fb Mon Sep 17 00:00:00 2001
-From: Vasily Khoruzhick <anarsoul@gmail.com>
-Date: Mon, 5 Nov 2018 20:24:29 -0800
-Subject: [PATCH 08/13] dm: video: bridge: don't fail to activate bridge if
- reset or sleep GPIO is missing
-
-Both GPIOs are optional, so we shouldn't fail if any is missing.
-Without this fix reset is not deasserted if sleep GPIO is missing.
-
-Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
-Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
-Cc: Vagrant Cascadian <vagrant@debian.org>
----
- drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/bridge/video-bridge-uclass.c
-index cd4959cc71..5fecb4cfd5 100644
---- a/drivers/video/bridge/video-bridge-uclass.c
-+++ b/drivers/video/bridge/video-bridge-uclass.c
-@@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *dev)
- int video_bridge_set_active(struct udevice *dev, bool active)
- {
- 	struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev);
--	int ret;
-+	int ret = 0;
- 
- 	debug("%s: %d\n", __func__, active);
--	ret = dm_gpio_set_value(&uc_priv->sleep, !active);
--	if (ret)
--		return ret;
--	if (active) {
-+	if (uc_priv->sleep.dev) {
-+		ret = dm_gpio_set_value(&uc_priv->sleep, !active);
-+		if (ret)
-+			return ret;
-+	}
-+
-+	if (!active)
-+		return 0;
-+
-+	if (uc_priv->reset.dev) {
- 		ret = dm_gpio_set_value(&uc_priv->reset, true);
- 		if (ret)
- 			return ret;
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/xboing-CVE-2004-0149.patch b/gnu/packages/patches/xboing-CVE-2004-0149.patch
deleted file mode 100644
index b40146b434..0000000000
--- a/gnu/packages/patches/xboing-CVE-2004-0149.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0149
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=174924
----
- demo.c      |  2 +-
- editor.c    | 12 ++++++------
- file.c      |  2 +-
- highscore.c |  6 +++---
- misc.c      |  2 +-
- preview.c   |  2 +-
- 6 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/demo.c b/demo.c
-index 9084e70..f4fc2cd 100644
---- a/demo.c
-+++ b/demo.c
-@@ -154,7 +154,7 @@ static void DoBlocks(display, window)
- 
-     /* Construct the demo level filename */
-     if ((str = getenv("XBOING_LEVELS_DIR")) != NULL)
--        sprintf(levelPath, "%s/demo.data", str);
-+        snprintf(levelPath, sizeof(levelPath),"%s/demo.data", str);
-     else
-         sprintf(levelPath, "%s/demo.data", LEVEL_INSTALL_DIR);
- 
-diff --git a/editor.c b/editor.c
-index f2bb9ed..66d0679 100644
---- a/editor.c
-+++ b/editor.c
-@@ -213,7 +213,7 @@ static void DoLoadLevel(display, window)
- 
-     /* Construct the Edit level filename */
-     if ((str = getenv("XBOING_LEVELS_DIR")) != NULL)
--        sprintf(levelPath, "%s/editor.data", str);
-+        snprintf(levelPath,sizeof(levelPath)-1, "%s/editor.data", str);
-     else
-         sprintf(levelPath, "%s/editor.data", LEVEL_INSTALL_DIR);
- 
-@@ -958,8 +958,8 @@ static void LoadALevel(display)
-     if ((num > 0) && (num <= MAX_NUM_LEVELS))
-     {
- 	    /* Construct the Edit level filename */
--   	 	if ((str2 = getenv("XBOING_LEVELS_DIR")) != NULL)
--        	sprintf(levelPath, "%s/level%02ld.data", str2, (u_long) num);
-+        if ((str2 = getenv("XBOING_LEVELS_DIR")) != NULL)
-+            snprintf(levelPath, sizeof(levelPath)-1,"%s/level%02ld.data", str2, (u_long) num);
-     	else
-         	sprintf(levelPath, "%s/level%02ld.data", 
- 				LEVEL_INSTALL_DIR, (u_long) num);
-@@ -1017,9 +1017,9 @@ static void SaveALevel(display)
-     num = atoi(str);
-     if ((num > 0) && (num <= MAX_NUM_LEVELS))
-     {
--	    /* Construct the Edit level filename */
--   	 	if ((str2 = getenv("XBOING_LEVELS_DIR")) != NULL)
--        	sprintf(levelPath, "%s/level%02ld.data", str2, (u_long) num);
-+        /* Construct the Edit level filename */
-+        if ((str2 = getenv("XBOING_LEVELS_DIR")) != NULL)
-+            snprintf(levelPath, sizeof(levelPath)-1,"%s/level%02ld.data", str2, (u_long) num);
-     	else
-         	sprintf(levelPath, "%s/level%02ld.data", 
- 				LEVEL_INSTALL_DIR, (u_long) num);
-diff --git a/file.c b/file.c
-index 4c043cd..99a0854 100644
---- a/file.c
-+++ b/file.c
-@@ -139,7 +139,7 @@ void SetupStage(display, window)
- 
-     /* Construct the level filename */
-     if ((str = getenv("XBOING_LEVELS_DIR")) != NULL)
--        sprintf(levelPath, "%s/level%02ld.data", str, newLevel);
-+        snprintf(levelPath,sizeof(levelPath), "%s/level%02ld.data", str, newLevel);
-     else
-         sprintf(levelPath, "%s/level%02ld.data", LEVEL_INSTALL_DIR, newLevel);
- 
-diff --git a/highscore.c b/highscore.c
-index f0db3e9..792273e 100644
---- a/highscore.c
-+++ b/highscore.c
-@@ -1023,7 +1023,7 @@ int ReadHighScoreTable(type)
- 	{
- 		/* Use the environment variable if it exists */
- 		if ((str = getenv("XBOING_SCORE_FILE")) != NULL)
--			strcpy(filename, str);
-+            strncpy(filename, str, sizeof(filename)-1);
- 		else
- 			strcpy(filename, HIGH_SCORE_FILE);
- 	}
-@@ -1095,7 +1095,7 @@ int WriteHighScoreTable(type)
- 	{
- 		/* Use the environment variable if it exists */
- 		if ((str = getenv("XBOING_SCORE_FILE")) != NULL)
--			strcpy(filename, str);
-+            strncpy(filename, str, sizeof(filename)-1);
- 		else
- 			strcpy(filename, HIGH_SCORE_FILE);
- 	}	
-@@ -1218,7 +1218,7 @@ static int LockUnlock(cmd)
- 
- 	/* Use the environment variable if it exists */
- 	if ((str = getenv("XBOING_SCORE_FILE")) != NULL)
--		strcpy(filename, str);
-+        strncpy(filename, str, sizeof(filename)-1);
- 	else
- 		strcpy(filename, HIGH_SCORE_FILE);
- 
-diff --git a/misc.c b/misc.c
-index f3ab37e..7f3ddce 100644
---- a/misc.c
-+++ b/misc.c
-@@ -427,7 +427,7 @@ char *GetHomeDir()
-      */
- 
-     if ((ptr = getenv("HOME")) != NULL)
--        (void) strcpy(dest, ptr);
-+        (void) strncpy(dest, ptr,sizeof(dest)-1);
-     else
-     {
-         /* HOME variable is not present so get USER var */
-diff --git a/preview.c b/preview.c
-index 41c1187..687f566 100644
---- a/preview.c
-+++ b/preview.c
-@@ -139,7 +139,7 @@ static void DoLoadLevel(display, window)
- 
-     /* Construct the Preview level filename */
-     if ((str = getenv("XBOING_LEVELS_DIR")) != NULL)
--        sprintf(levelPath, "%s/level%02d.data", str, lnum);
-+        snprintf(levelPath, sizeof(levelPath)-1, "%s/level%02d.data", str, lnum);
-     else
-         sprintf(levelPath, "%s/level%02d.data", LEVEL_INSTALL_DIR, lnum);
- 
--- 
-2.15.1
-
diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm
index 477f686755..ea71492262 100644
--- a/gnu/packages/perl-compression.scm
+++ b/gnu/packages/perl-compression.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
@@ -34,7 +34,7 @@
 (define-public perl-compress-raw-bzip2
   (package
     (name "perl-compress-raw-bzip2")
-    (version "2.081")
+    (version "2.084")
     (source
      (origin
        (method url-fetch)
@@ -42,7 +42,7 @@
                            "Compress-Raw-Bzip2-" version ".tar.gz"))
        (sha256
         (base32
-         "081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6"))))
+         "0kwjrsl519bv48b7698a9anj6l0n3z1vrd1a7im2r1pbffxxw5kx"))))
     (build-system perl-build-system)
     ;; TODO: Use our bzip2 package.
     (home-page "https://metacpan.org/release/Compress-Raw-Bzip2")
@@ -54,7 +54,7 @@ compression library.")
 (define-public perl-compress-raw-zlib
   (package
     (name "perl-compress-raw-zlib")
-    (version "2.081")
+    (version "2.084")
     (source
      (origin
        (method url-fetch)
@@ -62,7 +62,7 @@ compression library.")
                            "Compress-Raw-Zlib-" version ".tar.gz"))
        (sha256
         (base32
-         "06rsm9ahp20xfyvd3jc69sd0k8vqysryxc6apzdbn96jbcsdwmp1"))))
+         "0vv69a8kjx64cxhjgaccidy2yyij2j3aqlrv1r0dwa1fl9xijpim"))))
     (build-system perl-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -90,7 +90,7 @@ compression library.")
 (define-public perl-io-compress
   (package
     (name "perl-io-compress")
-    (version "2.081")
+    (version "2.084")
     (source
      (origin
        (method url-fetch)
@@ -98,7 +98,7 @@ compression library.")
                            "IO-Compress-" version ".tar.gz"))
        (sha256
         (base32
-         "1na66ns1g3nni0m9q5494ym4swr21hfgpv88mw8wbj2daiswf4aj"))))
+         "1dbdsxhbikmbbfsdam3crv8474l8ax6d9d7r3s6safk4v8z51g8x"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib)     ; >=2.081
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index c7bb9afe29..15857c6cad 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -70,14 +70,14 @@
 (define-public libraw
   (package
     (name "libraw")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.libraw.org/data/LibRaw-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1xjyw4n9gfr2r637pjbpbi3h98h9mdjn61b0hsxwqynq2vdij452"))))
+                "0i4nhjm5556xgn966x0i503ygk2wafq6z83kg0lisacjjab4f3a0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 992a750911..d2b348942d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -57,6 +57,7 @@
 ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -105,6 +106,7 @@
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages monitoring)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ncurses)
@@ -444,12 +446,23 @@ concepts.")
         (base32
          "1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "python" "sh.py" "test"))))))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)))
     (home-page "https://github.com/amoffat/sh")
     (synopsis "Python subprocess replacement")
     (description "This package provides a replacement for Python's
 @code{subprocess} feature.")
     (license license:expat)))
 
+(define-public python2-sh
+  (package-with-python2 python-sh))
+
 (define-public python-cftime
   (package
     (name "python-cftime")
@@ -1683,14 +1696,14 @@ with sensible defaults out of the box.")
 (define-public python-wheel
   (package
     (name "python-wheel")
-    (version "0.30.0a0")
+    (version "0.32.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "wheel" version))
         (sha256
          (base32
-          "1nm6mn8isny0hr86rhbfrpfj867c0phf001xgsd69xfp9ady1wwq"))))
+          "1dhxl1bf18bx9szmqcnxbg6204hp3im8089q3hkwh5jfa6zh75q2"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-jsonschema" ,python-jsonschema)
@@ -4505,28 +4518,6 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
 (define-public python2-ipykernel
   (package-with-python2 python-ipykernel))
 
-(define-public python-send2trash
-  (package
-    (name "python-send2trash")
-    (version "1.5.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "send2trash" version))
-       (sha256
-        (base32
-         "1ci8vcwjmjlp11ljj1ckrfmml9fkq1mclx2gr53y4zvhgp01q030"))))
-    (build-system python-build-system)
-    (home-page "https://github.com/hsoft/send2trash")
-    (synopsis "Send files to trash")
-    (description
-     "This package provides a cross-platform mechanism to send files to the
-trash.")
-    (license license:bsd-3)))
-
-(define-public python2-send2trash
-  (package-with-python2 python-send2trash))
-
 ;; This is the latest release of the LTS version of ipython with support for
 ;; Python 2.7 and Python 3.x.  Later non-LTS versions starting from 6.0 have
 ;; dropped support for Python 2.7.  We may want to rename this package.
@@ -6732,31 +6723,6 @@ convert an @code{.ipynb} notebook file into various static formats including:
 (define-public python2-nbconvert
   (package-with-python2 python-nbconvert))
 
-(define-public python-prometheus-client
-  (package
-    (name "python-prometheus-client")
-    (version "0.5.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "prometheus_client" version))
-       (sha256
-        (base32
-         "0g7rpv1pq2lab1nfqdx98z9d3bqwc400alg1j4ynrpjkrbsizhg8"))))
-    (build-system python-build-system)
-    (arguments '(#:tests? #f)) ; tests are not included
-    (propagated-inputs
-     `(("python-twisted" ,python-twisted)))
-    (home-page "https://github.com/prometheus/client_python")
-    (synopsis "Python client for the Prometheus monitoring system")
-    (description
-     "This package provides a Python client for the Prometheus monitoring
-system.")
-    (license license:asl2.0)))
-
-(define-public python2-prometheus-client
-  (package-with-python2 python-prometheus-client))
-
 (define-public python-notebook
   (package
     (name "python-notebook")
@@ -7142,13 +7108,13 @@ config files.")
 (define-public python-configargparse
   (package
     (name "python-configargparse")
-    (version "0.12.0")
+    (version "0.14.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ConfigArgParse" version))
               (sha256
                (base32
-                "0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98"))))
+                "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pyyaml" ,python-pyyaml)))
@@ -7452,27 +7418,6 @@ output, progress bar display, and pipes.")
 (define-public python2-clint
   (package-with-python2 python-clint))
 
-(define-public python-astor
-  (package
-    (name "python-astor")
-    (version "0.5")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "astor" version))
-              (sha256
-               (base32
-                "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
-    (build-system python-build-system)
-    (home-page "https://github.com/berkerpeksag/astor")
-    (synopsis "Read and write Python ASTs")
-    (description
-     "Astor is designed to allow easy manipulation of Python source via the
-Abstract Syntax Tree.")
-    (license license:bsd-3)))
-
-(define-public python2-astor
-  (package-with-python2 python-astor))
-
 (define-public python-rply
   (package
     (name "python-rply")
@@ -8806,14 +8751,14 @@ Python.  It generates C++ code and a Makefile."))
 (define-public python2-rope
   (package
     (name "python2-rope")
-    (version "0.10.3")
+    (version "0.11.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "rope" version))
       (sha256
         (base32
-         "18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb"))))
+         "1cppm0pa9aqgsbkq130lskrzmrvjs5vpiavjjbhpz2fdw52w8251"))))
     (arguments
      ;; Rope is currently python-2 only.
      ;; https://github.com/python-rope/rope/issues/57
@@ -9909,28 +9854,6 @@ reasoning, wrappers for natural language processing libraries.")
 (define-public python2-pymongo
   (package-with-python2 python-pymongo))
 
-(define-public python-sh
-  (package
-    (name "python-sh")
-    (version "1.11")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "sh" version))
-              (sha256
-               (base32
-                "192r0mpv6dmkysjzhc43ddffiwb5g7c76bgr1mb1z2xz9awbj3sr"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f)) ; no tests
-    (home-page "https://github.com/amoffat/sh")
-    (synopsis "Python subprocess interface")
-    (description "Abstracts process invocation by providing a function
-interface for programs.")
-    (license license:expat)))
-
-(define-public python2-sh
-  (package-with-python2 python-sh))
-
 (define-public python-consul
   (package
     (name "python-consul")
@@ -13240,16 +13163,17 @@ and works only with Python 2 and NumPy < 1.9.")
 (define-public python-send2trash
   (package
     (name "python-send2trash")
-    (version "1.4.2")
+    (version "1.5.0")
     (source
-     (origin (method url-fetch)
+     (origin (method git-fetch)
              ;; Source tarball on PyPI doesn't include tests.
-             (uri (string-append "https://github.com/hsoft/send2trash/archive/"
-                                 version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+             (uri (git-reference
+                   (url "https://github.com/hsoft/send2trash.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "0ffyhwjyx61slkdy38iwjc4gmj7fj9gs2q58f075gwvq630pzm9z"))))
+               "1c76zldhw2ay7q7r00nnzcampjz9lkqfcbzqpm0iqp5i6bmmv30v"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -14725,11 +14649,14 @@ of Python libraries for building Python applications.")
     ;; FIXME: There are two errors and two test failures.
     (arguments `(#:tests? #f))
     (home-page "https://github.com/berkerpeksag/astor")
-    (synopsis "Read/rewrite/write Python ASTs")
+    (synopsis "Read and write Python ASTs")
     (description "Astor is designed to allow easy manipulation of Python
-source via the AST.")
+source via the Abstract Syntax Tree.")
     (license license:bsd-3)))
 
+(define-public python2-astor
+  (package-with-python2 python-astor))
+
 (define-public python-grpcio
   (package
     (name "python-grpcio")
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index 3c8444b00a..777606d77f 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -49,8 +49,8 @@
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://sourceforge/" name "/" name "/" version "/"
-                    name "-" version ".tar.gz"))
+                    "mirror://sourceforge/rdesktop/rdesktop/" version "/"
+                    "rdesktop-" version ".tar.gz"))
               (sha256
                (base32
                 "1r7c1rjmw2xzq8fw0scyb453gy9z19774z1z8ldmzzsfndb03cl8"))))
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index bcaccb452c..93a1a3e152 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;;
@@ -557,7 +557,7 @@ of libraries.")
 (define-public gambit-c
   (package
     (name "gambit-c")
-    (version "4.9.1")
+    (version "4.9.2")
     (source
      (origin
        (method url-fetch)
@@ -567,7 +567,7 @@ of libraries.")
              (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
              ".tgz"))
        (sha256
-        (base32 "14x9xa0yh7187alzw2m937jnh4csj0dyywi3va8bhi7aaw4p5qai"))))
+        (base32 "1cpganh3jgjdw6qsapcbwxdbp1xwgx5gvdl4ymwf8p2c5k018dwy"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 6198925727..ee143497e5 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -386,7 +386,7 @@ directory.")
 (define-public sdl2-ttf
   (package (inherit sdl-ttf)
     (name "sdl2-ttf")
-    (version "2.0.14")
+    (version "2.0.15")
     (source (origin
              (method url-fetch)
              (uri
@@ -399,7 +399,7 @@ directory.")
                         #t))
              (sha256
               (base32
-               "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl"))))
+               "0cyd48dipc0m399qy8s03lci8b0bpiy8xlkvrm2ia7wcv0dfpv59"))))
     (propagated-inputs
      (propagated-inputs-with-sdl2 sdl-ttf))))
 
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 0978300c9b..a672aa041a 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python))
 
 (define-public envstore
@@ -102,7 +103,7 @@ are already there.")
 (define-public direnv
   (package
     (name "direnv")
-    (version "2.11.3")
+    (version "2.15.2")
     (source
      (origin (method url-fetch)
              (uri (string-append "https://github.com/direnv/" name
@@ -110,14 +111,26 @@ are already there.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "01mhwzq9ss2qlnn8aahvwsgnspq8hbz0qfknf290aicngwx10d1d"))))
+               "1hhmc6rb7b1d4s4kgb4blrq35h388ax37ap88dq3dgfcw9w6j1rm"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:test-target "test"
+     `(#:test-target "test"
        #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
-       #:phases (modify-phases %standard-phases (delete 'configure))))
+       #:modules ((guix build gnu-build-system)
+                  ((guix build go-build-system) #:prefix go:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                            (guix build go-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         ;; Help the build scripts find the Go language dependencies.
+         (add-after 'unpack 'setup-go-environment
+           (assoc-ref go:%standard-phases 'setup-environment)))))
     (inputs
-     `(("go" ,go-1.9)))
+     `(("go" ,go)
+       ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
+       ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)))
     (native-inputs
       `(("which" ,which)))
     (home-page "https://direnv.net/")
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 8ab5a335c8..6a580c6226 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -96,7 +96,7 @@ system to use the host GPU to accelerate 3D rendering.")
 (define-public spice-protocol
   (package
     (name "spice-protocol")
-    (version "0.12.14")
+    (version "0.12.15")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -104,7 +104,7 @@ system to use the host GPU to accelerate 3D rendering.")
                 "spice-protocol-" version ".tar.bz2"))
               (sha256
                (base32
-                "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90"))))
+                "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb"))))
     (build-system gnu-build-system)
     (synopsis "Protocol headers for the SPICE protocol")
     (description "SPICE (the Simple Protocol for Independent Computing
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 78659fbbf4..682989ae29 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
@@ -626,22 +626,22 @@ authentication}.")
 (define-public autossh
   (package
     (name "autossh")
-    (version "1.4f")
+    (version "1.4g")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://www.harding.motd.ca/autossh/autossh-"
+             "https://www.harding.motd.ca/autossh/autossh-"
              version ".tgz"))
        (sha256
-        (base32 "1wpqwa2872nqgqbhnb6nnkrlzpdawd5k69gh1qp68354pvhyawh1"))))
+        (base32 "0xqjw8df68f4kzkns5gcah61s5wk0m44qdk2z1d6388w6viwxhsz"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; There is no "make check" or anything similar
     (inputs `(("openssh" ,openssh)))
     (synopsis "Automatically restart SSH sessions and tunnels")
     (description "autossh is a program to start a copy of @command{ssh} and
 monitor it, restarting it as necessary should it die or stop passing traffic.")
-    (home-page "http://www.harding.motd.ca/autossh/")
+    (home-page "https://www.harding.motd.ca/autossh/")
     (license
      ;; Why point to a source file?  Well, all the individual files have a
      ;; copy of this license in their headers, but there's no separate file
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index a5e02ce948..6edeea6cac 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -497,7 +497,7 @@ cups server to be installed.")
 (define-public noice
   (package
     (name "noice")
-    (version "0.6")
+    (version "0.7")
     (source
      (origin
        (method url-fetch)
@@ -505,15 +505,15 @@ cups server to be installed.")
                            name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0ldkbb71z6k4yzj4kpg3s94ijj1c1kx9dfcjz393py09scfyg5hr"))))
+         "03b0kzngzacfpz4n8lgbvia2s765i5bkw55v482hh4m49dm41gpc"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; No tests
+     `(#:tests? #f                      ; no tests
        #:make-flags (list "CC=gcc"
                           (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure) ; No configure script
+         (delete 'configure)            ; no configure script
          (add-before 'build 'curses
            (lambda _
              (substitute* "Makefile"
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 0df4e093eb..92eda1c9b1 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -366,31 +366,6 @@ database/sql package.")
       (home-page "https://github.com/lib/pq")
       (license expat))))
 
-(define-public go-github-com-minio-sha256-simd
-  (let ((commit "ad98a36ba0da87206e3378c556abbfeaeaa98668")
-        (revision "1"))
-    (package
-      (name "go-github-com-minio-sha256-simd")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/minio/sha256-simd")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0yfnqn3kqdnlfm54yvc4fr5vpdmwdi2kw571nlkbpmy8ldhsqqfi"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "github.com/minio/sha256-simd"))
-      (synopsis "Hardware-accelerated SHA256 in Go using SIMD")
-      (description "This packages provides a pure Go implementation of SHA256
-using SIMD (Single instruction, multiple data) instructions for Intel and ARM
-architectures.")
-      (home-page "https://github.com/minio/sha256-simd")
-      (license asl2.0))))
-
 (define-public go-github-com-oschwald-geoip2-golang
   (package
     (name "go-github-com-oschwald-geoip2-golang")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 7f52c6efd4..1c38cb3834 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -472,11 +473,11 @@ embedded kernel situations.")
     (license license:expat)))
 
 (define-public cool-retro-term
-  (let ((commit "dd799cf5c0eda92cf44f3938c0c2dcae5651a99e")
-        (revision "1"))
+  (let ((commit "1.1.1")
+        (revision "0"))                 ;not used currently
     (package
       (name "cool-retro-term")
-      (version (string-append "1.0.1-" revision "." (string-take commit 7)))
+      (version "1.1.1")
       (source (origin
                 (method git-fetch)
                 (file-name (string-append name "-" version "-checkout"))
@@ -485,11 +486,7 @@ embedded kernel situations.")
                       (commit commit)
                       (recursive? #t)))
                 (sha256
-                 (base32 "08mrvj8zk9ck15q90ipjzza1acnnsjhprv2rxg8yyck0xl9p40jd"))
-                (patches
-                 (search-patches "cool-retro-term-fix-array-size.patch"
-                                 "cool-retro-term-dont-check-uninit-member.patch"
-                                 "cool-retro-term-memory-leak-1.patch"))
+                 (base32 "0wb6anchxa5jpn9c73kr4byrf2xlj8x8qzc5x7ny6saj7kbbvp75"))
                 (modules '((guix build utils)
                            (srfi srfi-1)
                            (srfi srfi-26)
@@ -497,20 +494,18 @@ embedded kernel situations.")
                            (ice-9 regex)))
                 (snippet
                  '(let* ((fonts '(;"1971-ibm-3278"     ; BSD 3-clause
-                                  ;"1975-knight-tv"    ; GPL
                                   "1977-apple2"        ; Non-Free
                                   "1977-commodore-pet" ; Non-Free
                                   "1979-atari-400-800" ; Non-Free
-                                  "1982-commodore64"   ; Non-Free
-                                  "1985-atari-st"      ; ?
-                                  "1985-ibm-pc-vga"    ; Unclear
+                                  ;"1981-ibm-pc        ; CC-SA 4.0
+                                  "1982-commodore64")) ; Non-Free
+                                  ;"1985-ibm-pc-vga"   ; CC-SA 4.0
                                   ;"modern-fixedsys-excelsior" ; Redistributable
                                   ;"modern-hermit"     ; SIL
                                   ;"modern-inconsolata"; SIL
                                   ;"modern-pro-font-win-tweaked" ; X11
                                   ;"modern-proggy-tiny"; X11
                                   ;"modern-terminus"   ; SIL
-                                  "modern-monaco"))    ; Apple Non-Free
                          (name-rx (make-regexp " *name: *\"([^\"]*)\""))
                          (source-rx (make-regexp " *source: \"fonts/([^/]*)[^\"]*\""))
                          (fontname-rx (make-regexp "\"fontName\":\"([^\"]*).*"))
@@ -626,7 +621,8 @@ embedded kernel situations.")
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
                  (symlink (string-append bin "/cool-retro-term")
-                          (string-append bin "/crt")))))
+                          (string-append bin "/crt"))
+                 #t)))
            (add-after 'install 'install-man
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((mandir (string-append (assoc-ref outputs "out")
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index e491970300..948d2b995c 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,10 +35,12 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz))
 
@@ -377,3 +380,41 @@ datetime type.")
 
 (define-public python2-aniso8601
   (package-with-python2 python-aniso8601))
+
+(define-public datefudge
+  (package
+    (name "datefudge")
+    (version "1.22")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://salsa.debian.org/debian/datefudge.git")
+                    (commit (string-append "debian/" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1fmd05r00wx4zc90lbi804jl7xwdl11jq2a1kp5lqimk3yyvfw4c"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list "CC=gcc"
+                          (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefile
+           (lambda _
+             (substitute* "Makefile"
+               ((" -o root -g root") "")
+               (("VERSION := \\$\\(shell dpkg-parsechangelog .*")
+                (string-append "VERSION = " ,version)))
+             #t))
+         (delete 'configure))))
+    (native-inputs
+     `(("perl" ,perl)))
+    (home-page "https://salsa.debian.org/debian/datefudge")
+    (synopsis "Pretend the system date is different")
+    (description
+     "Utility that fakes the system time by pre-loading a small library that
+modifies the @code{time}, @code{gettimeofday} and @code{clock_gettime} system
+calls.")
+    (license gpl2)))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 4fb46c7303..fab0e72278 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -531,13 +531,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "0.30.0")
+    (version "0.30.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "0icly11gaiv5cl57225rdwjbs56ah077csk32skcygf7pq06sjwq"))))
+                "1wmqxrl4w9w79jd16bmxp8g3xbrx3az4137zbip8x44zrrzmnni9"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -588,7 +588,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1s29rlnmgxq42wd4bpc7bma1hx9wnpw4y6dfznrfj33hfmngwcfn"))))
+                "0vkpqwps1c8ja140kiiz2cws9hqjrbkx58wbji3qxv9cap5qfi2k"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 5278bbb43b..ec86d7d241 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -91,27 +91,24 @@ the application layer) you need to install @code{torsocks}.")
 (define-public torsocks
   (package
     (name "torsocks")
-    (version "2.2.0")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://people.torproject.org/~dgoulet/"
-                                  name "/" name "-" version ".tar.xz"))
+                                  "torsocks/torsocks-" version ".tar.xz"))
               (sha256
                (base32
-                "0byr9ga9w79qz4vp0m11sbmspad7fsal9wm67r4znzb7zb7cis19"))))
+                "08inrkap29gikb6sdmb58z43hw4abwrfw7ny40c4xzdkss0vkwdr"))))
     (build-system gnu-build-system)
     (inputs
-     `(("which" ,which)
-       ("libcap" ,libcap)))
+     `(("libcap" ,libcap)))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'build 'absolutize
                     (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "src/bin/torsocks"
-                        (("getcap=`.*`")
-                         (string-append "getcap=" (which "getcap")))
-                        (("`which")
-                         (string-append "`" (which "which"))))
+                        (("getcap=.*")
+                         (string-append "getcap=" (which "getcap") "\n")))
                       #t)))))
     (home-page "https://www.torproject.org/")
     (synopsis "Use socks-friendly applications with Tor")
@@ -222,16 +219,14 @@ from you.")
 (define-public nyx
   (package
     (name "nyx")
-    (version "2.0.4")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
-       (patches
-        (search-patches "nyx-show-header-stats-with-python3.patch"))
        (sha256
         (base32
-         "0pm7vfcqr02pzqz4b2f6sw5prxxmgqwr1912am42xmy2i53n7nrq"))))
+         "02rrlllz2ci6i6cs3iddyfns7ang9a54jrlygd2jw1f9s6418ll8"))))
     (build-system python-build-system)
     (inputs
      `(("python-stem" ,python-stem)))
diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm
index d598ac04c7..b49a85d932 100644
--- a/gnu/packages/uml.scm
+++ b/gnu/packages/uml.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,15 +29,14 @@
 (define-public plantuml
   (package
     (name "plantuml")
-    (version "8048")
+    (version "1.2019.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/plantuml/plantuml-"
-                    version ".tar.gz"))
+              (uri (string-append "mirror://sourceforge/plantuml/"
+                                  version "/plantuml-" version ".tar.gz"))
               (sha256
                (base32
-                "1vipxd6p7isb1k1qqh4hrpfcj27hx1nll2yp0rfwpvps1w2d936i"))))
+                "0mws7g0w3fn0wxizccg2iqisq9ljkn95i5qf8ma07lbw3nj0h48n"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f ; no tests
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index dc2abb0c71..b8e967bf69 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -6,12 +6,12 @@
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015, 2018 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 André <eu@euandre.org>
@@ -914,16 +914,15 @@ either a pure Python implementation, or the faster, but more resource intensive
     (name "shflags")
     (version "1.2.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/kward/shflags/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/kward/shflags.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1h9xfrwwdhzflipfwdcgcc3y7zapdslnyk1rg5y8jm7k144rfrs4"))))
+                "1ydx0sb6vz9s2dgp5bd64y7fpzh9qvmlfjxrbmzac8saknijrlly"))))
     (build-system gnu-build-system)
-    (native-inputs `(("tar" ,tar)
-                     ("gzip" ,gzip)))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -1427,27 +1426,19 @@ RCS, PRCS, and Aegis packages.")
 (define-public cvs-fast-export
   (package
     (name "cvs-fast-export")
-    (version "1.44")
+    (version "1.45")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.catb.org/~esr/"
-                                  name "/" name "-" version ".tar.gz"))
+              (uri (string-append "http://www.catb.org/~esr/cvs-fast-export/"
+                                  "cvs-fast-export-" version ".tar.gz"))
               (sha256
                (base32
-                "1l7hlys4vw4zk4ikdjiig5vzgv5dv48mbm8bdqgvgkyyxb2j0dm0"))))
+                "19pxg6p0pcgyd2fbnh3wy1kazv6vcfi5lzc2whhdi1w9kj4r9c4z"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'check 'fix-setpython-PATH
-           (lambda _
-             ;; The Makefile does try to add the current working directory to
-             ;; $PATH, but this fails for some reason in 1.44.  Hack around it.
-             (substitute* "tests/Makefile"
-               (("setpython" command)
-                (string-append "./" command)))
-             #t))
+         (delete 'configure)            ; no configure script
          (add-after 'unpack 'remove-optimizations
            (lambda _
              ;; Don't optimize for a specific processor architecture.
@@ -1963,7 +1954,7 @@ be served with a HTTP file server of your choice.")
 (define-public darcs
   (package
     (name "darcs")
-    (version "2.14.1")
+    (version "2.14.2")
     (source
      (origin
        (method url-fetch)
@@ -1971,7 +1962,7 @@ be served with a HTTP file server of your choice.")
                            "darcs-" version ".tar.gz"))
        (sha256
         (base32
-         "0dfd6bp2wy0aabxx7l93gi3dmq21j970cds424xdy1mgmjcvrpb1"))
+         "0zm2486gyhiga1amclbg92cd09bvki6vgh0ll75hv5kl72j61lb5"))
        (modules '((guix build utils)))
        ;; Remove time-dependent code for reproducibility.
        (snippet
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8f0884db09..f98b6e796c 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1273,7 +1273,7 @@ projects while introducing many more.")
 (define-public gnome-mpv
   (package
     (name "gnome-mpv")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method url-fetch)
@@ -1282,7 +1282,7 @@ projects while introducing many more.")
                            ".tar.xz"))
        (sha256
         (base32
-         "1y47abkidxh1il0bvq8r3dglwn3ggsy41x2n7ic3x23wvvcqmq74"))))
+         "0jzdzvhcqp5jp1inwk2466zf7r8iimk3x69066gl8mzaay98mk92"))))
     (native-inputs
      `(("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
@@ -1341,7 +1341,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.01.27")
+    (version "2019.01.30.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@@ -1349,7 +1349,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0z4x4lwpd6qd2r9xgp8cx4j1vl5vd76kzs74jp0hh3w2g31s51z8"))))
+                "0wamv1fs4w8jjx67p60rgrgdi6k04yy0h4p3cwscza5pzhpmvnlf"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 26855b8007..04165a9b8c 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -904,7 +904,7 @@ Open Container Initiative specification.")
 (define-public umoci
   (package
     (name "umoci")
-    (version "0.4.3")
+    (version "0.4.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -913,7 +913,7 @@ Open Container Initiative specification.")
               (file-name (string-append "umoci-" version ".tar.xz"))
               (sha256
                (base32
-                "1hy3gcs8z25153qpw4rk2lispfaf2c90hv1q64xwyjxn22j9ayy9"))))
+                "1wchmha5k2f370jfijmx9fqp0cp99zfa9ajmfbq3j24qc8p5k8lk"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/openSUSE/umoci"
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index e07787c735..0c1410c4ad 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -332,14 +332,14 @@ private network between hosts on the internet.")
 (define-public sshuttle
   (package
     (name "sshuttle")
-    (version "0.78.4")
+    (version "0.78.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
        (sha256
         (base32
-         "0pqk43kd7crqhg6qgnl8kapncwgw1xgaf02zarzypcw64kvdih9h"))))
+         "0vp13xwrhx4m6zgsyzvai84lkq9mzkaw47j58dk0ll95kaymk2x8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -354,8 +354,9 @@ private network between hosts on the internet.")
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)
        ;; For tests only.
+       ("python-flake8", python-flake8)
        ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "https://github.com/sshuttle/sshuttle")
     (synopsis "VPN that transparently forwards connections over SSH")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 57346518a3..45ea77ad36 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5151,15 +5151,15 @@ inspired by Ruby's @code{fakeweb}.")
 (define-public jo
   (package
     (name "jo")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://github.com/jpmens/jo/releases/download/v"
+       (uri (string-append "https://github.com/jpmens/jo/releases/download/"
                            version "/jo-" version ".tar.gz"))
        (sha256
         (base32
-         "0pysickpxrbl53c122h6swvz8sck68q3j0ql38wvbz70q9k4gvb3"))))
+         "1bmdck53jslrl3anqqpm6iyjdxrz445qzcc4fr37hr3wjg22zv1n"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/jpmens/jo")
     (synopsis "Output JSON from a shell")
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 83625914db..9881386583 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -310,7 +310,7 @@ integrate Windows applications into your desktop.")
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "4.0")
+    (version "4.1")
     (source
      (origin
        (method git-fetch)
@@ -320,7 +320,7 @@ integrate Windows applications into your desktop.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1xfbmpjvzkgjg95x5d36raz3hp0qcdaim0n5hw9im0xjnwb83am9"))))
+         "1jp5s4k3cwiw6jy8lih25n0c7nyrddr6dm7vlyfdfrl2gkah94z0"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("bash" ,bash)
@@ -361,12 +361,12 @@ integrate Windows applications into your desktop.")
               (method url-fetch)
               (uri (string-append
                     "https://dl.winehq.org/wine/source/"
-                    (version-major version) ".0"
+                    (version-major version) ".x"
                     "/wine-" version ".tar.xz"))
               (file-name (string-append name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0k8d90mgjzv8vjspmnxzr3i5mbccxnbr9hf03q1bpf5jjppcsdk7"))))
+                "1b8vwid8wsy1ss2q27bqkd9sdl67qqh0kmazi87vspi40nz7bxyf"))))
     (inputs `(("autoconf" ,autoconf) ; for autoreconf
               ("ffmpeg" ,ffmpeg)
               ("gtk+" ,gtk+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index fa0e467f31..fd89df0c16 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -108,14 +108,13 @@ nested include statements).")
     (version "0.9.5")
     (source
      (origin
-       (file-name (string-append name "-" version ".tar.gz"))
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/baskerville/bspwm/archive/"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/baskerville/bspwm.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "10pph8wxqysgk7b2h0svs0nwacn1a4y44jnzzry32pd1ysx92d97"))))
+        (base32 "09h3g1rxxjyw861mk32lj774nmwkx8cwxq4wfgmf4dpbizymvhhr"))))
     (build-system gnu-build-system)
     (inputs
      `(("libxcb" ,libxcb)
@@ -250,7 +249,7 @@ developers.")
                 (sha256
                  (base32
                   "15rnrcajzyrmhlz1a21qqsjlj3dkib70806dlb386fliylc2kisb"))
-                (file-name (string-append name "-" version "-checkout"))))
+                (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))