summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-03-18 19:41:08 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-03-18 19:41:08 +0100
commitc4d769d359c67680fe55c3b71e659cd31837f3ec (patch)
tree928fe50be266c8975f4abad56e07ce4ebaef55fe /gnu
parentde2871c9faa44ee07f73470441f05d114a43bb48 (diff)
parent4de63cf3fc0a831d75cb507456821104f24800c2 (diff)
downloadguix-c4d769d359c67680fe55c3b71e659cd31837f3ec.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/bootloader/grub.scm53
-rw-r--r--gnu/local.mk6
-rw-r--r--gnu/packages/admin.scm6
-rw-r--r--gnu/packages/agda.scm2
-rw-r--r--gnu/packages/algebra.scm7
-rw-r--r--gnu/packages/audio.scm86
-rw-r--r--gnu/packages/benchmark.scm6
-rw-r--r--gnu/packages/bioconductor.scm3
-rw-r--r--gnu/packages/bioinformatics.scm10
-rw-r--r--gnu/packages/check.scm8
-rw-r--r--gnu/packages/cook.scm3
-rw-r--r--gnu/packages/cran.scm46
-rw-r--r--gnu/packages/crates-io.scm25
-rw-r--r--gnu/packages/databases.scm22
-rw-r--r--gnu/packages/debug.scm54
-rw-r--r--gnu/packages/emacs-xyz.scm40
-rw-r--r--gnu/packages/embedded.scm2
-rw-r--r--gnu/packages/engineering.scm4
-rw-r--r--gnu/packages/finance.scm11
-rw-r--r--gnu/packages/fribidi.scm54
-rw-r--r--gnu/packages/game-development.scm40
-rw-r--r--gnu/packages/games.scm17
-rw-r--r--gnu/packages/gcc.scm33
-rw-r--r--gnu/packages/geo.scm76
-rw-r--r--gnu/packages/gl.scm27
-rw-r--r--gnu/packages/gnome-xyz.scm4
-rw-r--r--gnu/packages/gnome.scm126
-rw-r--r--gnu/packages/gnunet.scm36
-rw-r--r--gnu/packages/golang.scm96
-rw-r--r--gnu/packages/gps.scm94
-rw-r--r--gnu/packages/graphics.scm39
-rw-r--r--gnu/packages/gtk.scm2
-rw-r--r--gnu/packages/guile-xyz.scm59
-rw-r--r--gnu/packages/haskell-apps.scm35
-rw-r--r--gnu/packages/image.scm15
-rw-r--r--gnu/packages/java.scm100
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linux.scm39
-rw-r--r--gnu/packages/machine-learning.scm21
-rw-r--r--gnu/packages/mail.scm9
-rw-r--r--gnu/packages/maths.scm92
-rw-r--r--gnu/packages/monitoring.scm6
-rw-r--r--gnu/packages/music.scm1
-rw-r--r--gnu/packages/networking.scm10
-rw-r--r--gnu/packages/opencog.scm12
-rw-r--r--gnu/packages/openstack.scm49
-rw-r--r--gnu/packages/patches/beets-werkzeug-compat.patch18
-rw-r--r--gnu/packages/patches/bidiv-update-fribidi.patch50
-rw-r--r--gnu/packages/patches/eigen-stabilise-sparseqr-test.patch74
-rw-r--r--gnu/packages/patches/python-alembic-exceptions-cause.patch69
-rw-r--r--gnu/packages/patches/python-flask-restful-werkzeug-compat.patch36
-rw-r--r--gnu/packages/patches/python-jedi-deleted-variables.patch38
-rw-r--r--gnu/packages/perl-check.scm6
-rw-r--r--gnu/packages/photo.scm94
-rw-r--r--gnu/packages/profiling.scm2
-rw-r--r--gnu/packages/python-check.scm34
-rw-r--r--gnu/packages/python-crypto.scm34
-rw-r--r--gnu/packages/python-science.scm29
-rw-r--r--gnu/packages/python-web.scm185
-rw-r--r--gnu/packages/python-xyz.scm495
-rw-r--r--gnu/packages/qt.scm301
-rw-r--r--gnu/packages/sawfish.scm6
-rw-r--r--gnu/packages/scheme.scm2
-rw-r--r--gnu/packages/sdl.scm10
-rw-r--r--gnu/packages/ssh.scm2
-rw-r--r--gnu/packages/statistics.scm10
-rw-r--r--gnu/packages/syncthing.scm5
-rw-r--r--gnu/packages/text-editors.scm4
-rw-r--r--gnu/packages/tor.scm6
-rw-r--r--gnu/packages/version-control.scm93
-rw-r--r--gnu/packages/video.scm87
-rw-r--r--gnu/packages/web.scm2
-rw-r--r--gnu/packages/wxwidgets.scm16
-rw-r--r--gnu/packages/xml.scm5
-rw-r--r--gnu/services/mail.scm4
-rw-r--r--gnu/services/networking.scm4
-rw-r--r--gnu/services/nfs.scm38
-rw-r--r--gnu/services/web.scm16
-rw-r--r--gnu/system.scm1
-rw-r--r--gnu/tests/mail.scm29
-rw-r--r--gnu/tests/networking.scm4
-rw-r--r--gnu/tests/nfs.scm36
-rw-r--r--gnu/tests/rsync.scm4
83 files changed, 2411 insertions, 928 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index b99f5fa4f4..28e6cb1f5f 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-2)
   #:export (grub-image
             grub-image?
             grub-image-aspect-ratio
@@ -148,37 +150,26 @@ STORE-MOUNT-POINT is its mount point; these are used to determine where the
 background image and fonts must be searched for.  SYSTEM must be the target
 system string---e.g., \"x86_64-linux\"."
   (define setup-gfxterm-body
-    ;; Intel and EFI systems need to be switched into graphics mode, whereas
-    ;; most other modern architectures have no other mode and therefore don't
-    ;; need to be switched.
-    (if (string-match "^(x86_64|i[3-6]86)-" system)
-        (string-append
-         "
-"
-         (let ((gfxmode (and=>
-                         (and=> config bootloader-configuration-theme)
-                         grub-gfxmode)))
-           (if gfxmode
-               (string-append "set gfxmode=" (string-join gfxmode ";"))
-               "# Leave 'gfxmode' to 'auto'."))
-         "
-  insmod video_bochs
-  insmod video_cirrus
-  insmod gfxterm
-
-  if [ \"${grub_platform}\" == efi ]; then
-    # This is for (U)EFI systems (these modules are unavailable in the
-    # non-EFI GRUB.)  If we don't load them, GRUB boots in \"blind mode\",
-    # which isn't convenient.
-    insmod efi_gop
-    insmod efi_uga
-  else
-    # These are specific to non-EFI Intel machines.
-    insmod vbe
-    insmod vga
-  fi
-")
-        ""))
+    (let ((gfxmode
+           (or (and-let* ((theme (bootloader-configuration-theme config))
+                          (gfxmode (grub-gfxmode theme)))
+                 (string-join gfxmode ";"))
+               "auto")))
+
+      ;; Intel and EFI systems need to be switched into graphics mode, whereas
+      ;; most other modern architectures have no other mode and therefore
+      ;; don't need to be switched.
+
+      ;; XXX: Do we really need to restrict to x86 systems?  We could imitate
+      ;; what the GRUB default configuration does and decide based on whether
+      ;; a user provided 'gfxterm' in the terminal-outputs field of their
+      ;; bootloader-configuration record.
+      (if (string-match "^(x86_64|i[3-6]86)-" system)
+          (format #f "
+  set gfxmode=~a
+  insmod all_video
+  insmod gfxterm~%" gfxmode)
+          "")))
 
   (define (setup-gfxterm config font-file)
     (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))
diff --git a/gnu/local.mk b/gnu/local.mk
index 1d3d6ff4e7..25f017bc57 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -756,9 +756,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/bastet-change-source-of-unordered_set.patch	\
   %D%/packages/patches/bazaar-CVE-2017-14176.patch		\
   %D%/packages/patches/bc-fix-cross-compilation.patch		\
+  %D%/packages/patches/beets-werkzeug-compat.patch		\
   %D%/packages/patches/beignet-correct-file-names.patch		\
   %D%/packages/patches/benchmark-unbundle-googletest.patch	\
   %D%/packages/patches/biber-fix-encoding-write.patch		\
+  %D%/packages/patches/bidiv-update-fribidi.patch		\
   %D%/packages/patches/binutils-boot-2.20.1a.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
@@ -833,6 +835,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch	\
   %D%/packages/patches/dstat-skip-devices-without-io.patch	\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
+  %D%/packages/patches/eigen-stabilise-sparseqr-test.patch	\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-path-length.patch			\
@@ -1327,16 +1330,19 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-3-fix-tests.patch			\
   %D%/packages/patches/python-3.8-fix-tests.patch		\
   %D%/packages/patches/python-CVE-2018-14647.patch		\
+  %D%/packages/patches/python-alembic-exceptions-cause.patch	\
   %D%/packages/patches/python-axolotl-AES-fix.patch		\
   %D%/packages/patches/python-cairocffi-dlopen-path.patch	\
   %D%/packages/patches/python-cross-compile.patch		\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-faker-fix-build-32bit.patch	\
+  %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
+  %D%/packages/patches/python-jedi-deleted-variables.patch	\
   %D%/packages/patches/python-libxml2-utf8.patch		\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-testtools.patch			\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 90252fc413..3d24e039d7 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -716,7 +716,7 @@ IPv6, proxies, and Unix sockets.")
         (base32
          "0mv3wndj4z2bsshh2k8d5sy3j8wxzgf8mzmmkvj1k8gpcz37dm6g"))))
     (build-system gnu-build-system)
-    (home-page "http://www.routemeister.net/projects/sipcalc/")
+    (home-page "https://www.routemeister.net/projects/sipcalc/")
     (synopsis "Command-line IP subnet calculator")
     (description
      "Sipcalc is an advanced command-line IP subnet calculator.  It can take
@@ -1206,7 +1206,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.8.31")
+    (version "1.8.31p1")
     (source (origin
               (method url-fetch)
               (uri
@@ -1216,7 +1216,7 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "0ks5mm9hda5idivncyfpiz4lrd8fv0dpmsl711788k7f7ixdka3y"))
+                "1n0mdmgcs92af34xxsnsh1arrngymhdmwd9srjgjbk65q7xzsg67"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/agda.scm b/gnu/packages/agda.scm
index 60944ddb04..98768c668a 100644
--- a/gnu/packages/agda.scm
+++ b/gnu/packages/agda.scm
@@ -126,7 +126,7 @@
                (for-each (cut invoke agda-compiler <>)
                          (find-files (string-append out "/share") "\\.agda$"))
                #t))))))
-    (home-page "http://wiki.portal.chalmers.se/agda/")
+    (home-page "https://wiki.portal.chalmers.se/agda/")
     (synopsis
      "Dependently typed functional programming language and proof assistant")
     (description
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index a0f31d186a..e2e26c8c25 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -5,7 +5,7 @@
 ;;; 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, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -919,15 +919,16 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
 (define-public eigen
   (package
     (name "eigen")
-    (version "3.3.5")
+    (version "3.3.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://bitbucket.org/eigen/eigen/get/"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1qh3yrwn78ms5yhwbpl5wvblk4gbz02cacdygxylr7i9xbrvylkk"))
+                "1km3fyfzyqfdvmnl79drps3fjwnz3zbh0c7l34mfbqyvvs8cy4wz"))
               (file-name (string-append name "-" version ".tar.bz2"))
+              (patches (search-patches "eigen-stabilise-sparseqr-test.patch"))
               (modules '((guix build utils)))
               (snippet
                ;; There are 3 test failures in the "unsupported" directory,
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 3f532532a8..5772547e3e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -58,6 +58,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
@@ -1442,7 +1443,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
      (list (search-path-specification
             (variable "LV2_PATH")
             (files '("lib/lv2")))))
-    (home-page "http://guitarix.org/")
+    (home-page "https://guitarix.org/")
     (synopsis "Virtual guitar amplifier")
     (description "Guitarix is a virtual guitar amplifier running JACK.
 Guitarix takes the signal from your guitar as a mono-signal from your sound
@@ -3691,38 +3692,35 @@ using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
       (license license:expat))))
 
 (define-public libfdk
-  (let ((commit "2326faaf8f2cdf2c3a9108ccdaf1d7551aec543e")
-        (revision "0"))
-    (package
-      (name "libfdk")
-      ;; The latest upstream revision, with many bug fixes.
-      (version (git-version "0.1.6" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/mstorsjo/fdk-aac")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0yy6ndd9d61bwl283vl1r5kva2a4acc0f4r9g0sza156f2abr9ws"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
-      (home-page "https://github.com/mstorsjo/fdk-aac")
-      (synopsis "Fraunhofer FDK AAC library")
-      (description "FDK is a library for encoding and decoding Advanced Audio
+  (package
+    (name "libfdk")
+    (version "2.0.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/mstorsjo/fdk-aac")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1fkrnzs78fmj11n9z3l0w53i2fl16jcfiyavwidck9bzmkmsf486"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (home-page "https://github.com/mstorsjo/fdk-aac")
+    (synopsis "Fraunhofer FDK AAC library")
+    (description "FDK is a library for encoding and decoding Advanced Audio
 Coding (AAC) format audio, developed by Fraunhofer IIS, and included as part of
 Android.  It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC
 LC, HE-AAC (AAC LC + SBR), HE-AACv2 (LC + SBR + PS) as well AAC-LD (low delay)
 and AAC-ELD (enhanced low delay) for real-time communication.  The encoding
 library supports sample rates up to 96 kHz and up to eight channels (7.1
-surround).")
-      (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
-                                 "https://www.gnu.org/licenses/license-list.html#fdk")))))
+                                                                     surround).")
+    (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE"
+                               "https://www.gnu.org/licenses/license-list.html#fdk"))))
 
 (define-public libopenshot-audio
   (package
@@ -4044,3 +4042,35 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
 @code{audio_decoder} code.")
    (home-page "https://git.zrythm.org/cgit/libaudec")
    (license license:agpl3+)))
+
+(define-public lv2lint
+  (package
+    (name "lv2lint")
+    (version "0.4.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://git.open-music-kontrollers.ch/lv2/lv2lint")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1pspwqpzl2dw1hd9ra9yr53arqbbqjn7d7j0f7p9g3iqa76vblpi"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       `("-Delf-tests=true" ; for checking symbol visibility
+         "-Donline-tests=true"))) ; for checking URI existence
+    (inputs
+      `(("curl", curl)
+        ("libelf", libelf)
+        ("lilv", lilv)))
+    (native-inputs
+      `(("pkg-config", pkg-config)))
+    (synopsis "LV2 plugin lint tool")
+    (description "lv2lint is an LV2 lint-like tool that checks whether a
+given plugin and its UI(s) match up with the provided metadata and adhere
+to well-known best practices.")
+    (home-page "https://open-music-kontrollers.ch/lv2/lv2lint/")
+    (license license:artistic2.0)))
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 9ae30eefc8..4e6c416518 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -46,14 +46,14 @@
 (define-public fio
   (package
     (name "fio")
-    (version "3.18")
+    (version "3.19")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://brick.kernel.dk/snaps/"
                                   "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "12wzi40hn0ylkdiqwjjljdjmiq78nhwsv3qqa0fad7h3x08w6w6b"))))
+                "01nc7igmcc6hda32d1y8vidd9x9pdlxvf3i1pwrzvmi6xvmbfvab"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 4320bc0bb5..bc7623eac3 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -6630,7 +6630,8 @@ measures.")
        ("r-gplots" ,r-gplots)
        ("r-limma" ,r-limma)
        ("r-rcolorbrewer" ,r-rcolorbrewer)))
-    (home-page "http://www.ebi.ac.uk/bertone/software")
+    (home-page (string-append "https://www.ebi.ac.uk/sites/ebi.ac.uk/files/"
+                              "groups/bertone/software/HTqPCR.pdf"))
     (synopsis "Automated analysis of high-throughput qPCR data")
     (description
      "Analysis of Ct values from high throughput quantitative real-time
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 24467166c7..dd25ff0bb6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6322,16 +6322,16 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
 (define-public star
   (package
     (name "star")
-    (version "2.7.1a")
+    (version "2.7.3a")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/alexdobin/STAR.git")
                     (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n6g4s4hgw7qygs1z97j7a2dgz8gfaa4cv5pjvvvmarvk0x07hyg"))
+                "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -12815,7 +12815,7 @@ methylation and segmentation.")
 (define-public pigx-scrnaseq
   (package
     (name "pigx-scrnaseq")
-    (version "1.1.3")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@@ -12823,7 +12823,7 @@ methylation and segmentation.")
                                   "/pigx_scrnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0ga2jr4968qzwml6aycky4603q64lny3y7lzw6dmafch5pydl1qi"))))
+                "1d5l3gywypi67yz9advxq5xkgfhr4733gj0bwnngm723i3hdf5w9"))))
     (build-system gnu-build-system)
     (inputs
      `(("coreutils" ,coreutils)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 96d099fc94..c84a682e75 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -393,7 +393,7 @@ and it supports a very flexible form of test discovery.")
 (define-public doctest
   (package
     (name "doctest")
-    (version "2.3.6")
+    (version "2.3.7")
     (home-page "https://github.com/onqtam/doctest")
     (source (origin
               (method git-fetch)
@@ -401,7 +401,7 @@ and it supports a very flexible form of test discovery.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "070gkwffi73i2p0azga9yxj8km32bp8bw4jvkvz1vzlpavyii5kn"))))
+                "134lx7pjnglrl4wdmyr9dz3rjb6d4ir6rvapg00gp52n44dbhnrq"))))
     (build-system cmake-build-system)
     (synopsis "C++ test framework")
     (description
@@ -701,14 +701,14 @@ have been used.")
 (define-public python-nose2
   (package
     (name "python-nose2")
-    (version "0.6.5")
+    (version "0.9.2")
       (source
         (origin
           (method url-fetch)
           (uri (pypi-uri "nose2" version))
           (sha256
            (base32
-            "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7"))))
+            "0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
     (propagated-inputs
diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm
index 17e090d725..16c288cc82 100644
--- a/gnu/packages/cook.scm
+++ b/gnu/packages/cook.scm
@@ -73,7 +73,8 @@
                      ;; This test is therefore just skipped.
                      ;; ("inetutils" ,inetutils)
                      ("ed" ,ed)))
-    (home-page "http://miller.emu.id.au/pmiller/software/cook")
+    (home-page (string-append "https://web.archive.org/web/20140727122520/"
+                              "http://miller.emu.id.au/pmiller/software/cook/"))
     (synopsis "Tool for constructing files")
     (description "Cook is a tool for constructing files.  It is given a set of
 files to create, and recipes of how to create them.  In any non-trivial program
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index ea7a3908e8..8426285b7a 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
 ;;; Copyright © 2018 Sahithi Yarlagadda <sahi@swecha.net>
@@ -1351,7 +1351,7 @@ applications.  That is, compute distances and related measures for angular
          "1a8mi70x79a691r40yiw684jkg1mr9n8agkxlcksxcnrdybs9c0x"))))
     (build-system r-build-system)
     (inputs `(("libjpeg" ,libjpeg-turbo)))
-    (home-page "http://www.rforge.net/jpeg/")
+    (home-page "https://www.rforge.net/jpeg/")
     (synopsis "Read and write JPEG images with R")
     (description "This package provides a way to read, write and display
 bitmap images stored in the JPEG format with R.  It can read and write both
@@ -1592,7 +1592,7 @@ error stream.")
        (sha256
         (base32 "121byimd6bg7jbrq5wz5fpi0vxq0vh8g724vkhnjzszbvcv1xsb7"))))
     (build-system r-build-system)
-    (home-page "http://mevik.net/work/software/pls.html")
+    (home-page "https://mevik.net/work/software/pls.html")
     (synopsis "Partial Least Squares and Principal Component Regression")
     (description
      "The pls package implements multivariate regression methods: Partial Least
@@ -1979,7 +1979,7 @@ use in R.  It also provides a simple way for variable interpolation in R.")
         (base32
          "0z80jxkygmzn11sq0c2iz357s9bpki548lg926g85gldhfj1md90"))))
     (build-system r-build-system)
-    (home-page "http://www.rforge.net/fastmatch")
+    (home-page "https://www.rforge.net/fastmatch")
     (synopsis "Fast match function")
     (description
      "This package provides a fast @code{match} replacement for cases that
@@ -4141,7 +4141,7 @@ terminals.")
         (base32
          "0gm9ii7ncvllxbvyk6srsiinjmqyj7lmh84w43x4nhqpvafj9q4q"))))
     (build-system r-build-system)
-    (home-page "http://www.rforge.net/uuid")
+    (home-page "https://www.rforge.net/uuid")
     (synopsis "Tools for generating and handling of UUIDs")
     (description
      "This package provides tools for generating and handling of
@@ -4513,7 +4513,7 @@ University Press, 2000.")
      `(("r-leaps" ,r-leaps)
        ("r-locfit" ,r-locfit)
        ("r-mgcv" ,r-mgcv)))
-    (home-page "http://www.stat.uiowa.edu/~kchan/TSA.htm")
+    (home-page "https://homepage.divms.uiowa.edu/~kchan/TSA.htm")
     (synopsis "Time series analysis")
     (description
      "This package contains R functions and datasets detailed in the book
@@ -4926,7 +4926,7 @@ files.")
     (propagated-inputs
      `(("r-shiny" ,r-shiny)
        ("r-jsonlite" ,r-jsonlite)))
-    (home-page "http://cran.r-project.org/web/packages/shinyAce")
+    (home-page "https://cran.r-project.org/web/packages/shinyAce/")
     (synopsis "Ace editor bindings for Shiny")
     (description
      "This package provides Ace editor bindings to enable a rich text editing
@@ -5077,7 +5077,7 @@ It also includes interpolation functions.")
          "00j6b8b6xsx6v370h220x233rpk6asca78165y3d48jpwvwisdc9"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-proto" ,r-proto)))
-    (home-page "http://gsubfn.googlecode.com")
+    (home-page "https://code.google.com/archive/p/gsubfn/")
     (synopsis "Utilities for strings and function arguments.")
     (description
      "This package provides @code{gsubfn} which is like @code{gsub} but can
@@ -6878,7 +6878,7 @@ containing one or more SNPs that evolved under directional selection.")
     (propagated-inputs
      `(("r-plyr" ,r-plyr)
        ("r-rcpp" ,r-rcpp)))
-    (home-page "http://expasy.org/tools/pROC/")
+    (home-page "https://web.expasy.org/pROC/")
     (synopsis "Display and analyze ROC curves")
     (description
      "This package provides tools for visualizing, smoothing and comparing
@@ -9253,7 +9253,7 @@ package provides a minimal R interface by relying on the Rcpp package.")
          "1mhd6vp47xmfw533h0pkvydv96m57fspvd85g8m7iqb5rcxvhhdb"))))
     (properties `((upstream-name . "RcppParallel")))
     (build-system r-build-system)
-    (home-page "http://rcppcore.github.io/RcppParallel")
+    (home-page "https://rcppcore.github.io/RcppParallel/")
     (synopsis "Parallel programming tools for Rcpp")
     (description
      "This package provides high level functions for parallel programming with
@@ -9579,7 +9579,7 @@ related functions.")
         (base32
          "0scar396wiq6wkbkvwp4qrxqc1m075y56p37i6iry5rw796p1i86"))))
     (build-system r-build-system)
-    (home-page "http://www.rmetrics.org")
+    (home-page "https://www.rmetrics.org")
     (synopsis "Stable distribution functions")
     (description
      "This package provides density, probability and quantile functions, and
@@ -9698,7 +9698,7 @@ redundant complex conjugate when the input is real data.")
      `(("libtiff" ,libtiff)
        ("libjpeg" ,libjpeg-turbo)
        ("zlib" ,zlib)))
-    (home-page "http://www.rforge.net/tiff/")
+    (home-page "https://www.rforge.net/tiff/")
     (synopsis "Read and write TIFF images")
     (description
      "This package provides an easy and simple way to read, write and display
@@ -10317,7 +10317,7 @@ conditional reporting based on the current \"output level\".")
        ("r-reportr" ,r-reportr)
        ("r-rnifti" ,r-rnifti)
        ("r-shades" ,r-shades)))
-    (home-page "http://www.tractor-mri.org.uk")
+    (home-page "https://www.tractor-mri.org.uk")
     (synopsis "Read, manipulate and visualize magnetic resonance images")
     (description
      "This package provides functions for working with magnetic resonance
@@ -10440,7 +10440,7 @@ the combination of non-negative and non-positive constraints.")
     (properties `((upstream-name . "Iso")))
     (build-system r-build-system)
     (native-inputs `(("gfortran" ,gfortran)))
-    (home-page "http://www.stat.auckland.ac.nz/~rolf/")
+    (home-page "https://www.stat.auckland.ac.nz/~rolf/")
     (synopsis "Functions to perform isotonic regression")
     (description
      "This package provides support for linear order and unimodal
@@ -11492,7 +11492,7 @@ model with finite state space using the Aalen-Johansen estimator.")
        ("r-plyr" ,r-plyr)
        ("r-survival" ,r-survival)
        ("r-zoo" ,r-zoo)))
-    (home-page "http://BendixCarstensen.com/Epi/")
+    (home-page "https://BendixCarstensen.com/Epi/")
     (synopsis "Statistical analysis in epidemiology")
     (description
      "This package provides functions for demographic and epidemiological
@@ -12929,7 +12929,7 @@ Hubbell's @dfn{Unified Neutral Theory of Biodiversity} (UNTB).")
         (base32
          "1lbx1bxwkf9dw6q46w40pp7h5nkxgghmx8rkpaymm6iybc7gyir2"))))
     (build-system r-build-system)
-    (home-page "http://stat.sfu.ca/statgen/research/stepwise.html")
+    (home-page "https://stat.sfu.ca/statgen/research/stepwise.html")
     (synopsis "Stepwise detection of recombination breakpoints")
     (description
      "This package provides a stepwise approach to identifying recombination
@@ -13535,7 +13535,7 @@ inbred lines, F2 intercrosses, and association mapping populations.")
      `(("r-genetics" ,r-genetics)
        ("r-rcpp" ,r-rcpp)
        ("r-snpstats" ,r-snpstats)))
