summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-07-27 12:33:53 +0200
committerMarius Bakke <marius@gnu.org>2022-07-27 12:33:53 +0200
commit6611cabd1c3791c79ce2ff701eaf758ceacd9119 (patch)
treeef2a8d483dfee9d65f61b386194bba4fbc69d58a /gnu
parent7aad4a99f790e256ef03bcf4c6a619560ae48075 (diff)
parent25d59733a52075fe802b7928fdaa2f236814cd15 (diff)
downloadguix-6611cabd1c3791c79ce2ff701eaf758ceacd9119.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk7
-rw-r--r--gnu/packages/algebra.scm19
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/audio.scm14
-rw-r--r--gnu/packages/clojure.scm187
-rw-r--r--gnu/packages/cpp.scm8
-rw-r--r--gnu/packages/crates-graphics.scm29
-rw-r--r--gnu/packages/crates-io.scm777
-rw-r--r--gnu/packages/datamash.scm6
-rw-r--r--gnu/packages/disk.scm4
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm4
-rw-r--r--gnu/packages/engineering.scm4
-rw-r--r--gnu/packages/file-systems.scm8
-rw-r--r--gnu/packages/fontutils.scm15
-rw-r--r--gnu/packages/freedesktop.scm2
-rw-r--r--gnu/packages/gnome.scm6
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/image.scm13
-rw-r--r--gnu/packages/libusb.scm15
-rw-r--r--gnu/packages/linux.scm32
-rw-r--r--gnu/packages/lisp-xyz.scm89
-rw-r--r--gnu/packages/messaging.scm46
-rw-r--r--gnu/packages/music.scm35
-rw-r--r--gnu/packages/networking.scm12
-rw-r--r--gnu/packages/patches/dbxfs-remove-sentry-sdk.patch63
-rw-r--r--gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch73
-rw-r--r--gnu/packages/patches/eigen-remove-openmp-error-counting.patch64
-rw-r--r--gnu/packages/patches/eigen-stabilise-sparseqr-test.patch74
-rw-r--r--gnu/packages/patches/php-curl-compat.patch17
-rw-r--r--gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch108
-rw-r--r--gnu/packages/pdf.scm23
-rw-r--r--gnu/packages/perl.scm4
-rw-r--r--gnu/packages/php.scm9
-rw-r--r--gnu/packages/python-xyz.scm4
-rw-r--r--gnu/packages/shells.scm15
-rw-r--r--gnu/packages/toolkits.scm6
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/video.scm14
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/vpn.scm9
-rw-r--r--gnu/packages/web.scm2
-rw-r--r--gnu/packages/xdisorg.scm42
43 files changed, 1249 insertions, 640 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 2bcf966101..33b8194dc1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1018,8 +1018,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ecl-16-libffi.patch			\
   %D%/packages/patches/efibootmgr-remove-extra-decl.patch	\
   %D%/packages/patches/efivar-211.patch			\
-  %D%/packages/patches/eigen-remove-openmp-error-counting.patch	\
-  %D%/packages/patches/eigen-stabilise-sparseqr-test.patch	\
+  %D%/packages/patches/eigen-fix-strict-aliasing-bug.patch	\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-path-length.patch			\
@@ -1632,8 +1631,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/perl-www-curl-fix-struct-void.patch	\
   %D%/packages/patches/perl-www-curl-remove-symbol.patch	\
   %D%/packages/patches/phoronix-test-suite-fsdg.patch		\
-  %D%/packages/patches/php-bug-74093-test.patch \
-  %D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch	\
+  %D%/packages/patches/php-bug-74093-test.patch			\
+  %D%/packages/patches/php-curl-compat.patch			\
   %D%/packages/patches/picard-fix-id3-rename-test.patch		\
   %D%/packages/patches/picprog-non-intel-support.patch		\
   %D%/packages/patches/pidgin-add-search-path.patch		\
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 95fbdb5e36..bb71373aa9 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -986,20 +986,17 @@ extends it by a set of algebraic capabilities.")
 (define-public eigen
   (package
     (name "eigen")
-    (version "3.3.8")
+    (version "3.4.0")
     (source (origin
-              (method url-fetch)
-              (uri (list
-                     (string-append "https://bitbucket.org/eigen/eigen/get/"
-                                    version ".tar.bz2")
-                     (string-append "mirror://debian/pool/main/e/eigen3/eigen3_"
-                                    version ".orig.tar.bz2")))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/libeigen/eigen.git")
+                    (commit version)))
               (sha256
                (base32
-                "1vxrsncfnkyq6gwxpsannpryp12mk7lc8f42ybvz3saf7icwc582"))
-              (file-name (string-append name "-" version ".tar.bz2"))
-              (patches (search-patches "eigen-remove-openmp-error-counting.patch"
-                                       "eigen-stabilise-sparseqr-test.patch"))
+                "0k1c4qnymwwvm68rv6s0cyk08xbw65ixvwqccsh36c2axcqk3znp"))
+              (file-name (git-file-name name version))
+              (patches (search-patches "eigen-fix-strict-aliasing-bug.patch"))
               (modules '((guix build utils)))
               (snippet
                ;; There are 3 test failures in the "unsupported" directory,
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 498252aaf4..e84eb188ff 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -426,7 +426,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.17")
+    (version "0.18")
     (source
      (origin
        (method url-fetch)
@@ -434,7 +434,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
                            version ".tar.lz"))
        (sha256
         (base32
-         "1gq37axs9l556pxxmnh47h088gbmp7sk3xjg59qzk2bsycg3dkgh"))))
+         "1y9ig2kkwiwl0rmp9ip9n83fyjjpg2cc2pxzvdzr8rysq5az357y"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 262994c998..66654b99fc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -4352,7 +4352,7 @@ code, used in @code{libtoxcore}.")
 (define-public gsm
   (package
     (name "gsm")
-    (version "1.0.19")
+    (version "1.0.20")
     (source
      (origin
        (method url-fetch)
@@ -4360,8 +4360,7 @@ code, used in @code{libtoxcore}.")
         (string-append "http://www.quut.com/" name "/" name
                        "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9"))))
+        (base32 "1gwhmqs24c14gc9qr91iqb2jkbr3qqy4dvf27yf8j7mq322w65b3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "tst"
@@ -4374,8 +4373,7 @@ code, used in @code{libtoxcore}.")
              ;; mediastreamer.
              (substitute* "Makefile"
                (("^CCFLAGS.*" all)
-                (string-append all "CCFLAGS += -fPIC\n")))
-             #t))
+                (string-append all "CCFLAGS += -fPIC\n")))))
          (add-before 'install 'pre-install
            (lambda _
              (let ((out (assoc-ref %outputs "out")))
@@ -4384,8 +4382,7 @@ code, used in @code{libtoxcore}.")
                (mkdir-p (string-append out "/man/man1"))
                (mkdir-p (string-append out "/man/man3"))
                (mkdir-p (string-append out "/bin"))
-               (mkdir-p (string-append out "/lib")))
-             #t))
+               (mkdir-p (string-append out "/lib")))))
          (add-after 'install 'post-install
            (lambda _
              (let ((out (assoc-ref %outputs "out")))
@@ -4393,8 +4390,7 @@ code, used in @code{libtoxcore}.")
                             (string-append out "/include"))
                (mkdir-p (string-append out "/include/gsm"))
                (copy-recursively "inc"
-                                 (string-append out "/include/gsm")))
-             #t))
+                                 (string-append out "/include/gsm")))))
          (delete 'configure))))         ; no configure script
     (synopsis "GSM 06.10 lossy speech compression library")
     (description "This C library provides an encoder and a decoder for the GSM
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index c8157bfdcd..9876192f5f 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -43,36 +43,44 @@
          ;; The libraries below are needed to run the tests.
          (libraries
           `(("core-specs-alpha-src"
-             ,(lib "core.specs.alpha/archive/core.specs.alpha-"
-                   "0.1.24"
-                   "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv"))
+             ,(lib "core.specs.alpha/archive/v"
+                   "0.2.62"
+                   "0v6nhghsigpzm8y7dykfm318q5dvk5l8sykmn1hr0qgs1jsjqh9j"))
             ("data-generators-src"
              ,(lib "data.generators/archive/data.generators-"
-                   "0.1.2"
-                   "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1"))
+                   "1.0.0"
+                   "0s3hf1njvs68b8igasikvzagzqxl0gbri7w2qhzsypkhfh60v2cp"))
+            ("java-classpath-src"
+             ,(lib "java.classpath/archive/java.classpath-"
+                   "1.0.0"
+                   "178zajjsc9phk5l61r8w9hcpk0wgc9a811pl7kjgvn7rg4l7fh7j"))
             ("spec-alpha-src"
-             ,(lib "spec.alpha/archive/spec.alpha-"
-                   "0.1.143"
-                   "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz"))
+             ,(lib "spec.alpha/archive/v"
+                   "0.3.218"
+                   "0h5nd9xlind1a2vmllr2yfhnirgj2pm5dndgqzrly78l5iwcc3wa"))
             ("test-check-src"
-             ,(lib "test.check/archive/test.check-"
-                   "0.9.0"
-                   "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md"))
+             ,(lib "test.check/archive/v"
+                   "1.1.1"
+                   "0kx8l79mhpnn94rpsgc7nac7gb222g7a47mzrycj8crfc54wf0c1"))
             ("test-generative-src"
              ,(lib "test.generative/archive/test.generative-"
-                   "0.5.2"
-                   "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8"))
+                   "1.0.0"
+                   "0yy2vc38s4j5n94jdcjx1v7l2gdq0lywam31id1jh07sx37lv5il"))
             ("tools-namespace-src"
              ,(lib "tools.namespace/archive/tools.namespace-"
-                   "0.2.11"
-                   "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0"))))
+                   "1.0.0"
+                   "1ifpk93m33rj2xm1qnnninlsdvm1liqmsp9igr63pjjwwwjw1cnn"))
+            ("tools-reader-src"
+             ,(lib "tools.reader/archive/tools.reader-"
+                   "1.3.2"
+                   "1n4dhg61iyypnjbxmihhqjb7lfpc0lzfvlk4jd8w0yr6za414f3a"))))
          (library-names (match libraries
                           (((library-name _) ...)
                            library-name))))
 
     (package
       (name "clojure")
-      (version "1.10.0")
+      (version "1.11.1")
       (source (let ((name+version (string-append name "-" version)))
                 (origin
                   (method git-fetch)
@@ -81,18 +89,23 @@
                         (commit name+version)))
                   (file-name (string-append name+version "-checkout"))
                   (sha256
-                   (base32 "1kcyv2836acs27vi75hvf3r773ahv2nlh9b3j9xa9m9sdanz1h83")))))
+                   (base32 "1xbab21rm9zvhmw1i2h5lqm7612vrdkxprq0rgb2i3sbgsxcdsn4")))))
       (build-system ant-build-system)
       (inputs
        `(("jre" ,icedtea)))
       (arguments
        `(#:imported-modules ((guix build clojure-utils)
+                             (guix build clojure-build-system)
                              (guix build guile-build-system)
                              ,@%ant-build-system-modules)
          #:modules ((guix build ant-build-system)
+                    ((guix build clojure-build-system) #:prefix clj:)
                     (guix build clojure-utils)
                     (guix build java-utils)
                     (guix build utils)
+                    (guix build syscalls)
+                    (ice-9 match)
+                    (ice-9 regex)
                     (srfi srfi-26))
          #:test-target "test"
          #:phases
@@ -106,22 +119,60 @@
                            "--extract"
                            "--verbose"
                            "--file" (assoc-ref inputs name)
-                           "--strip-components=1"))
-                 (copy-recursively (string-append name "/src/main/clojure/")
-                                   "src/clj/"))
+                           "--strip-components=1")))
                (for-each extract-library ',library-names)
+               (copy-recursively "core-specs-alpha-src/src/main/clojure"
+                                 "src/clj/")
+               (copy-recursively "spec-alpha-src/src/main/clojure"
+                                 "src/clj/")
                #t))
            (add-after 'unpack-library-sources 'fix-manifest-classpath
              (lambda _
                (substitute* "build.xml"
                  (("<attribute name=\"Class-Path\" value=\".\"/>") ""))
                #t))
+           (add-after 'unpack-library-sources 'clojure-spec-skip-macros
+             ;; Disable spec macro instrumentation when compiling clojure.spec
+             ;; See: https://clojure.atlassian.net/browse/CLJ-2254
+             (lambda _
+               (substitute* "build.xml"
+                 (("<sysproperty key=\"java.awt.headless\" value=\"true\"/>")
+                  ,(string-join
+                    '("<sysproperty key=\"java.awt.headless\" value=\"true\"/>"
+                      "<sysproperty key=\"clojure.spec.skip-macros\" value=\"true\"/>\n")
+                    "\n")))
+               #t))
+           (add-after 'unpack-library-sources 'clojure-spec-compile
+             ;; Compile and include clojure.spec.alpha & clojure.core.specs.alpha
+             (lambda _
+               (substitute* "build.xml"
+                 (("<arg value=\"clojure.math\"/>")
+                  ,(string-join
+                    '("<arg value=\"clojure.math\"/>"
+                      "<arg value=\"clojure.spec.alpha\"/>"
+                      "<arg value=\"clojure.spec.gen.alpha\"/>"
+                      "<arg value=\"clojure.spec.test.alpha\"/>"
+                      "<arg value=\"clojure.core.specs.alpha\"/>"))))
+               #t))
+           (add-before 'build 'maven-classpath-properties
+             (lambda _
+               (define (make-classpath libraries)
+                 (string-join (map (lambda (library)
+                                     (string-append library "/src/main/clojure"))
+                                   libraries) ":"))
+               (with-output-to-file "maven-classpath.properties"
+                 (lambda ()
+                   (let ((classpath (make-classpath ',library-names)))
+                     (display (string-append "maven.compile.classpath=" classpath "\n"))
+                     (display (string-append "maven.test.classpath=" classpath "\n")))))
+               #t))
            (add-after 'build 'build-javadoc ant-build-javadoc)
            (replace 'install (install-jars "./"))
            (add-after 'install-license-files 'install-doc
              (cut install-doc #:doc-dirs '("doc/clojure/") <...>))
            (add-after 'install-doc 'install-javadoc
-             (install-javadoc "target/javadoc/")))))
+             (install-javadoc "target/javadoc/"))
+           (add-after 'reset-gzip-timestamps 'reset-class-timestamps clj:reset-class-timestamps))))
       (native-inputs libraries)
       (home-page "https://clojure.org/")
       (synopsis "Lisp dialect running on the JVM")
@@ -153,14 +204,14 @@ designs.")
 (define-public clojure-tools
   (package
     (name "clojure-tools")
-    (version "1.10.3.1040")
+    (version "1.11.1.1149")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.clojure.org/install/clojure-tools-"
                            version
                            ".tar.gz"))
-       (sha256 (base32 "0xvr9nmk9q789vp32zmmzj4macv8v7y9ivnfd6lf7i8vxgg6hvgv"))
+       (sha256 (base32 "196wl87br8zg3npfwpr5c1q0knxd1810vzgb0b6h195hyjf6i210"))
        ;; Remove AOT compiled JAR.  The other JAR only contains uncompiled
        ;; Clojure source code.
        (snippet
@@ -224,7 +275,15 @@ Clojure repl, use Clojure and Java libraries, and start Clojure programs.")
     (arguments
      '(#:source-dirs '("src/main/clojure/")
        #:test-dirs '("src/test/clojure/")
-       #:doc-dirs '()))
+       #:doc-dirs '()
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-import
+           (lambda _
+             (substitute*
+                 "src/main/clojure/clojure/algo/generic/math_functions.clj"
+               (("clojure.algo.generic.math-functions")
+                "clojure.algo.generic.math-functions\n(:refer-clojure :exclude [abs])")))))))
     (synopsis "Generic versions of common functions")
     (description
      "Generic versions of commonly used functions, implemented as multimethods
@@ -261,31 +320,29 @@ defining and using monads and useful monadic functions.")
     (license license:epl1.0)))
 
 (define-public clojure-core-match
-  (let ((commit "1837ffbd4a150e8f3953b2d9ed5cf4a4ad3720a7")
-        (revision "1")) ; this is the 1st commit buildable with clojure 1.9
-    (package
-      (name "clojure-core-match")
-      (version (git-version "0.3.0-alpha5" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/clojure/core.match")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "04bdlp5dgkrqzrz0lw3mfwmygj2218qnm1cz3dkb9wy4m0238s4d"))))
-      (build-system clojure-build-system)
-      (arguments
-       '(#:source-dirs '("src/main/clojure")
-         #:test-dirs '("src/test/clojure")
-         #:doc-dirs '()))
-      (synopsis "Optimized pattern matching for Clojure")
-      (description
-       "An optimized pattern matching library for Clojure.
+  (package
+    (name "clojure-core-match")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/clojure/core.match")
+                    (commit (string-append "core.match-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ajpxjv4yc282cm0jw8819fay2j6jqp9nfy69k7vll09q7vqsd22"))))
+    (build-system clojure-build-system)
+    (arguments
+     '(#:source-dirs '("src/main/clojure")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()))
+    (synopsis "Optimized pattern matching for Clojure")
+    (description
+     "An optimized pattern matching library for Clojure.
 It supports Clojure 1.5.1 and later as well as ClojureScript.")
-      (home-page "https://github.com/clojure/core.match")
-      (license license:epl1.0))))
+    (home-page "https://github.com/clojure/core.match")
+    (license license:epl1.0)))
 
 (define-public clojure-data-codec
   (package
@@ -354,8 +411,7 @@ lazy - should allow parsing and emitting of large XML documents")
     (license license:epl1.0)))
 
 (define-public clojure-instaparse
-  (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
-        (version "1.4.9")) ; upstream forget to tag this release
+  (let ((version "1.4.12"))
     (package
       (name "clojure-instaparse")
       (version version)
@@ -363,14 +419,27 @@ lazy - should allow parsing and emitting of large XML documents")
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/Engelberg/instaparse")
-                      (commit commit)))
+                      (commit (string-append "v" version))))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "002mrgin4z3dqy88r1lak7smd0m7x8d22vmliw0m6w6mh5pa17lk"))))
+                  "1xdiwsv1dc8mvrmvgs4xdqk3z6ddsammc6brhcb771yhimx8jjcr"))))
       (build-system clojure-build-system)
       (arguments
-       '(#:doc-dirs '("docs/")))
+       '(;; Disabled AOT, because of failing test: No implementation of
+         ;; method: :conj-flat of protocol:
+         ;; #'instaparse.auto-flatten-seq/ConjFlat found for class:
+         ;; instaparse.auto_flatten_seq.AutoFlattenSeq
+         #:aot-exclude '(#:all)
+         #:doc-dirs '("docs/")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-import
+             (lambda _
+               (substitute*
+                   "test/instaparse/defparser_test.cljc"
+                 (("AssertionError")
+                  "Exception")))))))
       (synopsis "No grammar left behind")
       (description
        "Instaparse aims to be the simplest way to build parsers in Clojure.
@@ -458,7 +527,7 @@ concise, powerful tests.")
 (define-public clojure-tools-cli
   (package
     (name "clojure-tools-cli")
-    (version "0.4.2")
+    (version "1.0.206")
     (home-page "https://github.com/clojure/tools.cli")
     (source (origin
               (method git-fetch)
@@ -467,7 +536,7 @@ concise, powerful tests.")
                     (commit (string-append "tools.cli-" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1yqlm8lwbcjm0dp032z7vzc4bdlmc4jixznvf4adsqhvqw85hvj2"))))
+               (base32 "1hvk5zacl3fr8lfcbfgckaicqjx697j0kzw2x5hwj8j5xlr8ri2r"))))
     (build-system clojure-build-system)
     (arguments
      '(#:source-dirs '("src/main/clojure/")
@@ -482,7 +551,7 @@ work with command-line arguments.")
 (define-public clojure-tools-deps-alpha
   (package
     (name "clojure-tools-deps-alpha")
-    (version "0.12.1104")
+    (version "0.14.1212")
     (home-page "https://github.com/clojure/tools.deps.alpha")
     (source (origin
               (method git-fetch)
@@ -492,7 +561,7 @@ work with command-line arguments.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "174m83n5m3arai2vbg434zjibbsr3r4pp7lz3adja8lxq7g21r80"))))
+                "0r8qfihii6cf95kl86x6zfldnm7wlkgda2qmq3340j1x03v244dd"))))
     (build-system clojure-build-system)
     (arguments
      `(#:source-dirs '("src/main/clojure" "src/main/resources")
@@ -544,7 +613,7 @@ dependency graph expansion and the creation of classpaths.")
 (define-public clojure-tools-gitlibs
   (package
     (name "clojure-tools-gitlibs")
-    (version "2.4.172")
+    (version "2.4.181")
     (home-page "https://github.com/clojure/tools.gitlibs")
     (source (origin
               (method git-fetch)
@@ -554,7 +623,7 @@ dependency graph expansion and the creation of classpaths.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "19d83wigmigy66f5i61a3ishg7zrlv8jngj8m9brsh9v38a0fwdr"))))
+                "1d8c79f33axghadwqa955yjfsxa6fgl8jq4nfll2zrp6sjw0597k"))))
     (build-system clojure-build-system)
     (arguments
      '(#:source-dirs '("src/main/clojure")
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 5ae5efc330..8330f0d157 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1474,7 +1474,7 @@ output randomness while retaining speed, simplicity, and conciseness.")
 (define-public libconfini
   (package
     (name "libconfini")
-    (version "1.16.3")
+    (version "1.16.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1483,10 +1483,12 @@ output randomness while retaining speed, simplicity, and conciseness.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01g8ai2z4fwshk06k824j6ib8nfb3cwxs5kqpqjvv4k5ayzm892h"))))
+                "002lmf1b2phmc6s348k00yx5shrcc7psn3pgqvraxvr6n8g747jx"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
        (modify-phases %standard-phases
          (replace 'bootstrap
            (lambda _ (invoke "sh" "bootstrap" "--noconfigure"))))))
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index d1a9c4dd6d..5d88cb0372 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2087,28 +2087,45 @@ interactive applications.")
 images in AVIF format.")
     (license license:bsd-3)))
 
