summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-01-23 23:11:11 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-01-23 23:11:11 +0100
commit12d8adbfc0f32a1905cfc3aaa2cfff68ee46a333 (patch)
tree183ae8f3e96ce0ef2961a81d96c27e5e1f2bc36b
parentbd0f5f24913b52df29f1f26321ed1095d08877b5 (diff)
parentdb0e9fe42c419c8c8010dbad6080ed66028c03ec (diff)
downloadguix-12d8adbfc0f32a1905cfc3aaa2cfff68ee46a333.tar.gz
Merge branch 'staging' into core-updates
-rw-r--r--gnu/installer/newt/user.scm4
-rw-r--r--gnu/local.mk7
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/crypto.scm7
-rw-r--r--gnu/packages/databases.scm8
-rw-r--r--gnu/packages/disk.scm5
-rw-r--r--gnu/packages/dns.scm15
-rw-r--r--gnu/packages/emacs-xyz.scm6
-rw-r--r--gnu/packages/engineering.scm7
-rw-r--r--gnu/packages/fonts.scm98
-rw-r--r--gnu/packages/fpga.scm21
-rw-r--r--gnu/packages/freedesktop.scm10
-rw-r--r--gnu/packages/gimp.scm10
-rw-r--r--gnu/packages/gnome.scm14
-rw-r--r--gnu/packages/gnunet.scm36
-rw-r--r--gnu/packages/golang.scm7
-rw-r--r--gnu/packages/gsasl.scm31
-rw-r--r--gnu/packages/gtk.scm74
-rw-r--r--gnu/packages/guile-xyz.scm100
-rw-r--r--gnu/packages/guile.scm8
-rw-r--r--gnu/packages/haskell-xyz.scm68
-rw-r--r--gnu/packages/mail.scm8
-rw-r--r--gnu/packages/maths.scm6
-rw-r--r--gnu/packages/mes.scm21
-rw-r--r--gnu/packages/ocaml.scm42
-rw-r--r--gnu/packages/password-utils.scm84
-rw-r--r--gnu/packages/patches/evolution-data-server-libical-compat.patch36
-rw-r--r--gnu/packages/patches/libmemcached-build-with-gcc7.patch28
-rw-r--r--gnu/packages/patches/libvnc-CVE-2018-20750.patch44
-rw-r--r--gnu/packages/patches/libvnc-CVE-2019-15681.patch23
-rw-r--r--gnu/packages/patches/mes-remove-store-name.patch121
-rw-r--r--gnu/packages/patches/udiskie-no-appindicator.patch72
-rw-r--r--gnu/packages/perl.scm34
-rw-r--r--gnu/packages/pulseaudio.scm26
-rw-r--r--gnu/packages/simulation.scm68
-rw-r--r--gnu/packages/text-editors.scm43
-rw-r--r--gnu/packages/virtualization.scm8
-rw-r--r--gnu/packages/vnc.scm (renamed from gnu/packages/tigervnc.scm)67
-rw-r--r--gnu/packages/web.scm5
-rw-r--r--gnu/packages/xdisorg.scm41
-rw-r--r--gnu/services/dns.scm1
-rw-r--r--gnu/tests.scm2
-rw-r--r--guix/build-system/ocaml.scm28
43 files changed, 833 insertions, 515 deletions
diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm
index b747886c55..b01d52172b 100644
--- a/gnu/installer/newt/user.scm
+++ b/gnu/installer/newt/user.scm
@@ -168,9 +168,9 @@ a thunk, if the confirmation doesn't match PASSWORD, and return its result."
         (try-again))))
 
 (define (run-root-password-page)
-  ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the
-  ;; system administrator account.
   (define password
+    ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+    ;; system administrator account.
     (run-input-page (G_ "Please choose a password for the system \
 administrator (\"root\").")
                     (G_ "System administrator password")
diff --git a/gnu/local.mk b/gnu/local.mk
index fb9f506f31..63a3fcffbe 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -493,7 +493,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/tex.scm				\
   %D%/packages/textutils.scm			\
   %D%/packages/text-editors.scm			\
-  %D%/packages/tigervnc.scm			\
   %D%/packages/time.scm				\
   %D%/packages/tls.scm				\
   %D%/packages/tmux.scm				\
@@ -509,6 +508,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/video.scm			\
   %D%/packages/vim.scm				\
   %D%/packages/virtualization.scm		\
+  %D%/packages/vnc.scm				\
   %D%/packages/vpn.scm				\
   %D%/packages/vulkan.scm			\
   %D%/packages/w3m.scm				\
@@ -843,6 +843,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
   %D%/packages/patches/evolution-data-server-locales.patch	\
+  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exiv2-CVE-2017-14860.patch		\
   %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
@@ -1124,6 +1125,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/libutils-add-includes.patch		\
   %D%/packages/patches/libutils-remove-damaging-includes.patch	\
   %D%/packages/patches/libvdpau-va-gl-unbundle.patch		\
+  %D%/packages/patches/libvnc-CVE-2018-20750.patch		\
+  %D%/packages/patches/libvnc-CVE-2019-15681.patch		\
   %D%/packages/patches/libvpx-CVE-2016-2818.patch		\
   %D%/packages/patches/libvpx-use-after-free-in-postproc.patch	\
   %D%/packages/patches/libxslt-generated-ids.patch		\
@@ -1162,7 +1165,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
-  %D%/packages/patches/mes-remove-store-name.patch		\
+  %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
   %D%/packages/patches/mescc-tools-boot.patch			\
   %D%/packages/patches/meson-for-build-rpath.patch		\
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 434b9a9c58..84a65b8492 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -958,14 +958,14 @@ precious backup space.
 (define-public burp
   (package
     (name "burp")
-    (version "2.3.6")
+    (version "2.3.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/burp/burp-" version
                                   "/burp-" version ".tar.bz2"))
               (sha256
                (base32
-                "101nn30apcbmy9k0wksdf8d4ccw7sfcqzkasgg17a5y332x2imr9"))))
+                "0dm2y76z7pg17kfv6ahmh4mf2r3pg7mlwd69lvmjwssnd9vs1nn5"))))
     (build-system gnu-build-system)
     (inputs
      `(("librsync" ,librsync)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index fde3ba286d..4e761de2ce 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
@@ -238,7 +238,7 @@ the wrong hands.")
 (define-public keyutils
   (package
     (name "keyutils")
-    (version "1.6")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
@@ -246,8 +246,7 @@ the wrong hands.")
         (string-append "https://people.redhat.com/dhowells/keyutils/keyutils-"
                        version ".tar.bz2"))
        (sha256
-        (base32
-         "05bi5ja6f3h3kdi7p9dihlqlfrsmi1wh1r2bdgxc0180xh6g5bnk"))
+        (base32 "1kk4pmyflgplkgxn2bzpc069ph9c9jdd9ikcsyd5pnaimqi5gcf8"))
        (modules '((guix build utils)))
        ;; Create relative symbolic links instead of absolute ones to /lib/*.
        (snippet '(begin
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 52828a6c87..8ba37eeafa 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -337,14 +337,14 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.5.16")
+    (version "1.5.20")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
-        (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5"))))
+        (base32 "1r511qr95q0ywdaql3pdjiwzkfqxhhfzb13ilvl7mznfm4iv1myg"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -370,7 +370,9 @@ applications.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1842s4dxdh21gdr46q4dgxigidcs6dkqnbnqjwb9l8r0bqx5nb10"))))
+                "1842s4dxdh21gdr46q4dgxigidcs6dkqnbnqjwb9l8r0bqx5nb10"))
+              (patches
+               (search-patches "libmemcached-build-with-gcc7.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("memcached" ,memcached)
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index d63ba3e58d..36c527c0c4 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -346,15 +346,14 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
 (define-public gparted
   (package
     (name "gparted")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
                            version "/gparted-" version ".tar.gz"))
        (sha256
-        (base32
-         "0mdvn85jvy72ff7nds3dakx9kzknh8gx1z8i0w2sf970q03qp2z4"))))
+        (base32 "092rgwjh1825fal6v3yafq2wr0i61hh0a2n0j4296zn0zdx7pzp2"))))
     (build-system gnu-build-system)
     (arguments
       ;; Tests require access to paths outside the build container, such
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index e5148d5bc9..7c52722cb6 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -114,7 +114,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
 (define-public isc-bind
   (package
     (name "bind")
-    (version "9.14.9")
+    (version "9.14.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -122,7 +122,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
                     "/bind-" version ".tar.gz"))
               (sha256
                (base32
-                "0g2ph3hlw86yib8hv13qgkb4i84s9zv22r4k6yqlycm2izamwmr9"))))
+                "0nkkc2phkkzwgl922xg41gx5pc5f4safabqslaw3880hwdf8vfaa"))))
     (build-system gnu-build-system)
     (outputs `("out" "utils"))
     (inputs
@@ -680,11 +680,16 @@ synthesis, and on-the-fly re-configuration.")
                 "09ffmqx79lv5psr433x4n946njgsn071b9b7161pcb9bmrqz380c"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags
-       '("-Dmanaged_ta=disabled"      ; we'll manage the DNS root data ourself
-         "-Ddoc=enabled")
+     '(#:configure-flags '("-Ddoc=enabled")
        #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'disable-default-ta