-    (home-page "http://stat.sfu.ca/statgen/research/ldheatmap.html")
+    (home-page "https://stat.sfu.ca/statgen/research/ldheatmap.html")
     (synopsis "Graphical display of pairwise linkage disequilibria between SNPs")
     (description
      "This package provides tools to produce a graphical display, as a heat
@@ -13752,7 +13752,7 @@ variance components, using the likelihood-ratio statistics G.")
         (base32
          "0qs5jl0snzfchgpp6pabncwywxcmi743g91jvjiyyzw0lw85yv4s"))))
     (build-system r-build-system)
-    (home-page "http://stat.sfu.ca/statgen/research/hapassoc.html")
+    (home-page "https://stat.sfu.ca/statgen/research/hapassoc.html")
     (synopsis "Inference of trait associations with SNP haplotypes")
     (description
      "Hapassoc performs likelihood inference of trait associations with
@@ -13848,7 +13848,7 @@ the corresponding outputs (tables and graphs).")
        ("jdk" ,icedtea-8 "jdk")
        ("pcre" ,pcre)
        ("zlib" ,zlib)))
-    (home-page "http://www.rforge.net/rJava/")
+    (home-page "https://www.rforge.net/rJava/")
     (synopsis "Low-Level R to Java interface")
     (description
      "This package provides a low-level interface to the Java VM very much
@@ -16880,7 +16880,7 @@ data.")
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lars" ,r-lars)))
-    (home-page "http://www.stat.umn.edu/~hzou")
+    (home-page "http://users.stat.umn.edu/~zouxx019/")
     (synopsis "Elastic-Net for sparse estimation and sparse PCA")
     (description
      "This package provides functions for fitting the entire solution path of
@@ -17768,7 +17768,7 @@ errors.")
        ("r-rcpp" ,r-rcpp)
        ("r-stringr" ,r-stringr)
        ("r-xml" ,r-xml)))
-    (home-page "http://dusp.mit.edu/faculty/ezra-glenn")
+    (home-page "https://dusp.mit.edu/faculty/ezra-haber-glenn")
     (synopsis "Work with data from the US Census")
     (description
      "This package provides a general toolkit for downloading, managing,
@@ -18345,7 +18345,7 @@ number embedded in the file rather than the file extension.")
        ("r-readbitmap" ,r-readbitmap)
        ("r-stringr" ,r-stringr)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://dahtah.github.io/imager")
+    (home-page "https://dahtah.github.io/imager/")
     (synopsis "Image processing library")
     (description
      "This is a package for fast image processing for images in up to 4
@@ -19044,7 +19044,7 @@ OpenMP.")
     (build-system r-build-system)
     (propagated-inputs
      `(("r-quantreg" ,r-quantreg)))
-    (home-page "http://www.ms.uky.edu/~mai/EmpLik.html")
+    (home-page "https://www.ms.uky.edu/~mai/EmpLik.html")
     (synopsis "Empirical likelihood ratio for censored/truncated data")
     (description
      "This package provides empirical likelihood ratio tests for
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 87493cff05..1e1e9bf5db 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -476,12 +476,18 @@ text or blue underlined text, on ANSI terminals.")
          "14mkgkrjd4b4zy92pflz6yb4j1wn2chbd8jczxknxbkdm2vb0rrz"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-blake2-rfc" ,rust-blake2-rfc-0.2)
         ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1))
        #:cargo-development-inputs
-       (("rust-cargon" ,rust-cargon-0.0))))
+       (("rust-cargon" ,rust-cargon-0.0))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-cargo-toml
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("\\{ path =.*,") "{"))
+             #t)))))
     (home-page "https://github.com/bryant/argon2rs")
     (synopsis "Rust password hashing library that runs on Argon2")
     (description "This package provides a pure Rust password hashing library
@@ -1745,8 +1751,7 @@ capabilities")
           "1cszlab7jk736p0lb50ag4l9nv72m7j41bwrmygl0lr4iz0350w2"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-inputs
        (("rust-gcc" ,rust-gcc-0.3))))
     (home-page "https://github.com/bryant/argon2rs")
     (synopsis "Thin wrapper around the Argon2 C library")
@@ -13094,8 +13099,7 @@ useful types and distributions, and some randomness-related algorithms.")
          (base32
           "14qjfv3gggzhnma20k0sc1jf8y6pplsaq7n1j9ls5c8kf2wl0a2m"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-fuchsia-cprng" ,rust-fuchsia-cprng-0.1)
         ("rust-rand-core" ,rust-rand-core-0.3)
         ("rust-rdrand" ,rust-rdrand-0.4)
@@ -13116,8 +13120,7 @@ useful types and distributions, and some randomness-related algorithms.")
          (base32
           "0v679h38pjjqj5h4md7v2slsvj6686qgcn7p9fbw3h43iwnk1b34"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.4))))))
 
@@ -13469,8 +13472,7 @@ generator based on timing jitter.")
          "1a6wy76lc5fimm1n9n8fzhp4cfjwfwxh4hx63bg3vlh1d2w1dm3p"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-rand-core" ,rust-rand-core-0.5)
         ("rust-serde" ,rust-serde-1.0))
        #:cargo-development-inputs
@@ -13613,7 +13615,6 @@ random number generators.")
          (base32
           "06ghpm9y7gacks78s3maakha07kbnwrxif5q37r2l7z1sali3b7b"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/bluss/rawpointer/")
     (synopsis "Extra methods for raw pointers")
     (description "Extra methods for raw pointers.  For example
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index e4f170273f..e6cdbf03d5 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1070,7 +1070,7 @@ Most public APIs are compatible with @command{mysqlclient} and MySQLdb.")
                                               (assoc-ref %outputs "out")
                                               "/lib"))
        #:make-flags (list "CFLAGS=-fPIC")))
-    (home-page "http://fallabs.com/qdbm")
+    (home-page "https://fallabs.com/qdbm/")
     (synopsis "Key-value database")
     (description "QDBM is a library of routines for managing a
 database.  The database is a simple data file containing key-value
@@ -1892,7 +1892,7 @@ similar to BerkeleyDB, LevelDB, etc.")
     (description "Redis is an advanced key-value cache and store.  Redis
 supports many data structures including strings, hashes, lists, sets, sorted
 sets, bitmaps and hyperloglogs.")
-    (home-page "http://redis.io/")
+    (home-page "https://redis.io/")
     (license license:bsd-3)))
 
 (define-public kyotocabinet
@@ -2530,13 +2530,13 @@ Database API 2.0T.")
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
-    (version "1.3.3")
+    (version "1.3.15")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "SQLAlchemy" version))
       (sha256
-       (base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
+       (base32 "0iglkvymfp35zm5pxy5kzqvcv96kkas0chqdx7xpla86sspa9k64"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-cython" ,python-cython) ; for C extensions
@@ -2613,15 +2613,21 @@ You might also want to install the following optional dependencies:
 (define-public python-alembic
   (package
     (name "python-alembic")
-    (version "1.0.11")
+    (version "1.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "alembic" version))
+       (patches (search-patches "python-alembic-exceptions-cause.patch"))
        (sha256
         (base32
-         "1k5hag0vahd5vrf9abx8fdj2whrwaw2iq2yp736mmxnbsn5xkdyd"))))
+         "0a4hzn76csgbf1px4f5vfm256byvjrqkgi9869nkcjrwjn35c6kr"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "pytest" "-vv"))))))
     (native-inputs
      `(("python-mock" ,python-mock)
        ("python-pytest-cov" ,python-pytest-cov)))
@@ -2768,13 +2774,13 @@ designed to be easy and intuitive to use.")
 (define-public python-psycopg2
   (package
     (name "python-psycopg2")
-    (version "2.7.7")
+    (version "2.8.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "psycopg2" version))
        (sha256
-        (base32 "0zjbabb4qjx9dm07imhf8y5a9rpa06d5zah80myiimgdi83nslpl"))))
+        (base32 "1djvh98pi4hjd8rxbq8qzc63bg8v78k33yg6pl99wak61b6fb67q"))))
     (build-system python-build-system)
     (arguments
      ;; Tests would require a postgresql database "psycopg2_test"
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 34cc479589..718a76310d 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -171,15 +171,16 @@ tools that process C/C++ code.")
                    (_                "UNSUPPORTED"))))
     (package
       (name "american-fuzzy-lop")
-      (version "2.52b")             ;It seems all releases have the 'b' suffix
+      (version "2.56b")             ;It seems all releases have the 'b' suffix
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append "http://lcamtuf.coredump.cx/afl/releases/"
-                             "afl-" version ".tgz"))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/google/AFL")
+               (commit (string-append "v" version))))
          (sha256
-          (base32
-           "0ig0ij4n1pwry5dw1hk4q88801jzzy2cric6y2gd6560j55lnqa3"))))
+          (base32 "1q1g59gkm48aa4cg9h70jx4i2gapmypgp5rzs156b2avd95vwkn1"))
+         (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs
        `(("custom-qemu"
@@ -204,24 +205,33 @@ tools that process C/C++ code.")
                         (add-after
                          'unpack 'apply-afl-patches
                          (lambda* (#:key inputs #:allow-other-keys)
-                           (let* ((afl-dir (string-append "afl-" ,version))
-                                  (patch-dir
-                                   (string-append afl-dir
-                                                  "/qemu_mode/patches")))
-                             (invoke "tar" "xf"
-                                     (assoc-ref inputs "afl-src"))
-                             (install-file (string-append patch-dir
-                                                          "/afl-qemu-cpu-inl.h")
-                                           ".")
-                             (copy-file (string-append afl-dir "/config.h")
+                           (let* ((afl-src (assoc-ref inputs "afl-src"))
+                                  (patch-dir "qemu_mode/patches"))
+                             (copy-recursively (string-append afl-src "/"
+                                                              patch-dir)
+                                               patch-dir)
+                             (install-file
+                              (string-append patch-dir
+                                             "/afl-qemu-cpu-inl.h")
+                              ".")
+                             (copy-file (string-append afl-src "/config.h")
                                         "./afl-config.h")
-                             (install-file (string-append afl-dir "/types.h")
+                             (install-file (string-append afl-src "/types.h")
                                            ".")
                              (substitute* "afl-qemu-cpu-inl.h"
                                (("\\.\\./\\.\\./config.h") "afl-config.h"))
                              (substitute* (string-append patch-dir
                                                          "/cpu-exec.diff")
                                (("\\.\\./patches/") ""))
+
+                             ;; These were already applied to qemu-minimal-2.10.
+                             (for-each (lambda (obsolete-patch)
+                                         (delete-file (string-append
+                                                       patch-dir "/"
+                                                       obsolete-patch)))
+                                       (list "configure.diff"
+                                             "memfd.diff"))
+
                              (for-each (lambda (patch-file)
                                          (invoke "patch" "--force" "-p1"
                                                  "--input" patch-file))
@@ -230,8 +240,14 @@ tools that process C/C++ code.")
                              #t))))))))))))
       (arguments
        `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                            (string-append "DOC_PATH=$(PREFIX)/share/doc/"
+                                           ,name "-" ,version)
                             "CC=gcc")
          #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'make-git-checkout-writable