-(define-public rust-raw-window-handle-0.3
+(define-public rust-raw-window-handle-0.4
   (package
     (name "rust-raw-window-handle")
-    (version "0.3.3")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "raw-window-handle" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04c2wir7qq3g2b143yav52a1g5ack8ffqx2bpmrn9bc0dix1li0a"))))
+         "0hgvrqbr2b62zhq4ryv08h92mwis9v8f7j9pwcgxzlp7nswvw05q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+     `(#:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2))))
     (home-page "https://github.com/rust-windowing/raw-window-handle")
     (synopsis "Interoperability library for Rust Windowing applications")
     (description
      "Interoperability library for Rust Windowing applications.")
     (license license:expat)))
 
+(define-public rust-raw-window-handle-0.3
+  (package
+    (inherit rust-raw-window-handle-0.4)
+    (name "rust-raw-window-handle")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "raw-window-handle" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04c2wir7qq3g2b143yav52a1g5ack8ffqx2bpmrn9bc0dix1li0a"))))
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-resize-0.3
   (package
     (name "rust-resize")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index fbb701d064..75009b6cf1 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23,7 +23,7 @@
 ;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Jacob Hrbek <kreyren@rixotstudio.cz>
-;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2021, 2022 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
 ;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2022 Evgenii Lepikhin <e.lepikhin@corp.mail.ru>
@@ -1815,23 +1815,24 @@ Rust, using gimli.")
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-rustc-test" ,rust-rustc-test-0.3))))))
 
-(define-public rust-adler-0.2
+(define-public rust-adler-1
   (package
     (name "rust-adler")
-    (version "0.2.3")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "adler" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0zpdsrfq5bd34941gmrlamnzjfbsx0x586afb7b0jqhr8g1lwapf"))))
+        (base32 "1zim79cvzd5yrkzl3nyfx0avijwgk9fqv3yrscdy1cc79ih02qpj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
     (home-page "https://github.com/jonas-schievink/adler")
     (synopsis "Implementation of the Adler-32 checksum")
     (description
@@ -1842,6 +1843,20 @@ checksum, used in the zlib compression format.")
            license:asl2.0
            (license:non-copyleft "https://spdx.org/licenses/0BSD.html")))))
 
+(define-public rust-adler-0.2
+  (package
+    (inherit rust-adler-1)
+    (name "rust-adler")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "adler" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zpdsrfq5bd34941gmrlamnzjfbsx0x586afb7b0jqhr8g1lwapf"))))
+    (build-system cargo-build-system)))
+
 (define-public rust-adler32-1
   (package
     (name "rust-adler32")
@@ -9438,8 +9453,35 @@ spreadsheet file.")
         ("rust-serde" ,rust-serde-1)
         ("rust-zip" ,rust-zip-0.5))))))
 
+(define-public rust-calloop-0.9
+  (package
+    (name "rust-calloop")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "calloop" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10mbcsd7fj3cg0a463h3003wycv955cnj4pm2gla2sp5xxhyqbmz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;XXX fails without stdin, fixed in 0.11
+       #:cargo-inputs
+       (("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.22))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3))))
+    (home-page "https://github.com/Smithay/calloop")
+    (synopsis "Callback-based event loop")
+    (description "This package provides a callback-based event loop.")
+    (license license:expat)))
+
 (define-public rust-calloop-0.6
   (package
+    (inherit rust-calloop-0.9)
     (name "rust-calloop")
     (version "0.6.5")
     (source
@@ -9454,11 +9496,7 @@ spreadsheet file.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-log" ,rust-log-0.4)
-        ("rust-nix" ,rust-nix-0.18))))
-    (home-page "https://github.com/Smithay/calloop")
-    (synopsis "Callback-based event loop")
-    (description "This package provides a callback-based event loop.")
-    (license license:expat)))
+        ("rust-nix" ,rust-nix-0.18))))))
 
 (define-public rust-calloop-0.4
   (package
@@ -10166,8 +10204,32 @@ using linear constraints, like ``this button must line up with this text
 box''.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cast-0.3
+  (package
+    (name "rust-cast")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1dbyngbyz2qkk0jn2sxil8vrz3rnpcj142y184p9l4nbl9radcip"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-1))))
+    (home-page "https://github.com/japaric/cast.rs")
+    (synopsis
+     "Ergonomic, checked cast functions for primitive types")
+    (description
+     "Ergonomic, checked cast functions for primitive types.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cast-0.2
   (package
+    (inherit rust-cast-0.3)
     (name "rust-cast")
     (version "0.2.3")
     (source
@@ -10185,13 +10247,7 @@ box''.")
        #:cargo-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2))
        #:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.9))))
-    (home-page "https://github.com/japaric/cast.rs")
-    (synopsis
-     "Ergonomic, checked cast functions for primitive types")
-    (description
-     "Ergonomic, checked cast functions for primitive types.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))))
 
 (define-public rust-cblas-sys-0.1
   (package
@@ -12231,6 +12287,25 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
      "Common path finds the common prefix between a set of paths.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-const-cstr-0.3
+  (package
+    (name "rust-const-cstr")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "const-cstr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19ij6m8s16d0i7vma535l7w4x8bcanjcxs7c6n7sci86ydghnggd"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/cybergeek94/const-cstr")
+    (synopsis "Create static C-compatible strings from Rust string literals")
+    (description
+     "This crate lets you create static C-compatible strings from Rust string
+literals.")
+    (license (list license:expat license:asl2.0))))
+
 ;; This package requires features which are unavailable
 ;; on the stable releases of Rust.
 (define-public rust-compiler-builtins-0.1
@@ -18391,8 +18466,33 @@ Central Dispatch.")
 Google's diff-match-patch.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dlib-0.5
+  (package
+    (name "rust-dlib")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dlib" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1547hy7nrhkrb2i09va244c0h8mr845ccbs2d2mc414c68bpa6xc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;FIXME: Several macros are not found.
+       #:cargo-inputs
+       (("rust-libloading" ,rust-libloading-0.7))))
+    (home-page "https://github.com/vberger/dlib")
+    (synopsis "Helper macros for manually loading optional system libraries")
+    (description
+     "This package provides helper macros for handling manually loading optional
+system libraries.")
+    (license license:expat)))
+
 (define-public rust-dlib-0.4
   (package
+    (inherit rust-dlib-0.5)
     (name "rust-dlib")
     (version "0.4.2")
     (source
@@ -18404,18 +18504,11 @@ Google's diff-match-patch.")
        (sha256
         (base32
          "0xlsf3lrz9hd7q3ff6lp5mw4kn3nbryn746kd07i93r6wg8ia7xi"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libloading" ,rust-libloading-0.6))))
     (inputs
-     (list rust-libloading-0.6))
-    (home-page "https://github.com/vberger/dlib")
-    (synopsis "Helper macros for manually loading optional system libraries")
-    (description
-     "This package provides helper macros for handling manually loading optional
-system libraries.")
-    (license license:expat)))
+     (list rust-libloading-0.6))))
 
 (define-public rust-dlv-list-0.2
   (package
@@ -23025,6 +23118,27 @@ macOS API for file changes notifications")
      `(#:skip-build? #t     ; only available on macOS
        #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-fslock-0.2
+  (package
+    (name "rust-fslock")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fslock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yrv9j44k3njzpnh8m2jc0gr3hklzyzwfj3gmsdklbi76n4jnh84"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/brunoczim/fslock")
+    (synopsis "Lock file library")
+    (description "This package provides a library to use files as locks.")
+    (license license:expat)))
+
 (define-public rust-fst-0.4
   (package
     (name "rust-fst")
@@ -30580,10 +30694,10 @@ kernel32.")
      "This package provides a Log macro for log's kv-unstable backend.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-language-tags-0.2
+(define-public rust-language-tags-0.3
   (package
     (name "rust-language-tags")
-    (version "0.2.2")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
@@ -30591,13 +30705,14 @@ kernel32.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "16hrjdpa827carq5x4b8zhas24d8kg4s16m6nmmn1kb7cr5qh7d9"))))
+          "124k6w9nx33q4xs8rpa9f7klshrsa0x4f7qngdwq890lpdj5jd6l"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-heapsize" ,rust-heapsize-0.3)
-        ("rust-heapsize-plugin" ,rust-heapsize-plugin-0.1))))
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/pyfisch/rust-language-tags")
     (synopsis "Language tags for Rust")
     (description
@@ -30608,6 +30723,25 @@ currently supports parsing (fully conformant parser), formatting and comparing
 language tags.")
     (license license:expat)))
 
+(define-public rust-language-tags-0.2
+  (package
+    (inherit rust-language-tags-0.3)
+    (name "rust-language-tags")
+    (version "0.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "language-tags" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "16hrjdpa827carq5x4b8zhas24d8kg4s16m6nmmn1kb7cr5qh7d9"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-heapsize" ,rust-heapsize-0.3)
+        ("rust-heapsize-plugin" ,rust-heapsize-plugin-0.1))))))
+
 (define-public rust-lab-0.11
   (package
     (name "rust-lab")
@@ -34799,26 +34933,25 @@ float parser.")
         (sha256
          (base32 "0xynhr97vyv5n5lls41dl7bfa3ba122lix9mqij1l7yprl6n6r4w"))))))
 
-(define-public rust-miniz-oxide-0.4
+(define-public rust-miniz-oxide-0.5
   (package
     (name "rust-miniz-oxide")
-    (version "0.4.3")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "miniz_oxide" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17d1xp29v5xgh4vahxld14w1c1hgh38qmxpv7i18wy096gn2cb8g"))))
+        (base32 "1k1wfxb35v129mhqy14yqhrj3wvknafrwygiq7zvi0m5iml7ap3g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-adler" ,rust-adler-0.2)
-        ("rust-autocfg" ,rust-autocfg-1)
+     `(#:cargo-inputs
+       (("rust-adler" ,rust-adler-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-simd-adler32" ,rust-simd-adler32-0.3))))
     (home-page  "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
     (synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
     (description
@@ -34827,6 +34960,26 @@ float parser.")
 streaming API for miniz_oxide.")
     (license (list license:expat license:zlib license:asl2.0))))
 
+(define-public rust-miniz-oxide-0.4
+  (package
+    (inherit rust-miniz-oxide-0.5)
+    (name "rust-miniz-oxide")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "miniz_oxide" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17d1xp29v5xgh4vahxld14w1c1hgh38qmxpv7i18wy096gn2cb8g"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler" ,rust-adler-0.2)
+        ("rust-autocfg" ,rust-autocfg-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
+
 (define-public rust-miniz-oxide-0.3
   (package
     (inherit rust-miniz-oxide-0.4)
@@ -34841,8 +34994,7 @@ streaming API for miniz_oxide.")
          (base32
           "198n4hfpq0qcxf275l6fpzh7b9cl7ck2xs6pjgpds74bazv9yrxa"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-adler32" ,rust-adler32-1))))))
+     `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))))
 
 (define-public rust-miniz-oxide-0.2
   (package
@@ -34857,7 +35009,8 @@ streaming API for miniz_oxide.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "17f92krv9hhsyc38prpfyn99m2hqhr4fgszpsla66a6gcrnpbhxn"))))))
+         "17f92krv9hhsyc38prpfyn99m2hqhr4fgszpsla66a6gcrnpbhxn"))))
+    (arguments `(#:skip-build? #t))))
 
 (define-public rust-miniz-oxide-c-api-0.2
   (package
@@ -35830,8 +35983,65 @@ quick compile time, and minimal dependencies.")
        #:cargo-inputs
        (("rust-rayon" ,rust-rayon-1))))))
 
+(define-public rust-nalgebra-0.29
+  (package
+    (name "rust-nalgebra")
+    (version "0.29.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nalgebra" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1zri11vkrbk3ayvy8xqcdvvyjvfcbl5a18x8z82racnn11zfn1nm"))
+       (modules '((guix build utils)))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:tests? #f       ;TODO: how to enable required features?
+        #:cargo-inputs
+        (("rust-abomonation" ,rust-abomonation-0.7)
+         ("rust-alga" ,rust-alga-0.9)
+         ("rust-approx" ,rust-approx-0.5)
+         ("rust-bytemuck" ,rust-bytemuck-1)
+         ("rust-glam" ,rust-glam-0.17)
+         ("rust-glam" ,rust-glam-0.16)
+         ("rust-glam" ,rust-glam-0.15)
+         ("rust-glam" ,rust-glam-0.14)
+         ("rust-glam" ,rust-glam-0.13)
+         ("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+         ("rust-matrixmultiply" ,rust-matrixmultiply-0.3)
+         ("rust-mint" ,rust-mint-0.5)
+         ("rust-nalgebra-macros" ,rust-nalgebra-macros-0.1)
+         ("rust-num-complex" ,rust-num-complex-0.4)
+         ("rust-num-rational" ,rust-num-rational-0.4)
+         ("rust-num-traits" ,rust-num-traits-0.2)
+         ("rust-pest" ,rust-pest-2)
+         ("rust-pest-derive" ,rust-pest-derive-2)
+         ("rust-proptest" ,rust-proptest-1)
+         ("rust-quickcheck" ,rust-quickcheck-1)
+         ("rust-rand" ,rust-rand-0.8)
+         ("rust-rand-distr" ,rust-rand-distr-0.4)
+         ("rust-rkyv" ,rust-rkyv-0.6)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-simba" ,rust-simba-0.6)
+         ("rust-typenum" ,rust-typenum-1))
+        #:cargo-development-inputs
+        (("rust-criterion" ,rust-criterion-0.3)
+         ("rust-itertools" ,rust-itertools-0.10)
+         ("rust-matrixcompare" ,rust-matrixcompare-0.3)
+         ("rust-rand-isaac" ,rust-rand-isaac-0.3)
+         ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+         ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Linear algebra library")
+    (description
+     "This package provides a general-purpose linear algebra library with
+transformations and statically-sized or dynamically-sized matrices.")
+    (license license:bsd-3)))
+
 (define-public rust-nalgebra-0.26
   (package
+    (inherit rust-nalgebra-0.29)
     (name "rust-nalgebra")
     (version "0.26.2")
     (source
@@ -35877,13 +36087,7 @@ quick compile time, and minimal dependencies.")
          ("rust-matrixcompare" ,rust-matrixcompare-0.2)
          ("rust-rand-isaac" ,rust-rand-isaac-0.3)
          ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
-         ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://nalgebra.org")
-    (synopsis "Linear algebra library")
-    (description
-     "This package provides a general-purpose linear algebra library with
-transformations and statically-sized or dynamically-sized matrices.")
-    (license license:bsd-3)))
+         ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-nalgebra-0.21
   (package
@@ -38402,8 +38606,37 @@ Rust.")
     (description "Numeric syntax extensions in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-num-enum-0.5
+  (package
+    (name "rust-num-enum")
+    (version "0.5.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num_enum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1j8rq7i4xnbzy72z82k41469xlj1bmn4ixagd9wlbvv2ark9alyg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #false                  ;missing files
+       #:cargo-inputs
+       (("rust-num-enum-derive" ,rust-num-enum-derive-0.5))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/illicitonion/num_enum")
+    (synopsis "Macros easing inter-operation between primitives and enums")
+    (description
+     "This library provides procedural macros to make inter-operation between
+primitives and enums easier.")
+    (license (list license:bsd-3 license:expat license:asl2.0))))
+
 (define-public rust-num-enum-0.4
   (package
+    (inherit rust-num-enum-0.5)
     (name "rust-num-enum")
     (version "0.4.3")
     (source
@@ -38420,29 +38653,24 @@ Rust.")
        (("rust-derivative" ,rust-derivative-2)
         ("rust-num-enum" ,rust-num-enum-0.4)
         ("rust-num-enum-derive" ,rust-num-enum-derive-0.4))))
-    (home-page "https://github.com/illicitonion/num_enum")
-    (synopsis "Macros easing inter-operation between primitives and enums")
-    (description
-     "This library provides procedural macros to make inter-operation between
-primitives and enums easier.")
     (license license:bsd-3)))
 
-(define-public rust-num-enum-derive-0.4
+(define-public rust-num-enum-derive-0.5
   (package
     (name "rust-num-enum-derive")
-    (version "0.4.3")
+    (version "0.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num_enum_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17fvb7xpxq2dsqp5nsz98w1qhkk3gnc56xis53009vnzvlys79gz"))))
+        (base32 "1kj6b8f2fx8prlcl6y1k97668s5aiia4f9gjlk0nmpak3rj9h11v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;FIXME: some doc tests fail
        #:cargo-inputs
-       (("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+       (("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
@@ -38453,6 +38681,27 @@ primitives and enums easier.")
 primitives and enums easier.")
     (license license:bsd-3)))
 
+(define-public rust-num-enum-derive-0.4
+  (package
+    (inherit rust-num-enum-derive-0.5)
+    (name "rust-num-enum-derive")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num_enum_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17fvb7xpxq2dsqp5nsz98w1qhkk3gnc56xis53009vnzvlys79gz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;FIXME: some doc tests fail
+       #:cargo-inputs
+       (("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-num-format-0.4
   (package
     (name "rust-num-format")
@@ -47948,19 +48197,18 @@ Rust.")
     (description "This package provides core APIs for Rayon.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-rctree-0.3
+(define-public rust-rctree-0.4
   (package
     (name "rust-rctree")
-    (version "0.3.3")
+    (version "0.4.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "rctree" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1a54z2b850albiqx9vw009p9xg363vqzh1ybkwb89zn8375jk7my"))))
+          "1s92472lniqn2c0b5ln8ssl014x0raiyzkk0hagrvsd6far2iq4s"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/RazrFalcon/rctree")
     (synopsis "DOM-like tree implemented using reference counting")
@@ -47968,6 +48216,20 @@ Rust.")
 reference counting.")
     (license license:expat)))
 
+(define-public rust-rctree-0.3
+  (package
+    (inherit rust-rctree-0.4)
+    (name "rust-rctree")
+    (version "0.3.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rctree" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1a54z2b850albiqx9vw009p9xg363vqzh1ybkwb89zn8375jk7my"))))))
+
 (define-public rust-rdrand-0.4
   (package
     (name "rust-rdrand")
@@ -52530,21 +52792,20 @@ computation (experimental)")
 cipher.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-safe-arch-0.5
+(define-public rust-safe-arch-0.6
   (package
     (name "rust-safe-arch")
-    (version "0.5.2")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "safe_arch" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "01ffy9aw9v1n4bcwl525zw3gnh18jk7aq38iqcn51bwnjrnkvzy1"))))
+        (base32 "0ad5ykwgq9ll1ymp83d9cayzj8q191rik71ga5wzkndhrkj22j3r"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bytemuck" ,rust-bytemuck-1))))
     (home-page "https://github.com/Lokathor/safe_arch")
     (synopsis "Access core::arch safely")
@@ -52552,6 +52813,24 @@ cipher.")
 @code{#[cfg()]}.")
     (license (list license:zlib license:asl2.0 license:expat))))
 
+
+(define-public rust-safe-arch-0.5
+  (package
+    (inherit rust-safe-arch-0.6)
+    (name "rust-safe-arch")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "safe_arch" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01ffy9aw9v1n4bcwl525zw3gnh18jk7aq38iqcn51bwnjrnkvzy1"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1))))))
+
 (define-public rust-safemem-0.3
   (package
     (name "rust-safemem")
@@ -53740,8 +54019,39 @@ macOS and iOS.")
        (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-selectors-0.23
+  (package
+    (name "rust-selectors")
+    (version "0.23.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "selectors" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "17w7slv2bkksvbq6pggx3db23vh1g022hxv06smilwmyhv38gspx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cssparser" ,rust-cssparser-0.28)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.8)
+        ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
+        ("rust-servo-arc" ,rust-servo-arc-0.1)
+        ("rust-smallvec" ,rust-smallvec-1))))
+    (home-page "https://github.com/servo/servo")
+    (synopsis "CSS Selectors matching for Rust")
+    (description "This package provides CSS Selectors matching for Rust.")
+    (license license:mpl2.0)))
+
 (define-public rust-selectors-0.22
   (package
+    (inherit rust-selectors-0.23)
     (name "rust-selectors")
     (version "0.22.0")
     (source
@@ -53768,11 +54078,7 @@ macOS and iOS.")
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thin-slice" ,rust-thin-slice-0.1))
        #:cargo-development-inputs
-       (("rust-phf-codegen" ,rust-phf-codegen-0.8))))
-    (home-page "https://github.com/servo/servo")
-    (synopsis "CSS Selectors matching for Rust")
-    (description "This package provides CSS Selectors matching for Rust.")
-    (license license:mpl2.0)))
+       (("rust-phf-codegen" ,rust-phf-codegen-0.8))))))
 
 (define-public rust-selectors-0.21
   (package
@@ -55067,10 +55373,10 @@ for later processing.")
     (description "This package provides YAML support for Serde.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-serial-test-0.5
+(define-public rust-serial-test-0.6
   (package
     (name "rust-serial-test")
-    (version "0.5.1")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
@@ -55078,19 +55384,40 @@ for later processing.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0pchc7imdi9wv8xxnwkb9lzs6cg06ghs0gaajjb834y8837wpg70"))))
+        (base32 "05gcah6s133r44y4z5qskx7prs1vjlzgv06h4l2xb8gp30fw9g75"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-document-features" ,rust-document-features-0.2)
+        ("rust-fslock" ,rust-fslock-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-serial-test-derive" ,rust-serial-test-derive-0.5))))
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.6))))
     (home-page "https://github.com/palfrey/serial_test")
     (synopsis "Allows for the creation of serialised Rust tests")
     (description
      "This package allows for the creation of serialised Rust tests.")
     (license license:expat)))
 
+(define-public rust-serial-test-0.5
+  (package
+    (inherit rust-serial-test-0.6)
+    (name "rust-serial-test")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pchc7imdi9wv8xxnwkb9lzs6cg06ghs0gaajjb834y8837wpg70"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.5))))))
+
 (define-public rust-serial-test-0.1
   (package
     (inherit rust-serial-test-0.5)
@@ -55109,31 +55436,54 @@ for later processing.")
      `(#:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1))))))
 
-(define-public rust-serial-test-derive-0.5
+(define-public rust-serial-test-derive-0.6
   (package
     (name "rust-serial-test-derive")
-    (version "0.5.1")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serial_test_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1m8sd97xr8dn6p9by0xwfqm0rz8cbn1ghs5l1fv1xd6xzvgddb5j"))))
+        (base32 "1s6aj2bs0rr8hnralx16bvbqlbrihmii7cyplggk5yv0gp6vr098"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
+       (("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-env-logger" ,rust-env-logger-0.7))))
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/palfrey/serial_test")
     (synopsis "Helper crate for serial_test")
     (description
      "This package is an helper crate for @code{rust-serial-test}.")
     (license license:expat)))
 
+(define-public rust-serial-test-derive-0.5
+  (package
+    (inherit rust-serial-test-derive-0.6)
+    (name "rust-serial-test-derive")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m8sd97xr8dn6p9by0xwfqm0rz8cbn1ghs5l1fv1xd6xzvgddb5j"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7))))))
+
 (define-public rust-serial-test-derive-0.1
   (package
     (inherit rust-serial-test-derive-0.5)
@@ -56239,32 +56589,33 @@ It's not intended to be used directly.  See the signature crate's documentation
 for additional details.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-simba-0.1
+(define-public rust-simba-0.6
   (package
     (name "rust-simba")
-    (version "0.1.5")
+    (version "0.6.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "simba" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1chz3abrvrj4qz86gwrrzajsl5zcc2l0dhxi39mymbgscw9ip4zv"))))
+          "0px0nncs3ki86pjcldz40mhvraywh7y9jypfcqqdcihs287q9dzh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-approx" ,rust-approx-0.3)
+       (("rust-approx" ,rust-approx-0.5)
         ("rust-cordic" ,rust-cordic-0.1)
         ("rust-decimal" ,rust-decimal-2)
         ("rust-fixed" ,rust-fixed-1)
-        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.4)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-packed-simd" ,rust-packed-simd-0.3)
-        ("rust-paste" ,rust-paste-0.1)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-wide" ,rust-wide-0.4))))
+        ("rust-paste" ,rust-paste-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wide" ,rust-wide-0.7))))
     (home-page "https://github.com/dimforge/simba")
     (synopsis "SIMD algebra for Rust")
     (description "This package provides a set of mathematical traits to
@@ -56274,7 +56625,7 @@ pattern in Rust.")
 
 (define-public rust-simba-0.5
   (package
-    (inherit rust-simba-0.1)
+    (inherit rust-simba-0.6)
     (name "rust-simba")
     (version "0.5.1")
     (source
@@ -56284,7 +56635,6 @@ pattern in Rust.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0p1x1ndajy4j3dr9zbh79cz5k0hbj4p9bagd7cj00gc5aws0d0lf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -56299,12 +56649,11 @@ pattern in Rust.")
         ("rust-paste" ,rust-paste-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-serde" ,rust-serde-1)
-        ("rust-wide" ,rust-wide-0.6))))
-    (license license:asl2.0)))
+        ("rust-wide" ,rust-wide-0.6))))))
 
 (define-public rust-simba-0.4
   (package
-    (inherit rust-simba-0.1)
+    (inherit rust-simba-0.5)
     (name "rust-simba")
     (version "0.4.0")
     (source
@@ -56331,6 +56680,34 @@ pattern in Rust.")
         ("rust-wide" ,rust-wide-0.6))))
     (license license:asl2.0)))
 
+(define-public rust-simba-0.1
+  (package
+    (inherit rust-simba-0.4)
+    (name "rust-simba")
+    (version "0.1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "simba" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1chz3abrvrj4qz86gwrrzajsl5zcc2l0dhxi39mymbgscw9ip4zv"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-cordic" ,rust-cordic-0.1)
+        ("rust-decimal" ,rust-decimal-2)
+        ("rust-fixed" ,rust-fixed-1)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd" ,rust-packed-simd-0.3)
+        ("rust-paste" ,rust-paste-0.1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-wide" ,rust-wide-0.4))))
+    (license license:bsd-3)))
+
 (define-public rust-simd-0.2
   (package
     (name "rust-simd")
@@ -56383,6 +56760,33 @@ CPUs, as well as raw interfaces to platform-specific instructions.
        #:cargo-development-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1))))))
 
+(define-public rust-simd-adler32-0.3
+  (package
+    (name "rust-simd-adler32")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simd-adler32" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "060b9v15s3miq06582cj2ywam92ph6xs34s62mc8az3xc4wxz98l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-adler" ,rust-adler-1)
+        ("rust-adler32" ,rust-adler32-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/mcountryman/simd-adler32")
+    (synopsis
+     "Adler-32 rolling hash algorithm implementation")
+    (description
+     "This package provides a SIMD-accelerated Adler-32 rolling hash algorithm
+implementation in Rust.")
+    (license license:expat)))
+
 (define-public rust-simd-helpers-0.1
   (package
     (name "rust-simd-helpers")
@@ -56475,6 +56879,32 @@ extensions.")
     (description "This package provides a diff library for Rust.")
     (license license:asl2.0)))
 
+(define-public rust-similar-asserts-1
+  (package
+    (name "rust-similar-asserts")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "similar-asserts" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1789db0fm85p4zvy44b2jwdjgw6h2b51bi133kak2l1pl8qzbjb4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-console" ,rust-console-0.15)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-similar" ,rust-similar-2))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/mitsuhiko/similar-asserts")
+    (synopsis "Asserts macros with colorized diff output")
+    (description
+     "This crate provides @code{assert_eq!}-like macros with colorized
+diff output.")
+    (license license:asl2.0)))
+
 (define-public rust-simplelog-0.11
   (package
     (name "rust-simplelog")
@@ -61034,19 +61464,18 @@ without a mutable reference.")
     (description "This package lets you temporarily take a T from a &mut T.")
     (license license:expat)))
 
-(define-public rust-takeable-option-0.4
+(define-public rust-takeable-option-0.5
   (package
     (name "rust-takeable-option")
-    (version "0.4.0")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "takeable-option" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hvd6vk4ksgg2y99498jw52ric4lxm0i6ygpzqm95gdrhvsxyynp"))))
+         "182axkm8pq7cynsfn65ar817mmdhayrjmbl371yqp8zyzhr8kbin"))))
     (build-system cargo-build-system)
     (home-page "https://docs.rs/takeable-option/")
     (synopsis "Small wrapper around option")
@@ -61054,6 +61483,21 @@ without a mutable reference.")
      "This package provides a small wrapper around option.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-takeable-option-0.4
+  (package
+    (inherit rust-takeable-option-0.5)
+    (name "rust-takeable-option")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "takeable-option" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hvd6vk4ksgg2y99498jw52ric4lxm0i6ygpzqm95gdrhvsxyynp"))))))
+
 (define-public rust-tap-1
   (package
     (name "rust-tap")
@@ -62459,6 +62903,33 @@ into mod, giving clear and readable test results.")
 for TLS).")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-test-generator-0.3
+  (package
+    (name "rust-test-generator")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-generator" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1h03y4503jhhrks4m7xqfjya9lsx3ip5dlbldr7mgcws6j8bx5za"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glob" ,rust-glob-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))
+    (home-page "https://github.com/frehberg/test-generator")
+    (synopsis "Generate parameterized tests from different input parameters")
+    (description
+     "This crate provides @code{#[test_resources]} and @code{#[bench_resources]}
+procedural macro attributes that generates multiple parameterized tests using
+one body with different resource input parameters.  A test is generated for
+each resource matching the specific resource location pattern.")
+    (license license:asl2.0)))
+
 (define-public rust-tester-0.5
   (package
     (name "rust-tester")
@@ -69220,8 +69691,28 @@ If that fails, no determination is made, and calls return None.")
          (base32
           "1pf91pvj8n6akh7w6j5ypka6aqz08b3qpzgs0ak2kjf4frkiljwi"))))))
 
+(define-public rust-version-compare-0.1
+  (package
+    (name "rust-version-compare")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "version-compare" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wyasmnqqngvm54x0gsxbwpxznvn747jkp0dx1nnppy1j9xj927y"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/timvisee/version-compare")
+    (synopsis "Rust library to easily compare version numbers")
+    (description
+     "This package provides a Rust library to easily compare version
+numbers, and test them against various comparison operators.")
+    (license license:expat)))
+
 (define-public rust-version-compare-0.0.11
   (package
+    (inherit rust-version-compare-0.1)
     (name "rust-version-compare")
     (version "0.0.11")
     (source
@@ -69231,14 +69722,7 @@ If that fails, no determination is made, and calls return None.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06v688jg6gd00zvm3cp7qh2h3mz8cs2ngr09bnwxhyddxrcwh60w"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/timvisee/version-compare")
-    (synopsis "Rust library to easily compare version numbers")
-    (description
-     "This package provides a Rust library to easily compare version
-numbers, and test them against various comparison operators.")
-    (license license:expat)))
+        (base32 "06v688jg6gd00zvm3cp7qh2h3mz8cs2ngr09bnwxhyddxrcwh60w"))))))
 
 (define-public rust-version-compare-0.0 rust-version-compare-0.0.11)
 
@@ -70826,10 +71310,10 @@ It locates installed executable in cross platforms.")
 environment.")
     (license (list license:expat license:boost1.0))))
 
-(define-public rust-wide-0.4
+(define-public rust-wide-0.7
   (package
     (name "rust-wide")
-    (version "0.4.6")
+    (version "0.7.4")
     (source
       (origin
         (method url-fetch)
@@ -70838,22 +71322,23 @@ environment.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0ad75vnzygj8qfcl1l9n4wi93xmqzvhqlpqn4hfayrwbn6wa69aq"))))
+          "0psw31mh21cn4w7i0klsz7law8p8iddsqir8x35cf6n3vb8s5axk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bytemuck" ,rust-bytemuck-1))))
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-safe-arch" ,rust-safe-arch-0.6))))
     (home-page "https://github.com/Lokathor/wide")
     (synopsis "Rust for wide blocks")
     (description "This crate has data types for blocks of primitives packed
 together and used as a single unit.  This works very well with SIMD/vector
 hardware of various targets.  Both in terms of explicit SIMD usage and also in
 terms of allowing LLVM's auto-vectorizer to do its job.")
-    (license license:zlib)))
+    (license (list license:zlib license:asl2.0 license:expat))))
 
 (define-public rust-wide-0.6
   (package
-    (inherit rust-wide-0.4)
+    (inherit rust-wide-0.7)
     (name "rust-wide")
     (version "0.6.5")
     (source
@@ -70867,8 +71352,27 @@ terms of allowing LLVM's auto-vectorizer to do its job.")
     (arguments
      `(#:cargo-inputs
        (("rust-bytemuck" ,rust-bytemuck-1)
-        ("rust-safe-arch" ,rust-safe-arch-0.5))))
-    (license (list license:zlib license:asl2.0 license:expat))))
+        ("rust-safe-arch" ,rust-safe-arch-0.5))))))
+
+(define-public rust-wide-0.4
+  (package
+    (inherit rust-wide-0.6)
+    (name "rust-wide")
+    (version "0.4.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wide" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0ad75vnzygj8qfcl1l9n4wi93xmqzvhqlpqn4hfayrwbn6wa69aq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1))))
+    (license (list license:zlib))))
 
 (define-public rust-widestring-0.4
   (package
@@ -71971,6 +72475,35 @@ Read/Write streams as well as low-level in-memory encoding and decoding.")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-yeslogic-fontconfig-sys-3
+  (package
+    (name "rust-yeslogic-fontconfig-sys")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "yeslogic-fontconfig-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11n3126s717rjqxhf5js3hc0qq8qv7jbicbiyszyp5yk6s8ddfzj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-cstr" ,rust-const-cstr-0.3)
+        ("rust-dlib" ,rust-dlib-0.5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list fontconfig))
+    (home-page "https://github.com/yeslogic/fontconfig-rs")
+    (synopsis "Raw bindings to Fontconfig without a vendored C library")
+    (description
+     "This package provides a wrapper around the @code{Fontconfig} library,
+for locating fonts.")
+    (license license:expat)))
+
 (define-public rust-zbase32-0.1
   (package
     (name "rust-zbase32")
diff --git a/gnu/packages/datamash.scm b/gnu/packages/datamash.scm
index 4ce1dbda7d..ac5094935a 100644
--- a/gnu/packages/datamash.scm
+++ b/gnu/packages/datamash.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2020, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,7 +35,7 @@
 (define-public datamash
   (package
     (name "datamash")
-    (version "1.7")
+    (version "1.8")
     (source
      (origin
       (method url-fetch)
@@ -43,7 +43,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "1cxdlhgz3wzjqlq8bgwad93fgqymk2abbldfzw1ffnhcp4mmjjjp"))))
+        "1zgn55gvf60w2rs5f7vx7vdp50j89ki7mmjvm81xs5pngs67xnbs"))))
     (native-inputs
      (list which ;for tests
            perl))                 ;for help2man
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 47b15e588f..90035f7255 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1401,7 +1401,7 @@ wrapper for disk usage querying and visualisation.")
 (define-public qdirstat
   (package
     (name "qdirstat")
-    (version "1.8")
+    (version "1.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1410,7 +1410,7 @@ wrapper for disk usage querying and visualisation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "079rmy3j0442y5gjh6la6w1j6jaw83wklamrf19yxi20zsm99xs7"))))
+                "04vpdlwk01kgmc4r5rnrmrgd4sf2kfh1rjzb2rjkfxdd4pbghsy9"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index aa10b96fdf..a6521eafb5 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -333,14 +333,14 @@ and BOOTP/TFTP for network booting of diskless machines.")
     ;; When updating, check whether isc-dhcp's bundled copy should be as well.
     ;; The BIND release notes are available here:
     ;; https://www.isc.org/bind/
-    (version "9.16.30")
+    (version "9.16.31")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://ftp.isc.org/isc/bind9/" version
                            "/bind-" version ".tar.xz"))
        (sha256
-        (base32 "1nv02apqpqk7mi1330jgsacpplhgnkx6mba5nmbsx1x72gqc77q0"))
+        (base32 "1yvwdvcyy996p50j7nr4b010w16jjj5czw15g87wf1dn6xncp8lc"))
        (patches
         (search-patches "bind-re-add-attr-constructor-priority.patch"))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 312cb58b28..702378c206 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -5758,7 +5758,7 @@ keywords and smart indentation.")
 (define-public emacs-robot-log
   (package
     (name "emacs-robot-log")
-    (version "0.1.3")
+    (version "0.1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5767,7 +5767,7 @@ keywords and smart indentation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pv0kljx2n2n7ql6rfw1x63mbd1k2qwbq3zkw452lb8jmnp7dr3y"))))
+                "1l9yxryrhvylh2x17cczd8v8978w1nv8173d4l9hv0cr26kp5b68"))))
     (build-system emacs-build-system)
     (native-inputs (list python-robotframework))
     (arguments (list #:tests? #t))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6eefd14d7e..bf32187dde 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2791,13 +2791,13 @@ program that can perform mesh processing tasks in batch mode, without a GUI.")
 (define-public poke
   (package
     (name "poke")
-    (version "2.3")
+    (version "2.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/poke/poke-" version
                                   ".tar.gz"))
               (sha256
-               (base32 "0rn7ph7fvbwasf7jhai122sniqjkw81p0kvbxjlv6z6s2q8wz41n"))
+               (base32 "0ivfzslpdy0n9wcdjyascnqczppaxcq0x4x6hblqqwy62xcjh7l4"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index a792bd8700..c6063c42c4 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1478,13 +1478,13 @@ compatible directories.")
 (define-public python-dropbox
   (package
     (name "python-dropbox")
-    (version "11.25.0")
+    (version "11.33.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dropbox" version))
         (sha256
-         (base32 "0vq9c2hp2amsxr2ys2mlgqp6a8hxmvrcwav70ri7wjzalfs32gj6"))))
+         (base32 "1hd9gprvcr6h0p8fxhynf97qf6799whfpsmr73g619392598nqvw"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; Tests require a network connection.
     (native-inputs
@@ -1500,7 +1500,7 @@ Dropbox API v2.")
 (define-public dbxfs
   (package
     (name "dbxfs")
-    (version "1.0.51")
+    (version "1.0.63")
     (source
       (origin
         ;; Release tarball contains files not in git repository.
@@ -1511,7 +1511,7 @@ Dropbox API v2.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0bidb1gg5lqa1561f20qnj7gy323q65qwzfrb8h8gs6dsl3g6yfg"))
+          "1vzfhw3z2r0rb6s0qdzirh3pl7rv1z8xmxa0z5h7h1wqhpl05ai7"))
         (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
     (build-system python-build-system)
     (arguments
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 44b050795d..ce4709773d 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -460,7 +460,18 @@ implementing the pen protocol for manipulating glyphs.")
      (arguments
       (substitute-keyword-arguments (package-arguments python-fontpens-bootstrap)
         ((#:tests? _ #f)
-         #t)))
+         #t)
+        ((#:phases phases #~%standard-phases)
+         #~(modify-phases #$phases
+             (add-after 'unpack 'drop-flaky-docstring
+               ;; XXX This assertion fails on certain (Intel?) machines, but not
+               ;; others (AMD?), so we can't patch in a ‘correct’ value.  Just
+               ;; drop it until the proper fix lands upstream.  Reported there
+               ;; as <https://github.com/robotools/fontPens/issues/41>.
+               (lambda _
+                 (substitute* "Lib/fontPens/penTools.py"
+                   ((".*\\(\\(0, 0), \\(50, 20), \\(100, 40)).*") "")
+                   ((".*107\\.70329614269009.*") ""))))))))
      (native-inputs
       (modify-inputs (package-native-inputs python-fontpens-bootstrap)
         (append python-fontparts-bootstrap
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index c0e8114c93..100e7ace9f 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1550,6 +1550,8 @@ broadband (2G/3G/4G) devices and connections.  Whether built-in devices, USB
 dongles, bluetooth-paired telephones, or professional RS232/USB devices with
 external power supplies, ModemManager is able to prepare and configure the
 modems and setup connections with them.")
+    (properties
+     '((upstream-name . "ModemManager")))
     (license license:gpl2+)))
 
 (define-public telepathy-logger
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 96ec260dec..55fbe583ef 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
@@ -1846,7 +1846,7 @@ either on a local, or remote machine via a number of methods.")
 (define-public gnome-commander
   (package
     (name "gnome-commander")
-    (version "1.14.2")
+    (version "1.14.3")
     (source
      (origin
        (method url-fetch)
@@ -1854,7 +1854,7 @@ either on a local, or remote machine via a number of methods.")
                            (version-major+minor version)  "/"
                            "gnome-commander-" version ".tar.xz"))
        (sha256
-        (base32 "1s8fdwp0z1smzkwrsvssp9g3yak6z4cdk0qx0c4qmwca9z9fyy0k"))))
+        (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      (list desktop-file-utils
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 4579a3f8a6..394fd7ddc8 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -366,8 +366,8 @@ in C/C++.")
 ;; XXXX: Workaround 'snippet' limitations.
 (define computed-origin-method (@@ (guix packages) computed-origin-method))
 
-(define %icecat-version "91.11.0-guix0-preview1")
-(define %icecat-build-id "20220628000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "91.12.0-guix0-preview1")
+(define %icecat-build-id "20220726000000") ;must be of the form YYYYMMDDhhmmss
 
 ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -389,11 +389,11 @@ in C/C++.")
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "1905595fsydd8q4bqxsp5gb4h9s47qjj90wjrqv4ky8yxs9bx6z5"))))
+              "0p1bhc1qla4a7iqk0fc6sj224ld6wplpmj4yw6nfx1b8hbqqy2vc"))))
 
-         (upstream-icecat-base-version "91.11.0") ; maybe older than base-version
+         (upstream-icecat-base-version "91.12.0") ; maybe older than base-version
          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "65a61287a5142a9403ec00d973cb5e5d658a3c71")
+         (gnuzilla-commit "298024d727053a1609df4003fb4438836d5181f4")
          (gnuzilla-source
           (origin
             (method git-fetch)
@@ -405,7 +405,7 @@ in C/C++.")
                                       (string-take gnuzilla-commit 8)))
             (sha256
              (base32
-              "02mg7vg0bv5lxkdg86z18mf43rx7sh5i2w69lnirr8zqcrr5yd48"))))
+              "1lgz6knklxbrqr1vaj9d0y0997f4f6v44a8cng8ihkmn7aa7lvwg"))))
 
          ;; 'search-patch' returns either a valid file name or #f, so wrap it
          ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index ea510142f8..be466b1cc3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2020, 2021, 2022 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017,2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -55,6 +55,7 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
@@ -2380,7 +2381,7 @@ Wacom-style graphics tablets.")
 (define-public phockup
   (package
     (name "phockup")
-    (version "1.7.1")
+    (version "1.9.0")
     (source
      (origin
        (method git-fetch)
@@ -2390,7 +2391,7 @@ Wacom-style graphics tablets.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0nqd89g4ppwc96gxyh9npain7ipnzj66p6n3irsvhrpi4k54h388"))))
+         "1xs2h3nj19wsfffl87akinx14drk5nn2svjwyj0csv10apk0q4pp"))))
     (build-system copy-build-system)
     (arguments
      `(#:install-plan '(("src" "share/phockup/")
@@ -2400,8 +2401,8 @@ Wacom-style graphics tablets.")
          (add-after 'unpack 'configure
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* (list "src/dependency.py" "src/exif.py")
-               (("exiftool")
-                (search-input-file inputs "/bin/exiftool")))))
+               (("'exiftool'")
+                (string-append "'" (search-input-file inputs "/bin/exiftool") "'")))))
          (add-before 'install 'check
            (lambda _
              (invoke "pytest")))
@@ -2419,7 +2420,7 @@ Wacom-style graphics tablets.")
                    ,(search-path-as-string->list
                      (getenv "GUIX_PYTHONPATH"))))))))))
     (inputs
-     (list perl-image-exiftool python python-tqdm))
+     (list bash-minimal perl-image-exiftool python python-tqdm))
     (native-inputs
      (list python-pytest python-pytest-mock))
     (home-page "https://github.com/ivandokov/phockup")
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 45cc2cda0d..8a5967f7b4 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
@@ -28,6 +28,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages libusb)
+  #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -471,14 +472,14 @@ over USB.")
 (define-public libmtp
   (package
     (name "libmtp")
-    (version "1.1.19")
+    (version "1.1.20")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version
                                  "/libmtp-" version ".tar.gz"))
              (sha256
               (base32
-               "0a1jlf5b2c2vylkvdd3cxjs20a96jlbrdyx7rwai5rzmcdpszd6y"))))
+               "1l2npk3b5v9cxhs2g01w3b13mxvin881cr085r0cyi2p5yn1s6f9"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
@@ -488,11 +489,9 @@ over USB.")
      ;; libmtp.pc refers to all these.
      (list libusb))
     (arguments
-     `(#:configure-flags
-       (list "--disable-static"
-             (string-append "--with-udev="
-                            (assoc-ref %outputs "out")
-                            "/lib/udev"))))
+     (list #:configure-flags
+           #~(list "--disable-static"
+                   (string-append "--with-udev=" #$output "/lib/udev"))))
     (home-page "http://libmtp.sourceforge.net/")
     (synopsis "Library implementing the Media Transfer Protocol")
     (description "Libmtp implements an MTP (Media Transfer Protocol)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3efbb1e2d0..051bf9eeaa 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -352,7 +352,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
 
-(define-public linux-libre-5.18-version "5.18.12")
+(define-public linux-libre-5.18-version "5.18.14")
 (define-public linux-libre-5.18-gnu-revision "gnu")
 (define deblob-scripts-5.18
   (linux-libre-deblob-scripts
@@ -362,7 +362,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0vjpn8iw9yg39sr6jfhzyvivf159h9zfgnjamwa283zfll0h0a53")))
 (define-public linux-libre-5.18-pristine-source
   (let ((version linux-libre-5.18-version)
-        (hash (base32 "09wmgfrnv1df6jg9v3svwhvnxl0j6h4f240p903xlmgj884lvds0")))
+        (hash (base32 "1bsnk2rskdkimciij5q3hjs00lc7ks1h1qh9kc4s7lrk252lczg1")))
    (make-linux-libre-source version
 
                             (%upstream-linux-source version hash)
@@ -371,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.15-version "5.15.55")
+(define-public linux-libre-5.15-version "5.15.57")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
@@ -381,12 +381,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "129qlhwdv2mfb85gbvq03kkbdfp73b444rryr4rrbvi0jmq4cp24")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1k7x7fp675wglfd357n7hjidnm3j8zj3gcymyazg6fkcid8bvxhy")))
+        (hash (base32 "1zgh43pgn8fsyxzksfw6llxqw6fc8qassfn9a18k2xn83xd0kqv2")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.131")
+(define-public linux-libre-5.10-version "5.10.133")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -396,12 +396,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "1ki11mvl3dky7iih90znr47vr66dxnlwrqwg2jkk1hqn5i243i4b")))
+        (hash (base32 "03i84g3pfh24f10zsdyyqyv9fhy01ah9lk02y48hqwnabdylqp1v")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.206")
+(define-public linux-libre-5.4-version "5.4.207")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -411,12 +411,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1asvc7y1f938icspxx39n6y6r0w9mp0k9vik84rsx1hzzv0db41c")))
+        (hash (base32 "1wwpd26qhv6i00p0yxjisns6qiz9bfrxvn1xb4ylwr8ls7zyx78v")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.252")
+(define-public linux-libre-4.19-version "4.19.253")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -426,12 +426,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "0ac7k6x9h8gqi37n8d4fyi52h4cmzyy8f5vfv1aiihww4kvzca7v")))
+        (hash (base32 "1jc2j0wskgr1bdzpz6sn2bvafpviiin6mwr93yykcczzfjijr8yz")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.288")
+(define-public linux-libre-4.14-version "4.14.289")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
@@ -441,12 +441,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "0yyzxyz66mfngx3ll3pl43413xb67iyxddzh3lpzqcfg7d0rxfwz")))
+        (hash (base32 "1v24mv49skgijcbafgai0glrzwiv2j1hndkz7v6ygc18jxh5fqg6")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.323")
+(define-public linux-libre-4.9-version "4.9.324")
 (define-public linux-libre-4.9-gnu-revision "gnu1")
 (define deblob-scripts-4.9
   (linux-libre-deblob-scripts
@@ -456,7 +456,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "1h96ai9w5q2axhliw85aymdsg8py9y6gl8big5r2gwkbls6h7pa3")))
+        (hash (base32 "0g51vfp0g3py82l3q66p7nvl03h6l1nlny18gangji75a3c39yh4")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
@@ -3229,7 +3229,7 @@ processes currently causing I/O.")
 (define-public iotop
   (package
     (name "iotop")
-    (version "1.21")
+    (version "1.22")
     (source
      (origin
        (method git-fetch)
@@ -3238,7 +3238,7 @@ processes currently causing I/O.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "03wdnkfl51dapilg6r9vjga1xrl9lxlypfz07k50nscvbq8v8fb7"))))
+        (base32 "04a77qir35s1bwvd39qddx2kfizdbf5jxlnz8zmy1cnrigbwcy1h"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 2f6d22fe7d..51d74bd8af 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -95,6 +95,7 @@
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
@@ -22779,3 +22780,91 @@ binding @code{*debugger-hook*} is not enough -- most notably, for
     (arguments
      ;; Tests fail on ECL: https://github.com/phoe/trivial-custom-debugger/issues/3
      '(#:tests? #f))))
+
+(define-public sbcl-ospm
+  (package
+    (name "sbcl-ospm")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/atlas-engineer/ospm")
+             (commit version)))
+       (file-name (git-file-name "cl-ospm" version))
+       (sha256
+        (base32 "1b64ar6x08bcig4brlsim445favjf1zhyj6qz018cildp3xs4miz"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     (list sbcl-alexandria
+           sbcl-calispel
+           sbcl-hu.dwim.defclass-star
+           sbcl-local-time
+           sbcl-moptilities
+           sbcl-named-readtables
+           sbcl-serapeum
+           sbcl-trivia))
+    (native-inputs
+     ;; FIXME: Tests have execution errors because of Guix being run in a container.
+     (list sbcl-lisp-unit2 guix))
+    (home-page "https://github.com/atlas-engineer/ospm")
+    (synopsis "System package manager in Common Lisp")
+    (description
+     "This library is a universal interface to the operating system package manager.
+It has extensive support for Guix, among others:
+
+@itemize
+@item package listing and searching;
+@item package installation and uninstallation;
+@item package file listing;
+@item profile listing;
+@item manifest listing and installation;
+@item generation listing, switching and deletion.
+@end itemize\n")
+    (license license:bsd-3)))
+
+(define-public cl-ospm
+  (let ((pkg (sbcl-package->cl-source-package sbcl-ospm)))
+    (package
+      (inherit pkg)
+      (inputs
+       (cons (list "osicat" cl-osicat)
+             (package-inputs pkg))))))
+
+(define-public sbcl-ndebug
+  (package
+    (name "sbcl-ndebug")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/atlas-engineer/ndebug")
+             (commit version)))
+       (file-name (git-file-name "ndebug" version))
+       (sha256
+        (base32 "0wdp0wqk6clq3hh9yqmgdm55x50b5m7ly9004j2c8k5zz1rgi4rr"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     (list
+      sbcl-dissect
+      sbcl-lparallel
+      sbcl-slime-swank
+      sbcl-trivial-custom-debugger))
+    (native-inputs
+     (list sbcl-lisp-unit2))
+    (home-page "https://github.com/atlas-engineer/ndebug/")
+    (synopsis "Toolkit to build UI-aware Common Lisp debugger hooks")
+    (description
+     "NDebug provides a small set of utilities to make graphical (or, rather
+non-REPL-resident) Common Lisp applications easier to integrate with the
+standard Lisp debugger (@code{*debugger-hook*}, namely) and
+implementation-specific debugger hooks (via @code{trivial-custom-debugger}),
+especially in a multi-threaded context.")
+    (license license:bsd-3)))
+
+(define-public cl-ndebug
+  (sbcl-package->cl-source-package sbcl-ndebug))
+
+(define-public ecl-ndebug
+  (sbcl-package->ecl-package sbcl-ndebug))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b68a798715..eee082ed8e 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -583,7 +583,7 @@ end-to-end encryption.")
 (define-public axc
   (package
     (name "axc")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
      (origin
        (method git-fetch)
@@ -593,12 +593,13 @@ end-to-end encryption.")
        (modules '((guix build utils)))
        (snippet
         `(begin
-           ;; Submodules
+           ;; Empty directories meant to hold submodules that we provide as
+           ;; proper inputs below.
            (delete-file-recursively "lib")))
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "05sv7l6lk0xk4wb2bspc2sdpygrb1f0szzi82a1kyfm0fjz887b3"))))
+        (base32 "0b02b9flri374f8aw6xfz7mm9s57rb7393r8mdphv7kcsf76i7i5"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -2080,39 +2081,38 @@ support, and more.")
 (define-public freetalk
   (package
     (name "freetalk")
-    (version "4.1")
+    (version "4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/freetalk/freetalk-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1rmrn7a1bb7vm26yaklrvx008a9qhwc32s57dwrlf40lv9gffwny"))))
+                "105mw7pg2mcp85r82cs4rv77nwvbw8025047364jzbq6lwllynxv"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
-       (list "CFLAGS=-fcommon")
-       #:phases
-       (modify-phases %standard-phases
-         ;; For 'system' commands in Scheme code.
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out       (assoc-ref outputs "out"))
-                    (bash      (assoc-ref inputs "bash"))
-                    (coreutils (assoc-ref inputs "coreutils"))
-                    (less      (assoc-ref inputs "less")))
-               (wrap-program (string-append out "/bin/freetalk")
-                 `("PATH" ":" prefix
-                   ,(map (lambda (dir)
-                           (string-append dir "/bin"))
-                         (list bash coreutils less))))
-               #t))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'wrap-program
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (wrap-program (string-append out "/bin/freetalk")
+                       `("PATH" ":" suffix
+                         ,(map (lambda (command)
+                                 (dirname
+                                  (search-input-file
+                                   inputs (string-append "bin/" command))))
+                               ;; This list is not exhaustive: we assume that,
+                               ;; e.g., cat is packaged with other coreutils.
+                               (list "bash" ; src/{commands,util}.c et al
+                                     "cat"  ; extensions/first-time-run.sh
+                                     "less")))))))))) ; extensions/history.scm.
     (native-inputs
      (list autoconf automake pkg-config texinfo))
     (inputs
      (list bash
            glib
-           guile-2.0
+           guile-3.0
            less
            loudmouth
            readline))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 697fae8fc0..520d64d33c 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3287,33 +3287,34 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.26")
+    (version "0.9.27")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "02r4dhhbn3dzhqi5cnm2vwimqk10bdlpy233n4a3590qg4krnqkd"))))
+                "11131hb6n13n51rr319jhaa9jjxl9q8n9vkxq3si7gcxlli6pdbs"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
     (inputs
-     `(("qt" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("ladspa" ,ladspa)
-       ("lv2" ,lv2)
-       ("lilv" ,lilv)
-       ("suil" ,suil)
-       ("libsamplerate" ,libsamplerate)
-       ("libvorbis" ,libvorbis)
-       ("libmad" ,libmad)
-       ("rubberband" ,rubberband)
-       ("liblo" ,liblo)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           jack-1
+           ladspa
+           liblo
+           libmad
+           libsamplerate
+           libsndfile
+           libvorbis
+           lilv
+           lv2
+           qtbase-5
+           qtsvg
+           qtx11extras
+           rubberband
+           suil
+           zlib))
     (native-inputs
      (list pkg-config qttools))
     (home-page "https://qtractor.org/")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 9101aac472..85ded36804 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -906,14 +906,14 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
 (define-public ndisc6
   (package
     (name "ndisc6")
-    (version "1.0.5")
+    (version "1.0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.remlab.net/files/ndisc6/ndisc6-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0lgkbnnll8nrr7h63ywd42sg8fiv6jhhymd7rnml8a3yqjgjz4rn"))))
+                "1yrw8maj1646d498ax8xi0jmzk80idrc5x0913x5rwg1kc7224x7"))))
     (build-system gnu-build-system)
     (home-page "https://www.remlab.net/ndisc6/")
     (synopsis "IPv6 diagnostic tools")
@@ -3506,8 +3506,8 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
               ;; on, introducing nondeterminism (see:
               ;; https://github.com/savoirfairelinux/opendht/issues/626).
               (substitute* "tests/Makefile.am"
-                (("tests/dhtrunnertester.(h|cpp)$" all)
-                 (string-append "# " all)))))
+                (("\\bdhtrunnertester\\.(h|cpp)\\b")
+                 ""))))
           (add-after 'unpack 'fix-python-installation-prefix
             ;; Specify the installation prefix for the compiled Python module
             ;; that would otherwise attempt to installs itself to Python's own
@@ -4111,14 +4111,14 @@ stamps.")
 (define-public nbd
   (package
     (name "nbd")
-    (version "3.23")
+    (version "3.24")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://sourceforge/nbd/nbd/" version
                             "/nbd-" version ".tar.xz"))
         (sha256
-         (base32 "1d2phi0m9x32p9zddv9fpkhj1rbhlvq93wsn9niy7i3aavn71x6y"))))
+         (base32 "036ib2d5722sx9nn7jydqfpl5ici5if2z7g8xrskzcx74dniaxv8"))))
     (build-system gnu-build-system)
     (inputs
      (list glib))
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
index e4f660000d..6f7ba53542 100644
--- a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
+++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
@@ -1,38 +1,48 @@
 sentry-sdk provides a link to sentry.io, a service which monitors applications deployed in the wild.
 Defaults to true. Best to just remove the option.
 
----
- dbxfs/main.py | 16 ----------------
- setup.py      |  1 -
- 2 files changed, 17 deletions(-)
-
 diff --git a/dbxfs/main.py b/dbxfs/main.py
-index 5a6cea1..5d00818 100755
+index 458e82a..784dd2a 100755
 --- a/dbxfs/main.py
 +++ b/dbxfs/main.py
-@@ -40,8 +40,6 @@ import userspacefs
+@@ -43,8 +43,6 @@ import userspacefs
  import keyring
  from keyring.errors import KeyringError
  
 -import sentry_sdk
 -
- from block_tracing import block_tracing, BLOCK_TRACING_INHERITS
+ from block_tracing import block_tracing
  
  from dbxfs.dbxfs import FileSystem as DropboxFileSystem
-@@ -299,12 +297,6 @@ def _main(argv=None):
-             config['keyring_user'] = keyring_user
-             save_config = True
+@@ -127,16 +125,6 @@ def on_new_process(proc_args):
+     level = [logging.WARNING, logging.INFO, logging.DEBUG][min(2, verbose)]
+     logging.basicConfig(level=level, handlers=[logging_stream], format=format_)
  
--    if not config.get("asked_send_error_reports", False):
--        if yes_no_input("Would you like to help us improve %s by providing anonymous error reports?" % (APP_NAME,), default_yes=True):
--            config['send_error_reports'] = True
--        config['asked_send_error_reports'] = True
+-    if int(proc_args.get('send_error_reports', '0')):
+-        version = proc_args['version']
+-        try:
+-            sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
+-                            release='%s@%s' % (APP_NAME, version),
+-                            with_locals=False)
+-            sentry_sdk.set_user(dict(id=proc_args['sentry_user']))
+-        except Exception:
+-            log.warning("Failed to initialize sentry", exc_info=True)
+-
+ def create_fs(fs_args):
+     refresh_token = fs_args.get('refresh_token')
+     access_token = fs_args.get('access_token')
+@@ -527,10 +515,6 @@ deprecated, this functionality will be removed in the future.
+         config['asked_send_error_reports'] = True
+         save_config = True
+ 
+-    if config.get("send_error_reports", False) and not isinstance(config.get("sentry_user", None), str):
+-        config['sentry_user'] = uuid.uuid4().hex
 -        save_config = True
 -
-     if save_access_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
+     if save_refresh_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
          config['mount_point'] = mount_point
          save_config = True
-@@ -315,14 +307,6 @@ def _main(argv=None):
+@@ -541,15 +525,6 @@ deprecated, this functionality will be removed in the future.
  
      log.info("Starting %s...", APP_NAME)
  
@@ -41,24 +51,31 @@ index 5a6cea1..5d00818 100755
 -            sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
 -                            release='%s@%s' % (APP_NAME, version),
 -                            with_locals=False)
+-            sentry_sdk.set_user(dict(id=config['sentry_user']))
 -        except Exception:
 -            log.warning("Failed to initialize sentry", exc_info=True)
 -
      if cache_folder is None:
          cache_folder = os.path.join(appdirs.user_cache_dir(APP_NAME), "file_cache")
          try:
+@@ -602,8 +577,6 @@ deprecated, this functionality will be removed in the future.
+     proc_args['verbose'] = str(args.verbose)
+     proc_args['version'] = version
+     proc_args['send_error_reports'] = str(int(config.get('send_error_reports', False)))
+-    if config.get('send_error_reports', False):
+-        proc_args['sentry_user'] = config['sentry_user']
+ 
+     return userspacefs.simple_main(mount_point, display_name,
+                                    ('dbxfs.main.create_fs', fs_args),
 diff --git a/setup.py b/setup.py
-index 89e25c6..f940d47 100644
+index ae696e9..869d0db 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -43,7 +43,6 @@ setup(
+@@ -47,7 +47,6 @@ setup(
          "privy>=6.0,<7",
          "keyring>=15.1.0",
          "keyrings.alt>=3.1,<5",
--        "sentry_sdk>=0.3,<1",
+-        "sentry_sdk>=1.0,<2",
      ],
      extras_require={
          'safefs': ["safefs"],
--- 
-2.28.0
-
diff --git a/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch
new file mode 100644
index 0000000000..139d633c44
--- /dev/null
+++ b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch
@@ -0,0 +1,73 @@
+From f046e326d9e30772725d8fb26dc33328e418d9d3 Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Fri, 17 Sep 2021 12:49:01 -0700
+Subject: [PATCH] Fix strict aliasing bug causing product_small failure.
+
+Packet loading is skipped due to aliasing violation, leading to nullopt matrix
+multiplication.
+
+Fixes #2327.
+
+
+(cherry picked from commit 3c724c44cff3f9e2e9e35351abff0b5c022b320d)
+---
+ Eigen/src/Core/arch/AVX/Complex.h    |  4 +++-
+ Eigen/src/Core/arch/AVX512/Complex.h |  4 +++-
+ Eigen/src/Core/arch/SSE/Complex.h    | 11 +++--------
+ 3 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/Eigen/src/Core/arch/AVX/Complex.h b/Eigen/src/Core/arch/AVX/Complex.h
+index ab7bd6c65..e9096c0a1 100644
+--- a/Eigen/src/Core/arch/AVX/Complex.h
++++ b/Eigen/src/Core/arch/AVX/Complex.h
+@@ -99,7 +99,9 @@ template<> EIGEN_STRONG_INLINE Packet4cf ploadu<Packet4cf>(const std::complex<fl
+ 
+ template<> EIGEN_STRONG_INLINE Packet4cf pset1<Packet4cf>(const std::complex<float>& from)
+ {
+-  return Packet4cf(_mm256_castpd_ps(_mm256_broadcast_sd((const double*)(const void*)&from)));
++  const float re = std::real(from);
++  const float im = std::imag(from);
++  return Packet4cf(_mm256_set_ps(im, re, im, re, im, re, im, re));
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet4cf ploaddup<Packet4cf>(const std::complex<float>* from)
+diff --git a/Eigen/src/Core/arch/AVX512/Complex.h b/Eigen/src/Core/arch/AVX512/Complex.h
+index 49c72b3f1..074253859 100644
+--- a/Eigen/src/Core/arch/AVX512/Complex.h
++++ b/Eigen/src/Core/arch/AVX512/Complex.h
+@@ -97,7 +97,9 @@ template<> EIGEN_STRONG_INLINE Packet8cf ploadu<Packet8cf>(const std::complex<fl
+ 
+ template<> EIGEN_STRONG_INLINE Packet8cf pset1<Packet8cf>(const std::complex<float>& from)
+ {
+-  return Packet8cf(_mm512_castpd_ps(pload1<Packet8d>((const double*)(const void*)&from)));
++  const float re = std::real(from);
++  const float im = std::imag(from);
++  return Packet8cf(_mm512_set_ps(im, re, im, re, im, re, im, re, im, re, im, re, im, re, im, re));
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet8cf ploaddup<Packet8cf>(const std::complex<float>* from)
+diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h
+index 8fe22da46..215bfd7bb 100644
+--- a/Eigen/src/Core/arch/SSE/Complex.h
++++ b/Eigen/src/Core/arch/SSE/Complex.h
+@@ -106,14 +106,9 @@ template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<fl
+ 
+ template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+ {
+-  Packet2cf res;
+-#ifdef EIGEN_VECTORIZE_SSE3
+-  res.v = _mm_castpd_ps(_mm_loaddup_pd(reinterpret_cast<double const*>(&from)));
+-#else
+-  res.v = _mm_castpd_ps(_mm_load_sd(reinterpret_cast<double const*>(&from)));
+-  res.v = _mm_movelh_ps(res.v, res.v);
+-#endif
+-  return res;
++  const float re = std::real(from);
++  const float im = std::imag(from);
++  return Packet2cf(_mm_set_ps(im, re, im, re));
+ }
+ 
+ template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+-- 
+2.37.0
+
diff --git a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
deleted file mode 100644
index 556474e8b3..0000000000
--- a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001
-From: Luke Peterson <hazelnusse@gmail.com>
-Date: Thu, 8 Oct 2020 12:16:53 -0700
-Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm
-
-This resolves a compilation error associated with
-Eigen::eigen_assert_exception. It also eliminates the counting of
-exceptions that may occur in the OpenMP parallel section. If an
-unhandled exception occurs in this section, the behavior is non-conforming
-according to the OpenMP specification.
----
- Eigen/src/Core/products/Parallelizer.h | 14 +++++---------
- test/CMakeLists.txt                    |  2 +-
- 2 files changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
-index 67b2442b5..a3cc05b77 100644
---- a/Eigen/src/Core/products/Parallelizer.h
-+++ b/Eigen/src/Core/products/Parallelizer.h
-@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
- 
-   ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
- 
--  int errorCount = 0;
--  #pragma omp parallel num_threads(threads) reduction(+: errorCount)
-+  #pragma omp parallel num_threads(threads)
-   {
-     Index i = omp_get_thread_num();
-     // Note that the actual number of threads might be lower than the number of request ones.
-@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
-     info[i].lhs_start = r0;
-     info[i].lhs_length = actualBlockRows;
- 
--    EIGEN_TRY {
--      if(transpose) func(c0, actualBlockCols, 0, rows, info);
--      else          func(0, rows, c0, actualBlockCols, info);
--    } EIGEN_CATCH(...) {
--      ++errorCount;
--    }
-+    if(transpose)
-+      func(c0, actualBlockCols, 0, rows, info);
-+    else
-+      func(0, rows, c0, actualBlockCols, info);
-   }
--  if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
- #endif
- }
- 
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-index 0747aa6cb..b02577780 100644
---- a/test/CMakeLists.txt
-+++ b/test/CMakeLists.txt
-@@ -163,7 +163,7 @@ ei_add_test(constructor)
- ei_add_test(linearstructure)
- ei_add_test(integer_types)
- ei_add_test(unalignedcount)
--if(NOT EIGEN_TEST_NO_EXCEPTIONS)
-+if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP)
-   ei_add_test(exceptions)
- endif()
- ei_add_test(redux)
--- 
-GitLab
-
diff --git a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch b/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
deleted file mode 100644
index b95b46077a..0000000000
--- a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Mon, 16 Mar 2020 22:51:37 +0000
-Subject: gnu: eigen: Stabilise sparseqr test.
-
-Taken verbatim from this[0] upstream commit.
-
-[0]: https://gitlab.com/libeigen/eigen/-/commit/3b5deeb546d4017b24846f5b0dc3296a50a039fe
-
-From 3b5deeb546d4017b24846f5b0dc3296a50a039fe Mon Sep 17 00:00:00 2001
-From: Gael Guennebaud <g.gael@free.fr>
-Date: Tue, 19 Feb 2019 22:57:51 +0100
-Subject: [PATCH] bug #899: make sparseqr unit test more stable by 1) trying
- with larger threshold and 2) relax rank computation for rank-deficient
- problems.
-
----
- test/sparseqr.cpp | 31 ++++++++++++++++++++++++++-----
- 1 file changed, 26 insertions(+), 5 deletions(-)
-
-diff --git a/test/sparseqr.cpp b/test/sparseqr.cpp
-index 3ffe62314..3576cc626 100644
---- a/test/sparseqr.cpp
-+++ b/test/sparseqr.cpp
-@@ -43,6 +43,7 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows
- 
- template<typename Scalar> void test_sparseqr_scalar()
- {
-+  typedef typename NumTraits<Scalar>::Real RealScalar;
-   typedef SparseMatrix<Scalar,ColMajor> MatrixType; 
-   typedef Matrix<Scalar,Dynamic,Dynamic> DenseMat;
-   typedef Matrix<Scalar,Dynamic,1> DenseVector;
-@@ -91,14 +92,34 @@ template<typename Scalar> void test_sparseqr_scalar()
-     exit(0);
-     return;
-   }
--  
--  VERIFY_IS_APPROX(A * x, b);
--  
--  //Compare with a dense QR solver
-+
-+  // Compare with a dense QR solver
-   ColPivHouseholderQR<DenseMat> dqr(dA);
-   refX = dqr.solve(b);
-   
--  VERIFY_IS_EQUAL(dqr.rank(), solver.rank());
-+  bool rank_deficient = A.cols()>A.rows() || dqr.rank()<A.cols();
-+  if(rank_deficient)
-+  {
-+    // rank deficient problem -> we might have to increase the threshold
-+    // to get a correct solution.
-+    RealScalar th = RealScalar(20)*dA.colwise().norm().maxCoeff()*(A.rows()+A.cols()) * NumTraits<RealScalar>::epsilon();
-+    for(Index k=0; (k<16) && !test_isApprox(A*x,b); ++k)
-+    {
-+      th *= RealScalar(10);
-+      solver.setPivotThreshold(th);
-+      solver.compute(A);
-+      x = solver.solve(b);
-+    }
-+  }
-+
-+  VERIFY_IS_APPROX(A * x, b);
-+  
-+  // For rank deficient problem, the estimated rank might
-+  // be slightly off, so let's only raise a warning in such cases.
-+  if(rank_deficient) ++g_test_level;
-+  VERIFY_IS_EQUAL(solver.rank(), dqr.rank());
-+  if(rank_deficient) --g_test_level;
-+
-   if(solver.rank()==A.cols()) // full rank
-     VERIFY_IS_APPROX(x, refX);
- //   else
--- 
-2.24.1
-
diff --git a/gnu/packages/patches/php-curl-compat.patch b/gnu/packages/patches/php-curl-compat.patch
new file mode 100644
index 0000000000..0617251194
--- /dev/null
+++ b/gnu/packages/patches/php-curl-compat.patch
@@ -0,0 +1,17 @@
+Fix test result with cURL 7.83 and later.
+
+Taken from upstream:
+
+  https://github.com/php/php-src/commit/a4179e4c92b6365d39e09cb9cd63c476848013af
+
+diff --git a/ext/curl/tests/curl_basic_007.phpt b/ext/curl/tests/curl_basic_007.phpt
+index 3b53658d6a7e..3834e4674f82 100644
+--- a/ext/curl/tests/curl_basic_007.phpt
++++ b/ext/curl/tests/curl_basic_007.phpt
+@@ -20,5 +20,5 @@ curl_close($ch);
+ 
+ ?>
+ --EXPECTF--
+-string(%d) "No URL set!%w"
++string(%d) "No URL set%A"
+ int(3)
diff --git a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch b/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
deleted file mode 100644
index 427965f231..0000000000
--- a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 98175fc7f1623873ceb2e9a017a319d19bfb3912 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Sun, 12 Dec 2021 13:41:37 +0100
-Subject: [PATCH] Fix openssl_x509_checkpurpose_basic.phpt
-
-This test fails because san-cert.pem and san-ca.pem have expired.  We
-fix that by using the CertificateGenerator to generate temporary certs
-during the test run.  Since san-cert.pem and san-ca.pem have been
-identical, we only generate one certificate.
-
-Closes GH-7763.
----
- .../openssl_x509_checkpurpose_basic.phpt      | 10 +++++-
- ext/openssl/tests/san-ca.pem                  | 15 ---------
- ext/openssl/tests/san-cert.pem                | 31 -------------------
- 3 files changed, 9 insertions(+), 47 deletions(-)
- delete mode 100644 ext/openssl/tests/san-ca.pem
- delete mode 100644 ext/openssl/tests/san-cert.pem
-
-diff --git a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-index 99b4f0bdff31..35629bd93626 100644
---- a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-+++ b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
-@@ -8,10 +8,14 @@ if (OPENSSL_VERSION_NUMBER < 0x10000000) die("skip Output requires OpenSSL 1.0")
- ?>
- --FILE--
- <?php
-+include 'CertificateGenerator.inc';
-+$certificateGenerator = new CertificateGenerator();
-+$certificateGenerator->saveCaCert(__DIR__ . "/san-cert.pem");
-+
- $cert = "file://" . __DIR__ . "/cert.crt";
- $bert = "file://" . __DIR__ . "/bug41033.pem";
- $sert = "file://" . __DIR__ . "/san-cert.pem";
--$cpca = __DIR__ . "/san-ca.pem";
-+$cpca = __DIR__ . "/san-cert.pem";
- $utfl = __DIR__ . "/sni_server_uk.pem";
- $rcrt = openssl_x509_read($cert);
- 
-@@ -84,6 +88,10 @@ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_SMIME_ENCRYPT, array($cpc
- var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_CRL_SIGN, array($cpca), $utfl));
- var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_ANY, array($cpca), $utfl));
- ?>
-+--CLEAN--
-+<?php
-+@unlink(__DIR__ . "/san-cert.pem");
-+?>
- --EXPECT--
- bool(false)
- bool(false)
-diff --git a/ext/openssl/tests/san-ca.pem b/ext/openssl/tests/san-ca.pem
-deleted file mode 100644
-index 88682ba2dcf6..000000000000
---- a/ext/openssl/tests/san-ca.pem
-+++ /dev/null
-@@ -1,15 +0,0 @@
-------BEGIN CERTIFICATE-----
--MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
--BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
--BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
--MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
--BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
--ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
--dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
--clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
--Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
--D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
--AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
--rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
--pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
-------END CERTIFICATE-----
-diff --git a/ext/openssl/tests/san-cert.pem b/ext/openssl/tests/san-cert.pem
-deleted file mode 100644
-index 923d490e72fd..000000000000
---- a/ext/openssl/tests/san-cert.pem
-+++ /dev/null
-@@ -1,31 +0,0 @@
-------BEGIN CERTIFICATE-----
--MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
--BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
--BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
--MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
--BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
--ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
--dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
--clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
--Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
--D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
--AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
--rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
--pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
-------END CERTIFICATE-----
-------BEGIN PRIVATE KEY-----
--MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALBRqn21P/A/io66
--EJeFzMrfZnXEj+4mbaqYTrvZ1WcWAAKn2qo/BZwv6cGFd01OmR53S00AJZcGE97E
--AUDzxpmUPXJUiDBC9NN7d6YuGVV5LbRulb6/mfTwXB4ZSi0O1jB55+KnLZZVl00q
--Mk0KZBExdxXN5qxuRt+wYaFJ6OzRAgMBAAECgYB11e5iWvqjPmQEZRdnnJU0VD8u
--n7ItT+Nk6qtb4gY8Abj6DWIW+01th5vqqJ8FvGyartFVYa69kuM+srG/zevAZWeu
--fGZtwiwZR4DRSyRcPp4rnNiksK3dkAZA6UewmRDPv8uyHJlXc5i+Ft1ILJ5Q5jgn
--UkC4z3EJP5Se9KZywQJBAOO4lRq42wLsYr2SDrQDSs4leie3FKc2bgvjF7Djosh1
--ZYbf55F5b9w1zgnccmni2HkqOnyFu4SKarmXyCsYxrkCQQDGNvnUh7/zZswrdWZ/
--PMp9zVDTh/5Oc2B4ByNLw1ERDwYhjchKgPRlQvn4cp3Pwf3UYPQ/8XGXzzEJey3A
--r0rZAkBf/tDEOgcBPXsGZQrTscuYCU5sbY5ESvqrAilbhSp7DJom+D5bIfEYyIm5
--uHd20Yzlzvpmwc1huyPwZt6X5FLpAkATDReoGMAXSesXxjnqwtIHk2NQYYLM0YQV
--JUJ8NrKk/Bevw+vbVVeoH+7ctU97t36JGiR/vNoZKD3jVmaIXZDJAkEA4wJbwzIo
--L32mu9VmZa7wjmfkraQEmXTPaA5D9lNC0AwRTgkj+x2Qe1vawNblNK9PPLBDdplQ
--L//53ADq/wv5rA==
-------END PRIVATE KEY-----
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index a0c4b4dc15..f269449a92 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -660,26 +660,26 @@ interaction.")
 (define-public podofo
   (package
     (name "podofo")
-    (version "0.9.7")
+    (version "0.9.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/podofo/podofo/" version
                                   "/podofo-" version ".tar.gz"))
               (sha256
                (base32
-                "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw"))))
+                "0m2icjy35jd0900g0fyfrmf0zsldv1chfc1q0zcqlaqrbzhhgrjx"))))
     (build-system cmake-build-system)
     (native-inputs
      (list cppunit pkg-config))
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("libpng" ,libpng)
-       ("lua" ,lua-5.1)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list fontconfig
+           freetype
+           libjpeg-turbo
+           libpng
+           libtiff
+           lua-5.1
+           openssl
+           zlib))
     (arguments
      `(#:configure-flags
        (list "-DPODOFO_BUILD_SHARED=ON")
@@ -690,8 +690,7 @@ interaction.")
              (let ((freetype (assoc-ref inputs "freetype")))
                ;; Look for freetype include files in the correct place.
                (substitute* "cmake/modules/FindFREETYPE.cmake"
-                 (("/usr/local") freetype)))
-             #t)))))
+                 (("/usr/local") freetype))))))))
     (home-page "http://podofo.sourceforge.net")
     (synopsis "Tools to work with the PDF file format")
     (description
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 93284da2bc..bdd1756d40 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2147,14 +2147,14 @@ CPAN::Meta object are present.")
 (define-public perl-cpanel-json-xs
   (package
     (name "perl-cpanel-json-xs")
-    (version "4.26")
+    (version "4.30")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
                            "Cpanel-JSON-XS-" version ".tar.gz"))
        (sha256
-        (base32 "0c07jfh6pq0f3hlhg0cqmznna7rlcflgrqv17mbkz9gnvg4x3szv"))))
+        (base32 "1d5xwk3j3pvc2s439vjrnhwcx44wkskda9mrwv3ix2c6pp7slpsn"))))
     (build-system perl-build-system)
     (propagated-inputs
      (list perl-common-sense))
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 191dcafb4a..fdea27160d 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -61,7 +61,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.4.26")
+    (version "7.4.30")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -69,10 +69,9 @@
                                   "php-" version ".tar.xz"))
               (sha256
                (base32
-                "1y0f1xgfi8cks6npdhrycg8r9g3q0pikqgf5h4xafpy8znmb61g3"))
-              (patches
-               (search-patches "php-bug-74093-test.patch"
-                               "php-openssl_x509_checkpurpose_basic.patch"))
+                "03d7icwys4ikl45q3rgsxv1m3i7kfxhykpx75nn7jzn6697s6wpa"))
+              (patches (search-patches "php-bug-74093-test.patch"
+                                       "php-curl-compat.patch"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fcac915282..141c3d681e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -22003,14 +22003,14 @@ package updates.")
 (define-public python-userspacefs
   (package
     (name "python-userspacefs")
-    (version "2.0.4")
+    (version "2.0.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "userspacefs" version))
         (sha256
          (base32
-          "06f2gsiypas270nqfjir4wwjlpkjp097pm6zchc7k20ggg32gv1k"))))
+          "0v0qkdwfc61s2yiq7d7amin93x5biypfmi9pfhf8yj1rdpx5yvsx"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-fusepyng))
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 2caefd3dd0..a8a42f0544 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -360,25 +360,18 @@ has a small feature set similar to a traditional Bourne shell.")
 (define-public es
   (package
     (name "es")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
      (origin
-       (method url-fetch)
+       (method url-fetch/tarbomb)
        (uri (string-append "https://github.com/wryun/es-shell/releases/"
                            "download/v" version "/es-" version ".tar.gz"))
        (sha256
-        (base32
-         "1fplzxc6lncz2lv2fyr2ig23rgg5j96rm2bbl1rs28mik771zd5h"))
+        (base32 "1pgmqhsk14wyvl489sxdy7kdl2gwrsq1xvkip0z90kh888mlh9n9"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 're-enter-rootdir
-           ;; The tarball has no folder.
-           (lambda _
-             (chdir ".."))))))
+     (list #:test-target "test"))
     (inputs
      (list readline))
     (native-inputs
diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm
index fd3385122e..3030e3aa49 100644
--- a/gnu/packages/toolkits.scm
+++ b/gnu/packages/toolkits.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -32,7 +32,7 @@
 (define-public imgui
   (package
     (name "imgui")
-    (version "1.87")
+    (version "1.88")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -41,7 +41,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10qil22s5qak3as41787iz273sibpq1bq66bakgn7yvhj5fym6hz"))
+                "13cw4hx55y5z678r558hv7znfz666wh0w849c5padnj4nkpbihdi"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove bundled fonts.
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 612f69597f..6652ac717f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -221,14 +221,14 @@ Python 3.3 and later, rather than on Python 2.")
 (define-public git
   (package
    (name "git")
-   (version "2.37.0")
+   (version "2.37.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "07s1jmsc1d4dlmr3qpibfzj14gy1gm049zp2vp1lw36h3dqs2zwz"))))
+              "001m3gnal902hv22gp1m44c6247357pb80db0svms74gidmjq5n8"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -248,7 +248,7 @@ Python 3.3 and later, rather than on Python 2.")
                 version ".tar.xz"))
           (sha256
            (base32
-            "1q68mnbpznapxxyjpysjx5lz8m6y25frxl5yshgx139c0xcr64c0"))))
+            "098yz8kzvzmmrkyiv8j79s5nryws302pnq6jcbrqbidrziwcxkjd"))))
       ;; For subtree documentation.
       ("asciidoc" ,asciidoc)
       ("docbook-xsl" ,docbook-xsl)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 68ab7c7143..5600baf638 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1559,14 +1559,14 @@ operate properly.")
 (define-public ffmpeg-5
   (package
     (name "ffmpeg")
-    (version "5.0.1")
+    (version "5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg"))))
+                "00wbd5skv6ba5yqq4ca505ncckhvpzwflcsall7madg2bsmnmssm"))))
     (build-system gnu-build-system)
     (inputs
      (append
@@ -5384,7 +5384,7 @@ brightness, contrast, and frame rate.")
 (define-public get-iplayer
   (package
     (name "get-iplayer")
-    (version "3.27")
+    (version "3.30")
     (source
       (origin
         (method git-fetch)
@@ -5393,7 +5393,7 @@ brightness, contrast, and frame rate.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "077y31gg020wjpx5pcivqgkqawcjxh5kjnvq97x2gd7i3wwc30qi"))))
+         (base32 "1kzsdq1mhm5h83bbdbhh3jhpfvq4f13ly22mfd6vvmhj8mq084pi"))))
     (build-system perl-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -5408,8 +5408,7 @@ brightness, contrast, and frame rate.")
                     (man (string-append out "/share/man/man1")))
                (install-file "get_iplayer" bin)
                (install-file "get_iplayer.cgi" bin)
-               (install-file "get_iplayer.1" man))
-             #t))
+               (install-file "get_iplayer.1" man))))
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -5420,8 +5419,7 @@ brightness, contrast, and frame rate.")
                    prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
                (wrap-program (string-append out "/bin/get_iplayer.cgi")
                  `("PERL5LIB" ":"
-                   prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
-               #t))))))
+                   prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))))))))
     (inputs
      (list perl-mojolicious perl-lwp-protocol-https perl-xml-libxml))
     (home-page "https://github.com/get-iplayer/get_iplayer")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index e184f54e81..136574b270 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2334,14 +2334,14 @@ administrators and developers in managing the database.")
 (define-public osinfo-db
   (package
     (name "osinfo-db")
-    (version "20211216")
+    (version "20220516")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "10hhpciqk4lzsj66zkdvghd1i5zh6hg1fn9as4qhwcr1wnqfgv09"))))
+                "0vfsdk3c6n6y04c5rf92m31zvl969kaniyx2fqywbp69mzc6j3yn"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index af6be7257d..3ab7dc6be9 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2022 Lu hui <luhux76@gmail.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
+;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -676,13 +677,13 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
 (define-public openconnect
   (package
    (name "openconnect")
-   (version "8.10")
+   (version "9.01")
    (source (origin
             (method url-fetch)
             (uri (string-append "ftp://ftp.infradead.org/pub/openconnect/"
                                 "openconnect-" version ".tar.gz"))
             (sha256
-             (base32 "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih"))))
+             (base32 "1iz4j00031a5ircrx30lkiwf58yl9kc827m4ssck4yg963wgmmxk"))))
    (build-system gnu-build-system)
    (propagated-inputs
     (list libxml2 gnutls zlib))