+           (lambda _
+             ;;  Disable the default managed root TA, since we don't have
+             ;;  write access to the keyfile and its directory in store.
+             (substitute* "daemon/lua/sandbox.lua.in"
+               (("^trust_anchors\\.add_file.*") ""))
+             #t))
          (add-after 'build 'build-doc
            (lambda _
              (invoke "ninja" "doc")))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 99e50aa5bf..3359f89bc5 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -3641,7 +3641,7 @@ build jobs.")
 (define-public emacs-company
   (package
     (name "emacs-company")
-    (version "0.9.10")
+    (version "0.9.11")
     (source
      (origin
        (method git-fetch)
@@ -3650,7 +3650,7 @@ build jobs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42"))))
+        (base32 "0x7ag716jp4xb7kmcmr8pqlxx1v0f2gkjx5gx34wxxqfrndwyx8i"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -3671,7 +3671,7 @@ build jobs.")
     (description
      "Company is a modular completion mechanism.  Modules for retrieving
 completion candidates are called back-ends, modules for displaying them are
-front-ends.  Company comes with many back-ends, e.g. @code{company-elisp}.
+front-ends.  Company comes with many back-ends, e.g., @code{company-elisp}.
 These are distributed in separate files and can be used individually.")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index bd611f01f2..663180b57a 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1961,21 +1961,20 @@ simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
 (define-public librepcb
   (package
     (name "librepcb")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.librepcb.org/releases/"
                            version "/librepcb-" version "-source.zip"))
        (sha256
-        (base32
-         "1xgk0r3nxdd2cy7d1k165d005gsngnz1v2wbwivacw7gis0i8ip7"))))
+        (base32 "1ich849dsx2hmcwlwbry4mkg374n940l3hy6srh4qms2rm7vd7x0"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("qttools" ,qttools) ; for lrelease
+     `(("qttools" ,qttools)             ; for lrelease
        ("unzip" ,unzip)))
     (arguments
      `(#:phases
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 1cb8b1c053..358c72f07a 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -862,18 +862,18 @@ Powerline support.")
   (package
     (name "font-adobe-source-code-pro")
     (version "2.030R-ro-1.050R-it")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/adobe-fonts/source-code-pro/archive/"
-                    (regexp-substitute/global
-                     ;; The upstream tag uses "/" between the roman and italic
-                     ;; versions, so substitute our "-" separator here.
-                     #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0arhhsf3i7ss39ykn73d1j8k4n8vx7115xph6jwkd970p1cxvr54"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/adobe-fonts/source-code-pro.git")
+             (commit (regexp-substitute/global
+                      ;; The upstream tag uses "/" between the roman and italic
+                      ;; versions, so substitute our "-" separator here.
+                      #f "R-ro-" version 'pre "R-ro/" 'post))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hc5kflr8xzqgdm0c3gbgb1paygznxmnivkylid69ipc7wnicx1n"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-code-pro")
     (synopsis
@@ -887,18 +887,18 @@ designed to work well in user interface environments.")
   (package
     (name "font-adobe-source-sans-pro")
     (version "2.040R-ro-1.090R-it")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/adobe-fonts/source-sans-pro/archive/"
-                    (regexp-substitute/global
-                     ;; The upstream tag uses "/" between the roman and italic
-                     ;; versions, so substitute our "-" separator here.
-                     #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1wpbhd2idps53ph8rg1mhr3vz4lsgbpjprcq10nliwcxdz9d8lv0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/adobe-fonts/source-sans-pro.git")
+             (commit (regexp-substitute/global
+                      ;; The upstream tag uses "/" between the roman and italic
+                      ;; versions, so substitute our "-" separator here.
+                      #f "R-ro-" version 'pre "R-ro/" 'post))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lzin2hfwidbvhps7shs201p1bpxy6220xmhhprv9fc8bknd4c45"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-sans-pro")
     (synopsis
@@ -912,18 +912,18 @@ work well in user interface (UI) environments.")
   (package
     (name "font-adobe-source-serif-pro")
     (version "2.007R-ro-1.007R-it")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/adobe-fonts/source-serif-pro/archive/"
-                    (regexp-substitute/global
-                     ;; The upstream tag uses "/" between the roman and italic
-                     ;; versions, so substitute our "-" separator here.
-                     #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1sws9k26ldqk375qsigk1zv8cq1xlvadjwvv3dqrcc3qzm1c7hwc"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/adobe-fonts/source-serif-pro.git")
+             (commit (regexp-substitute/global
+                      ;; The upstream tag uses "/" between the roman and italic
+                      ;; versions, so substitute our "-" separator here.
+                      #f "R-ro-" version 'pre "R-ro/" 'post))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vvzfhjpi47m84bzkapylkd5fri8bdm8qng2hiylmmlw0wk4gpas"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-serif-pro")
     (synopsis
@@ -1479,22 +1479,16 @@ formatting.")
 (define-public font-public-sans
   (package
     (name "font-public-sans")
-    (version "1.0.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/uswds/public-sans.git")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "12ccj7ph3pg962d52d3slbvd44gwfm6bb2846dxyf1xc5h2iwhdv"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; remove versions of predecessor font
-                  (delete-file-recursively "fonts/_archive")
-                  #t))))
+    (version "1.008")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/uswds/public-sans.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qhyxbjv1rnydfpqzd18fbiyz75p4sabphy8yj07hyq0hidp5xsf"))))
     (build-system font-build-system)
     (home-page "https://public-sans.digital.gov/")
     (synopsis "Neutral typeface for interfaces, text, and headings")
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 988129f373..46c917b0d5 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Amin Bandali <mab@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -301,14 +301,17 @@ Includes the actual FTDI connector.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.101")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://gtkwave.sourceforge.net/"
-                                  "gtkwave-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1j6capxwgi8aj3sgqg1r7161icni9y8y93g1rl3bzd3s40jcyhsz"))))
+    (version "3.3.103")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "mirror://sourceforge/gtkwave/"
+                                 "gtkwave-" version "/"
+                                 "gtkwave-" version ".tar.gz")
+                  (string-append "http://gtkwave.sourceforge.net/"
+                                 "gtkwave-" version ".tar.gz")))
+       (sha256
+        (base32 "1xzaxqbabj4sb4n10yki5acglx3736pwl3kwlq4k7i96rzvsn9f3"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 7a7eea2d67..07ec16e287 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
 ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd@pantherx.org>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -986,7 +986,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
 (define-public libqmi
   (package
     (name "libqmi")
-    (version "1.22.4")
+    (version "1.24.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -994,7 +994,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
                     "libqmi-" version ".tar.xz"))
               (sha256
                (base32
-                "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc"))))
+                "12licfsszr6qxpg9b2b04qm2glk8d42fcy32zr8jzwrgr7gbl5h3"))))
     (build-system gnu-build-system)
     (inputs
      `(("libgudev" ,libgudev)))
@@ -1472,14 +1472,14 @@ encoding names are iconv-compatible.")
 (define-public udiskie
   (package
     (name "udiskie")
-    (version "1.7.7")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "udiskie" version))
        (sha256
         (base32
-         "121g9dkr7drv9igpdbcbkj59x15mm72rzp3198bp50zj0lr4wbvi"))
+         "0gjjzz0k8dlsk03fl2882lbl88hbv031ww72qj02gr65yph0jqgc"))
        ;; Remove support for the libappindicator library of the
        ;; Unity desktop environment which is not in Guix.
        (patches (search-patches "udiskie-no-appindicator.patch"))))
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index e95251cc79..d9d3f14ced 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 202 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;;
@@ -50,7 +50,7 @@
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.72")
+    (version "0.1.74")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -64,7 +64,7 @@
                                         "/babl-" version ".tar.xz")))
               (sha256
                (base32
-                "0hkagjrnza77aasa1kss5hvy37ndm50y6i7hkdn2z8hzgc4i3qb4"))))
+                "03nfcvy3453xkfvsfcnsfcjf2vg2pin09qnr9jlssdysa1lhnwcs"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -89,7 +89,7 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.18")
+    (version "0.4.20")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/gegl/"
@@ -103,7 +103,7 @@ provided, as well as a framework to add new color models and data types.")
                                         "/gegl-" version ".tar.xz")))
               (sha256
                (base32
-                "0r6akqnrkvxizyhyi8sv40mxm7j4bcwjb6mqjpxy0zzbbfsdyin9"))))
+                "1zrxnxlhn0jmshg4n2m2xlgi886w059ynkiiihm7rpi05fs8pg93"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0be8fcc49e..abcc485b79 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -42,7 +42,7 @@
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
-;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
@@ -6250,7 +6250,8 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
-              (patches (search-patches "evolution-data-server-locales.patch"))
+              (patches (search-patches "evolution-data-server-locales.patch"
+                                       "evolution-data-server-libical-compat.patch"))
               (sha256
                (base32
                 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
@@ -7855,9 +7856,11 @@ world.")
        ("glib-networking" ,glib-networking)
        ("gnome-backgrounds" ,gnome-backgrounds)
        ("gnome-bluetooth" ,gnome-bluetooth)
+       ("gnome-color-manager" ,gnome-color-manager)
        ("gnome-control-center" ,gnome-control-center)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-getting-started-docs" ,gnome-getting-started-docs)
+       ("gnome-initial-setup" ,gnome-initial-setup)
        ("gnome-keyring" ,gnome-keyring)
        ("gnome-menus" ,gnome-menus)
        ("gnome-session" ,gnome-session)
@@ -7866,10 +7869,13 @@ world.")
        ("gnome-shell" ,gnome-shell)
        ("gnome-themes-extra" ,gnome-themes-extra)
        ("gnome-user-docs" ,gnome-user-docs)
+       ("gnome-user-share" ,gnome-user-share)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gvfs" ,gvfs)
        ("mutter" ,mutter)
        ("orca" ,orca)
+       ("rygel" ,rygel)
+       ("sushi" ,sushi)
      ;; GNOME-Core-Utilities
        ("baobab" ,baobab)
        ("cheese" ,cheese)
@@ -7878,6 +7884,7 @@ world.")
        ("evince" ,evince)
        ("file-roller" ,file-roller)
        ("gedit" ,gedit)
+       ; TODO: ("gnome-boxes" ,gnome-boxes)
        ("gnome-calculator" ,gnome-calculator)
        ("gnome-calendar" ,gnome-calendar)
        ("gnome-characters" ,gnome-characters)
@@ -7886,9 +7893,12 @@ world.")
        ("gnome-disk-utility" ,gnome-disk-utility)
        ("gnome-font-viewer" ,gnome-font-viewer)
        ("gnome-maps" ,gnome-maps)
+       ; TODO: ("gnome-music" ,gnome-music)
+       ; TODO: ("gnome-photos" ,gnome-photos)
        ("gnome-screenshot" ,gnome-screenshot)
        ("gnome-system-monitor" ,gnome-system-monitor)
        ("gnome-terminal" ,gnome-terminal)
+       ("gnome-weather" ,gnome-weather)
        ("nautilus" ,nautilus)
        ("simple-scan" ,simple-scan)
        ("totem" ,totem)
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index d026c67992..c36210b4d5 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 ng0 <ng0@n0.is>
@@ -179,31 +179,44 @@ authentication and support for SSL3 and TLS.")
 (define-public gnurl
   (package
    (name "gnurl")
-   (version "7.63.0")
+   (version "7.67.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z"))
             (sha256
              (base32
-              "021b3pdfnqywk5q07y48kxyz7g4jjg35dk3cv0ps0x50qjr4ix33"))))
+              "0ssjz2npr2zjvcpfz9qbaj92xc9ayg8wx4hyl132snl94qr2v670"))))
    (build-system gnu-build-system)
    (outputs '("out"
-              "doc"))                             ; 1.7 MiB of man3 pages
+              "doc"))                             ; 1.8 MiB of man3 pages
    (inputs `(("gnutls" ,gnutls/dane)
-             ("libidn" ,libidn)
+             ("libidn2" ,libidn2)
              ("zlib" ,zlib)))
    (native-inputs
     `(("libtool" ,libtool)
-      ("groff" ,groff)
       ("perl" ,perl)
       ("pkg-config" ,pkg-config)
-      ("python" ,python-2)))
+      ("python" ,python)))
    (arguments
-    `(#:configure-flags (list "--disable-ntlm-wb")
-      #:test-target "test"
-      #:parallel-tests? #f
+    `(#:configure-flags
+      ;; All of these produce errors during configure.
+      (list "--disable-ftp"
+            "--disable-file"
+            "--disable-ldap"
+            "--disable-rtsp"
+            "--disable-dict"
+            "--disable-telnet"
+            "--disable-tftp"
+            "--disable-pop3"
+            "--disable-imap"
+            "--disable-smb"
+            "--disable-smtp"
+            "--disable-gopher"
+            "--without-ssl"
+            "--without-libpsl"
+            "--without-librtmp"
+            "--disable-ntlm-wb")
       #:phases
-      ;; We have to patch runtests.pl in tests/ directory
       (modify-phases %standard-phases
         (add-after 'install 'move-man3-pages
           (lambda* (#:key outputs #:allow-other-keys)
@@ -214,6 +227,7 @@ authentication and support for SSL3 and TLS.")
               (rename-file (string-append out "/share/man/man3")
                            (string-append doc "/share/man/man3"))
               #t)))
+        ;; We have to patch runtests.pl in tests/ directory
         (replace 'check
           (lambda _
             (substitute* "tests/runtests.pl"
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index f94251abaf..a6b5f2a4cf 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -220,7 +220,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.12.13")
+    (version "1.12.15")
     (source
      (origin
        (method url-fetch)
@@ -228,7 +228,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "19zmrhydd52vhdnzlhxqklzg1mnav434dcgw9wl4iajbvfwd70sk"))))
+         "1hw4xjywcl883dnvfbb92w85sy8n231fdri4aynj8xajgr0p9fla"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -266,9 +266,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                    (("/bin/pwd") (which "pwd"))
                    (("/bin/sh") (which "sh")))
 
-                 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
-                   (("/usr/bin") "/tmp"))
-
                  ;; Add libgcc to runpath
                  (substitute* "cmd/link/internal/ld/lib.go"
                    (("!rpath.set") "true"))
diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm
index c1a0360b0e..a796f9aa82 100644
--- a/gnu/packages/gsasl.scm
+++ b/gnu/packages/gsasl.scm
@@ -23,6 +23,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages libidn)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages tls)
@@ -77,30 +78,24 @@ the underlying security implementation.")
 (define-public gsasl
   (package
    (name "gsasl")
-   (version "1.8.0")
+   (version "1.8.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gsasl/gsasl-" version
                                 ".tar.gz"))
-            (sha256 (base32
-                     "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii"))
-            (modules '((guix build utils)))
-            (snippet
-             '(begin
-                ;; The gnulib test-lock test is prone to writer starvation
-                ;; with our glibc@2.25, which prefers readers, so disable it.
-                ;; The gnulib commit b20e8afb0b2 should fix this once
-                ;; incorporated here.
-                (substitute* "tests/Makefile.in"
-                  (("test-lock\\$\\(EXEEXT\\) ") ""))
-                #t))))
+            (sha256
+             (base32
+              "1lnqfbaajkj1r2fx1db1qgcxy69pfgbyq7xd2kpvyxhra4m1dnjd"))))
    (build-system gnu-build-system)
    (arguments
-    `(#:configure-flags '("--with-gssapi-impl=mit")))
-   (inputs `(("libidn" ,libidn)
-             ("libntlm" ,libntlm)
-             ("mit-krb5" ,mit-krb5)
-             ("zlib" ,zlib)))
+    `(#:configure-flags '("--with-gssapi-impl=mit"
+                          "--disable-static")))
+   (inputs
+    `(("libgcrypt" ,libgcrypt)
+      ("libidn" ,libidn)
+      ("libntlm" ,libntlm)
+      ("mit-krb5" ,mit-krb5)
+      ("zlib" ,zlib)))
    (propagated-inputs
     ;; Propagate GnuTLS because libgnutls.la reads `-lnettle', and Nettle is a
     ;; propagated input of GnuTLS.
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index f0068dbe05..55269438d0 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; 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 © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
@@ -84,7 +84,8 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (srfi srfi-1)
-  #:use-module (srfi srfi-26))
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match))
 
 (define-public atk
   (package
@@ -865,6 +866,12 @@ application suites.")
                        (string-append name "dir = " prefix
                                       "/guile/site/@GUILE_EFFECTIVE_VERSION@"
                                       suffix)))
+
+                    ;; Guile 2.x <libguile.h> used to pull in <string.h> and
+                    ;; other headers but this is no longer the case in 3.0.
+                    (substitute* (find-files "." "\\.[ch]$")
+                      (("^ *# *include.*libguile\\.h.*$")
+                       "#include <libguile.h>\n#include <string.h>\n"))
                     #t)))))
     (build-system gnu-build-system)
     (inputs
@@ -887,6 +894,22 @@ graphics library with all of the benefits of Scheme: memory management,
 exceptions, macros, and a dynamic programming environment.")
     (license license:lgpl3+)))
 
+(define-public guile3.0-cairo
+  (package
+    (inherit guile-cairo)
+    (name "guile3.0-cairo")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-cairo)
+       ((#:configure-flags flags ''())
+        ;; Uses of 'scm_t_uint8' & co. are deprecated; don't stop the build
+        ;; because of them.
+        `(cons "--disable-Werror" ,flags))))
+    (inputs
+     `(("guile" ,guile-3.0)
+       ("guile-lib" ,guile3.0-lib)
+       ,@(fold alist-delete (package-inputs guile-cairo)
+               '("guile" "guile-lib"))))))
+
 (define-public guile-rsvg
   ;; Use a recent snapshot that supports Guile 2.2 and beyond.
   (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
@@ -934,6 +957,17 @@ images onto Cairo surfaces.")
       (home-page "http://wingolog.org/projects/guile-rsvg/")
       (license license:lgpl2.1+))))
 
+(define-public guile3.0-rsvg
+  (package
+    (inherit guile-rsvg)
+    (name "guile3.0-rsvg")
+    (inputs
+     `(("guile" ,guile-3.0)
+       ("guile-lib" ,guile3.0-lib)
+       ,@(fold alist-delete (package-inputs guile-rsvg)
+               '("guile" "guile-lib"))))
+    (propagated-inputs `(("guile-cairo" ,guile3.0-cairo)))))
+
 (define-public guile-present
   (package
     (name "guile-present")
@@ -945,21 +979,37 @@ images onto Cairo surfaces.")
               (sha256
                (base32
                 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
-              (patches (search-patches "guile-present-coding.patch"))))
+              (patches (search-patches "guile-present-coding.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure"
+                    (("2\\.2 2\\.0")
+                     "3.0 2.2 2.0"))
+
+                  ;; Install .go files in the right place.
+                  (substitute* "Makefile.in"
+                    (("/ccache") "/site-ccache"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'post-install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out   (assoc-ref outputs "out"))
                     (bin   (string-append out "/bin"))
-                    (guile (assoc-ref inputs "guile")))
+                    (guile (assoc-ref inputs "guile"))
+                    (version
+                     ,(match (assoc "guile" (package-inputs this-package))
+                        (("guile" guile)
+                         (version-major+minor (package-version guile))))))
                (substitute* (find-files bin ".*")
                  (("guile")
                   (string-append guile "/bin/guile -L "
-                                 out "/share/guile/site/2.0 -C "
-                                 out "/share/guile/site/2.0 "))))
+                                 out "/share/guile/site/" version " -C "
+                                 out "/lib/guile/" version "/site-ccache "))))
              #t)))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.2)))
@@ -978,6 +1028,16 @@ includes a tools to generate PDF presentations out of Org mode and Texinfo
 documents.")
     (license license:lgpl3+)))
 
+(define-public guile3.0-present
+  (package
+    (inherit guile-present)
+    (name "guile3.0-present")
+    (inputs `(("guile" ,guile-3.0)))
+    (propagated-inputs
+     `(("guile-lib" ,guile3.0-lib)
+       ("guile-cairo" ,guile3.0-cairo)
+       ("guile-rsvg" ,guile3.0-rsvg)))))
+
 (define-public guile-gnome
    (package
     (name "guile-gnome")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index e9a15babfb..029054b90e 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -418,7 +418,7 @@ Note that 8sync is only available for Guile 2.2.")
 (define-public guile-daemon
   (package
     (name "guile-daemon")
-    (version "0.1.2")
+    (version "0.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/alezost/" name
@@ -426,7 +426,7 @@ Note that 8sync is only available for Guile 2.2.")
                                   "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0hh6gq6b6phpxm0b1dkxyzj3f4sxdf7dji63609lzypa5v1ad2gv"))))
+                "08gaqrgjlly9k5si72vvpbr4xhq5v52l5ma5y6a7spid5dd057cy"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -773,38 +773,17 @@ Vicare Scheme and IronScheme.  Right now it contains:
     (name "guile3.0-pfds")
     (native-inputs `(("guile" ,guile-3.0)))
     (arguments
-     '(#:source-directory "src"
-       #:compile-flags '("--r6rs")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'move-files-around
-           (lambda _
-             ;; See bug #39210.
-             (substitute* '("fingertrees.sls"
-                            "queues/private/condition.sls"
-                            "deques/private/condition.sls")
-               (("&assertion") "&violation"))
-             ;; Move files under a pfds/ directory to reflect the module
-             ;; hierarchy.
-             (mkdir-p "src/pfds")
-             (for-each (lambda (file)
-                         (rename-file file
-                                      (string-append "src/pfds/"
-                                                     file)))
-                       '("bbtrees.sls"
-                         "deques"
-                         "deques.sls"
-                         "dlists.sls"
-                         "fingertrees.sls"
-                         "hamts.sls"
-                         "heaps.sls"
-                         "private"
-                         "psqs.sls"
-                         "queues"
-                         "queues.sls"
-                         "sequences.sls"
-                         "sets.sls"))
-             #t)))))))
+     (substitute-keyword-arguments (package-arguments guile-pfds)
+       ((#:phases phases)
+        `(modify-phases ,phases
+          (add-after 'unpack 'work-around-guile-bug
+            (lambda _
+              ;; See bug #39210.
+              (substitute* '("fingertrees.sls"
+                             "queues/private/condition.sls"
+                             "deques/private/condition.sls")
+                (("&assertion") "&violation"))
+              #t))))))))
 
 (define-public guile-aa-tree
   (package
@@ -1835,7 +1814,18 @@ library.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))))
+                "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Work around miscompilation on Guile 3.0.0 at -O2:
+                  ;; <https://bugs.gnu.org/39251>.
+                  (substitute* "src/md5.scm"
+                    (("\\(define f-ash ash\\)")
+                     "(define f-ash (@ (guile) ash))\n")
+                    (("\\(define f-add \\+\\)")
+                     "(define f-add (@ (guile) +))\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags
@@ -1872,6 +1862,12 @@ for Guile\".")
     (name "guile2.0-lib")
     (inputs `(("guile" ,guile-2.0)))))
 
+(define-public guile3.0-lib
+  (package
+    (inherit guile-lib)
+    (name "guile3.0-lib")
+    (inputs `(("guile" ,guile-3.0)))))
+
 (define-public guile-minikanren
   (package
     (name "guile-minikanren")
@@ -1976,7 +1972,15 @@ inspired by the SCSH regular expression system.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc"))))
+                "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure"
+                    (("2\\.2 2\\.0")
+                     "3.0 2.2 2.0"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 match) (ice-9 ftw)
@@ -1991,8 +1995,11 @@ inspired by the SCSH regular expression system.")
                              (bin  (string-append out "/bin"))
                              (site (string-append
                                     out "/share/guile/site"))
-                             (deps (list (assoc-ref inputs "guile-reader")
-                                         (assoc-ref inputs "guile-commonmark"))))
+                             (guile-reader (assoc-ref inputs "guile-reader"))
+                             (deps `(,@(if guile-reader
+                                           (list guile-reader)
+                                           '())
+                                     ,(assoc-ref inputs "guile-commonmark"))))
                         (match (scandir site)
                           (("." ".." version)
                            (let ((modules (string-append site "/" version))
@@ -2030,6 +2037,15 @@ interface for reading articles in any format.")
     (home-page "http://haunt.dthompson.us")
     (license license:gpl3+)))
 
+(define-public guile3.0-haunt
+  (package
+    (inherit haunt)
+    (name "guile3.0-haunt")
+    (inputs `(("guile" ,guile-3.0)))
+    (propagated-inputs
+     ;; XXX: Guile-Reader is currently unavailable for Guile 3.0 so strip it.
+     `(("guile-commonmark" ,guile3.0-commonmark)))))
+
 (define-public guile2.0-haunt
   (package
     (inherit haunt)
@@ -2133,7 +2149,7 @@ is no support for parsing block and inline level HTML.")
                   (add-after 'unpack 'fix-finding-guile
                     (lambda _
                       (substitute* "configure"
-                        (("2\\.0") "2.2 2.0"))
+                        (("2\\.0") "3.0 2.2 2.0"))
                       #t))
                   (add-before 'check 'adjust-tests
                     (lambda _
@@ -2163,6 +2179,12 @@ Guile, so its configuration can be written in Scheme; the original cron
 format is also supported.")
     (license license:gpl3+)))
 
+(define-public guile3.0-mcron
+  (package
+    (inherit mcron)
+    (name "guile3.0-mcron")
+    (inputs `(("guile" ,guile-3.0)))))
+
 (define-public mcron2
   ;; This was mthl's mcron development branch, and it became mcron 1.1.
   (deprecated-package "mcron2" mcron))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 223104610c..cb88308278 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -286,6 +286,14 @@ without requiring the source code to be rewritten.")
                (base32
                 "0x8ca6q1qdmk29lh12gj6ngvgn7kp79w42rxfgwrpxm9jmjqs4y9"))
               (patches (search-patches "guile-2.2-skip-oom-test.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-2.2)
+       ;; XXX: On ARMv7, work around <https://bugs.gnu.org/39208> by disabling
+       ;; JIT.
+       ((#:configure-flags flags '())
+        (if (target-arm32?)
+            `(cons "--disable-jit" ,flags)
+            flags))))
     (native-search-paths
      (list (search-path-specification
             (variable "GUILE_LOAD_PATH")
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index fd2f11ce72..94e9a22115 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 JoJo <jo@jo.zone>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,6 +55,7 @@
   #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
@@ -6704,6 +6706,72 @@ ByteString, for types that support input and output, and for types that
 can handle infinite lists.")
     (license license:bsd-3)))
 
+(define-public ghc-llvm-hs-pure
+  (package
+    (name "ghc-llvm-hs-pure")
+    (version "9.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/llvm-hs-pure/"
+                           "llvm-hs-pure-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0pxb5ah8r5pzpz2ibqw3g9g1isigb4z7pbzfrwr8kmcjn74ab3kf"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-attoparsec" ,ghc-attoparsec)
+       ("ghc-fail" ,ghc-fail)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (home-page "https://github.com/llvm-hs/llvm-hs/")
+    (synopsis "Pure Haskell LLVM functionality (no FFI)")
+    (description "llvm-hs-pure is a set of pure Haskell types and functions
+for interacting with LLVM.  It includes an algebraic datatype (ADT) to represent
+LLVM IR.  The llvm-hs package builds on this one with FFI bindings to LLVM, but
+llvm-hs-pure does not require LLVM to be available.")
+    (license license:bsd-3)))
+
+(define-public ghc-llvm-hs
+  (package
+    (name "ghc-llvm-hs")
+    (version "9.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/llvm-hs/llvm-hs-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0723xgh45h9cyxmmjsvxnsp8bpn1ljy4qgh7a7vqq3sj9d6wzq00"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-attoparsec" ,ghc-attoparsec)
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-llvm-hs-pure" ,ghc-llvm-hs-pure)
+       ("llvm" ,llvm-9)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-temporary" ,ghc-temporary)
+       ("ghc-pretty-show" ,ghc-pretty-show)
+       ("ghc-temporary" ,ghc-temporary)))
+    (home-page "https://github.com/llvm-hs/llvm-hs/")
+    (synopsis "General purpose LLVM bindings for Haskell")
+    (description "llvm-hs is a set of Haskell bindings for LLVM.  Unlike other
+current Haskell bindings, it uses an algebraic datatype (ADT) to represent LLVM
+IR, and so offers two advantages: it handles almost all of the stateful
+complexities of using the LLVM API to build IR; and it supports moving IR not
+only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++
+into Haskell.")
+    (license license:bsd-3)))
+
 (define-public ghc-logging-facade
   (package
     (name "ghc-logging-facade")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 67afea68fb..64f679e662 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2748,7 +2748,13 @@ operators and scripters.")
              (commit "abeb2c25935ef8c75f1e5deef0f81276754dc975")))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rqgbw08a5lj41dkp82aq480lqkc4bnxagna7wpqffi821n8gkwz"))))
+        (base32 "0rqgbw08a5lj41dkp82aq480lqkc4bnxagna7wpqffi821n8gkwz"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove pre-built binaries scattered across the source repository.
+           (for-each delete-file (find-files "." "\\.(dll|exe)"))
+           #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "CC=gcc")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 1d5a9edc5f..dc68a6c83d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2981,7 +2981,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "19.11.1")
+    (version "20.01.3")
     (source
      (origin
        (method git-fetch)
@@ -2990,7 +2990,7 @@ point numbers.")
              (commit (string-append "Version-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16xizaddb27432n1083y89ir5zdqvllsgbwrzzk4jc2rw1ldxfsv"))))
+        (base32 "18fj2m1qwlbavivpixph112wq9hxy3hh7c8q07djc3bhrzf2a7v7"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -3024,7 +3024,7 @@ point numbers.")
                   ,(string-append
                     (assoc-ref inputs "adwaita-icon-theme") "/share"))))
              #t)))))
-    (home-page "https://andrejv.github.io/wxmaxima/")
+    (home-page "https://wxmaxima-developers.github.io/wxmaxima/")
     (synopsis "Graphical user interface for the Maxima computer algebra system")
     (description
      "wxMaxima is a graphical user interface for the Maxima computer algebra
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 5d85c5ff51..347aef0a8c 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2019 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -143,15 +143,14 @@ Guile.")
 (define-public mes
   (package
     (inherit mes-0.19)
-    (version "0.21")
+    (version "0.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mes/"
                                   "mes-" version ".tar.gz"))
-              (patches (search-patches "mes-remove-store-name.patch"))
               (sha256
                (base32
-                "104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
+                "0p1jsrrmcbc0zrvbvnjbb6iyxr0in71km293q8qj6gnar6bw09av"))))
     (propagated-inputs
      `(("mescc-tools" ,mescc-tools)
        ("nyacc" ,nyacc)))
@@ -161,7 +160,11 @@ Guile.")
             (files '("include")))
            (search-path-specification
             (variable "LIBRARY_PATH")
-            (files '("lib")))))))
+            (files '("lib")))
+           (search-path-specification
+            (variable "MES_PREFIX")
+            (separator #f)
+            (files '("")))))))
 
 (define-public mes-rb5
   ;; This is the Reproducible-Builds summit 5's Mes, also built on Debian
@@ -176,6 +179,7 @@ Guile.")
        ("coreutils" ,coreutils)
        ("grep" ,grep)
        ("guile" ,guile-2.2)
+       ("gzip" ,gzip)
        ("libc" ,glibc)
        ("locales" ,glibc-utf8-locales)
        ("make" ,gnu-make)
@@ -183,8 +187,7 @@ Guile.")
        ("mescc-tools" ,mescc-tools)
        ("nyacc" ,nyacc)
        ("sed" ,sed)
-       ("tar" ,tar)
-       ("xz" ,xz)))
+       ("tar" ,tar)))
     (supported-systems '("i686-linux"))
     (arguments
      `(#:implicit-inputs? #f
@@ -215,10 +218,12 @@ Guile.")
              (invoke "sh" "bootstrap.sh")))
          (replace 'check
            (lambda _
+             (copy-file "bin/mes-mescc" "bin/mes-mescc-0.21")
+             (system* "sed" "-i" "s/0\\.22/0\\.21/" "bin/mes-mescc-0.21")
              (let ((sha256sum
                     (read-delimited
                      " "
-                     (open-pipe* OPEN_READ "sha256sum" "src/mes"))))
+                     (open-pipe* OPEN_READ "sha256sum" "bin/mes-mescc-0.21"))))
                (unless
                    (equal?
                     sha256sum
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 31e200f3d5..098c116cf3 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016-2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -968,6 +968,14 @@ compilation and linkage, there are new frontends of the various OCaml
 compilers that can directly deal with packages.")
     (license license:x11)))
 
+(define-public ocaml4.07-findlib
+  (package
+    (inherit ocaml-findlib)
+    (name "ocaml4.07-findlib")
+    (native-inputs
+     `(("m4" ,m4)
+       ("ocaml" ,ocaml-4.07)))))
+
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
@@ -1748,6 +1756,7 @@ through Transport Layer Security (@dfn{TLS}) encrypted connections.")
               (uri (git-reference
                      (url "https://github.com/mirage/mmap")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1jaismy5d1bhbbanysmr2k79px0yv6ya265dri3949nha1l23i60"))))
@@ -1794,6 +1803,28 @@ process.  Also, in many cases, Lwt threads can interact without the need for
 locks or other synchronization primitives.")
     (license license:lgpl2.1)))
 
+(define-public ocaml-lwt-react
+  (package
+    (inherit ocaml-lwt)
+    (name "ocaml-lwt-react")
+    (version "1.1.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocsigen/lwt")
+                     ;; Version from opam
+                     (commit "4.3.0")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0f7036srqz7zmnz0n164734smgkrqz78r1i35cg30x31kkr3pnn4"))))
+    (arguments
+     `(#:package "lwt_react"))
+    (properties `((upstream-name . "lwt_react")))
+    (propagated-inputs
+     `(("ocaml-lwt" ,ocaml-lwt)
+       ("ocaml-react" ,ocaml-react)))))
+
 (define-public ocaml-lwt-log
   (package
     (name "ocaml-lwt-log")
@@ -3095,9 +3126,12 @@ connect an engine to your inputs and rendering functions to get an editor.")
      `(#:build-flags (list "--profile" "release")
        #:tests? #f))
     (propagated-inputs
-     `(("lwt" ,ocaml-lwt)
-       ("lwt-log" ,ocaml-lwt-log)
-       ("zed" ,ocaml-zed)))
+     `(("ocaml-lwt" ,ocaml-lwt)
+       ("ocaml-lwt-log" ,ocaml-lwt-log)
+       ("ocaml-lwt-react" ,ocaml-lwt-react)
+       ("ocaml-zed" ,ocaml-zed)))
+    (inputs
+     `(("libev" ,libev)))
     (home-page "https://github.com/diml/lambda-term")
     (synopsis "Terminal manipulation library for OCaml")
     (description "Lambda-Term is a cross-platform library for manipulating the
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index fa07ef59f8..1c5034a5ad 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
@@ -703,41 +703,28 @@ using password-store through rofi interface:
 (define-public argon2
   (package
     (name "argon2")
-    (version "20171227")
+    (version "20190702")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://github.com/P-H-C/phc-winner-argon2/archive/"
-                       version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/P-H-C/phc-winner-argon2")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1n6w5y3va7lrcym7cxr0nikapldqm80wxjdns584bvplq5r03spa"))))
+         "01rwanr4wmr9vm6c712x411wig543q195z2icn388z892a93lc7p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:make-flags '("CC=gcc"
-                      "OPTTEST=1")     ;disable CPU optimization
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "LIBRARY_REL=lib"
+                          (string-append "ARGON2_VERSION=" ,version)
+                          "OPTTEST=1")  ; disable CPU optimization
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-Makefile
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "Makefile"
-                 (("PREFIX = /usr") (string-append "PREFIX = " out)))
-               (substitute* "libargon2.pc"
-                 (("prefix=/usr") (string-append "prefix=" out))
-                 (("@HOST_MULTIARCH@") "")
-                 (("@UPSTREAM_VER@") ,version))
-               #t)))
-         (delete 'configure)
-         (add-after 'install 'install-argon2.pc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (install-file "libargon2.pc"
-                             (string-append out "/lib/pkgconfig"))
-               #t))))))
+         (delete 'configure))))         ; No configure script.
     (home-page "https://www.argon2.com/")
     (synopsis "Password hashing library")
     (description "Argon2 provides a key derivation function that was declared
@@ -749,15 +736,17 @@ winner of the 2015 Password Hashing Competition.")
 (define-public pass-git-helper
   (package
     (name "pass-git-helper")
-    (version "0.3.1")
+    (version "1.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/languitar/pass-git-helper/archive/release-"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/languitar/pass-git-helper")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0lz5ncy44pz7z1j2nnyildx8sq33zi3xvg5nkwg25n11nasqh2xn"))))
+         "18nvwlp0w4aqj268wly60rnjzqw2d8jl0hbs6bkwp3hpzzz5g6yd"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -766,12 +755,20 @@ winner of the 2015 Password Hashing Competition.")
            (lambda* (#:key inputs #:allow-other-keys)
              (let* ((password-store (assoc-ref inputs "password-store"))
                     (pass (string-append password-store "/bin/pass")))
-               (substitute* "pass-git-helper"
+               (substitute* '("passgithelper.py"
+                              "test_passgithelper.py")
                  (("'pass'") (string-append "'" pass "'")))
-               #t))))))
+               #t)))
+         (replace 'check
+           (lambda _
+             (setenv "HOME" (getcwd))
+             (invoke "pytest"))))))
     (inputs
      `(("python-pyxdg" ,python-pyxdg)
        ("password-store" ,password-store)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-mock" ,python-pytest-mock)))
     (home-page "https://github.com/languitar/pass-git-helper")
     (synopsis "Git credential helper interfacing with pass")
     (description "pass-git-helper is a git credential helper which allows to
@@ -962,21 +959,22 @@ to use a different password manager.")
     (name "pass-rotate")
     (version "0.1")
     (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/SirCmpwn/pass-rotate/archive/"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1svm5nj8bczv2dg8lh2zqqhbsrljqsw9680r03qwgl9vlci90210"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/ddevault/pass-rotate")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1m067vvdlc85csbpkp8aw4s3ags7q8s3jszrr32kmj9qhk5c254f"))))
     (build-system python-build-system)
     (inputs
      `(("python-beautifulsoup4" ,python-beautifulsoup4)
        ("python-docopt" ,python-docopt)
        ("python-html5lib" ,python-html5lib)
        ("python-requests" ,python-requests)))
-    (home-page "https://github.com/SirCmpwn/pass-rotate")
+    (home-page "https://github.com/ddevault/pass-rotate")
     (synopsis "Rotate password on online services")
     (description "pass-rotate is a command line utility and python library for
 rotating passwords on various web services.  It makes it easier to rotate your
diff --git a/gnu/packages/patches/evolution-data-server-libical-compat.patch b/gnu/packages/patches/evolution-data-server-libical-compat.patch
new file mode 100644
index 0000000000..a988519ea0
--- /dev/null
+++ b/gnu/packages/patches/evolution-data-server-libical-compat.patch
@@ -0,0 +1,36 @@
+Prevent test failure and possible data loss due to API change in libical 3.0.7.
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
+https://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
+
+Adapted from upstream:
+
+https://gitlab.gnome.org/GNOME/evolution-data-server/commit/77384ab552c19bf374dbeda53dc37f98d07bd4ec
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -108,7 +108,7 @@
+ 
+ set(gcr_minimum_version 3.4)
+ set(libgdata_minimum_version 0.15.1)
+-set(libical_minimum_version 2.0)
++set(libical_minimum_version 3.0.7)
+ set(libsecret_minimum_version 0.5)
+ set(libxml_minimum_version 2.0.0)
+ set(sqlite_minimum_version 3.7.17)
+diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
+index 7501f2a43dcc3af91e93e89751caf76e77c2ac23..93f4806ba2c5193f746e9fae5bf74d08ad05f8bf 100644
+--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
++++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
+@@ -3958,9 +3958,8 @@
+ 					gchar *base64;
+ 
+ 					base64 = g_base64_encode ((const guchar *) content, len);
+-					new_attach = icalattach_new_from_data (base64, NULL, NULL);
++					new_attach = icalattach_new_from_data (base64, (GFunc) g_free, NULL);
+ 					g_free (content);
+-					g_free (base64);
+ 
+ 					ecmb_remove_all_but_filename_parameter (prop);
+ 
diff --git a/gnu/packages/patches/libmemcached-build-with-gcc7.patch b/gnu/packages/patches/libmemcached-build-with-gcc7.patch
new file mode 100644
index 0000000000..51e319d2c0
--- /dev/null
+++ b/gnu/packages/patches/libmemcached-build-with-gcc7.patch
@@ -0,0 +1,28 @@
+Author: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Wed 22 Jan 22:58:13 CET 2020
+Subject: gnu: memcached: Fix build with GCC 7.
+
+Taken verbating from this bug report:
+<https://bugs.launchpad.net/libmemcached/+bug/1663985>.
+
+diff -up ./clients/memflush.cc.old ./clients/memflush.cc
+--- ./clients/memflush.cc.old	2017-02-12 10:12:59.615209225 +0100
++++ ./clients/memflush.cc	2017-02-12 10:13:39.998382783 +0100
+@@ -39,7 +39,7 @@ int main(int argc, char *argv[])
+ {
+   options_parse(argc, argv);
+ 
+-  if (opt_servers == false)
++  if (!opt_servers)
+   {
+     char *temp;
+ 
+@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
+       opt_servers= strdup(temp);
+     }
+ 
+-    if (opt_servers == false)
++    if (!opt_servers)
+     {
+       std::cerr << "No Servers provided" << std::endl;
+       exit(EXIT_FAILURE);
diff --git a/gnu/packages/patches/libvnc-CVE-2018-20750.patch b/gnu/packages/patches/libvnc-CVE-2018-20750.patch
new file mode 100644
index 0000000000..146243670a
--- /dev/null
+++ b/gnu/packages/patches/libvnc-CVE-2018-20750.patch
@@ -0,0 +1,44 @@
+From 09e8fc02f59f16e2583b34fe1a270c238bd9ffec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 7 Jan 2019 10:40:01 +0100
+Subject: [PATCH] Limit lenght to INT_MAX bytes in
+ rfbProcessFileTransferReadBuffer()
+
+This ammends 15bb719c03cc70f14c36a843dcb16ed69b405707 fix for a heap
+out-of-bound write access in rfbProcessFileTransferReadBuffer() when
+reading a transfered file content in a server. The former fix did not
+work on platforms with a 32-bit int type (expected by rfbReadExact()).
+
+CVE-2018-15127
+<https://github.com/LibVNC/libvncserver/issues/243>
+<https://github.com/LibVNC/libvncserver/issues/273>
+---
+ libvncserver/rfbserver.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
+index 7af84906..f2edbeea 100644
+--- a/libvncserver/rfbserver.c
++++ b/libvncserver/rfbserver.c
+@@ -88,6 +88,8 @@
+ #include <errno.h>
+ /* strftime() */
+ #include <time.h>
++/* INT_MAX */
++#include <limits.h>
+ 
+ #ifdef LIBVNCSERVER_WITH_WEBSOCKETS
+ #include "rfbssl.h"
+@@ -1472,8 +1474,11 @@ char *rfbProcessFileTransferReadBuffer(rfbClientPtr cl, uint32_t length)
+        0XFFFFFFFF, i.e. SIZE_MAX for 32-bit systems. On 64-bit systems, a length of 0XFFFFFFFF
+        will safely be allocated since this check will never trigger and malloc() can digest length+1
+        without problems as length is a uint32_t.
++       We also later pass length to rfbReadExact() that expects a signed int type and
++       that might wrap on platforms with a 32-bit int type if length is bigger
++       than 0X7FFFFFFF.
+     */
+-    if(length == SIZE_MAX) {
++    if(length == SIZE_MAX || length > INT_MAX) {
+ 	rfbErr("rfbProcessFileTransferReadBuffer: too big file transfer length requested: %u", (unsigned int)length);
+ 	rfbCloseClient(cl);
+ 	return NULL;
diff --git a/gnu/packages/patches/libvnc-CVE-2019-15681.patch b/gnu/packages/patches/libvnc-CVE-2019-15681.patch
new file mode 100644
index 0000000000..e328d87920
--- /dev/null
+++ b/gnu/packages/patches/libvnc-CVE-2019-15681.patch
@@ -0,0 +1,23 @@
+From d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a Mon Sep 17 00:00:00 2001
+From: Christian Beier <dontmind@freeshell.org>
+Date: Mon, 19 Aug 2019 22:32:25 +0200
+Subject: [PATCH] rfbserver: don't leak stack memory to the remote
+
+Thanks go to Pavel Cheremushkin of Kaspersky for reporting.
+---
+ libvncserver/rfbserver.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
+index 3bacc891..310e5487 100644
+--- a/libvncserver/rfbserver.c
++++ b/libvncserver/rfbserver.c
+@@ -3724,6 +3724,8 @@ rfbSendServerCutText(rfbScreenInfoPtr rfbScreen,char *str, int len)
+     rfbServerCutTextMsg sct;
+     rfbClientIteratorPtr iterator;
+ 
++    memset((char *)&sct, 0, sizeof(sct));
++
+     iterator = rfbGetClientIterator(rfbScreen);
+     while ((cl = rfbClientIteratorNext(iterator)) != NULL) {
+         sct.type = rfbServerCutText;
diff --git a/gnu/packages/patches/mes-remove-store-name.patch b/gnu/packages/patches/mes-remove-store-name.patch
deleted file mode 100644
index ad055c51f2..0000000000
--- a/gnu/packages/patches/mes-remove-store-name.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From d8f361705325cf91fc6c2ec84f281cdcd6bfa8b1 Mon Sep 17 00:00:00 2001
-From: Jan Nieuwenhuizen <janneke@gnu.org>
-Date: Tue, 3 Dec 2019 21:23:24 +0100
-Subject: [PATCH] core: Remove MES_PKGDATADIR.
-
-* configure: Do not add MES_PKGDATADIR to config.h.
-* configure.sh: Likewise.
-* simple.sh: Likewise.
-* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
-MES_PREFIX or cwd.
----
- configure    |  1 -
- configure.sh |  1 -
- simple.sh    |  2 --
- src/mes.c    | 13 -------------
- 4 files changed, 17 deletions(-)
-
-diff --git a/configure b/configure
-index 8edb2ce7b..12d8323f2 100755
---- a/configure
-+++ b/configure
-@@ -666,7 +666,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
- "))
-               (display (string-append "
- #define MES_VERSION \"" VERSION "\"
--#define MES_PKGDATADIR \"" pkgdatadir "\"
- ")))))
-         (substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
- 
-diff --git a/configure.sh b/configure.sh
-index 947ddd851..0139cbc36 100755
---- a/configure.sh
-+++ b/configure.sh
-@@ -244,7 +244,6 @@ EOF
- fi
- cat >> include/mes/config.h <<EOF
- #define MES_VERSION "$VERSION"
--#define MES_PKGDATADIR "$pkgdatadir"
- EOF
- 
- cat <<EOF
-diff --git a/simple.sh b/simple.sh
-index db6950354..b54398a59 100755
---- a/simple.sh
-+++ b/simple.sh
-@@ -33,7 +33,6 @@ mes_bits=64
- cat > include/mes/config.h <<EOF
- #define SYSTEM_LIBC 1
- #define MES_VERSION "git"
--#define MES_PKGDATADIR "/usr/local/share/mes"
- EOF
- 
- ## Build ##
-@@ -126,7 +125,6 @@ mes_cpu=x86_64
- cat > include/mes/config.h <<EOF
- // #define SYSTEM_LIBC 0
- #define MES_VERSION "git"
--#define MES_PKGDATADIR "/usr/local/share/mes"
- EOF
- 
- ## Build ##
-diff --git a/src/mes.c b/src/mes.c
-index d9760fad6..a5e7f2b69 100644
---- a/src/mes.c
-+++ b/src/mes.c
-@@ -1775,12 +1775,6 @@ open_boot ()
-   char boot[1024];
-   char file_name[1024];
-   strcpy (g_datadir, ".");
--  if (g_debug > 1)
--    {
--      eputs (";;; pkgdatadir=");
--      eputs (MES_PKGDATADIR);
--      eputs ("\n");
--    }
-   if (getenv ("MES_BOOT"))
-     strcpy (boot, getenv ("MES_BOOT"));
-   else
-@@ -1801,13 +1795,6 @@ open_boot ()
-           __stdin = try_open_boot (file_name, boot, "MES_PREFIX/share/mes");
-         }
-     }
--  if (__stdin < 0)
--    {
--      strcpy (g_datadir, MES_PKGDATADIR);
--      strcpy (file_name, g_datadir);
--      strcpy (file_name + strlen (file_name), "/module/mes/");
--      __stdin = try_open_boot (file_name, boot, "pkgdatadir");
--    }
-   if (__stdin < 0)
-     {
-       g_datadir[0] = 0;
--- 
-2.24.0
-
-commit 2f6fab05b3f09df02aba70c3e21d5fedb45dc567
-Author: Jan Nieuwenhuizen <janneke@gnu.org>
-Date:   Sun Nov 24 23:12:29 2019 +0100
-
-    core: Throw instead of segfault on non-existing input file.  WIP.
-    
-    Reported by theruran.
-    
-    * src/posix.c (open_input_file): Call error instead of failing silently.
-
-diff --git a/src/posix.c b/src/posix.c
-index 7ba2e9915..fd753232d 100644
---- a/src/posix.c
-+++ b/src/posix.c
-@@ -188,7 +188,10 @@ current_input_port ()
- SCM
- open_input_file (SCM file_name)
- {
--  return MAKE_NUMBER (mes_open (CSTRING (file_name), O_RDONLY, 0));
-+  int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
-+  if (filedes == -1)
-+    error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
-+  return MAKE_NUMBER (filedes);
- }
- 
- SCM
diff --git a/gnu/packages/patches/udiskie-no-appindicator.patch b/gnu/packages/patches/udiskie-no-appindicator.patch
index c19099cdaa..df3efe104b 100644
--- a/gnu/packages/patches/udiskie-no-appindicator.patch
+++ b/gnu/packages/patches/udiskie-no-appindicator.patch
@@ -1,9 +1,9 @@
 Remove the support for Unity's appindicator.
 
-diff -Naur udiskie-1.7.7/completions/_udiskie udiskie-1.7.7a/completions/_udiskie
---- udiskie-1.7.7/completions/_udiskie	2019-02-17 18:28:58.000000000 +0100
-+++ udiskie-1.7.7a/completions/_udiskie	2019-10-29 14:21:04.556193639 +0100
-@@ -21,8 +21,6 @@
+diff -Naur udiskie-2.0.4/completions/zsh/_udiskie udiskie-2.0.4-new/completions/zsh/_udiskie
+--- udiskie-2.0.4/completions/zsh/_udiskie	2020-01-21 01:12:40.000000000 +0100
++++ udiskie-2.0.4-new/completions/zsh/_udiskie	2020-01-23 10:15:46.956141667 +0100
+@@ -18,8 +18,6 @@
      '(-a)'{-A,--no-automount}"[disable automounting]"
      '(-N)'{-n,--notify}"[show popup notifications]"
      '(-n)'{-N,--no-notify}"[disable notifications]"
@@ -12,14 +12,14 @@ diff -Naur udiskie-1.7.7/completions/_udiskie udiskie-1.7.7a/completions/_udiski
      '(-T -s)'{-t,--tray}"[show tray icon]"
      '(-T -t)'{-s,--smart-tray}"[auto hide tray icon]"
      '(-t -s)'{-T,--no-tray}"[disable tray icon]"
-diff -Naur udiskie-1.7.7/doc/udiskie.8.txt udiskie-1.7.7a/doc/udiskie.8.txt
---- udiskie-1.7.7/doc/udiskie.8.txt	2019-02-17 18:28:58.000000000 +0100
-+++ udiskie-1.7.7a/doc/udiskie.8.txt	2019-10-29 14:21:52.304570344 +0100
-@@ -95,12 +95,6 @@
- *-F, \--no-file-manager*::
- 	Disable browsing.
+diff -Naur udiskie-2.0.4/doc/udiskie.8.txt udiskie-2.0.4-new/doc/udiskie.8.txt
+--- udiskie-2.0.4/doc/udiskie.8.txt	2020-01-21 01:12:40.000000000 +0100
++++ udiskie-2.0.4-new/doc/udiskie.8.txt	2020-01-23 10:16:12.636290647 +0100
+@@ -92,12 +92,6 @@
+ *--no-terminal*::
+ 	Disable terminal action.
  
--*-appindicator*::
+-*--appindicator*::
 -	Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown.
 -
 -*--no-appindicator*::
@@ -28,9 +28,9 @@ diff -Naur udiskie-1.7.7/doc/udiskie.8.txt udiskie-1.7.7a/doc/udiskie.8.txt
  *--password-cache MINUTES*::
  	Cache passwords for LUKS partitions and set the timeout.
  
-diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindicator.py
---- udiskie-1.7.7/udiskie/appindicator.py	2019-02-17 18:28:58.000000000 +0100
-+++ udiskie-1.7.7a/udiskie/appindicator.py	1970-01-01 01:00:00.000000000 +0100
+diff -Naur udiskie-2.0.4/udiskie/appindicator.py udiskie-2.0.4-new/udiskie/appindicator.py
+--- udiskie-2.0.4/udiskie/appindicator.py	2020-01-21 01:12:40.000000000 +0100
++++ udiskie-2.0.4-new/udiskie/appindicator.py	1970-01-01 01:00:00.000000000 +0100
 @@ -1,61 +0,0 @@
 -"""
 -Status icon using AppIndicator3.
@@ -39,10 +39,10 @@ diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindic
 -from gi.repository import Gtk
 -from gi.repository import AppIndicator3
 -
--from udiskie.async_ import Async
+-from .async_ import Future
 -
 -
--class AppIndicatorIcon(object):
+-class AppIndicatorIcon:
 -
 -    """
 -    Show status icon using AppIndicator as backend. Replaces
@@ -63,7 +63,7 @@ diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindic
 -        dbusmenuserver = self._indicator.get_property('dbus-menu-server')
 -        self._dbusmenuitem = dbusmenuserver.get_property('root-node')
 -        self._conn = self._dbusmenuitem.connect('about-to-show', self._on_show)
--        self.task = Async()
+-        self.task = Future()
 -        menumaker._quit_action = self.destroy
 -        # Populate menu initially, so libdbusmenu does not ignore the
 -        # 'about-to-show':
@@ -72,7 +72,7 @@ diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindic
 -    def destroy(self):
 -        self.show(False)
 -        self._dbusmenuitem.disconnect(self._conn)
--        self.task.callback()
+-        self.task.set_result(True)
 -
 -    @property
 -    def visible(self):
@@ -93,10 +93,10 @@ diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindic
 -        # repopulate:
 -        self._maker(self._menu)
 -        self._menu.show_all()
-diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py
---- udiskie-1.7.7/udiskie/cli.py	2019-02-17 18:28:58.000000000 +0100
-+++ udiskie-1.7.7a/udiskie/cli.py	2019-10-29 14:18:22.678919186 +0100
-@@ -376,9 +376,6 @@
+diff -Naur udiskie-2.0.4/udiskie/cli.py udiskie-2.0.4-new/udiskie/cli.py
+--- udiskie-2.0.4/udiskie/cli.py	2020-01-21 01:12:40.000000000 +0100
++++ udiskie-2.0.4-new/udiskie/cli.py	2020-01-23 10:17:13.064810617 +0100
+@@ -287,9 +287,6 @@
          -T, --no-tray                           Disable tray icon
          -m MENU, --menu MENU                    Tray menu [flat/nested]
  
@@ -106,15 +106,15 @@ diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py
          --password-cache MINUTES                Set password cache timeout
          --no-password-cache                     Disable password cache
  
-@@ -400,7 +397,6 @@
+@@ -312,7 +309,6 @@
          'notify': True,
          'tray': False,
          'menu': 'flat',
 -        'appindicator': False,
          'file_manager': 'xdg-open',
+         'terminal': '',
          'password_prompt': 'builtin:gui',
-         'password_cache': False,
-@@ -415,7 +411,6 @@
+@@ -328,7 +324,6 @@
              '--no-tray': False,
              '--smart-tray': 'auto'}),
          'menu': Value('--menu'),
@@ -122,10 +122,10 @@ diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py
          'file_manager': OptionalValue('--file-manager'),
          'password_prompt': OptionalValue('--password-prompt'),
          'password_cache': OptionalValue('--password-cache'),
-@@ -541,11 +536,7 @@
-             raise ValueError("Invalid menu: %s" % (options['menu'],))
+@@ -459,11 +454,7 @@
  
-         menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat)
+         menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat,
+                                               config.quickmenu_actions)
 -        if options['appindicator']:
 -            import udiskie.appindicator
 -            TrayIcon = udiskie.appindicator.AppIndicatorIcon
@@ -135,10 +135,10 @@ diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py
          trayicon = TrayIcon(menu_maker, icons)
          return udiskie.tray.UdiskieStatusIcon(trayicon, menu_maker, smart)
  
-diff -Naur udiskie-1.7.7/udiskie.egg-info/SOURCES.txt udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt
---- udiskie-1.7.7/udiskie.egg-info/SOURCES.txt	2019-02-17 19:42:25.000000000 +0100
-+++ udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt	2019-10-29 14:40:09.333315287 +0100
-@@ -24,7 +24,6 @@
+diff -Naur udiskie-2.0.4/udiskie.egg-info/SOURCES.txt udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt
+--- udiskie-2.0.4/udiskie.egg-info/SOURCES.txt	2020-01-21 01:12:41.000000000 +0100
++++ udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt	2020-01-23 10:17:50.657205798 +0100
+@@ -25,7 +25,6 @@
  test/test_cache.py
  test/test_match.py
  udiskie/__init__.py
@@ -146,10 +146,10 @@ diff -Naur udiskie-1.7.7/udiskie.egg-info/SOURCES.txt udiskie-1.7.7a/udiskie.egg
  udiskie/async_.py
  udiskie/automount.py
  udiskie/cache.py
-@@ -46,4 +45,4 @@
- udiskie.egg-info/dependency_links.txt
+@@ -47,4 +46,4 @@
  udiskie.egg-info/entry_points.txt
  udiskie.egg-info/requires.txt
--udiskie.egg-info/top_level.txt
+ udiskie.egg-info/top_level.txt
+-udiskie.egg-info/zip-safe
 \ Pas de fin de ligne à la fin du fichier
-+udiskie.egg-info/top_level.txt
++udiskie.egg-info/zip-safe
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index e8372d4dab..590bd5083b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
@@ -1605,14 +1605,14 @@ CPAN::Meta object are present.")
 (define-public perl-cpanel-json-xs
   (package
     (name "perl-cpanel-json-xs")
-    (version "4.17")
+    (version "4.18")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
                            "Cpanel-JSON-XS-" version ".tar.gz"))
        (sha256
-        (base32 "1yq6hwd6hayqrhaa2h90svqqvsc28k0g4bdip5nyxgm9r93sx07s"))))
+        (base32 "1dnnf6bjz0fi9hk8gzmsklmh5y0z137vk62k3d7s88q30maf3rk3"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
@@ -8504,12 +8504,16 @@ screen size, and retrieval/modification of the control characters.")
      `(#:tests? #f ; Tests fail without other Term::ReadLine interfaces present
        #:phases (modify-phases %standard-phases
                   (add-before 'configure 'patch-search-lib
-                    (lambda _
+                    (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "Makefile.PL"
-                        ;; The configuration provides no way to pass
-                        ;; additional directories to search for the ncurses
-                        ;; library, so just skip the search.
-                        (("&search_lib\\('-lncurses'\\)") "'-lncurses'")))))))
+                        ;; The configuration provides no way easy was to pass
+                        ;; additional directories to search for libraries, so
+                        ;; just patch in the flags.
+                        (("-lreadline" &)
+                         (format #f "-L~a/lib ~a" (assoc-ref inputs "readline") &))
+                        (("&search_lib\\('-lncurses'\\)")
+                         (string-append "'-L" (assoc-ref inputs "ncurses") "/lib"
+                                        " -lncurses'"))))))))
     (home-page "https://metacpan.org/release/Term-ReadLine-Gnu")
     (synopsis "GNU Readline/History Library interface for Perl")
     (description "This module implements an interface to the GNU Readline
@@ -9081,7 +9085,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
 (define-public perl-time-local
   (package
     (name "perl-time-local")
-    (version "1.2300")
+    (version "1.28")
     (source
      (origin
        (method url-fetch)
@@ -9089,7 +9093,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
                            "Time-Local-" version ".tar.gz"))
        (sha256
         (base32
-         "0jgvd6v93hlrcmy56yxbm4yrhzi8yvrq8c3xffpgh28af01wmb5j"))))
+         "03p1mxk75vmmi4l0ibpd05b6hncbh8afjhvss87vpp4rrkjvjy4j"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Time-Local")
     (synopsis "Efficiently compute time from local and GMT time")
@@ -9124,15 +9128,15 @@ still work as expected.")
 (define-public perl-timedate
   (package
     (name "perl-timedate")
-    (version "2.30")
+    (version "2.31")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/G/GB/GBARR/"
+       (uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/"
                            "TimeDate-" version ".tar.gz"))
        (sha256
         (base32
-         "11lf54akr9nbivqkjrhvkmfdgkbhw85sq0q4mak56n6bf542bgbm"))))
+         "10ad6l4ii2iahdpw8h0xqwasc1jblan31h597q3js4j5nbnhywjw"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/TimeDate")
     (synopsis "Date parsing/formatting subroutines")
@@ -9259,14 +9263,14 @@ variable conform.")
 (define-public perl-type-tiny
   (package
     (name "perl-type-tiny")
-    (version "1.006000")
+    (version "1.008003")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/"
                            "Type-Tiny-" version ".tar.gz"))
        (sha256
-        (base32 "007xsx78cnjillbny7x9sjn1w6z8m22fmksmay710jhbvw9h19nm"))))
+        (base32 "1x80rlnh7kl4xgm4qvyfbgahcyla4wbyh3b759nm21czn8x6wkm4"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-warnings" ,perl-test-warnings)))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 4e4d32dba9..62d555d788 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
@@ -271,13 +271,14 @@ easily control the volume of all clients, sinks, etc.")
     (name "ponymix")
     (version "5")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/falconindy/ponymix/"
-                                 "archive/" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/falconindy/ponymix/")
+                    (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "1c0ch98zry3c4ixywwynjid1n1nh4xl4l1p548giq2w3zwflaghn"))
-             (file-name (string-append name "-" version ".tar.gz"))))
+               "08yp7fprmzm6px5yx2rvzri0l60bra5h59l26pn0k071a37ks1rb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; There is no test suite.
@@ -304,15 +305,16 @@ sinks.")
 (define-public pulsemixer
   (package
     (name "pulsemixer")
-    (version "1.4.0")
+    (version "1.5.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/GeorgeFilipkin/"
-                                  "pulsemixer/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/GeorgeFilipkin/pulsemixer")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lpad90ifr2xfldyf39sbwx1v85rif2gm9w774gwwpjv53zfgk1g"))))
+                "162nfpyqn4gp45x332a73n07c118vispz3jicin4p67x3f8f0g3j"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index edc8d6e190..8d5788545f 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -241,14 +241,14 @@ problems for efficient solution on parallel systems.")
 (define-public python-fenics-dijitso
   (package
     (name "python-fenics-dijitso")
-    (version "2018.1.0")
+    (version "2019.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fenics-dijitso" version))
         (sha256
           (base32
-            "1qax2f52qsjbd1h5lk5i5shp448qlakxabjjybrfc1w823p0yql9"))))
+            "0lhqsq8ypdak0ahr2jnyvg07yrqp6wicjxi6k56zx24wp3qg60sc"))))
     (build-system python-build-system)
     (inputs
      `(("openmpi" ,openmpi)
@@ -292,14 +292,14 @@ the complexity of that interface.  Parallel support depends on the
 (define-public python-fenics-ufl
   (package
     (name "python-fenics-ufl")
-    (version "2018.1.0")
+    (version "2019.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fenics-ufl" version))
         (sha256
           (base32
-            "1fq8yc86s1s3c8c0b1rc2vf265q0hrkzg57100fg1nghcz0p4vla"))))
+            "10dz8x3lm68x2w3kkqcjask38h0zkhhak26jdbkppr8g9y8wny7p"))))
     (build-system python-build-system)
     (inputs
      `(("python-numpy" ,python-numpy)))
@@ -329,14 +329,14 @@ UFL is part of the FEniCS Project.")
 (define-public python-fenics-fiat
   (package
     (name "python-fenics-fiat")
-    (version "2018.1.0")
+    (version "2019.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fenics-fiat" version))
         (sha256
           (base32
-            "0fmjd93r6bwf6xs8csw86qzphrnr66xwv7f372w59gmq8mg6rljc"))))
+            "13sc7lma3d2mh43an7i4kkdbbk4cmvxjk45wi43xnjd7qc38zg4b"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -351,7 +351,15 @@ UFL is part of the FEniCS Project.")
              (setenv "PYTHONPATH"
                      (string-append (getcwd) ":" (getenv "PYTHONPATH")))
              (with-directory-excursion "test"
-               (invoke "py.test" "unit/"))
+               ;; FIXME: three FIAT test modules are known to fail
+               ;; with recent versions of pytest (>= 4).  These are
+               ;; skipped for FIAT version 2019.1.0 pending an
+               ;; upstream pull request. For details see request #59
+               ;; at https://bitbucket.org/fenics-project/fiat/.
+               (invoke "py.test" "unit/"
+                       "--ignore=unit/test_fiat.py"
+                       "--ignore=unit/test_quadrature.py"
+                       "--ignore=unit/test_reference_element.py"))
              #t)))))
     (home-page "https://bitbucket.org/fenics-project/fiat/")
     (synopsis "Tabulation of finite element function spaces")
@@ -371,14 +379,14 @@ FIAT is part of the FEniCS Project.")
 (define-public python-fenics-ffc
   (package
     (name "python-fenics-ffc")
-    (version "2018.1.0")
+    (version "2019.1.0.post0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fenics-ffc" version))
         (sha256
           (base32
-            "1b2ia5vlkw298x7rf0k2p3ihlpwkwgc98p3s6sbpds3hqmfrzdz9"))))
+            "1f2a44ha65fg3a1prrbrsz4dgvibsv0j5c3pi2m52zi93bhwwgg9"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -423,7 +431,7 @@ FFC is part of the FEniCS Project.")
 (define-public fenics-dolfin
   (package
     (name "fenics-dolfin")
-    (version "2018.1.0.post1")
+    (version "2019.1.0.post0")
     (source
       (origin
         (method url-fetch)
@@ -433,7 +441,7 @@ FFC is part of the FEniCS Project.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
           (base32
-           "12zkk8j3xsg6l8p0ggwsl03084vlcivw4h99b7z9kndg7k89b3ya"))
+           "1m91hwcq5gfj4qqswp8l8kj58nia48f0n4kq13w0xqj4biq7rla0"))
         (modules '((guix build utils)))
         (snippet
          '(begin
@@ -444,30 +452,10 @@ FFC is part of the FEniCS Project.")
               (("#include.*")
                "#include <catch.hpp>\n"))
             (substitute* "test/unit/cpp/CMakeLists.txt"
-              ;; Add extra include directories required by the unit tests.
-              (("(^target_link_libraries.*)" line)
-               (string-append line "\n"
-                              "target_include_directories("
-                              "unittests PRIVATE "
-                              "${DOLFIN_SOURCE_DIR} "
-                              "${DOLFIN_SOURCE_DIR}/dolfin "
-                              "${DOLFIN_BINARY_DIR})\n"))
+              ;; Specify directory to find the header file.
               (("(^set\\(CATCH_INCLUDE_DIR ).*(/catch\\))" _ front back)
                (string-append front
-                              "$ENV{CATCH_DIR}"
-                              "/include" back "\n")))
-            (substitute* "demo/CMakeLists.txt"
-              ;; Add extra include directories required by the demo tests.
-              (("(^#find_package.*)" line)
-               (string-append line "\n"
-                              "include_directories("
-                              "${DOLFIN_SOURCE_DIR} "
-                              "${DOLFIN_SOURCE_DIR}/dolfin "
-                              "${DOLFIN_BINARY_DIR})\n")))
-            (substitute* "dolfin/nls/PETScSNESSolver.cpp"
-              ;; Remove SNESTEST mapping.  The SNESTEST symbol was removed
-              ;; from PETSc at version 3.10.3.
-              ((".*SNESTEST.*") "" ))
+                              "$ENV{CATCH_DIR}/include" back "\n")))
             #t))))
     (build-system cmake-build-system)
     (inputs
@@ -484,7 +472,7 @@ FFC is part of the FEniCS Project.")
        ("sundials" ,sundials-openmpi)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("catch" ,catch-framework2)
+     `(("catch" ,catch-framework2-1)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("ffc" ,python-fenics-ffc)
@@ -644,12 +632,20 @@ user interface to the FEniCS core components and external libraries.")
            ,%openmpi-setup)
          (add-before 'check 'pre-check
            (lambda _
-             ;; Exclude tests that require meshes supplied by git-lfs.
+             ;; Exclude three tests that generate
+             ;; 'NotImplementedError' in matplotlib version 3.1.2.
+             ;; See
+             ;; <https://github.com/matplotlib/matplotlib/issues/15382>.
+             ;; Also exclude tests that require meshes supplied by
+             ;; git-lfs.
              (substitute* "demo/test.py"
                (("(.*stem !.*)" line)
                 (string-append
                  line "\n"
                  "excludeList = [\n"
+                 "'built-in-meshes', \n"
+                 "'hyperelasticity', \n"
+                 "'elasticity', \n"
                  "'multimesh-quadrature', \n"
                  "'multimesh-marking', \n"
                  "'mixed-poisson-sphere', \n"
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 863ac7e584..607df4bb03 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -60,6 +60,7 @@
   #:use-module (gnu packages regex)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages terminals)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages xml))
 
 (define-public vis
@@ -717,3 +718,45 @@ card.  It offers:
 @item Compose function for Latin 1 characters
 @end itemize")
     (license license:gpl2+)))
+
+(define-public ne
+  (package
+    (name "ne")
+    (version "3.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vigna/ne.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0h6d08cnwrk96ss83i9bragwwanph6x54sm3ak1z81146dsqsiif"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("texinfo" ,texinfo)))
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (arguments
+     `(#:tests? #f
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "LDFLAGS=-L" (assoc-ref %build-inputs "ncurses")
+                            "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* "src/makefile"
+              (("-lcurses") "-lncurses"))
+             #t)))))
+    (home-page "http://ne.di.unimi.it/")
+    (synopsis "Text editor with menu bar")
+    (description "This package provides a modeless text editor with menu bar.
+It supports syntax highlighting, regular expressions, configurable menus,
+keybindings, autocomplete and unlimited undo.  It can pipe a marked block
+of text through any command line filter.  It can also open very large binary
+files.  It was originally developed on the Amiga 3000T.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index a3db8e813d..ab1e6df6b1 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
@@ -1150,17 +1150,17 @@ by default and can be made read-only.")
 (define-public bochs
   (package
     (name "bochs")
-    (version "2.6.10")
+    (version "2.6.11")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://sourceforge.net/projects/bochs/files/bochs/"
                            version "/bochs-" version ".tar.gz"))
        (sha256
-        (base32 "1c3mw4b8wrjf8z44fvhycs95j1wd1c0b4khcv63giiia5j5q0gvj"))))
+        (base32 "0ql8q6y1k356li1g9gbvl21448mlxphxxi6kjb2b3pxvzd0pp2b3"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f)) ; No tests exist
+     `(#:tests? #f))                    ; no tests exist
     (inputs
      `(("libxrandr" ,libxrandr)))
     (home-page "http://bochs.sourceforge.net/")
diff --git a/gnu/packages/tigervnc.scm b/gnu/packages/vnc.scm
index 903d8ccd02..2b5adb899a 100644
--- a/gnu/packages/tigervnc.scm
+++ b/gnu/packages/vnc.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,25 +18,29 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (gnu packages tigervnc)
+(define-module (gnu packages vnc)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages commencement)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages gettext)
-  #:use-module (gnu packages tls)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages xorg)
   #:use-module (gnu packages fltk)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages commencement)
-  #:use-module (guix build-system cmake)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix utils)
-  #:use-module ((guix licenses) #:prefix license:))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xorg))
 
 (define-public tigervnc-client
   (package
@@ -232,3 +237,37 @@ applications.  It also provides extensions for advanced authentication methods
 and TLS encryption.  This package installs the VNC server, a program that will
 enable users with VNC clients to log into a graphical session on the machine
 where the server is installed.")))
+
+(define-public libvnc
+  (package
+    (name "libvnc")
+    (version "0.9.12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/LibVNC/libvncserver.git")
+             (commit (string-append "LibVNCServer-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1226hb179l914919f5nm2mlf8rhaarqbf48aa649p4rwmghyx9vm"))
+       (patches (search-patches "libvnc-CVE-2018-20750.patch"
+                                "libvnc-CVE-2019-15681.patch"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("lzo" ,lzo)
+       ("sdl2" ,sdl2)))
+    (home-page "https://libvnc.github.io/")
+    (synopsis "Cross-platform C libraries for implementing VNC server or
+client")
+    (description "This package provides @code{LibVNCServer} and
+@code{LibVNCClient}.  These are cross-platform C libraries that allow you to
+easily implement VNC server or client functionality in your program.")
+    (license ;; GPL for programs, FDL for documentation
+     (list license:gpl2+ license:fdl1.2+))))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 18ee158be5..00387ed899 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1619,7 +1619,8 @@ language known as SASS.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma"))))))))))
+               "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma"))))))))
+    (properties '((hidden? . #t)))))
 
 
 (define-public perl-apache-logformat-compiler
@@ -4883,7 +4884,7 @@ C.  It is developed as part of the NetSurf project.")
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
        ("pkg-config" ,pkg-config)
-       ("check" ,check)                 ;for tests
+       ("check" ,check-0.12)            ; For tests
        ("bison" ,bison)
        ("flex" ,flex)))
     (arguments netsurf-buildsystem-arguments)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index baf03e012f..bdab1fbe08 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -1897,7 +1897,7 @@ temperature of the screen.")
     (home-page "https://github.com/google/xsecurelock")
     (synopsis "X11 screen lock utility with the primary goal of security")
     (description "@code{xsecurelock} is an X11 screen locker which uses
-a modular design to avoid the usual pitfalls of screen locking utility design.
+a modular design to avoid the usual pitfalls of screen locking utility design.
 
 As a consequence of the modular design, the usual screen locker service
 shouldn't be used with @code{xsecurelock}.  Instead, you need to add a helper
@@ -1962,7 +1962,7 @@ The cutbuffer and clipboard selection are always synchronized.")
 (define-public jgmenu
   (package
     (name "jgmenu")
-    (version "3.5")
+    (version "4.0.1")
     (source
      (origin
        (method git-fetch)
@@ -1972,34 +1972,35 @@ The cutbuffer and clipboard selection are always synchronized.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0q0m3sskgmjv28gzvjkphgg3yhwzc9w9fj9i342pibb50impjazy"))))
+         "1q0rpg2d96sn3rrdi8m7bngnxxqyxilpjxi7skiw4gvpiv1akxjp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
+     `(("cppcheck" ,cppcheck)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("cairo" ,cairo)
+       ("glib" ,glib)
        ("librsvg" ,librsvg)
        ("libx11" ,libx11)
        ("libxml2" ,libxml2)
        ("libxrandr" ,libxrandr)
-       ("pango" ,pango)
-       ("python" ,python)))
+       ("pango" ,pango)))
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-paths
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((python (assoc-ref inputs "python")))
-                        (substitute* "src/jgmenu-pmenu.py"
-                          (("#!/usr/bin/env python3")
-                           (string-append "#!" python "/bin/python3")))
-                        #t)))
-                  (replace 'configure
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let ((out (assoc-ref outputs "out")))
-                        (setenv "prefix" out)
-                        (setenv "CC" "gcc")
-                        #t))))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             (substitute* "scripts/cppcheck-wrapper.sh"
+               (("--library=/usr/share/cppcheck/cfg/gnu\\.cfg")
+                ""))
+             #t))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "CC" "gcc")
+             (invoke "./configure"
+                     (string-append "--prefix=" (assoc-ref outputs "out")))
+             #t)))))
     (synopsis "Simple X11 menu")
     (description
      "This is a simple menu for X11 designed for scripting and tweaking.  It
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 43b6261c07..a07946d085 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -658,6 +658,7 @@
 
 (define %kresd.conf
   (plain-file "kresd.conf" "-- -*- mode: lua -*-
+trust_anchors.add_file('/var/cache/knot-resolver/root.keys')
 net = { '127.0.0.1', '::1' }
 user('knot-resolver', 'knot-resolver')
 modules = { 'hints > iterate', 'stats', 'predict' }
diff --git a/gnu/tests.scm b/gnu/tests.scm
index cc72e56858..60e7ef30c0 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -61,7 +61,7 @@
 ;;;
 ;;; This module provides the infrastructure to run operating system tests.
 ;;; The most important part of that is tools to instrument the OS under test,
-;;; essentially allowing to run in a virtual machine controlled by the host
+;;; essentially allowing it to run in a virtual machine controlled by the host
 ;;; system--hence the name "marionette".
 ;;;
 ;;; Code:
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index cbd33d9a89..de3e71a5aa 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -27,8 +27,8 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:export (%ocaml-build-system-modules
-            package-with-ocaml4.01
-            strip-ocaml4.01-variant
+            package-with-ocaml4.07
+            strip-ocaml4.07-variant
             default-findlib
             default-ocaml
             lower
@@ -84,13 +84,13 @@
   (let ((module (resolve-interface '(guix build-system dune))))
     (module-ref module 'dune-build-system)))
 
-(define (default-ocaml4.01)
+(define (default-ocaml4.07)
   (let ((ocaml (resolve-interface '(gnu packages ocaml))))
-    (module-ref ocaml 'ocaml-4.01)))
+    (module-ref ocaml 'ocaml-4.07)))
 
-(define (default-ocaml4.01-findlib)
+(define (default-ocaml4.07-findlib)
   (let ((module (resolve-interface '(gnu packages ocaml))))
-    (module-ref module 'ocaml4.01-findlib)))
+    (module-ref module 'ocaml4.07-findlib)))
 
 (define* (package-with-explicit-ocaml ocaml findlib old-prefix new-prefix
                                        #:key variant-property)
@@ -145,17 +145,17 @@ pre-defined variants."
 
   (package-mapping transform cut?))
 
-(define package-with-ocaml4.01
-  (package-with-explicit-ocaml (delay (default-ocaml4.01))
-                               (delay (default-ocaml4.01-findlib))
-                               "ocaml-" "ocaml4.01-"
-                               #:variant-property 'ocaml4.01-variant))
+(define package-with-ocaml4.07
+  (package-with-explicit-ocaml (delay (default-ocaml4.07))
+                               (delay (default-ocaml4.07-findlib))
+                               "ocaml-" "ocaml4.07-"
+                               #:variant-property 'ocaml4.07-variant))
 
-(define (strip-ocaml4.01-variant p)
-  "Remove the 'ocaml4.01-variant' property from P."
+(define (strip-ocaml4.07-variant p)
+  "Remove the 'ocaml4.07-variant' property from P."
   (package
     (inherit p)
-    (properties (alist-delete 'ocaml4.01-variant (package-properties p)))))
+    (properties (alist-delete 'ocaml4.07-variant (package-properties p)))))
 
 (define* (lower name
                 #:key source inputs native-inputs outputs system target