+                      (lambda _
+                        (for-each make-file-writable (find-files "."))
+                        #t))
                     (delete 'configure)
                     ,@(if (string=? (%current-system) (or "x86_64-linux"
                                                           "i686-linux"))
@@ -256,8 +272,8 @@ tools that process C/C++ code.")
                          (symlink (string-append qemu "/bin/qemu-" ,machine)
                                   (string-append out "/bin/afl-qemu-trace"))
                          #t)))
-                    (delete 'check)))) ; Tests are run during 'install phase.
-      (home-page "http://lcamtuf.coredump.cx/afl")
+                    (delete 'check)))) ; tests are run during 'install phase
+      (home-page "https://lcamtuf.coredump.cx/afl/")
       (synopsis "Security-oriented fuzzer")
       (description
        "American fuzzy lop is a security-oriented fuzzer that employs a novel
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 092bb6f2a0..479c10049e 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -42,7 +42,7 @@
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
-;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
+;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
@@ -62,6 +62,8 @@
 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3606,14 +3608,14 @@ source code using IPython.")
 (define-public emacs-debbugs
   (package
     (name "emacs-debbugs")
-    (version "0.21")
+    (version "0.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
                                   version ".tar"))
               (sha256
                (base32
-                "1xx1wjfpsnwx2fpydqhwy9k1b5kjk8dqbkzf8lqaj9c4rvjbn50a"))))
+                "05ik9qv539b5c1nzxkk3lk23bqj4vqgmfmd8x367abhb7c9gix2z"))))
     (build-system emacs-build-system)
     (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
     (propagated-inputs
@@ -10399,7 +10401,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
 (define-public emacs-which-key
   (package
     (name "emacs-which-key")
-    (version "3.3.1")
+    (version "3.4.0")
     (source
      (origin
        (method git-fetch)
@@ -10408,7 +10410,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb"))))
+        (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -18170,7 +18172,7 @@ processes for Emacs")
 (define-public emacs-lsp-ui
   (package
     (name "emacs-lsp-ui")
-    (version "6.0")
+    (version "6.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -18179,7 +18181,7 @@ processes for Emacs")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
+                "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -21758,6 +21760,30 @@ records can be browsed and searched from the Emacs Calendar for convenience.
 All entries in a specified TODO state will be carried over to the next day.")
     (license license:bsd-3)))
 
+(define-public emacs-org-static-blog
+  (package
+    (name "emacs-org-static-blog")
+    (version "1.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bastibe/org-static-blog")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/bastibe/org-static-blog")
+    (synopsis
+     "Simple Org mode based static blog generator")
+    (description
+     "@code{emacs-org-static-blog} is one more static blog generator, it
+focuses on being simple.  All file are simple Org files in a directory.  The
+only requirement is that every Org file must have a @samp{title} and
+a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
+    (license license:bsd-3)))
+
 (define-public emacs-ddskk
   ;; XXX: Upstream adds code names to their release tags, so version and code
   ;; name below need to be updated together.
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 46c7a03104..131a928d80 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -450,7 +450,7 @@ languages are C and C++.")
          ("pkg-config" ,pkg-config)))
       (inputs
        `(("libusb" ,libusb)))
-      (home-page "http://repo.or.cz/w/libjaylink.git")
+      (home-page "https://repo.or.cz/w/libjaylink.git")
       (synopsis "Library to interface Segger J-Link devices")
       (description "libjaylink is a shared library written in C to access
 SEGGER J-Link and compatible devices.")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fdce75c443..9a85d0707c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -648,7 +648,7 @@ multipole-accelerated algorithm.")
            (sha256
             (base32
              "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
-    (home-page "http://fritzing.org")
+    (home-page "https://fritzing.org")
     (synopsis "Electronic circuit design")
     (description
      "The Fritzing application is @dfn{Electronic Design Automation} (EDA)
@@ -2432,7 +2432,7 @@ interpolation toolkit.")
       (inputs `(("boost" ,boost)
                 ("python-wrapper" ,python-wrapper)))
       (native-inputs
-       `(("cmake" ,cmake)))
+       `(("cmake" ,cmake-minimal)))
       (arguments
        `(#:tests? #f
          #:phases
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 89a7ffe956..0e44802fe1 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -982,15 +982,22 @@ agent.")
 (define-public python-stdnum
   (package
     (name "python-stdnum")
-    (version "1.8.1")
+    (version "1.13")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-stdnum" version))
        (sha256
         (base32
-         "0hvr47q32xbyiznpmbg4r8rcvxhnf0lwf33hcpnynyik57djy5np"))))
+         "0q4128rjdgavywhzlm2gz2n5ybc9b9sxs81g50dvxf5q7z9q63qj"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "nosetests"))))))
+    (native-inputs
+     `(("python-nose" ,python-nose)))
     (home-page
      "https://arthurdejong.org/python-stdnum/")
     (synopsis
diff --git a/gnu/packages/fribidi.scm b/gnu/packages/fribidi.scm
index 3eff6b1697..e213192aa6 100644
--- a/gnu/packages/fribidi.scm
+++ b/gnu/packages/fribidi.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -46,3 +46,55 @@ Algorithm.  This algorithm is used to properly display text in left-to-right
 or right-to-left ordering as necessary.")
     (home-page "https://github.com/fribidi/fribidi")
     (license lgpl2.1+)))
+
+(define-public bidiv
+  (package
+    (name "bidiv")
+    (version "1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://debian/pool/main/b/bidiv/bidiv_"
+                            version ".orig.tar.gz"))
+        (sha256
+         (base32
+          "05p5m2ihxbmc1qsgs8rjlww08fy9859fhl7xf196p8g5qygqd7cv"))
+        (patches (search-patches "bidiv-update-fribidi.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; no configure
+         (add-after 'unpack 'misc-fixes
+           (lambda _
+             (substitute* "bidiv.c"
+               (("FriBidiCharType") "FriBidiParType")
+               (("&c") "(char *)&c"))
+             #t))
+         ;; We don't want to use the handwritten makefile
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((fribidi (assoc-ref inputs "fribidi")))
+               (invoke "gcc" "-o" "bidiv" "bidiv.c"
+                       ;; pkg-config --cflags fribidi
+                       (string-append "-I" fribidi "/include/fribidi")
+                       ;; pkg-config --libs fribidi
+                       (string-append "-L" fribidi "/lib") "-lfribidi"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "bidiv" bin)
+               (install-file "bidiv.1" man))
+             #t)))
+       #:tests? #f)) ; no tests
+    (inputs
+     `(("fribidi" ,fribidi)))
+    (home-page "https://tracker.debian.org/pkg/bidiv")
+    (synopsis "BiDi viewer - command-line tool displaying logical Hebrew/Arabic")
+    (description "bidiv is a simple utility for converting logical-Hebrew input
+to visual-Hebrew output.  This is useful for reading Hebrew mail messages,
+viewing Hebrew texts, etc.  It was written for Hebrew but Arabic (or other BiDi
+languages) should work equally well.")
+    (license gpl2+)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index e59a0f6424..00c0227749 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1536,7 +1536,7 @@ games.")
 (define-public godot
   (package
     (name "godot")
-    (version "3.2")
+    (version "3.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1545,7 +1545,7 @@ games.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0f15izjl4i2xlz1xj5pcslzl9gm3rmr3c21gh256ynpi2zhhkcdd"))
+                "1kndls0rklha7kz9l4i2ivjxab4jpk3b2j7dcgcg2qc3s81yd0r6"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (srfi srfi-1)))
@@ -1774,6 +1774,42 @@ that parenthetically inclined game developers need to make 2D (and eventually
 @end enumerate\n")
     (license license:gpl3+)))
 
+(define-public guile3.0-chickadee
+  (package
+    (inherit guile-chickadee)
+    (name "guile-chickadee")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://files.dthompson.us/chickadee/"
+                                  "chickadee-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("guile-opengl" ,guile3.0-opengl)
+       ("guile-sdl2" ,guile3.0-sdl2)))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
+    (home-page "https://dthompson.us/projects/chickadee.html")
+    (synopsis "Game development toolkit for Guile Scheme with SDL2 and OpenGL")
+    (description "Chickadee is a game development toolkit for Guile Scheme
+built on top of SDL2 and OpenGL.  Chickadee aims to provide all the features
+that parenthetically inclined game developers need to make 2D (and eventually
+3D) games in Scheme, such as:
+
+@enumerate
+@item extensible, fixed-timestep game loop
+@item OpenGL-based rendering engine
+@item keyboard, mouse, controller input
+@item REPL-driven development model
+@end enumerate\n")
+    (license license:gpl3+)))
+
 (define-public bennu-game-development
   (package
     (name "bennu-game-development")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3063851b73..c34537a146 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1688,8 +1688,8 @@ level's exit.  The game is presented in a 2D side view.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.hyperrealm.com/" name "/"
-                           name  "-" version  ".tar.gz"))
+       (uri (string-append "http://www.hyperrealm.com/talkfilters/"
+                           "talkfilters-" version  ".tar.gz"))
        (sha256
         (base32 "19nc5vq4bnkjvhk8srqddzhcs93jyvpm9r6lzjzwc1mgf08yg0a6"))))
     (build-system gnu-build-system)
@@ -3906,7 +3906,7 @@ a style similar to the original Super Mario games.")
 (define-public tintin++
   (package
     (name "tintin++")
-    (version "2.02.00")
+    (version "2.02.02")
     (source
      (origin
        (method url-fetch)
@@ -3914,8 +3914,7 @@ a style similar to the original Super Mario games.")
                            (string-drop-right version 1)
                            "/tintin-" version ".tar.gz"))
        (sha256
-        (base32
-         "02qmbhzhh2sdy5b37v54gihs9k4bxmlz3j96gyx7icvx2grkbg5i"))))
+        (base32 "11ylbp8ip7dwmh4gzb53z147pcfxkl3lwhyy8ngyn2zc634vdn65"))))
     (inputs
      `(("gnutls" ,gnutls)
        ("pcre" ,pcre)
@@ -4095,7 +4094,7 @@ throwing people around in pseudo-randomly generated buildings.")
 (define-public hyperrogue
   (package
     (name "hyperrogue")
-    (version "11.2q")
+    (version "11.3a")
     ;; When updating this package, be sure to update the "hyperrogue-data"
     ;; origin in native-inputs.
     (source (origin
@@ -4106,7 +4105,7 @@ throwing people around in pseudo-randomly generated buildings.")
                     "-src.tgz"))
               (sha256
                (base32
-                "1w4khi2limxhgiq7xnz0rc9nzbk86bhbyzrcd5hdghnhsviaiggq"))))
+                "1yxabbswq02fc5frigvs43f83m5vlxybc7n5mynkwzj2c70lfp2k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no check target
@@ -4184,7 +4183,7 @@ throwing people around in pseudo-randomly generated buildings.")
              "-win.zip"))
            (sha256
             (base32
-             "1k81zrbq5gmrccjac1i5c6v8j2iilfg2vwrnm8snjmmcnh5z1fgj"))))
+             "11yhbia45f1w9z0j67h9nynwjqmvakr9l6rnrmdrdkzin6lvzzj4"))))
        ("unzip" ,unzip)))
     (inputs
      `(("font-dejavu" ,font-dejavu)
@@ -5648,7 +5647,7 @@ elements to achieve a simple goal in the most complex way possible.")
        #:configure-flags (list "-DUSE_SYSTEM_LIBLUA:BOOL=YES"
                                (string-append "-DPIONEER_DATA_DIR="
                                               %output "/share/games/pioneer"))))
-    (home-page "http://pioneerspacesim.net")
+    (home-page "https://pioneerspacesim.net")
     (synopsis "Game of lonely space adventure")
     (description
      "Pioneer is a space adventure game set in our galaxy at the turn of the
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 0b203d5d71..09367d8184 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -550,14 +551,14 @@ It also includes runtime support libraries for these languages.")))
 (define-public gcc-9
   (package
    (inherit gcc-8)
-   (version "9.2.0")
+   (version "9.3.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.xz"))
             (sha256
              (base32
-              "01mj3yk7z49i49168hg2cg7qs4bsccrrnv7pjmbdlf8j2a7z0vpa"))
+              "1la2yy27ziasyf0jvzk58y1i5b5bq2h176qil550bxhifs39gqbi"))
             (patches (search-patches "gcc-9-strmov-store-file-names.patch"
                                      "gcc-9-libsanitizer-mode-size.patch"
                                      "gcc-9-asan-fix-limits-include.patch"
@@ -718,6 +719,34 @@ as the 'native-search-paths' field."
   ;; report two gfortran@5 that are in fact identical.
   gfortran-7)
 
+(define-public libgccjit
+  (package
+    (inherit gcc-9)
+    (name "libgccjit")
+    (outputs (delete "lib" (package-outputs gcc)))
+    (properties (alist-delete 'hidden? (package-properties gcc)))
+    (arguments
+     (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
+                                                (guix build utils)
+                                                (ice-9 regex)
+                                                (srfi srfi-1)
+                                                (srfi srfi-26))
+                                     ,@(package-arguments gcc))
+       ((#:configure-flags flags)
+        `(append `("--enable-host-shared"
+                   ,(string-append "--enable-languages=jit"))
+                 (remove (cut string-match "--enable-languages.*" <>)
+                         ,flags)))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'remove-broken-or-conflicting-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (for-each delete-file
+                         (find-files (string-append (assoc-ref outputs "out") "/bin")
+                                     ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
+               #t))))))))
+
+
 (define-public gccgo-4.9
   (custom-gcc gcc-4.9 "gccgo" '("go")
               %generic-search-paths
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index f51d1c0cea..a8fd36f03c 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -47,15 +47,21 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages astronomy)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
@@ -66,8 +72,10 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -1541,3 +1549,71 @@ exchanged form one Spatial DBMS and the other.")
     (license (list license:gpl2+
                    license:lgpl2.1+
                    license:mpl1.1))))
+
+(define-public opencpn
+  (package
+    (name "opencpn")
+    (version "5.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/OpenCPN/OpenCPN.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("curl" ,curl)
+       ("glu" ,glu)
+       ("gtk+" ,gtk+)
+       ("libarchive" ,libarchive)
+       ("libelf" ,libelf)
+       ("libexif" ,libexif)
+       ("libsndfile" ,libsndfile)
+       ("lz4" ,lz4)
+       ("mesa" ,mesa)
+       ("pango" ,pango)
+       ("portaudio" ,portaudio)
+       ("sqlite" ,sqlite)
+       ("tinyxml" ,tinyxml)
+       ("wxsvg" ,wxsvg)
+       ("wxwidgets" ,wxwidgets)
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
+                           "-DENABLE_SNDFILE=ON"
+                           "-DBUNDLE_TCDATA=ON"
+                           "-DBUNDLE_GSHHS=CRUDE")
+       #:tests? #f ; No tests defined
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("set\\(wxWidgets_CONFIG_OPTIONS.*--toolkit=gtk3" all)
+                (string-append all " --libs all")))
+             #t)))))
+    (synopsis "Chart plotter and marine GPS navigation software")
+    (description
+     "OpenCPN is a chart plotter and marine navigation software designed to be
+used at the helm station of your boat while underway.  Chart a course and
+track your position right from your laptop.")
+    (home-page "https://opencpn.org/")
+    (license (list license:asl2.0
+                   license:cc0
+                   license:bsd-2
+                   license:bsd-3
+                   license:expat
+                   license:gpl3+
+                   license:lgpl2.1+
+                   license:lgpl3+
+                   license:sgifreeb2.0
+                   license:zlib))))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index b863283606..01241cd88e 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
-;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -268,6 +268,7 @@ also known as DXTn or DXTC) for Mesa.")
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
             ((or "x86_64-linux" "i686-linux")
+             ;; Note: update the 'clang' input of mesa-opencl when bumping this.
              `(("llvm" ,llvm-9)))
             (_
              `()))
@@ -435,7 +436,7 @@ from software emulation to complete hardware acceleration for modern GPUs.")
      `(("libclc" ,libclc)
        ,@(package-inputs mesa)))
     (native-inputs
-     `(("clang" ,clang-8)
+     `(("clang" ,clang-9)
        ,@(package-native-inputs mesa)))))
 
 (define-public mesa-opencl-icd
@@ -603,6 +604,26 @@ extension functionality is exposed in a single header file.")
 OpenGL graphics API.")
     (license license:lgpl3+)))
 
+(define-public guile3.0-opengl
+  (package
+    (inherit guile-opengl)
+    (name "guile3.0-opengl")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-opengl)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'build-with-guile-3.0
+             (lambda _
+               (substitute* "configure"
+                 (("_guile_versions_to_search=\"")
+                  "_guile_versions_to_search=\"3.0 "))
+               #t))))))
+    (inputs
+     `(("guile" ,guile-3.0)
+       ("mesa" ,mesa)
+       ("glu" ,glu)
+       ("freeglut" ,freeglut)))))
+
 (define-public libepoxy
   (package
     (name "libepoxy")
@@ -712,7 +733,7 @@ OpenGL.")
        ("libxinerama" ,libxinerama)
        ("libxcursor" ,libxcursor)
        ("libxxf86vm" ,libxxf86vm)))
-    (home-page "http://www.glfw.org")
+    (home-page "https://www.glfw.org")
     (synopsis "OpenGL application development library")
     (description
      "GLFW is a library for OpenGL, OpenGL ES and Vulkan development for
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index b8cd32db08..aeeced42bd 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -123,7 +123,7 @@ the Obsidian icon theme.")
 (define-public gnome-shell-extension-appindicator
   (package
     (name "gnome-shell-extension-appindicator")
-    (version "30")
+    (version "33")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -132,7 +132,7 @@ the Obsidian icon theme.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8"))
+                "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87"))
               (file-name (git-file-name name version))))
     (build-system copy-build-system)
     (arguments
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cd824621c9..3aa192bfd3 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -47,6 +47,7 @@
 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,6 +119,7 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libunistring)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lirc)
@@ -3844,16 +3846,15 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public five-or-more
   (package
     (name "five-or-more")
-    (version "3.32.0")
+    (version "3.32.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
+       (uri (string-append "mirror://gnome/sources/five-or-more/"
                            (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+                           "five-or-more-" version ".tar.xz"))
        (sha256
-        (base32
-         "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
+        (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -4558,7 +4559,7 @@ throughout GNOME for API documentation).")
                                        (assoc-ref inputs "xorg-server")))
                        (setenv "DISPLAY" ":1")
                        #t)))))
-    (home-page "http://www.cogl3d.org")
+    (home-page "https://www.cogl3d.org")
     (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
     (description
      "Cogl is a small library for using 3D graphics hardware to draw pretty
@@ -5396,15 +5397,14 @@ almost all of them.")
 (define-public eolie
   (package
     (name "eolie")
-    (version "0.9.63")
+    (version "0.9.98.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://gitlab.gnome.org/World/eolie/"
-                                  "uploads/d42b466752729a0d3fa828a721e25043/"
-                                  "eolie-" version ".tar.xz"))
+              (uri (string-append "https://adishatz.org/eolie/eolie-"
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
+                "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -7420,7 +7420,7 @@ easy, safe, and automatic.")
 (define-public tracker
   (package
     (name "tracker")
-    (version "2.3.2")
+    (version "2.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker/"
@@ -7428,7 +7428,7 @@ easy, safe, and automatic.")
                                   "tracker-" version ".tar.xz"))
               (sha256
                (base32
-                "1nzbnvwwsk6kv6kqbxwlz8vk70l9ai6b4r9qypw51vp4qy72ny54"))))
+                "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -7490,7 +7490,7 @@ endpoint and it understands SPARQL. ")
 (define-public tracker-miners
   (package
     (name "tracker-miners")
-    (version "2.3.2")
+    (version "2.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker-miners/"
@@ -7498,7 +7498,7 @@ endpoint and it understands SPARQL. ")
                                   "/tracker-miners-" version ".tar.xz"))
               (sha256
                (base32
-                "1kizavw9gbdjkw4wykgv0fcl2y6fj788nycx9p4byn6ylb1277h6"))))
+                "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -8910,7 +8910,8 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
               (patches (search-patches "gspell-dash-test.patch"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags (list "--enable-vala")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
@@ -8935,6 +8936,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
      `(("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
+       ("vala" ,vala)                             ;for VAPI, needed by Geary
        ("xmllint" ,libxml2)
 
        ;; For tests.
@@ -9918,3 +9920,93 @@ manage remote and virtual systems.")
               license:cc-by2.0
               ;; For all others.
               license:lgpl2.0+))))
+
+(define-public geary
+  (package
+    (name "geary")
+    (version "3.34.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/GNOME/geary")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-failing-tests
+                    (lambda _
+                      (substitute* "test/meson.build"
+                        (("test\\('client-tests', geary_test_client_bin\\)")
+                         ""))
+                      #t))
+                  (add-after 'unpack 'disable-postinstall-script
+                    (lambda _
+                      (substitute* "meson.build"
+                        (("meson.add_install_script\\(\
+join_paths\\('build-aux', 'post_install.py'\\)\\)")
+                         ""))
+                      #t))
+                  (add-before 'check 'setup-xvfb
+                    (lambda _
+                      (system "Xvfb :1 &")
+                      (setenv "DISPLAY" ":1")
+                      #t)))))
+    (inputs
+     `(("enchant" ,enchant)
+       ("folks" ,folks)
+       ("gcr" ,gcr)
+       ("glib" ,glib)
+       ("gmime" ,gmime-2.6)
+       ("gnome-online-accounts:lib"
+        ,gnome-online-accounts "lib")
+       ("gspell" ,gspell)
+       ("gtk+" ,gtk+)
+       ("iso-codes" ,iso-codes)
+       ("json-glib" ,json-glib)
+       ("libcanberra" ,libcanberra)
+       ("libgee" ,libgee)
+       ("libhandy" ,libhandy)
+       ("libpeas" ,libpeas)
+       ("libsecret" ,libsecret)
+       ("libunwind" ,libunwind)
+       ("sqlite" ,sqlite)
+       ("webkitgtk" ,webkitgtk)
+       ("ytnef" ,ytnef)))
+    (native-inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("cmake-minimal" ,cmake-minimal)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gnu-gettext)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("itstool" ,itstool)
+       ("libarchive" ,libarchive)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xvfb" ,xorg-server-for-tests)))
+    (synopsis "GNOME email application built around conversations")
+    (description
+     "Geary collects related messages together into conversations,
+making it easy to find and follow your discussions.  Full-text and keyword
+search makes it easy to find the email you are looking for.  Geary's
+full-featured composer lets you send rich, styled text with images, links, and
+lists, but also send lightweight, easy to read text messages.  Geary
+automatically picks up your existing GNOME Online Accounts, and adding more is
+easy.  Geary has a clean, fast, modern interface that works like you want it
+to.")
+    (home-page "https://wiki.gnome.org/Apps/Geary")
+    (license (list
+              ;; geary
+              license:lgpl2.1+
+              ;; icons
+              license:cc-by3.0
+              license:cc-by-sa3.0
+              license:public-domain
+              ;; snowball
+              license:bsd-2))))
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 775d1f520e..1961e6bb89 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -249,7 +250,7 @@ supports HTTP, HTTPS and GnuTLS.")
 (define-public gnunet
   (package
    (name "gnunet")
-   (version "0.11.8")
+   (version "0.12.2")
    (source
     (origin
       (method url-fetch)
@@ -257,7 +258,7 @@ supports HTTP, HTTPS and GnuTLS.")
                           ".tar.gz"))
       (sha256
        (base32
-        "1zkmcq75sfr3iyg8rgxp9dbl7fwsvc1a71rc0vgisghcbrx1n7yj"))))
+        "1mwcy7fj1rpd39w7j7k3jdwlil5s889b2qlhfdggqmhigl28na5c"))))
    (build-system gnu-build-system)
    (inputs
     `(("bluez" ,bluez)
@@ -269,6 +270,7 @@ supports HTTP, HTTPS and GnuTLS.")
       ("libextractor" ,libextractor)
       ("libidn" ,libidn2)
       ("libgcrypt" ,libgcrypt)
+      ("libjpeg" ,libjpeg-turbo)
       ("libltdl" ,libltdl)
       ("libmicrohttpd" ,libmicrohttpd)
       ("libogg" ,libogg)
@@ -289,11 +291,30 @@ supports HTTP, HTTPS and GnuTLS.")
       #:phases
       (modify-phases %standard-phases
         (add-after 'configure 'remove-failing-tests
-          ;; These tests fail in Guix's building envrionment.
+          ;; These tests fail in Guix's building environment.
           (lambda _
+            (substitute* "src/cadet/Makefile"
+              (("test_cadet_2_reopen\\$\\(EXEEXT\\) \\\\\n") "test_cadet_2_reopen$(EXEEXT)")
+              (("test_cadet_5_forward\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_signal\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_keepalive\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_speed\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_speed_ack\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_speed_reliable\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_speed_reliable_backwards\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_speed_backwards\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_cadet_5_reopen\\$\\(EXEEXT\\)") ""))
             (substitute* "src/transport/Makefile"
+              (("\\$\\(am__EXEEXT_15\\)") "") ; test_transport_api_https
+              (("test_transport_api_manipulation_cfg\\$\\(EXEEXT\\) \\\\\n") "")
               (("test_transport_api_udp_nat\\$\\(EXEEXT\\) \\\\\n") "")
-              (("test_transport_api_manipulation_cfg\\$\\(EXEEXT\\) \\\\\n") ""))
+              (("test_transport_blacklisting_multiple_plugins\\$\\(EXEEXT\\) \\\\\n") ""))
+            (substitute* "src/testbed/Makefile"
+              (("test_testbed_api_2peers_1controller\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_testbed_api_test\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_testbed_api_statistics\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_testbed_api_topology\\$\\(EXEEXT\\) \\\\\n") "")
+              (("test_testbed_api_topology_clique\\$\\(EXEEXT\\) \\\\\n") ""))
             (substitute* "src/topology/Makefile"
               (("^check_PROGRAMS.*") "\n")
               (("test_gnunet_daemon_topology\\$\\(EXEEXT\\)\n") ""))
@@ -308,6 +329,9 @@ supports HTTP, HTTPS and GnuTLS.")
                            "src/transport/gnunet-transport-certificate-creation.in")
               (("gnutls-certtool") "certtool"))
             #t))
+        (add-before 'check 'set-env-var-for-tests
+          (lambda _
+            (setenv "LANG" "en_US.UTF-8")))
         ;; Swap 'check and 'install phases and add installed binaries to $PATH.
         (add-before 'check 'set-path-for-check
           (lambda* (#:key outputs #:allow-other-keys)
@@ -364,14 +388,14 @@ services.")
 (define-public gnunet-gtk
   (package (inherit gnunet)
     (name "gnunet-gtk")
-    (version "0.11.7")
+    (version "0.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/gnunet/gnunet-gtk-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "061ifhqk6q9kx71z5404fm4d60yj2dihlwwmdqmhkn5nn4bvcwb5"))))
+                "08a43ayv1rhajdklfcv78w2h76jfaz64kgp5krqgj1w1sq8xm6fb"))))
     (arguments
      `(#:configure-flags
        (list "--with-libunique"
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 0d92139311..f684470419 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -2131,32 +2131,30 @@ increase approaching hashing speeds of 1GB/sec on a single core.")
       (license license:asl2.0))))
 
 (define-public go-github-com-spaolacci-murmur3
-  (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
-        (revision "0"))
-    (package
-      (name "go-github-com-spaolacci-murmur3")
-      (version (git-version "1.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/spaolacci/murmur3.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/spaolacci/murmur3"))
-      (home-page "https://github.com/spaolacci/murmur3")
-      (synopsis "Native MurmurHash3 Go implementation")
-      (description "Native Go implementation of Austin Appleby's third
-MurmurHash revision (aka MurmurHash3).
+  (package
+    (name "go-github-com-spaolacci-murmur3")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/spaolacci/murmur3.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/spaolacci/murmur3"))
+    (home-page "https://github.com/spaolacci/murmur3")
+    (synopsis "Native MurmurHash3 Go implementation")
+    (description "Native Go implementation of Austin Appleby's third MurmurHash
+revision (aka MurmurHash3).
 
 Reference algorithm has been slightly hacked as to support the streaming mode
 required by Go's standard Hash interface.")
-      (license license:bsd-3))))
+    (license license:bsd-3)))
 
 (define-public go-github-com-multiformats-go-multihash
   (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
@@ -3067,7 +3065,7 @@ network protocol.")
 (define-public go-github-com-pkg-errors
   (package
     (name "go-github-com-pkg-errors")
-    (version "0.9.0")
+    (version "0.9.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3076,7 +3074,7 @@ network protocol.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1hlivqlcnm9wrj0v7h43gamw7mvg6svz9sm31fx28zn4ll25ablh"))))
+                "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/pkg/errors"))
@@ -3396,3 +3394,51 @@ data serialization format.")
     (description " A glob library that implements descending into other
 directories.  It is optimized for filewalking. ")
     (license license:expat)))
+
+(define-public go-github-com-willf-bitset
+  (package
+    (name "go-github-com-willf-bitset")
+    (version "1.1.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/willf/bitset")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/willf/bitset"))
+    (synopsis "Bitsets in Go")
+    (description "This package provides a Go implementation of bitsets, which
+are a mapping between non-negative integers and boolean values focused on
+efficient space usage.")
+    (home-page "https://github.com/willf/bitset")
+    (license license:bsd-3)))
+
+(define-public go-github-com-willf-bloom
+  (package
+    (name "go-github-com-willf-bloom")
+    (version "2.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/willf/bloom")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/willf/bloom"))
+    (propagated-inputs
+     `(("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
+       ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
+    (synopsis "Bloom filters in Go")
+    (description "This package provides a Go implementation of bloom filters,
+based on murmurhash.")
+    (home-page "https://github.com/willf/bloom")
+    (license license:bsd-2)))
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 936c3aeda0..cd2e09e966 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -27,7 +27,9 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system scons)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
@@ -39,6 +41,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages xml))
@@ -227,64 +230,57 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
         (base32 "0faz2mvk82hi7ispxxih07lhpyz5dazs4gcknym9piiabga29p97"))))
     (build-system scons-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     `(("bc" ,bc)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("bluez" ,bluez)
        ("dbus" ,dbus)
        ("libcap" ,libcap)
        ("libusb" ,libusb)
-       ("ncurses" ,ncurses)))
+       ("ncurses" ,ncurses)
+       ("python" ,python)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyserial" ,python-pyserial)
+       ("python-wrapper" ,python-wrapper)
+       ("qtbase" ,qtbase)))
     (arguments
-     `(#:scons-flags (list (string-append "prefix=" %output)
-                            ;; TODO: Install python bindings.
-                           "python=no")
+     `(#:scons-flags
+       (list (string-append "prefix=" %output)
+             (let ((version ,(version-major+minor (package-version python))))
+               (string-append "python_libdir=" %output
+                              "/lib/python" version
+                              "/site-packages"))
+             "qt_versioned=5")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((python3 (string-append (assoc-ref inputs "python")
-                                           "/bin/python3")))
-               (substitute* '("contrib/gpsData.py"
-                              "contrib/ntpshmviz"
-                              "contrib/skyview2svg"
-                              "contrib/webgps.py"
-                              "devtools/ais.py"
-                              "devtools/aivdmtable"
-                              "devtools/cycle_analyzer"
-                              "devtools/flocktest"
-                              "devtools/identify_failing_build_options.py"
-                              "devtools/regress-builder"
-                              "devtools/regressdiff"
-                              "devtools/sizes"
-                              "devtools/striplog"
-                              "devtools/tablegen.py"
-                              "devtools/test_json_validity.py"
-                              "devtools/uninstall_cleanup.py"
-                              "gegps"
-                              "gps/gps.py"
-                              "gpscat"
-                              "gpsfake"
-                              "gpsprof"
-                              "jsongen.py"
-                              "leapsecond.py"
-                              "maskaudit.py"
-                              "test_maidenhead.py"
-                              "test_misc.py"
-                              "test_xgps_deps.py"
-                              "ubxtool"
-                              "valgrind-audit.py"
-                              "xgps"
-                              "xgpsspeed"
-                              "zerk")
-                 (("/usr/bin/python") python3)
-                 (("/usr/bin/env python") python3)))
-             #t))
-         (add-after 'fix-paths 'fix-build
-           (lambda _
+         (add-after 'unpack 'fix-build
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "SConstruct"
-               (("'PATH'")
-                "'PATH','CPATH','LIBRARY_PATH'"))
+               (("envs = \\{\\}")
+                "envs = os.environ"))
+             #t))
+         (add-after 'install 'wrap-python-scripts
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (pycairo (assoc-ref inputs "python-pycairo"))
+                    (pygobject (assoc-ref inputs "python-pygobject"))
+                    (pyserial (assoc-ref inputs "python-pyserial"))
+                    (sitedir (lambda (package)
+                               (string-append package
+                                              "/lib/python"
+                                              ,(version-major+minor
+                                                (package-version python))
+                                              "/site-packages")))
+                    (pythonpath (string-join (map sitedir
+                                                  (list out pycairo pygobject
+                                                        pyserial))
+                                             ":")))
+               (for-each (lambda (script)
+                           (wrap-program (string-append out "/bin/" script)
+                             `("PYTHONPATH" ":" prefix (,pythonpath))))
+                         '("gegps" "gpscat" "gpsfake" "gpsprof"
+                           "ubxtool" "xgps" "xgpsspeed" "zerk")))
              #t)))))
     (synopsis "GPS service daemon")
     (description
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 48c2d0321b..77cb3ba79d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -419,7 +420,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
 related classes, utilities, and applications.  There is a particular emphasis
 on formats and functionality used in professional, large-scale animation and
 visual effects work for film.")
-    (home-page "http://www.openimageio.org")
+    (home-page "https://www.openimageio.org")
     (license license:bsd-3)))
 
 ;; This older version of OpenImageIO is required for Blender 2.79.
@@ -978,7 +979,7 @@ requirements.")
        ("libxi" ,libxi)
        ("zlib" ,zlib)
        ("glfw" ,glfw)))
-    (home-page "http://graphics.pixar.com/opensubdiv/")
+    (home-page "https://graphics.pixar.com/opensubdiv/")
     (synopsis "High performance subdivision surface evaluation")
     (description "OpenSubdiv is a set of libraries that implement high
 performance subdivision surface (subdiv) evaluation on massively parallel CPU
@@ -1075,3 +1076,37 @@ interaction library, written in C++, which has become the de facto
 standard graphics library for 3D visualization and visual simulation
 software in the scientific and engineering community.")
       (license license:bsd-3))))
+
+(define-public superfamiconv
+  (package
+    (name "superfamiconv")
+    (version "0.8.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Optiroc/SuperFamiconv")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0848szv6a2b8wdganh6mw5i8vn8cqvn1kbwzx7mb9wlrf5wzqn37"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((outdir (assoc-ref outputs "out"))
+                    (bindir (string-append outdir "/bin")))
+               (install-file "bin/superfamiconv" bindir)
+               #t))))))
+    (home-page "https://github.com/Optiroc/SuperFamiconv")
+    (synopsis "Tile graphics converter supporting SNES, Game Boy Color
+and PC Engine formats")
+    (description "SuperFamiconv is a converter for tiled graphics, supporting
+the graphics formats of the SNES, Game Boy Color and PC Engine game consoles.
+Automated palette selection is supported.")
+    (license license:expat)))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b7f7163a79..12530c95b4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1153,7 +1153,7 @@ library.")
        ("cairomm" ,cairomm)
        ("glibmm" ,glibmm)
        ("pango" ,pango)))
-    (home-page "http://www.pango.org/")
+    (home-page "https://pango.gnome.org//")
     (synopsis "C++ interface to the Pango text rendering library")
     (description
      "Pangomm provides a C++ programming interface to the Pango text rendering
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 0ee712b6f5..fe99fb9236 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2555,8 +2555,35 @@ list of components.  This module takes care of that for you.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 popen)
+                  (ice-9 rdelim))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-references-to-extension
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((effective (read-line
+                               (open-pipe* OPEN_READ
+                                           "guile" "-c"
+                                           "(display (effective-version))"))))
+               (substitute* '("module/gi.scm"
+                              "module/gi/oop.scm"
+                              "module/gi/documentation.scm"
+                              "module/gi/types.scm"
+                              "module/gi/repository.scm")
+                 (("\\(load-extension \"libguile-gi\" \"(.*)\"\\)" m arg)
+                  (format #f "~s"
+                          `(load-extension
+                            (format #f "~alibguile-gi"
+                                    (if (getenv "GUILE_GI_UNINSTALLED")
+                                        ""
+                                        ,(format #f "~a/lib/guile/~a/"
+                                                 (assoc-ref outputs "out")
+                                                 effective)))
+                            ,arg)))))
+             (setenv "GUILE_GI_UNINSTALLED" "1")
+             #t))
          (add-before 'check 'start-xorg-server
            (lambda* (#:key inputs #:allow-other-keys)
              ;; The init_check test requires a running X server.
@@ -3231,3 +3258,35 @@ models and also supports a rich set of boolean query operators.")
 @code{.torrent} or metainfo files.  Implements a bencode reader and writer
 according to Bitorrent BEP003.")
     (license license:gpl3+)))
+
+(define-public guile-irc
+  (let ((commit "375d3bde9c6ae7ccc9d7cc65817966b6fda8f26a")
+        (revision "0"))
+    (package
+      (name "guile-irc")
+      (version (git-version "0.3.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rekado/guile-irc.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "113lcckcywrz9060w1c3fnvr8d7crdsjgsv4h47hgmr1slgadl4y"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:configure-flags '("--enable-gnutls=yes")))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("texinfo" ,texinfo)))
+      (inputs
+       `(("gnutls" ,gnutls)
+         ("guile" ,guile-2.2)))
+      (home-page "https://github.com/rekado/guile-irc")
+      (synopsis "IRC library for Guile")
+      (description "This package provides a Guile library for @dfn{Internet
+Relay Chat} (IRC).")
+      ;; Some file headers incorrectly say LGPLv2+.
+      (license license:lgpl2.1+))))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 6005816260..f5b45d0bfb 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -266,6 +267,40 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
 @end enumerate")
     (license license:gpl2)))
 