@@ -769,7 +770,7 @@ and probably others.")
 (define-public openfortivpn
   (package
     (name "openfortivpn")
-    (version "1.15.0")
+    (version "1.17.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -778,7 +779,7 @@ and probably others.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
+                "0an58f0qcyxdx3d5zb5m8vi45a0251b950b5lh16572n8z2g6s2l"))))
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake pkg-config))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 9342873bc0..29526c8002 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2871,7 +2871,7 @@ application classes.")
          "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
     (build-system perl-build-system)
     (native-inputs
-     (list perl-module-install perl-test-www-mechanize-catalyst))
+     (list perl-module-install perl-pod-parser perl-test-www-mechanize-catalyst))
     (propagated-inputs
      (list perl-catalyst-runtime perl-moose perl-namespace-autoclean
            starman))
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index d345bc461d..6100008393 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -161,6 +161,48 @@ specified window, otherwise it outputs the title of the active window.  With
 outputs when titles change.")
     (license license:unlicense)))
 
+(define-public xvkbd
+  (package
+    (name "xvkbd")
+    (version "4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://t-sato.in.coocan.jp/xvkbd/xvkbd-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1x5yldv9y99cw5hzzs73ygdn1z80zns9hz0baa355r711zghfbcm"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'remove-bugs
+                 ;; Both variables are inexplicably but explicitly set to
+                 ;; $(pkg-config --variable=VARIABLE xt) instead of our own.
+                 (lambda _
+                   (substitute* "Makefile.in"
+                     (("^(appdefaultdir|datarootdir) = .*" _ variable)
+                      (string-append variable " = @" variable "@\n"))))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libxaw libxmu libxtst))
+    (home-page "http://t-sato.in.coocan.jp/xvkbd/")
+    (synopsis "Virtual computer keyboard for the X Window System")
+    (description
+     "The @acronym{xvkbd, X virtual keyboard} displays a drawing of a computer
+keyboard in a window on the screen.  Clicking on its keys sends the
+corresponding keystroke(s) to other X clients, as if typed on a physical
+keyboard.
+
+This is useful for systems without keyboard hardware but with a pointing device,
+such as kiosk terminals or handheld devices with touch screens.
+
+A limited number of keyboard layouts are available, as is dictionary completion.
+You can also use xvkbd to send a series of predetermined keystrokes from the
+command line, without displaying a keyboard at all.")
+    (license license:gpl2+)))
+
 (define-public arandr
   (package
     (name "arandr")