+(define-public ghcid
+  (package
+    (name "ghcid")
+    (version "0.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/ghcid/"
+                           "ghcid-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wpm4ikrm1krz1ckzwk0srng091yh2skjal4fh95iz1hq3dw6qlw"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-extra" ,ghc-extra)
+       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
+       ("ghc-cmdargs" ,ghc-cmdargs)
+       ("ghc-fsnotify" ,ghc-fsnotify)
+       ("ghc-terminal-size" ,ghc-terminal-size)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (home-page
+     "https://github.com/ndmitchell/ghcid#readme")
+    (synopsis "GHCi based bare bones IDE")
+    (description
+     "Either \"GHCi as a daemon\" or \"GHC + a bit of an IDE\".  A very simple Haskell
+development tool which shows you the errors in your project and updates them whenever
+you save.  Run @code{ghcid --topmost --command=ghci}, where @code{--topmost} makes the
+window on top of all others (Windows only) and @code{--command} is the command to start
+GHCi on your project (defaults to @code{ghci} if you have a @file{.ghci} file, or else
+to @code{cabal repl}).")
+    (license license:bsd-3)))
+
 (define-public git-annex
   (package
     (name "git-annex")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3850e7fb77..46ad22d2a0 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -923,6 +923,10 @@ more modular, simple, and flexible.")
                        "http://linuxbrit.co.uk/downloads/giblib-"
                        version ".tar.gz")
                      (string-append
+                       "https://src.fedoraproject.org/repo/pkgs/giblib/giblib-"
+                       version ".tar.gz/c810ef5389baf24882a1caca2954385e/giblib-"
+                       version ".tar.gz")
+                     (string-append
                        "https://sourceforge.net/projects/slackbuildsdirectlinks/"
                        "files/giblib/giblib-" version ".tar.gz")))
               (sha256
@@ -932,7 +936,11 @@ more modular, simple, and flexible.")
     (inputs
      `(("libx11" ,libx11)
        ("imlib2" ,imlib2)))
-    (home-page "http://linuxbrit.co.uk/software/") ; no real home-page
+    (home-page
+     ;; This vanished page is universally accepted as giblib's home despite not
+     ;; mentioning the package once.
+     (string-append "https://web.archive.org/web/20140907071208"
+                    "https://linuxbrit.co.uk/software/"))
     (synopsis "Wrapper library for imlib2")
     (description
      "Giblib is a simple library which wraps imlib2's context API, avoiding
@@ -1032,9 +1040,6 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
       (sha256 (base32
                 "1bqs8vx5i1bzamvv563i24gx2xxdidqyxh9iaj46mbznhc84wmm5"))))
    (build-system cmake-build-system)
-   ;; Otherwise it fails on <ci.guix.gnu.org> in the check phase after 3600
-   ;; seconds of silence.
-   (properties '((max-silent-time . 7200)))
    (inputs
     `(("boost" ,boost)
       ("fftw" ,fftw)
@@ -1188,7 +1193,7 @@ channels.")
      `(("lcms" ,lcms)
        ("libjpeg" ,libjpeg-turbo)
        ("zlib" ,zlib)))
-    (home-page "http://www.libmng.com/")
+    (home-page "https://www.libmng.com/")
     (synopsis "Library for handling MNG files")
     (description
      "Libmng is the MNG (Multiple-image Network Graphics) reference library.")
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 6a7e66e01e..26b67ae041 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -330,7 +330,7 @@ JNI.")
        ("jamvm" ,jamvm-1-bootstrap)
        ("unzip" ,unzip)
        ("zip" ,zip)))
-    (home-page "http://ant.apache.org")
+    (home-page "https://ant.apache.org")
     (synopsis "Build tool for Java")
     (description
      "Ant is a platform-independent build tool for Java.  It is similar to
@@ -3301,7 +3301,7 @@ decompression and random access decompression have been fully implemented.")
     (version "1.12.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/"
+              (uri (string-append "https://repo1.maven.org/maven2/"
                                   "com/thoughtworks/qdox/qdox/" version
                                   "/qdox-" version "-sources.jar"))
               (sha256
@@ -3325,7 +3325,7 @@ decompression and random access decompression have been fully implemented.")
            (lambda _
              (delete-file-recursively "src/com/thoughtworks/qdox/junit")
              #t)))))
-    (home-page "http://qdox.codehaus.org/")
+    (home-page "https://github.com/codehaus/qdox")
     (synopsis "Parse definitions from Java source files")
     (description
      "QDox is a high speed, small footprint parser for extracting
@@ -3334,6 +3334,35 @@ class/interface/method definitions from source files complete with JavaDoc
 documentation tools.")
     (license license:asl2.0)))
 
+(define-public java-qdox
+  (package
+    (name "java-qdox")
+    ; Newer version exists, but this version is required by java-plexus-component-metadata
+    (version "2.0-M2")
+    (source (origin
+              (method url-fetch)
+              ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
+              ;; Older releases at https://github.com/codehaus/qdox/
+              ;; Note: The release at maven is pre-generated. The release at
+              ;; github requires jflex.
+              (uri (string-append "https://repo1.maven.org/maven2/"
+                                  "com/thoughtworks/qdox/qdox/" version
+                                  "/qdox-" version "-sources.jar"))
+              (sha256
+               (base32
+                "10xxrcaicq6axszcr2jpygisa4ch4sinyx5q7kqqxv4lknrmxp5x"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "qdox.jar"
+       #:tests? #f)); no tests
+    (home-page "https://github.com/codehaus/qdox")
+    (synopsis "Parse definitions from Java source files")
+    (description "QDox is a high speed, small footprint parser for extracting
+class/interface/method definitions from source files complete with JavaDoc
+@code{@@tags}.  It is designed to be used by active code generators or
+documentation tools.")
+    (license license:asl2.0)))
+
 (define-public java-jarjar
   (package
     (name "java-jarjar")
@@ -7361,7 +7390,7 @@ used to generate this API.")
     (version "6.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/"
+              (uri (string-append "https://repo1.maven.org/maven2/"
                                   "org/osgi/osgi.cmpn/" version "/osgi.cmpn-"
                                   version "-sources.jar"))
               (sha256
@@ -7392,7 +7421,7 @@ in compiling bundles.")
     (version "1.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.component.annotations/"
                                   version "/org.osgi.service.component.annotations-"
                                   version "-sources.jar"))
@@ -7419,7 +7448,7 @@ the support annotations for osgi-service-component.")
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.dto/" version "/org.osgi.dto-"
                                   version "-sources.jar"))
               (sha256
@@ -7448,7 +7477,7 @@ objects of the listed types or aggregates.")
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.resource/"
                                   version "/org.osgi.resource-"
                                   version "-sources.jar"))
@@ -7504,7 +7533,7 @@ the names for the attributes and directives for a namespace with contracts.")
     (version "1.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.namespace.extender/"
                                   version "/org.osgi.namespace.extender-"
                                   version "-sources.jar"))
@@ -7532,7 +7561,7 @@ the names for the attributes and directives for an extender namespace.")
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.namespace.service/"
                                   version "/org.osgi.namespace.service-"
                                   version "-sources.jar"))
@@ -7560,7 +7589,7 @@ the names for the attributes and directives for a service namespace.")
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.util.function/"
                                   version "/org.osgi.util.function-"
                                   version "-sources.jar"))
@@ -7587,7 +7616,7 @@ an interface for a function that accepts a single argument and produces a result
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.util.promise/"
                                   version "/org.osgi.util.promise-"
                                   version "-sources.jar"))
@@ -7616,7 +7645,7 @@ value.  It handles the interactions for asynchronous processing.")
     (version "1.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.metatype.annotations/"
                                   version "/org.osgi.service.metatype.annotations-"
                                   version "-sources.jar"))
@@ -7643,7 +7672,7 @@ the support annotations for metatype.")
     (version "1.1.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.repository/"
                                   version "/org.osgi.service.repository-"
                                   version "-sources.jar"))
@@ -7672,7 +7701,7 @@ a repository service that contains resources.")
     (version "1.8.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.framework/" version "/org.osgi.framework-"
                                   version "-sources.jar"))
               (sha256
@@ -7699,7 +7728,7 @@ and service platform for the Java programming language.")
     (version "1.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.log/"
                                   version "/org.osgi.service.log-"
                                   version "-sources.jar"))
@@ -7726,7 +7755,7 @@ the log service.")
     (version "1.0.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.jdbc/"
                                   version "/org.osgi.service.jdbc-"
                                   version "-sources.jar"))
@@ -7758,7 +7787,7 @@ factories for getting JDBC connections:
     (version "1.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.resolver/"
                                   version "/org.osgi.service.resolver-"
                                   version "-sources.jar"))
@@ -7787,7 +7816,7 @@ by the caller.")
     (version "1.5.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.util.tracker/"
                                   version "/org.osgi.util.tracker-"
                                   version "-sources.jar"))
@@ -7815,7 +7844,7 @@ bundle tracking utility classes.")
     (version "1.5.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.cm/"
                                   version "/org.osgi.service.cm-"
                                   version "-sources.jar"))
@@ -7843,7 +7872,7 @@ utility classes for the configuration of services.")
     (version "1.2.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+              (uri (string-append "https://repo1.maven.org/maven2/org/osgi/"
                                   "org.osgi.service.packageadmin/"
                                   version "/org.osgi.service.packageadmin-"
                                   version "-sources.jar"))
@@ -8503,7 +8532,7 @@ of deserialization.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0rf5ha6w0waz50jz2479jsrbgmd0dnx0gs337m126j5z7zlmg7mg"))))
+                "0474cqcv46zgv9bhms2vgawakq1vyj0hp3h3f1bfys46msia90bh"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-snakeyaml.jar"
@@ -11384,35 +11413,6 @@ Moreover, @code{logback-classic} natively implements the slf4j API so that you
 can readily switch back and forth between logback and other logging frameworks
 such as log4j or @code{java.util.logging} (JUL).")))
 
-(define-public java-qdox
-  (package
-    (name "java-qdox")
-    ; Newer version exists, but this version is required by java-plexus-component-metadata
-    (version "2.0-M2")
-    (source (origin
-              (method url-fetch)
-              ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
-              ;; Older releases at https://github.com/codehaus/qdox/
-              ;; Note: The release at maven is pre-generated. The release at
-              ;; github requires jflex.
-              (uri (string-append "http://central.maven.org/maven2/"
-                                  "com/thoughtworks/qdox/qdox/" version
-                                  "/qdox-" version "-sources.jar"))
-              (sha256
-               (base32
-                "10xxrcaicq6axszcr2jpygisa4ch4sinyx5q7kqqxv4lknrmxp5x"))))
-    (build-system ant-build-system)
-    (arguments
-     `(#:jar-name "qdox.jar"
-       #:tests? #f)); no tests
-    (home-page "http://qdox.codehaus.org/")
-    (synopsis "Parse definitions from Java source files")
-    (description "QDox is a high speed, small footprint parser for extracting
-class/interface/method definitions from source files complete with JavaDoc
-@code{@@tags}.  It is designed to be used by active code generators or
-documentation tools.")
-    (license license:asl2.0)))
-
 (define-public java-jgit
   (package
     (name "java-jgit")
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 2af76d4007..7f437e425e 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -998,7 +998,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "6.4.0.3")
+    (version "6.4.1.2")
     (source
      (origin
        (method url-fetch)
@@ -1008,7 +1008,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
          (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
        (sha256
         (base32
-         "09ra8a3ylb08xhy8wy233fs0f87klkpsbi9n3zss0c688afxjcf5"))))
+         "02iz94flpxgkvlipk3psddzw2gdq2j4nv7z01kphs5107sfs0r0d"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("bison" ,bison)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b0600642d5..03cbe48866 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -370,10 +370,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.109")
+(define-public linux-libre-4.19-version "4.19.110")
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "0kwnlv5336vqdf38dzn077ic17zkb4rl5khxmc47syzd9zm4fhnh")))
+        (hash (base32 "15kbgj13vsr74c61vzs96a72k86x205jjq5bz9pbn70698n3s4fa")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
@@ -2114,8 +2114,7 @@ Linux-based operating systems.")
              #t)))
        #:tests? #f))                              ; no 'check' target
 
-    (home-page
-     "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge")
+    (home-page "https://wiki.linuxfoundation.org/networking/bridge")
     (synopsis "Manipulate Ethernet bridges")
     (description
      "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way
@@ -3101,7 +3100,7 @@ Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless
 Extension was an interface allowing you to set Wireless LAN specific
 parameters and get the specific stats.  It is deprecated in favor the nl80211
 interface.")
-    (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
+    (home-page "https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
     ;; wireless.21.h and wireless.22.h are distributed under lgpl2.1+, the
     ;; other files are distributed under gpl2.
     (license (list license:gpl2 license:lgpl2.1+))))
@@ -3630,6 +3629,36 @@ IDE driver subsystem.  Many external USB drive enclosures with SCSI-ATA Command
 Translation (@dfn{SAT}) are also supported.")
     (license (license:non-copyleft "file://LICENSE.TXT"))))
 
+(define-public nvme-cli
+  (package
+    (name "nvme-cli")
+    (version "1.10.1")
+    (home-page "https://github.com/linux-nvme/nvme-cli")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32 "12wp2wxmsw2v8m9bhvwvdbhdgx1md8iilhbl19sfzz2araiwi2x8"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc")
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure) ; No ./configure script
+                  (replace 'install
+                    (lambda _
+                      (invoke "make" "install-spec" "PREFIX="
+                              (string-append "DESTDIR=" %output)))))
+       #:tests? #f)) ; The tests require sysfs, which is not accessible from
+                     ; the build environment
+    (synopsis "NVM-Express user space tooling for Linux")
+    (description "Nvme-cli is a utility to provide standards compliant tooling
+for NVM-Express drives.  It was made specifically for Linux as it relies on the
+IOCTLs defined by the mainline kernel driver.")
+    (license license:gpl2+)))
+
 (define-public rfkill
   (package
     (name "rfkill")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 9de8eefc76..27b15ddcea 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -566,7 +566,7 @@ optimizing, and searching weighted finite-state transducers (FSTs).")
     ;; Non-portable SSE instructions are used so building fails on platforms
     ;; other than x86_64.
     (supported-systems '("x86_64-linux"))
-    (home-page "http://shogun-toolbox.org/")
+    (home-page "https://shogun-toolbox.org/")
     (synopsis "Machine learning toolbox")
     (description
      "The Shogun Machine learning toolbox provides a wide range of unified and
@@ -847,10 +847,25 @@ computing environments.")
     (description
      "Scikit-learn provides simple and efficient tools for data mining and
 data analysis.")
+    (properties `((python2-variant . ,(delay python2-scikit-learn))))
     (license license:bsd-3)))
 
+;; scikit-learn 0.22 and later only supports Python 3, so we stick with
+;; an older version here.
 (define-public python2-scikit-learn
-  (package-with-python2 python-scikit-learn))
+  (let ((base (package-with-python2 (strip-python2-variant python-scikit-learn))))
+    (package
+      (inherit base)
+      (version "0.20.4")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/scikit-learn/scikit-learn.git")
+                      (commit version)))
+                (file-name (git-file-name "python-scikit-learn" version))
+                (sha256
+                 (base32
+                  "08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj")))))))
 
 (define-public python-autograd
   (let* ((commit "442205dfefe407beffb33550846434baa90c4de7")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 988542b061..94bd81fb33 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1390,11 +1390,12 @@ facilities for checking incoming mail.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("bzip2" ,bzip2)
+     `(("bzip2" ,bzip2)
+       ("linux-pam" ,linux-pam)
+       ("lz4" ,lz4)
+       ("openssl" ,openssl)
        ("sqlite" ,sqlite)
-       ("linux-pam" ,linux-pam)))
+       ("zlib" ,zlib)))
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--localstatedir=/var")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d72f884a8f..9feb54d87d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3356,7 +3356,7 @@ access to BLIS implementations via traditional BLAS routine calls.")
        ;; no configure script
        (modify-phases %standard-phases (delete 'configure))
        #:tests? #f)) ;the tests are part of the default target
-    (home-page "http://openlibm.org/")
+    (home-page "https://openlibm.org/")
     (synopsis "Portable C mathematical library (libm)")
     (description
      "OpenLibm is an effort to have a high quality, portable, standalone C
@@ -4591,13 +4591,10 @@ linear algebra primitives specifically targeting graph analytics.")
        (modify-phases %standard-phases
          (add-after 'build 'build-tests
            (lambda* (#:key make-flags #:allow-other-keys)
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("gmp" ,gmp)
        ("metis" ,metis)
-       ("openmpi" ,openmpi)
        ("openblas" ,openblas)
        ("python" ,python)
        ("superlu" ,superlu)))
@@ -4635,7 +4632,6 @@ Differences} (FD).")
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("dune-common" ,dune-common)
-       ("openmpi" ,openmpi)
        ;; Optional
        ("openblas" ,openblas)
        ("gmp" ,gmp)
@@ -4675,8 +4671,7 @@ This package contains the basic DUNE geometry classes.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("openmpi" ,openmpi)))
+     `(("dune-common" ,dune-common)))
     (native-inputs
      `(("gfortran" ,gfortran)
        ("pkg-config" ,pkg-config)))
@@ -4709,16 +4704,13 @@ This package contains the DUNE UG grid classes.")
        (modify-phases %standard-phases
          (add-after 'build 'build-tests
            (lambda* (#:key make-flags #:allow-other-keys)
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("dune-common" ,dune-common)
        ("dune-geometry" ,dune-geometry)
        ("gmp" ,gmp)
        ("metis" ,metis)
        ("openblas" ,openblas)
-       ("openmpi" ,openmpi)
        ("python" ,python)))
     (propagated-inputs
      `(("dune-uggrid" ,dune-uggrid)))
@@ -4755,12 +4747,9 @@ This package contains the basic DUNE grid classes.")
        (modify-phases %standard-phases
          (add-after 'build 'build-tests
            (lambda* (#:key make-flags #:allow-other-keys)
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("dune-common" ,dune-common)
-       ("openmpi" ,openmpi)
        ;; Optional
        ("metis" ,metis)
        ("suitesparse" ,suitesparse)
@@ -4808,7 +4797,6 @@ aggregation-based algebraic multigrid.")
     (inputs
      `(("dune-common" ,dune-common)
        ("dune-geometry" ,dune-geometry)
-       ("openmpi" ,openmpi)
        ;; Optional
        ("metis" ,metis)
        ("superlu" ,superlu)
@@ -4856,14 +4844,11 @@ assemble global function spaces on finite-element grids.")
            (lambda* (#:key inputs make-flags #:allow-other-keys)
              (setenv "CPLUS_INCLUDE_PATH"
                      (string-append (assoc-ref inputs "dune-grid") "/share"))
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (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)
@@ -4901,14 +4886,11 @@ cubes.")
        (modify-phases %standard-phases
          (add-after 'build 'build-tests
            (lambda* (#:key make-flags #:allow-other-keys)
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (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)
@@ -4947,7 +4929,6 @@ provides the full grid interface including adaptive mesh refinement.")
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("dune-common" ,dune-common)
-       ("openmpi" ,openmpi)
        ;; Optional
        ("openblas" ,openblas)
        ("python" ,python)
@@ -4990,9 +4971,7 @@ operating on statically typed trees of objects.")
             #t))
          (add-after 'build 'build-tests
            (lambda* (#:key make-flags #:allow-other-keys)
-             (apply invoke "make" "build_tests" make-flags)))
-         (add-before 'check 'mpi-setup
-           ,%openmpi-setup))))
+             (apply invoke "make" "build_tests" make-flags))))))
     (inputs
      `(("dune-common" ,dune-common)
        ("dune-istl" ,dune-istl)
@@ -5000,7 +4979,6 @@ operating on statically typed trees of objects.")
        ("dune-grid" ,dune-grid)
        ("dune-geometry" ,dune-geometry)
        ("dune-typetree" ,dune-typetree)
-       ("openmpi" ,openmpi)
        ("openblas" ,openblas)
        ("metis" ,metis)
        ("python" ,python)
@@ -5041,7 +5019,6 @@ implemented as callable objects, and bases of finite element spaces.")
        ("dune-grid" ,dune-grid)
        ("dune-typetree" ,dune-typetree)
        ("dune-functions" ,dune-functions)
-       ("openmpi" ,openmpi)
        ;; Optional
        ("openblas" ,openblas)
        ("eigen" ,eigen)
@@ -5059,6 +5036,59 @@ 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))))
 
+(define add-openmpi-to-dune-package
+  (let ((dune-package?
+          (lambda (p) (string-prefix? "dune-" (package-name p)))))
+    (package-mapping
+      (lambda (p)
+        (if (dune-package? p)
+            (package (inherit p)
+              (name (string-append (package-name p) "-openmpi"))
+              (inputs `(,@(package-inputs p)
+                        ("openmpi" ,openmpi)))
+              (arguments
+               (substitute-keyword-arguments (package-arguments p)
+                 ((#:phases phases '%standard-phases)
+                  `(modify-phases ,phases
+                     (add-before 'check 'mpi-setup
+                       ,%openmpi-setup)))))
+              (synopsis (string-append (package-synopsis p) " (with MPI support)")))
+            p))
+      (negate dune-package?))))
+
+(define-public dune-common-openmpi
+  (add-openmpi-to-dune-package dune-common))
+
+(define-public dune-geometry-openmpi
+  (add-openmpi-to-dune-package dune-geometry))
+
+(define-public dune-istl-openmpi
+  (add-openmpi-to-dune-package dune-istl))
+
+(define-public dune-typetree-openmpi
+  (add-openmpi-to-dune-package dune-typetree))
+
+(define-public dune-uggrid-openmpi
+  (add-openmpi-to-dune-package dune-uggrid))
+
+(define-public dune-grid-openmpi
+  (add-openmpi-to-dune-package dune-grid))
+
+(define-public dune-alugrid-openmpi
+  (add-openmpi-to-dune-package dune-alugrid))
+
+(define-public dune-subgrid-openmpi
+  (add-openmpi-to-dune-package dune-subgrid))
+
+(define-public dune-localfunctions-openmpi
+  (add-openmpi-to-dune-package dune-localfunctions))
+
+(define-public dune-functions-openmpi
+  (add-openmpi-to-dune-package dune-functions))
+
+(define-public dune-pdelab-openmpi
+  (add-openmpi-to-dune-package dune-pdelab))
+
 (define-public mlucas
   (package
     (name "mlucas")
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 1eb095ce50..bcb8df24d0 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, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
@@ -152,7 +152,7 @@ etc. via a Web interface.  Features include:
 (define-public zabbix-agentd
   (package
     (name "zabbix-agentd")
-    (version "4.4.1")
+    (version "4.4.6")
     (source
      (origin
        (method url-fetch)
@@ -161,7 +161,7 @@ etc. via a Web interface.  Features include:
              "/zabbix-" version ".tar.gz"))
        (sha256
         (base32
-         "0jjn2przn9s25slrcxmq8iqdgqkgxnqs45zy0n1ma6nlgmclxxqb"))))
+         "03mf4sklnw1x0ixp41vnibkz0794yi9jhws7ixld8jj2czk2ifr2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index d0ea08fe6b..1277353e45 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2941,6 +2941,7 @@ Songs can be searched by artist, name or even by a part of the song text.")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "beets" version))
+              (patches (search-patches "beets-werkzeug-compat.patch"))
               (sha256
                (base32
                 "0m40rjimvfgy1dv04p8f8d5dvi2855v4ix99a9xr900cmcn476yj"))))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 57dd86d177..5c7c7eba2e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -984,15 +984,15 @@ non-existing entropy of some access points.")
 (define-public reaver
   (package
     (name "reaver")
-    (version "1.6.5")
+    (version "1.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/t6x/reaver-wps-fork-t6x/releases/"
-                    "download/v" version "/" name "-" version ".tar.xz"))
+                    "download/v" version "/reaver-" version ".tar.xz"))
               (sha256
                (base32
-                "0sva3g0kwgv143n9l3lg4qp5iiqz7nk76nr0hwivsnglbhk9sbil"))))
+                "00k7mc81ifv0wma7k4v18mj498badbw5yls6c28qin3d1gda0ag3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1015,7 +1015,7 @@ non-existing entropy of some access points.")
                          (find-files "." "README.*"))
                (install-file "reaver.1" man1)
                #t))))
-       #:tests? #f)) ; there are no tests
+       #:tests? #f))                    ; there are no tests
     (inputs
      `(("libpcap" ,libpcap)))
     (propagated-inputs
@@ -1718,7 +1718,7 @@ speedtest.net.")
      "This is a tftp client derived from OpenBSD tftp with some extra options
 added and bugs fixed.  The source includes readline support but it is not
 enabled due to license conflicts between the BSD advertising clause and the GPL.")
-    (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
+    (home-page "https://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
     ;; Some source files are distributed under a 3-clause BSD license, and
     ;; others under a 4-clause BSD license. Refer to the files in the source
     ;; distribution for clarification.
diff --git a/gnu/packages/opencog.scm b/gnu/packages/opencog.scm
index 84e387f85d..18aba64aec 100644
--- a/gnu/packages/opencog.scm
+++ b/gnu/packages/opencog.scm
@@ -276,7 +276,17 @@ combination.")
                          "/include/guile/2.2/")
           (string-append "-DGUILE_SITE_DIR="
                          (assoc-ref %outputs "out")
-                         "/share/guile/site/2.2/"))))
+                         "/share/guile/site/2.2/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-unqualified-load
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "bioscience/bioscience.scm"
+                 (("\\(load \"bioscience/types/bioscience_types.scm\"\\)")
+                  (format #f "(load \"~a/bioscience/types/bioscience_types.scm\")"
+                          (string-append (assoc-ref outputs "out")
+                                         "/share/guile/site/2.2/opencog"))))
+               #t)))))
       (inputs
        `(("atomspace" ,atomspace)
          ("cogutil" ,cogutil)
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 3b6ec6b44f..8dd8c1907c 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -87,9 +87,6 @@ appropriate plugins against the AST nodes.  Once Bandit has finished scanning
 all the files it generates a report.")
     (license asl2.0)))
 
-(define-public python2-bandit
-  (package-with-python2 python-bandit))
-
 (define-public python-debtcollector
   (package
     (name "python-debtcollector")
@@ -376,9 +373,6 @@ extensions.")
 common features used in Tempest.")
     (license asl2.0)))
 
-(define-public python2-tempest-lib
-  (package-with-python2 python-tempest-lib))
-
 ;; Packages from the Oslo library
 (define-public python-oslo.config
   (package
@@ -419,9 +413,6 @@ common features used in Tempest.")
 .ini style configuration files.")
     (license asl2.0)))
 
-(define-public python2-oslo.config
-  (package-with-python2 python-oslo.config))
-
 (define-public python-oslo.context
   (package
     (name "python-oslo.context")
@@ -523,9 +514,6 @@ configuration for all OpenStack projects.  It also provides custom formatters,
 handlers and support for context specific logging (like resource id’s etc).")
   (license asl2.0)))
 
-(define-public python2-oslo.log
-  (package-with-python2 python-oslo.log))
-
 (define-public python-oslo.serialization
   (package
     (name "python-oslo.serialization")
@@ -555,18 +543,8 @@ handlers and support for context specific logging (like resource id’s etc).")
     (description
       "The oslo.serialization library provides support for representing objects
 in transmittable and storable formats, such as JSON and MessagePack.")
-    (properties `((python2-variant . ,(delay python2-oslo.serialization))))
     (license asl2.0)))
 
-(define-public python2-oslo.serialization
-  (let ((base (package-with-python2 (strip-python2-variant
-                                     python-oslo.serialization))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("python2-ipaddress" ,python2-ipaddress)
-         ,@(package-native-inputs base))))))
-
 (define-public python-reno
   (package
     (name "python-reno")
@@ -722,9 +700,6 @@ functions, such as encoding, exception handling, string manipulation, and time
 handling.")
     (license asl2.0)))
 
-(define-public python2-oslo.utils
-  (package-with-python2 python-oslo.utils))
-
 (define-public python-keystoneclient
   (package
     (name "python-keystoneclient")
@@ -786,21 +761,6 @@ SQLite for its identity store database, with the option to connect to external
 LDAP.")
     (license asl2.0)))
 
-(define-public python2-keystoneclient
-  (let ((keystoneclient (package-with-python2 python-keystoneclient)))
-    (package (inherit keystoneclient)
-      (propagated-inputs
-       `(("python2-requests" ,python2-requests)
-         ,@(alist-delete "python-requests"
-                         (package-propagated-inputs keystoneclient))))
-      (native-inputs
-       `(("python2-oauthlib" ,python2-oauthlib)
-         ("python2-oslosphinx" ,python2-oslosphinx)
-         ("python2-requests-mock" ,python2-requests-mock)
-         ("python2-tempest-lib" ,python2-tempest-lib)
-         ,@(fold alist-delete (package-native-inputs keystoneclient)
-            '("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib")))))))
-
 (define-public python-swiftclient
   (package
     (name "python-swiftclient")
@@ -840,17 +800,8 @@ data that best fit this type of storage model are virtual machine images, photo
 storage, email storage and backup archiving.  Having no central \"brain\" or
 master point of control provides greater scalability, redundancy and
 permanence.")
-    (properties `((python2-variant . ,(delay python2-swiftclient))))
     (license asl2.0)))
 
-(define-public python2-swiftclient
-  (let ((swiftclient (package-with-python2
-                      (strip-python2-variant python-swiftclient))))
-    (package (inherit swiftclient)
-      (propagated-inputs
-       `(("python2-futures" ,python2-futures)
-         ,@(package-propagated-inputs swiftclient))))))
-
 (define-public python-git-review
   (package
     (name "python-git-review")
diff --git a/gnu/packages/patches/beets-werkzeug-compat.patch b/gnu/packages/patches/beets-werkzeug-compat.patch
new file mode 100644
index 0000000000..1a91c3a3f9
--- /dev/null
+++ b/gnu/packages/patches/beets-werkzeug-compat.patch
@@ -0,0 +1,18 @@
+Be compatible with python-werkzeug 1.0.0.
+
+Taken from upstream:
+https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8
+
+diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py
+index f53fb3a954..21ff5d94ed 100644
+--- a/beetsplug/web/__init__.py
++++ b/beetsplug/web/__init__.py
+@@ -169,7 +169,7 @@ def to_python(self, value):
+         return ids
+ 
+     def to_url(self, value):
+-        return ','.join(value)
++        return ','.join(str(v) for v in value)
+ 
+ 
+ class QueryConverter(PathConverter):
diff --git a/gnu/packages/patches/bidiv-update-fribidi.patch b/gnu/packages/patches/bidiv-update-fribidi.patch
new file mode 100644
index 0000000000..d000cfeda4
--- /dev/null
+++ b/gnu/packages/patches/bidiv-update-fribidi.patch
@@ -0,0 +1,50 @@
+https://sources.debian.org/data/main/b/bidiv/1.5-6/debian/patches/fribidi_019
+
+Description: Fix building with fribidi 1.9
+Author: أحمد المحمودي <aelmahmoudy@users.sourceforge.net>
+Bug-Debian: http://bugs.debian.org/568130
+
+--- a/bidiv.c
++++ b/bidiv.c
+@@ -141,8 +141,9 @@ bidiv(FILE *fp)
+ 				*/
+ 				if(c1<0x80||c1>0xbf){
+ 					ungetc(c1, fp);
+-					unicode_in[len]=
+-						fribidi_iso8859_8_to_unicode_c(c);
++					fribidi_charset_to_unicode(
++						FRIBIDI_CHAR_SET_ISO8859_8,
++						&c, 1, &unicode_in[len]);
+ 				} else
+ 				unicode_in[len]=((c & 037) << 6) + (c1 & 077);
+ 				newline=0;
+@@ -153,8 +154,9 @@ bidiv(FILE *fp)
+ 				   In the future we will have a language
+ 				   option, which will control this (as well
+ 				   as the output encoding). */
+-				unicode_in[len]=
+-					fribidi_iso8859_8_to_unicode_c(c);
++				fribidi_charset_to_unicode(
++					FRIBIDI_CHAR_SET_ISO8859_8,
++					&c, 1, &unicode_in[len]);
+ #else
+ 				in[len]=c;
+ #endif
+@@ -206,11 +208,11 @@ bidiv(FILE *fp)
+ 			rtl_line=0;
+ 
+ 		if(out_utf8)
+-			fribidi_unicode_to_utf8(unicode_out, len,
+-					     out);
++			fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8,
++					unicode_out, len, out);
+ 		else
+-			fribidi_unicode_to_iso8859_8(unicode_out, len,
+-						     out);
++			fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_ISO8859_8,
++				unicode_out, len, out);
+ 		/* if rtl_line (i.e., base_dir is RL), and we didn't fill the
+ 		   entire width, we need to pad with spaces. Maybe in the
+ 		   future this should be an option.
+--
+
diff --git a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch b/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
new file mode 100644
index 0000000000..b95b46077a
--- /dev/null
+++ b/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
@@ -0,0 +1,74 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Mon, 16 Mar 2020 22:51:37 +0000
+Subject: gnu: eigen: Stabilise sparseqr test.
+
+Taken verbatim from this[0] upstream commit.
+
+[0]: https://gitlab.com/libeigen/eigen/-/commit/3b5deeb546d4017b24846f5b0dc3296a50a039fe
+
+From 3b5deeb546d4017b24846f5b0dc3296a50a039fe Mon Sep 17 00:00:00 2001
+From: Gael Guennebaud <g.gael@free.fr>
+Date: Tue, 19 Feb 2019 22:57:51 +0100
+Subject: [PATCH] bug #899: make sparseqr unit test more stable by 1) trying
+ with larger threshold and 2) relax rank computation for rank-deficient
+ problems.
+
+---
+ test/sparseqr.cpp | 31 ++++++++++++++++++++++++++-----
+ 1 file changed, 26 insertions(+), 5 deletions(-)
+
+diff --git a/test/sparseqr.cpp b/test/sparseqr.cpp
+index 3ffe62314..3576cc626 100644
+--- a/test/sparseqr.cpp
++++ b/test/sparseqr.cpp
+@@ -43,6 +43,7 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows
+ 
+ template<typename Scalar> void test_sparseqr_scalar()
+ {
++  typedef typename NumTraits<Scalar>::Real RealScalar;
+   typedef SparseMatrix<Scalar,ColMajor> MatrixType; 
+   typedef Matrix<Scalar,Dynamic,Dynamic> DenseMat;
+   typedef Matrix<Scalar,Dynamic,1> DenseVector;
+@@ -91,14 +92,34 @@ template<typename Scalar> void test_sparseqr_scalar()
+     exit(0);
+     return;
+   }
+-  
+-  VERIFY_IS_APPROX(A * x, b);
+-  
+-  //Compare with a dense QR solver
++
++  // Compare with a dense QR solver
+   ColPivHouseholderQR<DenseMat> dqr(dA);
+   refX = dqr.solve(b);
+   
+-  VERIFY_IS_EQUAL(dqr.rank(), solver.rank());
++  bool rank_deficient = A.cols()>A.rows() || dqr.rank()<A.cols();
++  if(rank_deficient)
++  {
++    // rank deficient problem -> we might have to increase the threshold
++    // to get a correct solution.
++    RealScalar th = RealScalar(20)*dA.colwise().norm().maxCoeff()*(A.rows()+A.cols()) * NumTraits<RealScalar>::epsilon();
++    for(Index k=0; (k<16) && !test_isApprox(A*x,b); ++k)
++    {
++      th *= RealScalar(10);
++      solver.setPivotThreshold(th);
++      solver.compute(A);
++      x = solver.solve(b);
++    }
++  }
++
++  VERIFY_IS_APPROX(A * x, b);
++  
++  // For rank deficient problem, the estimated rank might
++  // be slightly off, so let's only raise a warning in such cases.
++  if(rank_deficient) ++g_test_level;
++  VERIFY_IS_EQUAL(solver.rank(), dqr.rank());
++  if(rank_deficient) --g_test_level;
++
+   if(solver.rank()==A.cols()) // full rank
+     VERIFY_IS_APPROX(x, refX);
+ //   else
+-- 
+2.24.1
+
diff --git a/gnu/packages/patches/python-alembic-exceptions-cause.patch b/gnu/packages/patches/python-alembic-exceptions-cause.patch
new file mode 100644
index 0000000000..b9844e5ad0
--- /dev/null
+++ b/gnu/packages/patches/python-alembic-exceptions-cause.patch
@@ -0,0 +1,69 @@
+Fix a test failure with newer versions of SQLalchemy due to missing
+"causes" for some exceptions.
+
+diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py
+index 5ec2762..7129472 100644
+--- a/alembic/operations/ops.py
++++ b/alembic/operations/ops.py
+@@ -108,6 +108,7 @@ def from_constraint(cls, constraint):
+             "primary_key_constraint": "primary",
+             "check_constraint": "check",
+             "column_check_constraint": "check",
++            "table_or_column_check_constraint": "check",
+         }
+ 
+         constraint_table = sqla_compat._table_for_constraint(constraint)
+@@ -707,6 +708,7 @@ def batch_create_foreign_key(
+     "create_check_constraint", "batch_create_check_constraint"
+ )
+ @AddConstraintOp.register_add_constraint("check_constraint")
++@AddConstraintOp.register_add_constraint("table_or_column_check_constraint")
+ @AddConstraintOp.register_add_constraint("column_check_constraint")
+ class CreateCheckConstraintOp(AddConstraintOp):
+     """Represent a create check constraint operation."""
+diff --git a/alembic/testing/assertions.py b/alembic/testing/assertions.py
+index 3dc08f0..a78e5e8 100644
+--- a/alembic/testing/assertions.py
++++ b/alembic/testing/assertions.py
+@@ -2,10 +2,9 @@
+ 
+ import re
+ 
++from sqlalchemy import util
+ from sqlalchemy.engine import default
+ from sqlalchemy.testing.assertions import _expect_warnings
+-from sqlalchemy.testing.assertions import assert_raises  # noqa
+-from sqlalchemy.testing.assertions import assert_raises_message  # noqa
+ from sqlalchemy.testing.assertions import eq_  # noqa
+ from sqlalchemy.testing.assertions import is_  # noqa
+ from sqlalchemy.testing.assertions import is_false  # noqa
+@@ -17,6 +16,29 @@
+ from ..util.compat import py3k
+ 
+ 
++def assert_raises(except_cls, callable_, *args, **kw):
++    try:
++        callable_(*args, **kw)
++        success = False
++    except except_cls:
++        success = True
++
++    # assert outside the block so it works for AssertionError too !
++    assert success, "Callable did not raise an exception"
++
++
++def assert_raises_message(except_cls, msg, callable_, *args, **kwargs):
++    try:
++        callable_(*args, **kwargs)
++        assert False, "Callable did not raise an exception"
++    except except_cls as e:
++        assert re.search(msg, util.text_type(e), re.UNICODE), "%r !~ %s" % (
++            msg,
++            e,
++        )
++        print(util.text_type(e).encode("utf-8"))
++
++
+ def eq_ignore_whitespace(a, b, msg=None):
+     # sqlalchemy.testing.assertion has this function
+     # but not with the special "!U" detection part
diff --git a/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch b/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch
new file mode 100644
index 0000000000..0e928ef455
--- /dev/null
+++ b/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch
@@ -0,0 +1,36 @@
+We need one patch on top of 0.3.8 for compatibility with Werkzeug 1.0.
+
+Taken from upstream:
+https://github.com/flask-restful/flask-restful/commit/73376a488907af3042b52678ac4c23f8a8911e5b
+
+diff --git a/tests/test_api.py b/tests/test_api.py
+index f7f8e661..6795d362 100644
+--- a/tests/test_api.py
++++ b/tests/test_api.py
+@@ -445,7 +445,9 @@ def test_handle_non_api_error(self):
+ 
+         resp = app.get("/foo")
+         self.assertEquals(resp.status_code, 404)
+-        self.assertEquals('text/html', resp.headers['Content-Type'])
++        # in newer versions of werkzeug this is `text/html; charset=utf8`
++        content_type, _, _ = resp.headers['Content-Type'].partition(';')
++        self.assertEquals('text/html', content_type)
+ 
+     def test_non_api_error_404_catchall(self):
+         app = Flask(__name__)
+diff --git a/tests/test_reqparse.py b/tests/test_reqparse.py
+index 2f1fbedf..9776f17c 100644
+--- a/tests/test_reqparse.py
++++ b/tests/test_reqparse.py
+@@ -2,9 +2,9 @@
+ import unittest
+ from mock import Mock, patch
+ from flask import Flask
+-from werkzeug import exceptions, MultiDict
++from werkzeug import exceptions
+ from werkzeug.wrappers import Request
+-from werkzeug.datastructures import FileStorage
++from werkzeug.datastructures import FileStorage, MultiDict
+ from flask_restful.reqparse import Argument, RequestParser, Namespace
+ import six
+ import decimal
diff --git a/gnu/packages/patches/python-jedi-deleted-variables.patch b/gnu/packages/patches/python-jedi-deleted-variables.patch
new file mode 100644
index 0000000000..53bdc05cde
--- /dev/null
+++ b/gnu/packages/patches/python-jedi-deleted-variables.patch
@@ -0,0 +1,38 @@
+Fix test failure in some environments, including Guix.
+
+Taken from upstream:
+https://github.com/davidhalter/jedi/commit/bec87f7ff82b0731713c6520a14c213341b4cecf
+
+diff --git a/test/completion/basic.py b/test/completion/basic.py
+index b40068179..3ff919ca6 100644
+--- a/test/completion/basic.py
++++ b/test/completion/basic.py
+@@ -209,11 +209,11 @@ def global_as_import():
+ 
+ deleted_var = 3
+ del deleted_var
+-#? int()
++#?
+ deleted_var
+-#? ['deleted_var']
++#? []
+ deleted_var
+-#! ['deleted_var = 3']
++#! []
+ deleted_var
+ 
+ # -----------------
+diff --git a/test/test_api/test_full_name.py b/test/test_api/test_full_name.py
+index 4fdb861b0..6858b6ca8 100644
+--- a/test/test_api/test_full_name.py
++++ b/test/test_api/test_full_name.py
+@@ -112,7 +112,8 @@ def test_os_path(Script):
+ 
+ def test_os_issues(Script):
+     """Issue #873"""
+-    assert [c.name for c in Script('import os\nos.nt''').complete()] == ['nt']
++    # nt is not found, because it's deleted
++    assert [c.name for c in Script('import os\nos.nt''').complete()] == []
+ 
+ 
+ def test_param_name(Script):
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 67bdfd81c4..6af240a40a 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -1237,14 +1237,14 @@ makes fork(2) safe to use in test cases.")
 (define-public perl-test-simple
   (package
     (name "perl-test-simple")
-    (version "1.302171")
+    (version "1.302172")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
                                   "Test-Simple-" version ".tar.gz"))
               (sha256
                (base32
-                "12in730hr51h42dwd3c5k7ysyp0xyk17583mfvx6zg56nb990zz2"))))
+                "1z1l8dgssf0mqbgik33sc5j48iiapppkwmacwah990hj0j7pd23k"))))
     (build-system perl-build-system)
     (synopsis "Basic utilities for writing tests")
     (description
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index b0d35441b3..31cf75df96 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -37,12 +39,15 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages file)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -56,9 +61,13 @@
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xfig)
@@ -67,6 +76,91 @@
   #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module (srfi srfi-26))
 
+(define-public rapid-photo-downloader
+  (package
+    (name "rapid-photo-downloader")
+    (version "0.9.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://launchpad.net/rapid/pyqt/"
+                                  version "/+download/" name "-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15p7sssg6vmqbm5xnc4j5dr89d7gl7y5qyq44a240yl5aqkjnybw"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("file" ,file)
+       ("intltool" ,intltool)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("gexiv2" ,gexiv2)
+       ("gst-libav" ,gst-libav)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gstreamer" ,gstreamer)
+       ("libgudev" ,libgudev)
+       ("libnotify" ,libnotify)
+       ("libmediainfo" ,libmediainfo)
+       ("usdisks" ,udisks)
+       ("python-pyqt" ,python-pyqt)
+       ("python-pygobject" ,python-pygobject)
+       ("python-gphoto2" ,python-gphoto2)
+       ("python-pyzmq" ,python-pyzmq)
+       ("python-tornado" ,python-tornado)
+       ("python-psutil" ,python-psutil)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-arrow" ,python-arrow)
+       ("python-dateutil" ,python-dateutil)
+       ("python-easygui" ,python-easygui)
+       ("python-colour" ,python-colour)
+       ("python-pymediainfo" ,python-pymediainfo)
+       ("python-sortedcontainers" ,python-sortedcontainers)
+       ("python-rawkit" ,python-rawkit)
+       ("python-requests" ,python-requests)
+       ("python-colorlog" ,python-colorlog)
+       ("python-pyprind" ,python-pyprind)
+       ("python-tenacity" ,python-tenacity)
+       ("perl-image-exiftool" ,perl-image-exiftool)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-libmediainfo
+           (lambda _
+             (substitute* "raphodo/metadatavideo.py"
+               (("pymedia_library_file = 'libmediainfo.so.0'")
+                (string-append "pymedia_library_file = '"
+                               (assoc-ref %build-inputs "libmediainfo")
+                               "/lib/libmediainfo.so.0'")))
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (path              (string-join
+                                       (list (string-append
+                                              (assoc-ref inputs "perl-image-exiftool")
+                                              "/bin"))
+                                       ":"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                   (python-path       (getenv "PYTHONPATH")))
+               (for-each
+                (lambda (program)
+                  (wrap-program program
+                    `("PATH" ":" prefix (,path))
+                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                    `("PYTHONPATH"             ":" prefix (,python-path))))
+                (map (lambda (name)
+                       (string-append out "/bin/" name))
+                     '("analyze-pv-structure"
+                       "rapid-photo-downloader"))))
+             #t)))))
+    (home-page "https://www.damonlynch.net/rapid/")
+    (synopsis "Import photos and videos from cameras, phones and memory cards")
+    (description "Import photos and videos from cameras, phones and memory
+cards and generate meaningful file and folder names.")
+    (license license:gpl2+)))
+
 (define-public libraw
   (package
     (name "libraw")
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 5cc9113ffe..4d3c3faca0 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -311,7 +311,7 @@ with calls to the POMP2 measurement interface.")
                  (("^source .*frontend.*$") "")
                  (((assoc-ref outputs "out")) lib))
                #t))))))
-    (home-page "http://www.scalasca.org/software/cube-4.x/download.html")
+    (home-page "https://www.scalasca.org/software/cube-4.x/download.html")
     (synopsis "Performance report explorer for parallel programs")
     (description
      "CUBE (CUBE Uniform Behavioral Encoding) is a tool to display a variety
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index a69619b96a..70a5b1e452 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
@@ -30,6 +30,7 @@
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module (guix build-system python))
 
@@ -109,6 +110,37 @@ detect the absence of a cassette file and once again record all HTTP
 interactions, which will update them to correspond to the new API.")
     (license license:expat)))
 
+(define-public python-pytest-vcr
+  (package
+    (name "python-pytest-vcr")
+    (version "1.0.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/ktosiek/pytest-vcr")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1i6fin91mklvbi8jzfiswvwf1m91f43smpj36a17xrzk4gisfs6i"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             (invoke "pytest" "tests/"))))))
+    (propagated-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-vcrpy" ,python-vcrpy)))
+    (home-page "https://github.com/ktosiek/pytest-vcr")
+    (synopsis "Plugin for managing VCR.py cassettes")
+    (description
+     "Plugin for managing VCR.py cassettes.")
+    (license license:expat)))
+
 (define-public python-pytest-checkdocs
   (package
     (name "python-pytest-checkdocs")
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 9eee75cbfb..23c06267a7 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -788,6 +788,40 @@ key), SSH public key, ASC-encoded OpenPGP key, APK Android application, LDIFF
 file, and more.")
     (license license:gpl3)))
 
+(define-public python-blurhash
+  (package
+    (name "python-blurhash")
+    (version "1.1.4")
+    (source
+      (origin
+        ;; Tests not included in pypi release and releases not tagged in git repo.
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/halcy/blurhash-python")
+               (commit "22e081ef1c24da1bb5c5eaa2c1d6649724deaef8")))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1qq6mhydlp7q3na4kmaq3871h43wh3pyfyxr4b79bia73wjdylxf"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (delete-file "setup.cfg")
+             (invoke "pytest"))))))
+    (native-inputs
+     `(("python-numpy" ,python-numpy)
+       ("python-pillow" ,python-pillow)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/halcy/blurhash-python")
+    (synopsis
+     "Pure-Python implementation of the blurhash algorithm")
+    (description
+     "Pure-Python implementation of the blurhash algorithm.")
+    (license license:expat)))
+
 (define-public python-ecpy
   (package
     (name "python-ecpy")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 8dcc6e77e6..4b3db6d5e0 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
@@ -277,12 +277,21 @@ doing practical, real world data analysis in Python.")
 (define-public python2-pandas
   (let ((pandas (package-with-python2
                  (strip-python2-variant python-pandas))))
-    (package/inherit
-     pandas
-     (version "0.24.2")
-     (source (origin
-               (method url-fetch)
-               (uri (pypi-uri "pandas" version))
-               (sha256
-                (base32
-                 "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag")))))))
+    (package
+      (inherit pandas)
+      (version "0.24.2")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "pandas" version))
+                (sha256
+                 (base32
+                  "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Adjust for renamed error message in Python 2.7.17.  Taken
+                    ;; from <https://github.com/pandas-dev/pandas/pull/29294>.
+                    (substitute* "pandas/io/parsers.py"
+                      (("if 'NULL byte' in msg:")
+                       "if 'NULL byte' in msg or 'line contains NUL' in msg:"))
+                    #t)))))))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 07c1ceb2db..b02ffd5f58 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -440,15 +440,21 @@ between a web browser and web server.")
 (define-public python-flask-babel
   (package
     (name "python-flask-babel")
-    (version "0.11.2")
+    (version "1.0.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "Flask-Babel" version))
         (sha256
           (base32
-            "0ff9n165vhf1nhv6807ckhpp224jw7k7sd7jz5kfh3sbpl85gmy0"))))
+            "0gmb165vkwv5v7dxsxa2i3zhafns0fh938m2zdcrv4d8z5l099yn"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (with-directory-excursion "tests"
+                        (invoke "python" "tests.py")))))))
     (propagated-inputs
      `(("python-flask" ,python-flask)
        ("python-babel" ,python-babel)
@@ -986,14 +992,14 @@ dispatching systems can be built.")
 (define-public python-zope-interface
   (package
     (name "python-zope-interface")
-    (version "4.6.0")
+    (version "4.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.interface" version))
        (sha256
         (base32
-         "1rgh2x3rcl9r0v0499kf78xy86rnmanajf4ywmqb943wpk50sg8v"))))
+         "0r9kvb1q3lxrdhxabliv9nwhjsdmn1n0vcjv93rlqkyb7yyh24gx"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-zope-event" ,python-zope-event)))
@@ -1011,14 +1017,14 @@ conforming to a given API or contract.")
 (define-public python-zope-exceptions
   (package
     (name "python-zope-exceptions")
-    (version "4.0.8")
+    (version "4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.exceptions" version))
        (sha256
         (base32
-         "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl"))))
+         "04bjskwas17yscl8bs3l44maxspw1gdji0zcmr499fs420y9r9az"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))                ; circular dependency with zope.testrunner
@@ -1036,20 +1042,14 @@ that have uses outside of the Zope framework.")
 (define-public python-zope-testing
   (package
     (name "python-zope-testing")
-    (version "4.6.2")
+    (version "4.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.testing" version))
        (sha256
         (base32
-         "0iiq54hjhkk2gpvzfjac70vyn4r0kw0ngvicshxbdwrkgf2gjq3g"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Remove pre-compiled .pyc files backup files from source.
-           (for-each delete-file (find-files "." "(\\.pyc|~)$"))
-           #t))))
+         "1sh3c3i0m8n8fnhqiry0bk3rr356i56ry7calmn57s1pvv8yhsyn"))))
     (build-system python-build-system)
     (home-page "https://pypi.org/project/zope.testing/")
     (synopsis "Zope testing helpers")
@@ -1063,25 +1063,23 @@ forms, HTTP servers, regular expressions, and more.")
 (define-public python-zope-testrunner
   (package
     (name "python-zope-testrunner")
-    (version "4.4.9")
+    (version "5.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "zope.testrunner" version ".zip"))
+       (uri (pypi-uri "zope.testrunner" version))
        (sha256
         (base32
-         "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1"))))
+         "0w3q66cy4crpj7c0hw0vvvvwf3g931rnvw7wwa20av7yqvv6ajim"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
     (native-inputs
+     `(("python-zope-testing" ,python-zope-testing)))
+    (propagated-inputs
      `(("python-six" ,python-six)
-       ;("python-zope-interface" ,python-zope-interface)
        ("python-zope-exceptions" ,python-zope-exceptions)
-       ("python-zope-testing" ,python-zope-testing)
-       ("unzip" ,unzip)))
-    (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+       ("python-zope-interface" ,python-zope-interface)))
     (home-page "https://pypi.org/project/zope.testrunner/")
     (synopsis "Zope testrunner script")
     (description "Zope.testrunner provides a script for running Python
@@ -1089,26 +1087,25 @@ tests.")
     (license license:zpl2.1)))
 
 (define-public python2-zope-testrunner
-  (let ((base (package-with-python2 python-zope-testrunner)))
-    (package
-      (inherit base)
-      (native-inputs
-       (append (package-native-inputs base)
-               `(("python2-subunit" ,python2-subunit)
-                 ("python2-mimeparse" ,python2-mimeparse)))))))
+  (package-with-python2 python-zope-testrunner))
 
 (define-public python-zope-i18nmessageid
   (package
     (name "python-zope-i18nmessageid")
-    (version "4.0.3")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.i18nmessageid" version))
        (sha256
         (base32
-         "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"))))
+         "0ndhn4w1qgwkfbwf9vm2bgq418z5g0wmfsgl0d9nz62cd0mi8d4m"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-zope-testrunner" ,python-zope-testrunner)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
     (home-page "https://pypi.org/project/zope.i18nmessageid/")
     (synopsis "Message identifiers for internationalization")
     (description "Zope.i18nmessageid provides facilities for declaring
@@ -1121,25 +1118,24 @@ internationalized messages within program source text.")
 (define-public python-zope-schema
   (package
     (name "python-zope-schema")
-    (version "4.4.2")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.schema" version))
        (sha256
         (base32
-         "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank"))))
+         "0q93j0x52a42khw12al90jw2bk0wly3jwghql3a25zpwwxvn24ya"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.event.
     (propagated-inputs
      `(("python-zope-event" ,python-zope-event)
-       ("python-zope-exceptions" ,python-zope-exceptions)
        ("python-zope-interface" ,python-zope-interface)))
     (native-inputs
-     `(("python-zope-testing" ,python-zope-testing)
-       ("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
+       ("python-zope-testing" ,python-zope-testing)
+       ("python-zope-testrunner" ,python-zope-testrunner)))
     (home-page "https://pypi.org/project/zope.schema/")
     (synopsis "Zope data schemas")
     (description "Zope.scheme provides extensions to zope.interface for
@@ -1152,18 +1148,22 @@ defining data schemas.")
 (define-public python-zope-configuration
   (package
     (name "python-zope-configuration")
-    (version "4.0.3")
+    (version "4.3.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "zope.configuration" version))
               (sha256
                (base32
-                "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n"))))
+                "1qb88764fd7nkkmqv7fl9bxd1jirynkg5vbqkpqdiffnkxzp85kf"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
+    (native-inputs
+     `(("python-zope-testing" ,python-zope-testing)
+       ("python-zope-testrunner" ,python-zope-testrunner)))
     (propagated-inputs
      `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
+       ("python-zope-interface" ,python-zope-interface)
        ("python-zope-schema" ,python-zope-schema)))
     (home-page "https://pypi.org/project/zope.configuration/")
     (synopsis "Zope Configuration Markup Language")
@@ -1177,17 +1177,19 @@ Markup Language.")
 (define-public python-zope-proxy
   (package
     (name "python-zope-proxy")
-    (version "4.1.6")
+    (version "4.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.proxy" version))
        (sha256
         (base32
-         "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4"))))
+         "1g0rcfnbchpvqhm76aixqlz544dawrgmy8gw9zwmijhk6wfl9f26"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
+    (native-inputs
+     `(("python-zope-testrunner" ,python-zope-testrunner)))
     (propagated-inputs
      `(("python-zope-interface" ,python-zope-interface)))
     (home-page "https://pypi.org/project/zope.proxy/")
@@ -1205,19 +1207,22 @@ brokering, etc.) for which the proxy is responsible.")
 (define-public python-zope-location
   (package
     (name "python-zope-location")
-    (version "4.0.3")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.location" version))
        (sha256
         (base32
-         "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74"))))
+         "1b40pzl8v00d583d3gsxv1qjdw2dhghlgkbgxl3m07d5r3izj857"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
+    (native-inputs
+     `(("python-zope-testrunner" ,python-zope-testrunner)))
     (propagated-inputs
-     `(("python-zope-proxy" ,python-zope-proxy)
+     `(("python-zope-interface" ,python-zope-interface)
+       ("python-zope-proxy" ,python-zope-proxy)
        ("python-zope-schema" ,python-zope-schema)))
     (home-page "https://pypi.org/project/zope.location/")
     (synopsis "Zope location library")
@@ -1231,26 +1236,26 @@ Zope3, which are are special objects that have a structural location.")
 (define-public python-zope-security
   (package
     (name "python-zope-security")
-    (version "4.0.3")
+    (version "5.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zope.security" version))
        (sha256
         (base32
-         "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy"))))
+         "1npfrgnm202v48wavpwn3450dsn7az12lfww95vbhxyjl11f14yb"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner.
     (propagated-inputs
-     `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
+     `(("python-zope-component" ,python-zope-component)
+       ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
+       ("python-zope-interface" ,python-zope-interface)
+       ("python-zope-location" ,python-zope-location)
        ("python-zope-proxy" ,python-zope-proxy)
        ("python-zope-schema" ,python-zope-schema)))
     (native-inputs
-     `(("python-six" ,python-six)
-       ("python-zope-component" ,python-zope-component)
-       ("python-zope-configuration" ,python-zope-configuration)
-       ("python-zope-location" ,python-zope-location)
+     `(("python-zope-configuration" ,python-zope-configuration)
        ("python-zope-testrunner" ,python-zope-testrunner)
        ("python-zope-testing" ,python-zope-testing)))
     (home-page "https://pypi.org/project/zope.security/")
@@ -1260,13 +1265,7 @@ security policies on Python objects.")
     (license license:zpl2.1)))
 
 (define-public python2-zope-security
-  (let ((zope-security (package-with-python2 python-zope-security)))
-    (package (inherit zope-security)
-      (propagated-inputs
-       `(("python2-zope-testrunner" ,python2-zope-testrunner)
-         ,@(alist-delete
-            "python-zope-testrunner"
-            (package-propagated-inputs zope-security)))))))
+  (package-with-python2 python-zope-security))
 
 (define-public python-zope-component
   (package
@@ -1728,20 +1727,22 @@ minimum of WSGI.")
 (define-public python-flask
   (package
     (name "python-flask")
-    (version "1.0.3")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Flask" version))
               (sha256
                (base32
-                "1wxnhjlxwwjhjxmghykjhllpahv5pkdc5hln4ab6nab43s26sz5d"))))
+                "0ljdjgyjn7vh8ic1n1dc2l1cl421i6pr3kx5sz2w5irhyfbg3y8k"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (invoke "python" "-m" "pytest"))))))
+             (setenv "PYTHONPATH" (string-append "./build/lib:"
+                                                 (getenv "PYTHONPATH")))
+             (invoke "pytest" "-vv" "tests"))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (propagated-inputs
@@ -1762,31 +1763,29 @@ presume or force a developer to use a particular tool or library.")
 (define-public python-flask-wtf
   (package
     (name "python-flask-wtf")
-    (version "0.13.1")
+    (version "0.14.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Flask-WTF" version))
        (sha256
         (base32
-         "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990"))))
+         "086pvg2x69n0nczcq7frknfjd8am1zdy8qqpva1sanwb02hf65yl"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'drop-failing-test
+         (replace 'check
            (lambda _
-             ;; FIXME: This file tries resolving an external server, which
-             ;; fails. Try to patch out the offending section instead of
-             ;; deleting the whole thing.
-             (delete-file "tests/test_recaptcha.py")
-             #t)))))
+             (setenv "PYTHONPATH" (string-append "./build/lib:"
+                                                 (getenv "PYTHONPATH")))
+             (invoke "pytest" "-vv"))))))
     (propagated-inputs
      `(("python-flask-babel" ,python-flask-babel)
        ("python-babel" ,python-babel)
        ("python-wtforms" ,python-wtforms)))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/lepture/flask-wtf")
     (synopsis "Simple integration of Flask and WTForms")
     (description "Flask-WTF integrates Flask and WTForms, including CSRF, file
@@ -2167,14 +2166,15 @@ pretty printer and a tree visitor.")
 (define-public python-flask-restful
   (package
     (name "python-flask-restful")
-    (version "0.3.7")
+    (version "0.3.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "Flask-RESTful" version))
+        (patches (search-patches "python-flask-restful-werkzeug-compat.patch"))
         (sha256
          (base32
-          "1a9cbwkr6krryyzq4sd3f415nkkc6dyfls5i3pgyibs94g0hw97q"))))
+          "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay"))))
     (build-system python-build-system)
     (propagated-inputs
       `(("python-aniso8601" ,python-aniso8601)
@@ -2185,8 +2185,7 @@ pretty printer and a tree visitor.")
       `(;; Optional dependency of Flask. Tests need it.
         ("python-blinker" ,python-blinker)
         ("python-mock" ,python-mock) ; For tests
-        ("python-nose" ,python-nose) ; For tests
-        ("python-sphinx" ,python-sphinx)))
+        ("python-nose" ,python-nose)))  ;for tests
     (home-page
       "https://www.github.com/flask-restful/flask-restful/")
     (synopsis
@@ -2303,15 +2302,16 @@ documentation builder.")
 (define-public python-flask-restful-swagger
   (package
     (name "python-flask-restful-swagger")
-    (version "0.19")
+    (version "0.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "flask-restful-swagger" version))
        (sha256
         (base32
-         "16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v"))))
+         "1p66f98b5zpypnnz56pxpbirchqj6aniw6qyrp8h572l0dn9xlvq"))))
     (build-system python-build-system)
+    (arguments '(#:tests? #f))          ;no tests
     (propagated-inputs
      `(("python-flask-restful" ,python-flask-restful)))
     (home-page "https://github.com/rantav/flask-restful-swagger")
@@ -2392,7 +2392,7 @@ on the command line.")
 (define-public python-flask-login
   (package
     (name "python-flask-login")
-    (version "0.4.1")
+    (version "0.5.0")
     (source
      (origin
        (method git-fetch)
@@ -2401,25 +2401,18 @@ on the command line.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rj0qwyxapxnp84fi4lhmvh3d91fdiwz7hibw77x3d5i72knqaa9"))))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'avoid-yanc
-           ;; Work around '.nosetests-real: error: no such option: --with-yanc'.
-           (lambda _
-             (setenv "NOCOLOR" "set")
-             #t)))))
+        (base32 "11ac924w0y4m0kf3mxnxdlidy88jfa7njw5yyrq16dvnx4iwd8gg"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-flask" ,python-flask)))
     (native-inputs
      ;; For tests.
      `(("python-blinker" ,python-blinker)
+       ("python-coverage" ,python-coverage)
        ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-pep8" ,python-pep8)
+       ("python-pycodestyle" ,python-pycodestyle)
        ("python-pyflakes" ,python-pyflakes)
+       ("python-pytest" ,python-pytest)
        ("python-semantic-version" ,python-semantic-version)
        ("python-werkzeug" ,python-werkzeug)))
     (home-page "https://github.com/maxcountryman/flask-login")
@@ -2606,14 +2599,14 @@ itself.")
 (define-public python-flask-migrate
   (package
   (name "python-flask-migrate")
-  (version "2.0.3")
+  (version "2.5.3")
   (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "Flask-Migrate" version))
       (sha256
         (base32
-          "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk"))))
+          "1vip9ww6l18dxffjsggm83k71zkvihxpnhaswpv8klh95s6517d6"))))
   (build-system python-build-system)
   (propagated-inputs
    `(("python-flask" ,python-flask)
@@ -2628,9 +2621,6 @@ Alembic")
 for Flask programs that are using @code{python-alembic}.")
   (license license:expat)))
 
-(define-public python2-flask-migrate
-  (package-with-python2 python-flask-migrate))
-
 (define-public python-genshi
   (package
     (name "python-genshi")
@@ -2783,14 +2773,14 @@ List.  Forked from and using the same API as the publicsuffix package.")
 (define-public python-werkzeug
   (package
     (name "python-werkzeug")
-    (version "0.14.1")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "werkzeug" version))
+       (uri (pypi-uri "Werkzeug" version))
        (sha256
         (base32
-         "0z2m4snn1vc9518r2vzgdj1nc90kcgi60wijvd29yvcp85ypmzf3"))))
+         "15kh0z61klp62mrc1prka13xsshxn0rsp1j1s2964iw86yisi6qn"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -2803,7 +2793,8 @@ List.  Forked from and using the same API as the publicsuffix package.")
     (propagated-inputs
      `(("python-requests" ,python-requests)))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-timeout" ,python-pytest-timeout)))
     (home-page "https://www.palletsprojects.org/p/werkzeug/")
     (synopsis "Utilities for WSGI applications")
     (description "One of the most advanced WSGI utility modules.  It includes a
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6a191f6f64..945b89fe80 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -70,6 +70,7 @@
 ;;; Copyright © 2020 Riku Viitanen <riku.viitanen@protonmail.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 sirgazil <sirgazil@zoho.com>
+;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -129,6 +130,7 @@
   #:use-module (gnu packages openstack)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-check)
@@ -170,6 +172,237 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public python-tenacity
+  (package
+    (name "python-tenacity")
+    (version "6.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "tenacity" version))
+              (sha256
+               (base32
+                "1j36v9fcpmmd4985ix0cwnvcq71rkrn5cjiiv0id9vkl4kpxh0gv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-sphinx" ,python-sphinx)
+       ("python-tornado" ,python-tornado)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "pytest")
+                      #t)))))
+    (home-page "https://github.com/jd/tenacity")
+    (synopsis "Retrying library for python")
+    (description "Tenacity is a general-purpose python library to simplify the
+task of adding retry behavior to just about anything.")
+    (license license:asl2.0)))
+
+(define-public python-colorlog
+  (package
+    (name "python-colorlog")
+    (version "4.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "colorlog" version))
+              (sha256
+               (base32
+                "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      ;; Extend PYTHONPATH so the built package will be found.
+                      (setenv "PYTHONPATH"
+                              (string-append (getcwd) "/build/lib:"
+                                             (getenv "PYTHONPATH")))
+                      (invoke "pytest" "-p" "no:logging")
+                      #t)))))
+    (home-page "https://github.com/borntyping/python-colorlog")
+    (synopsis "Log formatting with colors for python")
+    (description "The @code{colorlog.ColoredFormatter} is a formatter for use
+with Python's logging module that outputs records using terminal colors.")
+    (license license:expat)))
+
+(define-public python-pyprind
+  (package
+    (name "python-pyprind")
+    (version "2.11.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "PyPrind" version))
+              (sha256
+               (base32
+                "0xg6m5hr33h9bdlrr42kc58jm2m87a9zsagy7n2m4n407d2snv64"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-psutil" ,python-psutil)))
+    (home-page "https://github.com/rasbt/pyprind")
+    (synopsis "Python Progress Bar and Percent Indicator Utility")
+    (description "The PyPrind (Python Progress Indicator) module provides a
+progress bar and a percentage indicator object that let you track the progress
+of a loop structure or other iterative computation.")
+    (license license:bsd-3)))
+
+(define-public python-gphoto2
+  (package
+    (name "python-gphoto2")
+    (version "2.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "gphoto2" version))
+              (sha256
+               (base32
+                "118zm25c8mlajfl0pzssnwz4b8lamj9dgymla9rn4nla7l244a0r"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgphoto2" ,libgphoto2)))
+    (home-page "https://github.com/jim-easterbrook/python-gphoto2")
+    (synopsis "Python interface to libgphoto2")
+    (description "@code{python-gphoto2} is a comprehensive Python interface
+(or binding) to @code{libgphoto2}.  It is built using @code{SWIG} to
+automatically generate the interface code.")
+    (license license:gpl3+)))
+
+(define-public python-colour
+  (package
+    (name "python-colour")
+    (version "0.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "colour" version))
+              (sha256
+               (base32
+                "1visbisfini5j14bdzgs95yssw6sm4pfzyq1n3lfvbyjxw7i485g"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-d2to1" ,python-d2to1)))
+    (home-page "https://github.com/vaab/colour")
+    (synopsis "Convert and manipulate various color representations")
+    (description "Pythonic way to manipulate color representations (HSL, RVB,
+web, X11, ...).")
+    (license license:expat)))
+
+(define-public python-d2to1
+  (package
+    (name "python-d2to1")
+    (version "0.2.12.post1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "d2to1" version))
+              (sha256
+               (base32
+                "09fq7pq1z8d006xh5z75rm2lk61v6yn2xhy53z4gsgibhqb2vvs9"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/embray/d2to1")
+    (synopsis "Allows for distutils2-like setup.cfg files as package metadata
+in python")
+    (description "The python package d2to1 (the d is for distutils) allows
+using distutils2-like setup.cfg files for a package's metadata with a
+distribute/setuptools setup.py script.")
+    (license license:bsd-2)))
+
+(define-public python-rawkit
+  (package
+    (name "python-rawkit")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "rawkit" version))
+              (sha256
+               (base32
+                "0vrhrpr70i61y5q5ysk341x1539ff1q1k82g59zq69lv16s0f76s"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-mock" ,python-mock)))
+    (inputs
+     `(("libraw" ,libraw)))
+    (home-page "https://rawkit.readthedocs.io")
+    (synopsis "Ctypes-based LibRaw binding for Python")
+    (description "The rawkit package provides two modules:  rawkit and libraw.
+The rawkit module provides a high-level Pythonic interface for developing raw
+photos, while the libraw module provides a CTypes based interface for
+interacting with the low-level LibRaw C APIs.")
+    (license license:expat)))
+
+(define-public python-easygui
+  (package
+    (name "python-easygui")
+    (version "0.98.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "easygui" version))
+              (sha256
+               (base32
+                "1zmvmwgxyzvm83818skhn8b4wrci4kmnixaax8q3ia5cn7xrmj6v"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-tkinter" ,python "tk")))
+    (home-page "https://github.com/robertlugg/easygui")
+    (synopsis "GUI programming module for Python")
+    (description "EasyGUI is a module for very simple, very easy GUI
+programming in Python.  EasyGUI is different from other GUI generators in that
+EasyGUI is NOT event-driven.  Instead, all GUI interactions are invoked by
+simple function calls.")
+    (license license:bsd-3)))
+
+(define-public python-pymediainfo
+  (package
+    (name "python-pymediainfo")
+    (version "4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pymediainfo" version))
+       (sha256
+        (base32
+         "0mhpxs7vlqx8w75z93dy7nnvx89kwfdjkla03l19an15rlyqyspd"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)
+       ("python-pytest" ,python-pytest)))
+    (inputs
+     `(("libmediainfo" ,libmediainfo)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-libmediainfo
+           (lambda _
+             (substitute* "pymediainfo/__init__.py"
+               (("libmediainfo.so.0")
+                (string-append (assoc-ref %build-inputs "libmediainfo")
+                               "/lib/libmediainfo.so.0")))
+             #t))
+         (replace 'check
+           (lambda _
+             ;; Extend PYTHONPATH so the built package will be found.
+             (setenv "PYTHONPATH"
+                     (string-append (getcwd) "/build/lib:"
+                                    (getenv "PYTHONPATH")))
+             ;; Skip the only failing test "test_parse_url"
+             (invoke "pytest" "-vv" "-k" "not test_parse_url")
+             #t)))))
+    (home-page
+     "https://github.com/sbraz/pymediainfo")
+    (synopsis
+     "Python wrapper for the mediainfo library")
+    (description
+     "Python wrapper for the mediainfo library to access the technical and tag
+data for video and audio files.")
+    (license license:expat)))
+
 (define-public python-psutil
   (package
     (name "python-psutil")
@@ -1819,14 +2052,14 @@ from git information.
 (define-public python-pyrsistent
   (package
     (name "python-pyrsistent")
-    (version "0.14.11")
+    (version "0.15.7")
     (home-page "https://github.com/tobgu/pyrsistent")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pyrsistent" version))
               (sha256
                (base32
-                "1qkh74bm296mp5g3r11lgsksr6bh4w1bf8pji4nmxdlfj542ga1w"))))
+                "103j63g6lb5dfspph96zxjdpnq9h991kazd4f09ddgkpxpivbiyd"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-hypothesis" ,python-hypothesis)
@@ -2596,13 +2829,13 @@ logic-free templating system Mustache.")
 (define-public python-joblib
   (package
     (name "python-joblib")
-    (version "0.13.0")
+    (version "0.14.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "joblib" version))
               (sha256
                (base32
-                "0612nazad8dxmn3xghfrmjax6456l4xy6hn9cngs7vydi14ds7v5"))))
+                "1j464w137w6s367gl697j1l63g52akydrxgv4czlck36ynjfwc06"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -6146,29 +6379,52 @@ interfaces in an easy and portable manner.")
 (define-public python-networkx
   (package
     (name "python-networkx")
-    (version "2.2")
+    (version "2.4")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "networkx" version ".zip"))
+       (uri (pypi-uri "networkx" version))
        (sha256
-        (base32 "12swxb15299v9vqjsq4z8rgh5sdhvpx497xwnhpnb0gynrx6zra5"))))
+        (base32 "0r2wr7aqay9fwjrgk35fkjzk8lvvb4i4df7ndaqzkr4ndw5zzx7q"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (invoke "pytest" "-vv" "--pyargs" "networkx")
+                          (format #t "test suite not run~%"))
+                      #t)))))
     ;; python-decorator is needed at runtime.
     (propagated-inputs
      `(("python-decorator" ,python-decorator)))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("unzip" ,unzip)))
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://networkx.github.io/")
     (synopsis "Python module for creating and manipulating graphs and networks")
     (description
       "NetworkX is a Python package for the creation, manipulation, and study
 of the structure, dynamics, and functions of complex networks.")
+    (properties `((python2-variant . ,(delay python2-networkx))))
     (license license:bsd-3)))
 
+;; NetworkX 2.2 is the last version with support for Python 2.
 (define-public python2-networkx
-  (package-with-python2 python-networkx))
+  (let ((base (package-with-python2 (strip-python2-variant python-networkx))))
+    (package
+      (inherit base)
+      (version "2.2")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "networkx" version ".zip"))
+                (sha256
+                 (base32
+                  "12swxb15299v9vqjsq4z8rgh5sdhvpx497xwnhpnb0gynrx6zra5"))))
+      (arguments
+       `(#:python ,python-2))
+      (native-inputs
+       `(("python-nose" ,python2-nose)
+         ("unzip" ,unzip))))))
 
 (define-public python-datrie
   (package
@@ -6265,25 +6521,13 @@ SVG, EPS, PNG and terminal output.")
 (define-public python-seaborn
   (package
     (name "python-seaborn")
-    (version "0.9.0")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "seaborn" version))
        (sha256
-        (base32 "0bqysi3fxfjl1866m5jq8z7mynhqbqnikim74dmzn8539iwkzj3n"))
-       (patches
-        (list (origin
-                (method url-fetch)
-                ;; This has already been merged, but there is no new
-                ;; release including this patch.  It fixes problems
-                ;; with axis rotation that would lead to test
-                ;; failures.
-                (uri "https://patch-diff.githubusercontent.com/raw/mwaskom/seaborn/pull/1716.diff")
-                (sha256
-                 (base32
-                  "1lm870z316n9ivsyr86hpk1gxaraw0mrjvq42lqsm0znhjdp9q9w"))
-                (file-name "seaborn-0.9.0-axis-rotation.patch"))))))
+        (base32 "1ffbms4kllihfycf6j57dziq4imgdjw03sqgifh5wzcd2d743zjr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -6296,12 +6540,6 @@ SVG, EPS, PNG and terminal output.")
                (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
                (setenv "DISPLAY" ":1")
                #t)))
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; test_cbar_ticks fails probably because of matplotlib's
-             ;; expectation of using an older version of FreeType.
-             (delete-file "seaborn/tests/test_matrix.py")
-             #t))
          (replace 'check (lambda _ (invoke "pytest" "seaborn") #t)))))
     (propagated-inputs
      `(("python-pandas" ,python-pandas)
@@ -6318,10 +6556,21 @@ SVG, EPS, PNG and terminal output.")
 graphics in Python.  It is built on top of matplotlib and tightly integrated
 with the PyData stack, including support for numpy and pandas data structures
 and statistical routines from scipy and statsmodels.")
+    (properties `((python2-variant . ,(delay python2-seaborn))))
     (license license:bsd-3)))
 
+;; 0.9.1 is the last release with support for Python 2.
 (define-public python2-seaborn
-  (package-with-python2 python-seaborn))
+  (let ((base (package-with-python2 (strip-python2-variant python-seaborn))))
+    (package
+      (inherit base)
+      (version "0.9.1")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "seaborn" version))
+                (sha256
+                 (base32
+                  "1bjnshjz4d6z3vrwfwall1a3yh8h3a1h47c3fg7458x9426alcys")))))))
 
 (define-public python-mpmath
   (package
@@ -9688,19 +9937,19 @@ ISO 8859, etc.).")
 (define-public python-editor
   (package
   (name "python-editor")
-  (version "0.5")
+  (version "1.0.4")
   (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "python-editor" version))
       (sha256
         (base32
-          "1ypnpgvzpkbwsg4rdvy4sy51j28b5xq9v8pnkwxncn07vqz06p7n"))))
+          "0yrjh8w72ivqxi4i7xsg5b1vz15x8fg51xra7c3bgfyxqnyadzai"))))
   (build-system python-build-system)
-  (home-page
-    "https://github.com/fmoo/python-editor")
-  (synopsis
-    "Programmatically open an editor, capture the result")
+  (arguments
+   '(#:tests? #f))   ;XXX: needs a TTY and an editor
+  (home-page "https://github.com/fmoo/python-editor")
+  (synopsis "Programmatically open an editor, capture the result")
   (description
     "python-editor is a library that provides the editor module for
 programmatically interfacing with your system's $EDITOR.")
@@ -10311,24 +10560,17 @@ own code, responding to click events and updating clock every second.")
 (define-public python-tblib
   (package
     (name "python-tblib")
-    (version "1.3.2")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "tblib" version))
-              (sha256 (base32
-                       "1rsg8h069kqgncyv8fgzyj6qflk6j10cb78pa5jk34ixwq044vj3"))))
+              (sha256
+               (base32
+                "0i136n5pydmd202254wzrdbspkw0br0c9mbxhfs9hpfbahvyx6r2"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'adjust-tests
-           (lambda _
-             (when (which "python3")
-               ;; Adjust the example output to match that of Python 3.7:
-               ;; <https://github.com/ionelmc/python-tblib/issues/36>.
-               (substitute* "README.rst"
-                 (("Exception\\('fail',") "Exception('fail'"))
-               #t)))
          (replace 'check
            (lambda _
              ;; Upstream runs tests after installation and the package itself
@@ -10411,13 +10653,13 @@ graphviz.")
 (define-public python-gevent
   (package
     (name "python-gevent")
-    (version "1.3.7")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "gevent" version))
               (sha256
                (base32
-                "0b0fr04qdk1p4sniv87fh8z5psac60x01pv054kpgi94520g81iz"))
+                "1lchr4akw2jkm5v4kz7bdm4wv3knkfhbfn9vkkz4s5yrkcxzmdqy"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -10444,10 +10686,7 @@ graphviz.")
                       #t))
                   (add-before 'build 'do-not-use-bundled-sources
                     (lambda* (#:key inputs #:allow-other-keys)
-                      (setenv "CONFIG_SHELL" (which "bash"))
-                      (setenv "LIBEV_EMBED" "false")
-                      (setenv "CARES_EMBED" "false")
-                      (setenv "EMBED" "false")
+                      (setenv "GEVENTSETUP_EMBED" "0")
 
                       ;; Prevent building bundled libev.
                       (substitute* "setup.py"
@@ -10462,15 +10701,65 @@ graphviz.")
                                           (string-prefix? "python" item)))
                           ((python)
                            (setenv "C_INCLUDE_PATH"
-                                   (string-append greenlet "/" python)))))
+                                   (string-append greenlet "/" python ":"
+                                                  (or (getenv "C_INCLUDE_PATH")
+                                                      ""))))))
                       #t))
-                  (add-before 'check 'skip-timer-test
+                  (add-before 'check 'pretend-to-be-CI
                     (lambda _
-                      ;; XXX: Skip 'TestTimerResolution', which appears to be
-                      ;; unreliable.
-                      (substitute* "src/greentest/test__core_timer.py"
-                                   (("not greentest.RUNNING_ON_CI") "False"))
+                      ;; A few tests are skipped due to network constraints or
+                      ;; get longer timeouts when running in a CI environment.
+                      ;; Piggy-back on that, as we need the same adjustments.
+                      (setenv "TRAVIS" "1")
+                      (setenv "APPVEYOR" "1")
                       #t))
+                  (add-before 'check 'adjust-tests
+                    (lambda _
+                      (let ((disabled-tests
+                             '(;; These tests rely on networking which is not
+                               ;; available in the build container.
+                               "test_urllib2net.py"
+                               "test__server.py"
+                               "test__server_pywsgi.py"
+                               "test_socket.py"
+                               "test__socket.py"
+                               "test__socket_ssl.py"
+                               "test__socket_dns.py"
+                               "test__socket_dns6.py"
+                               "test___example_servers.py"
+                               "test__getaddrinfo_import.py"
+                               "test__examples.py"
+                               "test_httplib.py"
+                               "test_https.py"
+                               "test_urllib2_localnet.py"
+                               "test_ssl.py"
+                               "test__ssl.py"
+                               ;; XXX: These tests borrow functionality from the
+                               ;; Python builtin 'test' module, but it is not
+                               ;; installed with the Guix Python distribution.
+                               "test_smtpd.py"
+                               "test_wsgiref.py"
+                               "test_urllib2.py"
+                               "test_thread.py"
+                               "test_threading.py"
+                               "test__threading_2.py"
+                               ;; FIXME: test_patch_twice_warning_events fails for
+                               ;; no apparent reason.  Needs more investigation!
+                               "test__monkey.py"
+                               ;; These tests rely on KeyboardInterrupts which do not
+                               ;; work inside the build container for some reason
+                               ;; (lack of controlling terminal?).
+                               "test_subprocess.py"
+                               "test__issues461_471.py"
+                               ;; TODO: Patch out the tests that use getprotobyname, etc
+                               ;; instead of disabling all the tests from these files.
+                               "test__all__.py"
+                               "test___config.py"
+                               "test__execmodules.py")))
+                        (call-with-output-file "skipped_tests.txt"
+                          (lambda (port)
+                            (display (string-join disabled-tests "\n") port)))
+                        #t)))
                   (replace 'check
                     (lambda _
                       ;; Make sure the build directory is on PYTHONPATH.
@@ -10479,21 +10768,23 @@ graphviz.")
                                (getenv "PYTHONPATH") ":"
                                (getcwd) "/build/"
                                (car (scandir "build" (cut string-prefix? "lib." <>)))))
-                      (with-directory-excursion "src/greentest"
-                        ;; XXX: Many tests require network access.  Instead we only
-                        ;; run known-good tests.  Unfortunately we cannot use
-                        ;; recursion here since this directory also contains
-                        ;; Python-version-specific subfolders.
-                        (apply invoke "python" "testrunner.py" "--config"
-                               "known_failures.py"
-                               (scandir "." (cut regexp-exec
-                                                 (make-regexp "test_+(subprocess|core)")
-                                                 <>)))))))))
+
+                      ;; Use the build daemons configured number of workers.
+                      (setenv "NWORKERS" (number->string (parallel-job-count)))
+
+                      (invoke "python" "-m" "gevent.tests" "--config"
+                              "known_failures.py" "--ignore" "skipped_tests.txt"))))))
     (propagated-inputs
      `(("python-greenlet" ,python-greenlet)
        ("python-objgraph" ,python-objgraph)))
     (native-inputs
-     `(("python-six" ,python-six)))
+     `(("python-six" ,python-six)
+
+       ;; For tests.
+       ("python-dnspython" ,python-dnspython)
+       ("python-psutil" ,python-psutil)
+       ("python-zope.event" ,python-zope-event)
+       ("python-zope.interface" ,python-zope-interface)))
     (inputs
      `(("c-ares" ,c-ares)
        ("libev" ,libev)))
@@ -10510,7 +10801,7 @@ to provide a high-level synchronous API on top of the libev event loop.")
                (strip-python2-variant python-gevent))))
     (package
       (inherit base)
-      (native-inputs `(,@(package-native-inputs python-gevent)
+      (native-inputs `(,@(package-native-inputs base)
                        ("python-mock" ,python2-mock))))))
 
 (define-public python-fastimport
@@ -11274,25 +11565,19 @@ characters, mouse support, and auto suggestions.")
 (define-public python-jedi
   (package
     (name "python-jedi")
-    (version "0.15.1")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "jedi" version))
+       (patches (search-patches "python-jedi-deleted-variables.patch"))
        (sha256
         (base32
-         "0bp4pxhsynaarbvzblsn5x32lzp29svy3sxfy8i6m5iwz9s9r1ds"))))
+         "1mb5kmrk9bkc3kwzx02j62cdan1jqd92q1z7h7wi9d30jg5p3j6m"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-file-completion-test
-           ;; A single parameterized test currently fail (see:
-           ;; https://github.com/davidhalter/jedi/issues/1395).  Remove it.
-           (lambda _
-             (substitute* "test/test_api/test_completion.py"
-               ((".*'example.py', 'rb\"' \\+ join\\('\\.\\.'.*") ""))
-             #t))
          (replace 'check
            (lambda _
              (setenv "HOME" "/tmp")
@@ -11353,14 +11638,14 @@ etc.")
 (define-public python-stem
   (package
     (name "python-stem")
-    (version "1.7.1")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "stem" version))
        (sha256
         (base32
-         "18lc95pmc7i089nlsb06dsxyjl5wbhxfqgdxbjcia35ndh8z7sn9"))))
+         "1hk8alc0r4m669ggngdfvryndd0fbx0w62sclcmg55af4ak8xd50"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -11439,8 +11724,7 @@ and/or Xon/Xoff.  The port is accessed in RAW mode.")
                                     "/include/SDL2"))
              #t)))))
     (native-inputs
-     `(("git" ,git)
-       ("pkg-config" ,pkg-config)
+     `(("pkg-config" ,pkg-config)
        ("python-cython" ,python-cython)))
     (inputs
      `(("gstreamer" ,gstreamer)
@@ -11678,13 +11962,13 @@ Python to manipulate OpenDocument 1.2 files.")
 (define-public python-natsort
   (package
     (name "python-natsort")
-    (version "5.4.1")
+    (version "7.0.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "natsort" version))
               (sha256
                (base32
-                "0i732amg6yzkx4g4c9j09jmqq39q377x9cl2nbkm5hax2c2v0wxf"))))
+                "1ksqfai72dbcfbwx43pxl658j59mx2rvqypjy1fk0ax2qd6lccx6"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build utils)
@@ -11729,9 +12013,17 @@ command @command{natsort} that exposes this functionality in the command line.")
     (license license:expat)
     (properties `((python2-variant . ,(delay python2-natsort))))))
 
+;; Natsort 6.x are the last versions with support for Python 2.
 (define-public python2-natsort
   (let ((base (package-with-python2 (strip-python2-variant python-natsort))))
     (package (inherit base)
+             (version "6.2.1")
+             (source (origin
+                       (method url-fetch)
+                       (uri (pypi-uri "natsort" version))
+                       (sha256
+                        (base32
+                         "1mc9hbh6fv76xyz13frm7dgi05cf74f9j5wvcyjiy5234gylz565"))))
              (native-inputs
               `(("python2-pathlib" ,python2-pathlib)
                 ,@(package-native-inputs base))))))
@@ -14305,34 +14597,35 @@ ignoring formatting changes.")
 (define-public python-tqdm
   (package
     (name "python-tqdm")
-    (version "4.19.6")
+    (version "4.43.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "tqdm" version))
          (sha256
            (base32
-             "1pw0ngm0zn9papdmkwipi3yih5c3di6d0w849bdmrraq4d2d9h2y"))))
+             "093v4c2x5hpigv47zvyxl8wh10y2yd2gvz3l9vchn0zsp8hv2pzk"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (add-installed-pythonpath inputs outputs)
+                      ;; This invokation is taken from tox.ini.
+                      (invoke "nosetests" "--ignore-files=\"test_perf.py\""
+                              "-d" "-v" "tqdm/"))))))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-nose" ,python-nose)
-       ("python-coverage" ,python-coverage)))
+     `(("python-nose" ,python-nose)))
     (home-page "https://github.com/tqdm/tqdm")
     (synopsis "Fast, extensible progress meter")
     (description
       "Make loops show a progress bar on the console by just wrapping any
 iterable with @code{|tqdm(iterable)|}.  Offers many options to define
 design and layout.")
-    (license (list license:mpl2.0 license:expat))
-    (properties `((python2-variant . ,(delay python2-tqdm))))))
+    (license (list license:mpl2.0 license:expat))))
 
 (define-public python2-tqdm
-  (let ((tqdm (package-with-python2
-                (strip-python2-variant python-tqdm))))
-    (package (inherit tqdm)
-      (native-inputs `(("python2-functools32" ,python2-functools32)
-                        ,@(package-native-inputs tqdm))))))
+  (package-with-python2 python-tqdm))
 
 (define-public python-pkginfo
   (package
@@ -15568,14 +15861,14 @@ time-based (TOTP) passwords.")
 (define-public python-parso
   (package
     (name "python-parso")
-    (version "0.5.2")
+    (version "0.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "parso" version))
        (sha256
         (base32
-         "1qgvrkpma7vylrk047mxxvqd66nwqk978n3ig2w8iz9m3bgjbksm"))))
+         "0mr1j4ijqnrihz1yap34g6i8vjldg5lz814sz4v0d8pbqvh5jmhc"))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (build-system python-build-system)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 2d70e133d5..81989f68c3 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2515,168 +2515,157 @@ color-related widgets.")
       (license license:lgpl3+))))
 
 (define-public python-shiboken-2
-  (let ((revision "1")
-        ;; Pinned to branches with support for qt 5.11.3
-        (commit "4018787a3cc01d632fdca7891ac8aa9487110c26"))
-    (package
-      (name "python-shiboken-2")
-      (version (git-version "v5.11.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               ;; The latest versions of Shiboken live in the pyside repo.
-               ;; There is another standalone repo only for Shiboken
-               ;; but it is outdated
-               (url "https://code.qt.io/pyside/pyside-setup")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5"))))
-      (build-system cmake-build-system)
-      (inputs
-       `(("clang-toolchain" ,clang-toolchain-6)
-         ("libxml2" ,libxml2)
-         ("libxslt" ,libxslt)
-         ("python-wrapper" ,python-wrapper)
-         ("qtbase" ,qtbase)
-         ("qtxmlpatterns" ,qtxmlpatterns)))
-      (arguments
-       `(#:tests? #f
-         ;; FIXME: Building tests fails
-         #:configure-flags '("-DBUILD_TESTS=off")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'use-shiboken-dir-only
-             (lambda _ (chdir "sources/shiboken2") #t))
-           (add-before 'configure 'set-build-env
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((llvm (assoc-ref inputs "clang-toolchain")))
-                 (setenv "CLANG_INSTALL_DIR" llvm)
-                 #t))))))
-      (home-page "https://wiki.qt.io/Qt_for_Python")
-      (synopsis
-       "Shiboken generates bindings for C++ libraries using CPython source code")
-      (description
-       "Shiboken generates bindings for C++ libraries using CPython source code")
-      (license
-       (list
-        ;; The main code is GPL3 or LGPL3.
-        ;; Examples are BSD-3.
-        license:gpl3
-        license:lgpl3
-        license:bsd-3)))))
+  (package
+    (name "python-shiboken-2")
+    (version "5.12.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.qt.io/official_releases"
+                                  "/QtForPython/pyside2/PySide2-" version
+                                  "-src/pyside-setup-everywhere-src-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "1n45l6xxyxs6cfp2l4rp8qs1c2fyfwyrdxa4qcpwfsqsi51rydsk"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("clang-toolchain" ,clang-toolchain-6)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("python-wrapper" ,python-wrapper)
+       ("qtbase" ,qtbase)
+       ("qtxmlpatterns" ,qtxmlpatterns)))
+    (arguments
+     `(#:tests? #f
+       ;; FIXME: Building tests fails
+       #:configure-flags '("-DBUILD_TESTS=off")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-shiboken-dir-only
+           (lambda _ (chdir "sources/shiboken2") #t))
+         (add-before 'configure 'make-files-writable-and-update-timestamps
+           (lambda _
+             ;; The build scripts need to modify some files in
+             ;; the read-only source directory, and also attempts
+             ;; to create Zip files which fails because the Zip
+             ;; format does not support timestamps before 1980.
+             (let ((circa-1980 (* 10 366 24 60 60)))
+               (for-each (lambda (file)
+                           (make-file-writable file)
+                           (utime file circa-1980 circa-1980))
+                         (find-files ".")))
+             #t))
+         (add-before 'configure 'set-build-env
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((llvm (assoc-ref inputs "clang-toolchain")))
+               (setenv "CLANG_INSTALL_DIR" llvm)
+               #t))))))
+    (home-page "https://wiki.qt.io/Qt_for_Python")
+    (synopsis
+     "Shiboken generates bindings for C++ libraries using CPython source code")
+    (description
+     "Shiboken generates bindings for C++ libraries using CPython source code")
+    (license
+     (list
+      ;; The main code is GPL3 or LGPL3.
+      ;; Examples are BSD-3.
+      license:gpl3
+      license:lgpl3
+      license:bsd-3))))
 
 (define-public python-pyside-2
-  (let ((revision "1")
-        ;; Pinned to branches with support for qt 5.11.3
-        (commit "4018787a3cc01d632fdca7891ac8aa9487110c26"))
-    (package
-      (name "python-pyside-2")
-      (version (git-version "v5.11.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://code.qt.io/pyside/pyside-setup")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5"))))
-      (build-system cmake-build-system)
-      (inputs
-       `(("libcxx" ,libcxx-6)
-         ("libxml2" ,libxml2)
-         ("libxslt" ,libxslt)
-         ("clang-toolchain" ,clang-toolchain-6)
-         ("qtbase" ,qtbase)
-         ("qtdatavis3d" ,qtdatavis3d)
-         ("qtlocation" ,qtlocation)
-         ("qtmultimedia" ,qtmultimedia)
-         ("qtquickcontrols" ,qtquickcontrols)
-         ("qtscript" ,qtscript)
-         ("qtscxml" ,qtscxml)
-         ("qtsensors" ,qtsensors)
-         ("qtspeech" ,qtspeech)
-         ("qtsvg" ,qtsvg)
-         ("qtwebchannel" ,qtwebchannel)
-         ("qtwebsockets" ,qtwebsockets)
-         ("qtx11extras" ,qtx11extras)
-         ("qtxmlpatterns" ,qtxmlpatterns)))
-      (native-inputs
-       `(("cmake" ,cmake)
-         ("python-shiboken-2" ,python-shiboken-2)
-         ("python-wrapper" ,python-wrapper)
-         ("qttools" ,qttools)
-         ("which" ,which)))
-      (arguments
-       `(#:tests? #f
-         ;; FIXME: Building tests fail.
-         #:configure-flags '("-DBUILD_TESTS=FALSE")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'go-to-source-dir
-             (lambda _ (chdir "sources/pyside2") #t))
-           (add-before 'configure 'set-clang-dir
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((clang (assoc-ref inputs "clang-toolchain"))
-                     (libcxx (assoc-ref inputs "libcxx")))
-                 (setenv "CLANG_INSTALL_DIR" clang)
-                 (substitute* "cmake/Macros/PySideModules.cmake"
-                   (("--include-paths=")
-                    (string-append "--include-paths=" libcxx "/include/c++/v1:")))
-                 #t))))))
-      (home-page "https://wiki.qt.io/Qt_for_Python")
-      (synopsis
-       "The Qt for Python product enables the use of Qt5 APIs in Python applications")
-      (description
-       "The Qt for Python product enables the use of Qt5 APIs in Python
+  (package
+    (name "python-pyside-2")
+    (version (package-version python-shiboken-2))
+    (source (package-source python-shiboken-2))
+    (build-system cmake-build-system)
+    (inputs
+     `(("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("clang-toolchain" ,clang-toolchain-6)
+       ("qtbase" ,qtbase)
+       ("qtdatavis3d" ,qtdatavis3d)
+       ("qtlocation" ,qtlocation)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtscript" ,qtscript)
+       ("qtscxml" ,qtscxml)
+       ("qtsensors" ,qtsensors)
+       ("qtspeech" ,qtspeech)
+       ("qtsvg" ,qtsvg)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebsockets" ,qtwebsockets)
+       ("qtx11extras" ,qtx11extras)
+       ("qtxmlpatterns" ,qtxmlpatterns)))
+    (native-inputs
+     `(("cmake" ,cmake-minimal)
+       ("python-shiboken-2" ,python-shiboken-2)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("which" ,which)))
+    (arguments
+     `(#:tests? #f
+       ;; FIXME: Building tests fail.
+       #:configure-flags
+       (list "-DBUILD_TESTS=FALSE"
+             (string-append "-DPYTHON_EXECUTABLE="
+                            (assoc-ref %build-inputs "python")
+                            "/bin/python"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'go-to-source-dir
+           (lambda _ (chdir "sources/pyside2") #t))
+         (add-before 'configure 'set-clang-dir
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "clang-toolchain")))
+               (setenv "CLANG_INSTALL_DIR" clang)
+               #t))))))
+    (home-page "https://wiki.qt.io/Qt_for_Python")
+    (synopsis
+     "The Qt for Python product enables the use of Qt5 APIs in Python applications")
+    (description
+     "The Qt for Python product enables the use of Qt5 APIs in Python
 applications.  It lets Python developers utilize the full potential of Qt,
 using the PySide2 module.  The PySide2 module provides access to the
 individual Qt modules such as QtCore, QtGui,and so on.  Qt for Python also
 comes with the Shiboken2 CPython binding code generator, which can be used to
 generate Python bindings for your C or C++ code.")
-      (license (list
-                license:lgpl3
-                ;;They state that:
-                ;; this file may be used under the terms of the GNU General
-                ;; Public License version 2.0 or (at your option) the GNU
-                ;; General Public license version 3 or any later version
-                ;; approved by the KDE Free Qt Foundation.
-                ;; Thus, it is currently v2 or v3, but no "+".
-                license:gpl3
-                license:gpl2)))))
+    (license (list
+              license:lgpl3
+              ;;They state that:
+              ;; this file may be used under the terms of the GNU General
+              ;; Public License version 2.0 or (at your option) the GNU
+              ;; General Public license version 3 or any later version
+              ;; approved by the KDE Free Qt Foundation.
+              ;; Thus, it is currently v2 or v3, but no "+".
+              license:gpl3
+              license:gpl2))))
 
 (define-public python-pyside-2-tools
-  (let ((revision "1")
-        ;; Pinned to branches with support for qt 5.11.3
-        (commit "f1b775537e7fbd718516749583b2abf1cb6adbce"))
-    (package
-      (name "python-pyside-2-tools")
-      (version (git-version "v5.11.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://code.qt.io/pyside/pyside-tools")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1w2g5afvww9r89wmdm9jx8sz67x4bzy9difkh72n4c73ya1n91ry"))))
-      (build-system cmake-build-system)
-      (inputs
-       `(("python-pyside-2" ,python-pyside-2)
-         ("python-shiboken-2" ,python-shiboken-2)
-         ("qtbase" ,qtbase)))
-      (arguments
-       `(#:tests? #f
-         #:configure-flags '("-DBUILD_TESTS=off")))
-      (home-page "https://wiki.qt.io/Qt_for_Python")
-      (synopsis
-       "Contains command line tools for PySide2")
-      (description
-       "Contains lupdate, rcc and uic tools for PySide2")
-      (license license:gpl2))))
+  (package
+    (name "python-pyside-2-tools")
+    (version (package-version python-shiboken-2))
+    (source (package-source python-shiboken-2))
+    (build-system cmake-build-system)
+    (inputs
+     `(("python-pyside-2" ,python-pyside-2)
+       ("python-shiboken-2" ,python-shiboken-2)
+       ("qtbase" ,qtbase)))
+    (native-inputs
+     `(("python" ,python-wrapper)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list "-DBUILD_TESTS=off"
+             (string-append "-DPYTHON_EXECUTABLE="
+                            (assoc-ref %build-inputs "python")
+                            "/bin/python"))
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'go-to-source-dir
+                    (lambda _ (chdir "sources/pyside2-tools") #t)))))
+    (home-page "https://wiki.qt.io/Qt_for_Python")
+    (synopsis
+     "Contains command line tools for PySide2")
+    (description
+     "Contains lupdate, rcc and uic tools for PySide2")
+    (license license:gpl2)))
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 98b0cc7044..26d8eba3b6 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -43,8 +43,8 @@
     (version "0.92.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.tuxfamily.org/" name "/"
-                                  name "_" version ".tar.xz"))
+              (uri (string-append "http://download.tuxfamily.org/librep/"
+                                  "librep_" version ".tar.xz"))
               (sha256
                (base32
                 "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8"))))
@@ -65,7 +65,7 @@
      (list (search-path-specification
             (variable "REP_DL_LOAD_PATH")
             (files '("lib/rep")))))
-    (home-page "http://sawfish.wikia.com/wiki/Librep")
+    (home-page "https://sawfish.fandom.com/wiki/Librep")
     (synopsis "Lisp system for sawfish")
     (description
      "Librep is a dialect of Lisp, designed to be used both as an extension
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 3605cef7a4..10a24199a8 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -1008,7 +1008,7 @@ The core is 12 builtin special forms and 33 builtin functions.")
   (package
     (name "gauche")
     (version "0.9.9")
-    (home-page "http://practical-scheme.net/gauche/index.html")
+    (home-page "https://practical-scheme.net/gauche/index.html")
     (source
      (origin
        (method url-fetch)
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 7bf85bf53e..608cb400c5 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
@@ -650,6 +650,14 @@ The bindings are written in pure Scheme using Guile's foreign function
 interface.")
     (license lgpl3+)))
 
+(define-public guile3.0-sdl2
+  (package
+    (inherit guile-sdl2)
+    (name "guile3.0-sdl2")
+    (native-inputs
+     `(("guile" ,guile-3.0)
+       ("pkg-config" ,pkg-config)))))
+
 (define-public sdl2-cs
   (let ((commit "1a3556441e1394eb0b5d46aeb514b8d1090b93f8"))
     (package
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 9ae9e6aaaa..bfcf3d39ef 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -489,7 +489,7 @@ particularly useful for embedded systems, such as wireless routers.")
        (base32
         "1q0p1l72pq9k3bi7a366j2rishv7dzzkg3i6r2npsfg7cnnidbsn"))))
     (build-system gnu-build-system)
-    (home-page "http://www.lysator.liu.se/liboop/")
+    (home-page "https://www.lysator.liu.se/liboop/")
     (synopsis "Event loop library")
     (description "Liboop is a low-level event loop management library for
 POSIX-based operating systems.  It supports the development of modular,
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 4537f3eaea..d8e77184ca 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -3179,7 +3179,7 @@ Shiny).  The @code{DataTables} library has been included in this R package.")
                (base32
                 "13b89fhg1nx7zds82a0biz847ixphg9byf5zl2cw9kab6s56v1bd"))))
     (build-system r-build-system)
-    (home-page "http://www.rforge.net/base64enc")
+    (home-page "https://www.rforge.net/base64enc")
     (synopsis "Tools for Base64 encoding")
     (description
      "This package provides tools for handling Base64 encoding.  It is more
@@ -4328,7 +4328,7 @@ within a category based on their density using quasirandom noise.")
                (base32
                 "0hy89bwv7jixlg91li1fywa77916am2whqp1m1fx1khd45g44581"))))
     (build-system r-build-system)
-    (home-page "http://www.cbs.dtu.dk/~eklund/beeswarm/")
+    (home-page "https://www.cbs.dtu.dk/~eklund/beeswarm/")
     (synopsis "Implementation of bee swarm plots")
     (description
      "This package provides an implementation of bee swarm plots.  The bee
@@ -4563,7 +4563,7 @@ mixture models.")
     (build-system r-build-system)
     (inputs
      `(("gfortran" ,gfortran)))
-    (home-page "http://www-stat.stanford.edu/~hastie/Papers/#LARS")
+    (home-page "https://web.stanford.edu/~hastie/Papers/LARS/")
     (synopsis "Least angle regression software")
     (description
      "Least Angle Regression (\"LAR\") is a model selection algorithm; a
@@ -4698,7 +4698,7 @@ models, generalized linear models and model-based clustering.")
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
-    (home-page "http://www.stat.washington.edu/mclust/")
+    (home-page "https://www.stat.washington.edu/mclust/")
     (synopsis "Gaussian mixture modelling for model-based clustering etc.")
     (description
      "This package provides Gaussian finite mixture models fitted via EM
@@ -5499,7 +5499,7 @@ and the corresponding decision threshold.")
        ("r-magrittr" ,r-magrittr)
        ("r-tibble" ,r-tibble)
        ("r-rlang" ,r-rlang)))
-    (home-page "http://forcats.tidyverse.org")
+    (home-page "https://forcats.tidyverse.org")
     (synopsis "Tools for working with factors")
     (description "This package provides helpers for reordering factor
 levels (including moving specified levels to front, ordering by first
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index afa32e99b4..77f0aa326d 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -30,7 +30,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.3.4")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
@@ -38,7 +38,7 @@
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "025fhfqzcl5qd38zak8485pd67iqkzsf6frm02cl25s3ggv2f0p4"))
+                "1p9y943kd09pxmsaahbdml2mn2qlwbx23hvbsm1sqbbm8ma9ai8c"))
               (modules '((guix build utils)))
               ;; Delete bundled ("vendored") free software source code.
               (snippet '(begin
@@ -95,6 +95,7 @@
        ("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun)
        ("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter)
        ("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go)
+       ("go-github-com-willf-bloom" ,go-github-com-willf-bloom)
 
        ;; For tests
        ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 9a35e7edce..b7758f106d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -661,14 +661,14 @@ and Octave.  TeXmacs is completely extensible via Guile.")
 (define-public scintilla
   (package
     (name "scintilla")
-    (version "4.3.0")
+    (version "4.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (let ((v (apply string-append (string-split version #\.))))
               (string-append "https://www.scintilla.org/scintilla" v ".tgz")))
        (sha256
-        (base32 "0c52b2wg0y55kv3w7rnzp0nbd1yn2kksy0w8bjdp3gkl0v28wwx5"))))
+        (base32 "0d8ssl0d8r6bslbzd507l9c5g8mwn1zriak3fnf85936pdmkhq9h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index d0b8dd6af4..61e52ba22c 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@@ -50,14 +50,14 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.2.6")
+    (version "0.4.2.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1i766s211nrbjvwvkd2375mjsbbc28yrg46564rbx6w46cj10005"))))
+               "0v82ngwwmmcb7i9563bgsmrjy6xp83xyhqhaljygd0pkvlsxi886"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 27c7804029..c0f8130de4 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1048,9 +1048,6 @@ with performance and scalability in mind.  It operates exclusively on streams,
 allowing to handle large objects with a small memory footprint.")
     (license license:bsd-3)))
 
-(define-public python2-gitdb
-  (package-with-python2 python-gitdb))
-
 (define-public python-gitpython
   (package
     (name "python-gitpython")
@@ -1092,9 +1089,6 @@ either a pure Python implementation, or the faster, but more resource intensive
 @command{git} command implementation.")
     (license license:bsd-3)))
 
-(define-public python2-gitpython
-  (package-with-python2 python-gitpython))
-
 (define-public shflags
   (package
     (name "shflags")
@@ -2100,36 +2094,6 @@ supports a large number of version control systems: Git, Subversion,
 Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
     (license license:gpl2+)))
 
-(define-public git-annex-remote-hubic
-  (package
-    (name "git-annex-remote-hubic")
-    (version "0.3.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/Schnouki/git-annex-remote-hubic.git")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "16y9sk67hfi17h9n2kkffyabfccksh5rab40hhk69v6cxmbpn2sx"))))
-    (build-system python-build-system)
-    (arguments `(#:python ,python-2))
-    (native-inputs
-     `(;; for the tests
-       ("python2-six" ,python2-six)))
-    (propagated-inputs
-     `(("python2-dateutil" ,python2-dateutil)
-       ("python2-futures" ,python2-futures)
-       ("python2-rauth" ,python2-rauth)
-       ("python2-swiftclient" ,python2-swiftclient)))
-    (home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
-    (synopsis "Use hubic as a git-annex remote")
-    (description
-     "This package allows you to use your hubic account as a \"special
-repository\" with git-annex.")
-    (license license:gpl3+)))
-
 (define-public git-annex-remote-rclone
   (package
     (name "git-annex-remote-rclone")
@@ -2474,3 +2438,60 @@ interrupted, published, and collaborated on while in progress.")
 videos, datasets, and graphics with text pointers inside Git, while storing the
 file contents on a remote server.")
     (license license:expat)))
+
+(define-public tla
+  (package
+    (name "gnu-arch")
+    (version "1.3.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ftp.gnu.org/old-gnu/gnu-arch/"
+                                  "tla-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; In tar 1.32, '--preserve' is ambiguous and leads to an
+                  ;; error, so address that.
+                  (substitute* "src/tla/libarch/archive.c"
+                    (("\"--preserve\"")
+                     "\"--preserve-permissions\""))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (chdir "src")
+
+                        (mkdir "=build")
+                        (chdir "=build")
+
+                        ;; For libneon's 'configure' script.
+                        ;; XXX: There's a bundled copy of neon.
+                        (setenv "CONFIG_SHELL" (which "sh"))
+
+                        (invoke "../configure" "--prefix" out
+                                "--config-shell" (which "sh")
+                                "--with-posix-shell" (which "sh")
+                                "--with-cc" "gcc")))))
+
+
+       ;; There are build failures when building in parallel.
+       #:parallel-build? #f
+       #:parallel-tests? #f
+
+       #:test-target "test"))
+    (native-inputs
+     `(("which" ,which)))
+    (synopsis "Historical distributed version-control system")
+    (description
+     "GNU Arch, aka. @code{tla}, was one of the first free distributed
+version-control systems (DVCS).  It saw its last release in 2006.  This
+package is provided for users who need to recover @code{tla} repositories and
+for historians.")
+    (home-page "https://www.gnu.org/software/gnu-arch/")
+    (license license:gpl2)))                      ;version 2 only
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 49003d7310..d18944fcbd 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -123,6 +123,7 @@
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages pretty-print)
@@ -511,6 +512,90 @@ H.264 (MPEG-4 AVC) video streams.")
 (@command{mkvmerge}).")
     (license license:gpl2)))
 
+(define-public straw-viewer
+  (package
+    (name "straw-viewer")
+    (version "0.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/trizen/straw-viewer")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "067j8wdfy29bi5ahky10xzzs8cr3mn95wl4kyqqjvjzri77a25j3"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ("perl-test-pod" ,perl-test-pod)))
+    (inputs
+     `(("perl-data-dump" ,perl-data-dump)
+       ("perl-json" ,perl-json)
+       ("perl-libwww" ,perl-libwww)
+       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
+       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
+       ("perl-mozilla-ca" ,perl-mozilla-ca)
+       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
+       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+       ("xdg-utils" ,xdg-utils)
+
+       ;; Some videos play without youtube-dl, but others silently fail to.
+       ("youtube-dl" ,youtube-dl)))
+
+       ;; Required only when building the graphical interface (--gtk).
+       ;;("perl-file-sharedir" ,perl-file-sharedir)
+    (arguments
+     `(#:modules ((guix build perl-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'refer-to-inputs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/WWW/StrawViewer.pm"
+               (("'youtube-dl'")
+                (format #f "'~a/bin/youtube-dl'"
+                        (assoc-ref inputs "youtube-dl"))))
+             (substitute* "bin/gtk-straw-viewer"
+               (("'xdg-open'")
+                (format #f "'~a/bin/xdg-open'"
+                        (assoc-ref inputs "xdg-utils"))))
+             #t))
+         (add-after 'install 'install-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (sharedir (string-append out "/share")))
+               (install-file "share/gtk-straw-viewer.desktop"
+                             (string-append sharedir "/applications"))
+               (install-file "share/icons/gtk-straw-viewer.png"
+                             (string-append sharedir "/pixmaps"))
+               #t)))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (site-dir (string-append out "/lib/perl5/site_perl/"))
+                    (lib-path (getenv "PERL5LIB")))
+               (for-each (cut wrap-program <>
+                              `("PERL5LIB" ":" prefix (,lib-path ,site-dir)))
+                         (find-files bin-dir))
+               #t))))))
+    (synopsis
+     "Light-weight application for searching and streaming videos from YouTube")
+    (description
+     "Straw-viewer searches for YouTube videos using @uref{https://invidio.us/,
+invidio.us} and plays them locally in a native media player like @command{vlc}
+or @command{mpv}.
+
+You can search for videos, playlists, and/or channels.  The videos are streamed
+directly to the player at the best chosen resolution and with closed captions if
+available.")
+    ;; XXX Add #:module-build-flags '("--gtk") dependencies and this sentence.
+    ;; Both a command-line and a graphical interface are available.
+    (home-page "https://github.com/trizen/youtube-viewer")
+    (license license:perl-license)))
+
 (define-public x265
   (package
     (name "x265")
@@ -2546,7 +2631,7 @@ making @dfn{screencasts}.")
        (list "-DWITH_QT5=TRUE")
        #:tests? #f))                    ; no test suite
     ;; Using HTTPS causes part of the page to be displayed improperly.
-    (home-page "http://www.maartenbaert.be/simplescreenrecorder/")
+    (home-page "https://www.maartenbaert.be/simplescreenrecorder/")
     (synopsis "Screen recorder")
     (description "SimpleScreenRecorder is an easy to use screen recorder with
 a graphical user interface.  It supports recording the entire screen, or a
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 84da93b4cc..5d0da82ec7 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -7194,7 +7194,7 @@ the Internet to a local directory, building recursively all directories,
 getting HTML, images, and other files from the server to your computer.
 
 HTTrack arranges the original site's relative link-structure.  Simply open
-a page of the @code{mirrored} website in your browser, and you can browse the
+a page of the @emph{mirrored} website in your browser, and you can browse the
 site from link to link, as if you were viewing it online.  HTTrack can also
 update an existing mirrored site, and resume interrupted downloads.
 
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index b48a116201..4fd1817c49 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -35,6 +35,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
@@ -73,7 +74,8 @@
        ("libtiff" ,libtiff)
        ("mesa" ,mesa)
        ("webkitgtk" ,webkitgtk)
-       ("sdl" ,sdl)))
+       ("sdl" ,sdl)
+       ("xdg-utils" ,xdg-utils)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
@@ -91,7 +93,15 @@
        (list (string-append "LDFLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))
        ;; No 'check' target.
-       #:tests? #f))
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'refer-to-inputs
+           (lambda _
+             (substitute* "src/unix/utilsx11.cpp"
+               (("wxExecute\\(xdg_open \\+")
+                (string-append "wxExecute(\"" (which "xdg-open") "\"")))
+             #t)))))
     (home-page "https://www.wxwidgets.org/")
     (synopsis "Widget toolkit for creating graphical user interfaces")
     (description
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 13c8167be0..5d8d2a30f5 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -1673,7 +1673,7 @@ that strives for correctness and simplicity.")
     (version "2013.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
+              (uri (string-append "https://repo1.maven.org/maven2/com/sun/msv/"
                                   "datatype/xsd/xsdlib/" version "/xsdlib-"
                                   version "-sources.jar"))
               (sha256
@@ -1686,7 +1686,8 @@ that strives for correctness and simplicity.")
        #:jdk ,icedtea-8))
     (inputs
      `(("java-xerces" ,java-xerces)))
-    (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
+    (home-page (string-append "https://web.archive.org/web/20161127144537/"
+                              "https://msv.java.net//"))
     (synopsis "Sun Multi-Schema Validator")
     (description "Xsdlib contains an implementation of sun.com.msv, an XML
 validator.")
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index d97316512f..7791780dfc 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1670,7 +1670,9 @@ match from local for any action outbound
            ;; Create mbox and spool directories.
            (mkdir-p "/var/mail")
            (mkdir-p "/var/spool/smtpd")
-           (chmod "/var/spool/smtpd" #o711))))))
+           (chmod "/var/spool/smtpd" #o711)
+           (mkdir-p "/var/spool/mail")
+           (chmod "/var/spool/mail" #o711))))))
 
 (define %opensmtpd-pam-services
   (list (unix-pam-service "smtpd")))
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 59b895d60b..618dd95969 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
@@ -313,7 +313,7 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
              (with-output-to-file #$lease-file
                (lambda _ (display ""))))
            ;; Validate the config.
-           (invoke
+           (invoke/quiet
             #$(file-append package "/sbin/dhcpd") "-t" "-cf"
             #$config-file))))))
 
diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm
index 140a11856a..c90984387e 100644
--- a/gnu/services/nfs.scm
+++ b/gnu/services/nfs.scm
@@ -360,31 +360,31 @@
                 #t))
            (respawn? #f)))))
 
+(define %nfs-activation
+  (with-imported-modules '((guix build utils))
+    #~(begin
+        (use-modules (guix build utils))
+
+        ;; directory containing monitor list
+        (mkdir-p "/var/lib/nfs/sm")
+        ;; Needed for client recovery tracking
+        (mkdir-p "/var/lib/nfs/v4recovery")
+        (let ((user (getpw "nobody")))
+          (chown "/var/lib/nfs"
+                 (passwd:uid user)
+                 (passwd:gid user))
+          (chown "/var/lib/nfs/v4recovery"
+                 (passwd:uid user)
+                 (passwd:gid user)))
+        #t)))
+
 (define nfs-service-type
   (service-type
    (name 'nfs)
    (extensions
     (list
      (service-extension shepherd-root-service-type nfs-shepherd-services)
-     (service-extension activation-service-type
-                        (const #~(begin
-                                   (use-modules (guix build utils))
-                                   (system* "mount" "-t" "nfsd"
-                                            "nfsd" "/proc/fs/nfsd")
-
-                                   (mkdir-p "/var/lib/nfs")
-                                   ;; directory containing monitor list
-                                   (mkdir-p "/var/lib/nfs/sm")
-                                   ;; Needed for client recovery tracking
-                                   (mkdir-p "/var/lib/nfs/v4recovery")
-                                   (let ((user (getpw "nobody")))
-                                     (chown "/var/lib/nfs"
-                                            (passwd:uid user)
-                                            (passwd:gid user))
-                                     (chown "/var/lib/nfs/v4recovery"
-                                            (passwd:uid user)
-                                            (passwd:gid user)))
-                                   #t)))
+     (service-extension activation-service-type (const %nfs-activation))
      (service-extension etc-service-type
                         (lambda (config)
                           `(("exports"
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index d093f60c8d..fa5c34d5af 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -99,6 +100,7 @@
             nginx-configuration-server-names-hash-bucket-size
             nginx-configuration-server-names-hash-bucket-max-size
             nginx-configuration-modules
+            nginx-configuration-global-directives
             nginx-configuration-extra-content
             nginx-configuration-file
 
@@ -529,6 +531,8 @@
   (server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
                                      (default #f))
   (modules nginx-configuration-modules (default '()))
+  (global-directives nginx-configuration-global-directives
+                     (default '((events . ()))))
   (extra-content nginx-configuration-extra-content
                  (default ""))
   (file          nginx-configuration-file         ;#f | string | file-like
@@ -552,6 +556,13 @@ of index files."
 (define (emit-load-module module)
   (list "load_module " module ";\n"))
 
+(define emit-global-directive
+  (match-lambda
+    ((key . (? list? alist))
+     (format #f "~a { ~{~a~}}~%" key (map emit-global-directive alist)))
+    ((key . value)
+     (format #f "~a ~a;~%" key value))))
+
 (define emit-nginx-location-config
   (match-lambda
     (($ <nginx-location-configuration> uri body)
@@ -626,12 +637,14 @@ of index files."
                  server-names-hash-bucket-size
                  server-names-hash-bucket-max-size
                  modules
+                 global-directives
                  extra-content)
    (apply mixed-text-file "nginx.conf"
           (flatten
            "user nginx nginx;\n"
            "pid " run-directory "/pid;\n"
            "error_log " log-directory "/error.log info;\n"
+           (map emit-global-directive global-directives)
            (map emit-load-module modules)
            "http {\n"
            "    client_body_temp_path " run-directory "/client_body_temp;\n"
@@ -657,8 +670,7 @@ of index files."
            (map emit-nginx-upstream-config upstream-blocks)
            (map emit-nginx-server-config server-blocks)
            extra-content
-           "\n}\n"
-           "events {}\n"))))
+           "\n}\n"))))
 
 (define %nginx-accounts
   (list (user-group (name "nginx") (system? #t))
diff --git a/gnu/system.scm b/gnu/system.scm
index c43ae15044..023007a0e6 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -138,6 +138,7 @@
             local-host-aliases
             %root-account
             %setuid-programs
+            %sudoers-specification
             %base-packages
             %base-firmware))
 
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index 298918b3a7..a50fb1dbca 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -99,8 +99,8 @@ match from any for local action inbound
 
           (test-assert "mbox is empty"
             (marionette-eval
-             '(and (file-exists? "/var/mail")
-                   (not (file-exists? "/var/mail/root")))
+             '(and (file-exists? "/var/spool/mail")
+                   (not (file-exists? "/var/spool/mail/root")))
              marionette))
 
           (test-eq "accept an email"
@@ -140,16 +140,21 @@ match from any for local action inbound
                              (ice-9 rdelim))
 
                 (define (queue-empty?)
-                  (eof-object?
-                   (read-line
-                    (open-input-pipe
-                     (string-append #$(file-append opensmtpd "/sbin/smtpctl")
-                                    " show queue")))))
-
-                (let wait ()
-                  (if (queue-empty?)
-                      (file-exists? "/var/mail/root")
-                      (begin (sleep 1) (wait)))))
+                  (let* ((pipe (open-pipe* OPEN_READ
+                                           #$(file-append opensmtpd
+                                                          "/sbin/smtpctl")
+                                           "show" "queue"))
+                         (line (read-line pipe)))
+                    (close-pipe pipe)
+                    (eof-object? line)))
+
+                (let wait ((n 20))
+                  (cond ((queue-empty?)
+                         (file-exists? "/var/spool/mail/root"))
+                        ((zero? n)
+                         (error "root mailbox didn't show up"))
+                        (else
+                         (sleep 1) (wait (- n 1))))))
              marionette))
 
           (test-end)
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index d1234442bb..e90b247883 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -270,11 +270,11 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
   (dhcpd-configuration
    (config-file minimal-dhcpd-v4-config-file)
    (version "4")
-   (interfaces '("eth0"))))
+   (interfaces '("ens3"))))
 
 (define %dhcpd-os
   (simple-operating-system
-   (static-networking-service "eth0" "192.168.1.4"
+   (static-networking-service "ens3" "192.168.1.4"
                               #:netmask "255.255.255.0"
                               #:gateway "192.168.1.1"
                               #:name-servers '("192.168.1.2" "192.168.1.3"))
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index 014d049ab5..00109b752e 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -101,6 +101,10 @@
             (marionette-eval
              '(begin
                 (use-modules (gnu services herd))
+
+                ;; Ensure 'rpcinfo' can be found below.
+                (setenv "PATH" "/run/current-system/profile/bin")
+
                 (start-service 'rpcbind-daemon))
              marionette))
 
@@ -192,18 +196,6 @@
 
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
-          (define (wait-for-file file)
-            ;; Wait until FILE  exists in the guest
-            (marionette-eval
-             `(let loop ((i 10))
-                (cond ((file-exists? ,file)
-                       #t)
-                      ((> i 0)
-                       (sleep 1)
-                       (loop (- i 1)))
-                      (else
-                       (error "File didn't show up: " ,file))))
-             marionette))
 
           (mkdir #$output)
           (chdir #$output)
@@ -227,22 +219,8 @@
              marionette))
 
           (test-assert "nscd is listening on its socket"
-            (marionette-eval
-             ;; XXX: Work around a race condition in nscd: nscd creates its
-             ;; PID file before it is listening on its socket.
-             '(let ((sock (socket PF_UNIX SOCK_STREAM 0)))
-                (let try ()
-                  (catch 'system-error
-                    (lambda ()
-                      (connect sock AF_UNIX "/var/run/nscd/socket")
-                      (close-port sock)
-                      (format #t "nscd is ready~%")
-                      #t)
-                    (lambda args
-                      (format #t "waiting for nscd...~%")
-                      (usleep 500000)
-                      (try)))))
-             marionette))
+            (wait-for-unix-socket "/var/run/nscd/socket"
+                                  marionette))
 
           (test-assert "network is up"
             (marionette-eval
diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm
index 096580022f..24e60d9d9d 100644
--- a/gnu/tests/rsync.scm
+++ b/gnu/tests/rsync.scm
@@ -64,6 +64,10 @@ PORT."
             (marionette-eval
              '(begin
                 (use-modules (gnu services herd))
+
+                ;; Make sure the 'rsync' command is found.
+                (setenv "PATH" "/run/current-system/profile/bin")
+
                 (start-service 'rsync))
              marionette))