summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi14
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/audio.scm20
-rw-r--r--gnu/packages/bioconductor.scm173
-rw-r--r--gnu/packages/bootloaders.scm58
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm60
-rw-r--r--gnu/packages/firmware.scm65
-rw-r--r--gnu/packages/geo.scm65
-rw-r--r--gnu/packages/java.scm42
-rw-r--r--gnu/packages/linux.scm16
-rw-r--r--gnu/packages/music.scm40
-rw-r--r--gnu/packages/pascal.scm58
-rw-r--r--gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch100
-rw-r--r--gnu/packages/virtualization.scm69
-rw-r--r--gnu/services/base.scm4
-rw-r--r--gnu/services/mail.scm120
-rw-r--r--guix/read-print.scm2
-rw-r--r--tests/cpio.scm12
-rw-r--r--tests/guix-package.sh4
20 files changed, 560 insertions, 367 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index c031c8d880..fd03da8c97 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -25729,6 +25729,11 @@ Data type representing the configuration of opensmtpd.
 @item @code{package} (default: @var{opensmtpd})
 Package object of the OpenSMTPD SMTP server.
 
+@item @code{shepherd-requirement} (default: @code{'()})
+This option can be used to provide a list of symbols naming Shepherd services
+that this service will depend on, such as @code{'networking}
+if you want to configure OpenSMTPD to listen on non-loopback interfaces.
+
 @item @code{config-file} (default: @code{%default-opensmtpd-config-file})
 File-like object of the OpenSMTPD configuration file to use.  By default
 it listens on the loopback network interface, and allows for mail from
@@ -39719,11 +39724,10 @@ The service type for an @emph{extensible} service looks like this:
 
                 (compose concatenate)       ;concatenate the list of rules
                 (extend (lambda (config rules)
-                          (match config
-                            (($ <udev-configuration> udev initial-rules)
-                             (udev-configuration
-                              (udev udev)   ;the udev package to use
-                              (rules (append initial-rules rules)))))))))
+                          (udev-configuration
+                           (inherit config)
+                           (rules (append (udev-configuration-rules config)
+                                          rules)))))))
 @end lisp
 
 This is the service type for the
diff --git a/gnu/local.mk b/gnu/local.mk
index 56634e090c..faad95d902 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1381,6 +1381,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/julia-tracker-16-compat.patch		\
   %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
   %D%/packages/patches/libffi-float128-powerpc64le.patch	\
+  %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch	\
   %D%/packages/patches/libobjc2-unbundle-robin-map.patch	\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
   %D%/packages/patches/libvirt-add-install-prefix.patch	\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b1d3007b8c..b1a16ef3d3 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -853,26 +853,16 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "3.2.1")
+    (version "3.2.2")
     (source
      (origin
-       ;; If built from the release tag, Audacity will describe itself
-       ;; as an "Alpha test version" and suggest to users that they use
-       ;; the "latest stable released version".
-       ;; XXX: For 3.2.1 we rebelliously use a git tag anyway because the only
-       ;; "processed" download is a .zip containing a .tar.gz which does not
-       ;; fare well with the patch and snippet machinery:
-       ;;   https://github.com/audacity/audacity/issues/3811
-       ;; TODO: Find a way to control the "alpha" status even when using git
-       ;; so we're not reliant on preprocessed source code.
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/audacity/audacity")
              (commit (string-append "Audacity-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "00mal30jxbcacs1ka4yb5s8xq81zm7mv3y8l5hvg77abkyvfvdzf"))
+        (base32 "1akp9marc4y2g9mwwgfnl43q0gbb2dv7vhsnybh8wdn8ql30hfdw"))
        (patches (search-patches "audacity-ffmpeg-fallback.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -940,7 +930,11 @@ engineers, musicians, soundtrack editors and composers.")
         ;; TODO: enable this flag once we've packaged all dependencies
         ;; "-Daudacity_obey_system_dependencies=on"
         ;; disable crash reports, updates, ..., anything that phones home
-        "-Daudacity_has_networking=off")
+        "-Daudacity_has_networking=off"
+        ;; When building from Git — even from a release tag — this is undefined,
+        ;; and Audacity assumes that is is an ‘alpha’ version and includes debug
+        ;; symbols and extra code.  Force level 2, ‘release’.
+        "-DAUDACITY_BUILD_LEVEL=2")
        #:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%cmake-build-system-modules)
        #:modules
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 29768dc7c2..53c7d048c9 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2334,13 +2334,13 @@ analysis, modelling, and visualization of spike-in controls.")
 (define-public r-ancombc
   (package
     (name "r-ancombc")
-    (version "2.0.1")
+    (version "2.0.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ANCOMBC" version))
               (sha256
                (base32
-                "1bwzvi6j3s66dcll1lb4xy25j4nfn1ln6mc3flh0wgy13l26x8m6"))))
+                "0dlinv4vhxgni8ygzvfw8pbc6d1v9x5chhrpxblhs2c65bkgyxz5"))))
     (properties `((upstream-name . "ANCOMBC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3292,13 +3292,13 @@ Various visual and textual types of output are available.")
 (define-public r-bambu
   (package
     (name "r-bambu")
-    (version "3.0.2")
+    (version "3.0.5")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "bambu" version))
               (sha256
                (base32
-                "0246cn5l1kxysjrzy4prfdxn71vc47a8kciqw384nm2mi3vsy4vx"))))
+                "12rcbspy4ly714cyxbgd5v2m92vasksxm19m6hd4avasrhcr4d6l"))))
     (properties `((upstream-name . "bambu")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3335,13 +3335,13 @@ usage.")
 (define-public r-bandits
   (package
     (name "r-bandits")
-    (version "1.14.0")
+    (version "1.14.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BANDITS" version))
               (sha256
                (base32
-                "18xq8gg1j07gbbxy7r0cc34zwn40mh4fr39zzi8l3z0cymw73qs8"))))
+                "0dbiz7zgdl3bqrwf4ffb73sc2dd8ygh76fakx5887a14azj8pk8x"))))
     (properties `((upstream-name . "BANDITS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3600,13 +3600,13 @@ factorial microarray data.")
 (define-public r-damefinder
   (package
     (name "r-damefinder")
-    (version "1.10.0")
+    (version "1.10.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DAMEfinder" version))
               (sha256
                (base32
-                "0ygsgg51473sycsh367rf8plca6zb1jg2l39zcprwvgpiln8mjdg"))))
+                "1cgykb70mxnhilwwp1jr4dr523zvjxpix173s4ldfh49064gzwc1"))))
     (properties `((upstream-name . "DAMEfinder")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3914,13 +3914,13 @@ negative control samples.")
 (define-public r-deconvr
   (package
     (name "r-deconvr")
-    (version "1.4.2")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "deconvR" version))
               (sha256
                (base32
-                "1wa8l9zxdwx32122slnzqyk32klyznxnbziwn98jbp5fxmjka92l"))))
+                "1jz7q4rv3m85bcvarjhqsyc2330fynb0wr5ajd2qffznczk846xb"))))
     (properties `((upstream-name . "deconvR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3936,6 +3936,7 @@ negative control samples.")
            r-mass
            r-matrixstats
            r-methylkit
+           r-minfi
            r-nnls
            r-quadprog
            r-rsq
@@ -4996,13 +4997,13 @@ only one command.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.32.3")
+    (version "1.32.4")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "0z2g3p6ip4g865na9bmqaa7w2s52769pmjr3hpiv6x8bhifh3nm5"))))
+                "1m4i27zx3ajwygwp38lrxf36rs575dkaxxc6jawpj1kzn7whi5ym"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -5363,26 +5364,26 @@ distribution.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.38.1")
+    (version "1.38.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "0xp3rfhwn8k1bqzqnjzjqlaq8lqyad7kqjhb29vkbxgzjvafvxmk"))))
+         "1m81yvcl63h5m7kbbxpjk7hzygxmn4l9mlgqrdmnnls56183h3b4"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
            r-biocgenerics
            r-biocparallel
-           r-genefilter
            r-geneplotter
            r-genomicranges
            r-ggplot2
            r-iranges
            r-locfit
+           r-matrixstats
            r-rcpp
            r-rcpparmadillo
            r-s4vectors
@@ -5595,13 +5596,13 @@ global-scaling and full-quantile normalization.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.40.0")
+    (version "3.40.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "18vap3qp9blncr4sdl9q1szb4qhm46gldhxy3k3abw9fckcvggwg"))))
+                "1a0rmczlqmqmip2ix28m4iwcpfj04p6nrcl562bjgaifvgyjqhzg"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5720,14 +5721,14 @@ analysis using other methods.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.80.0")
+    (version "1.80.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "0swdqdyz956gx44crbx3qai0qx7n7yazg3yw7i93djcgahyz3kk7"))))
+         "0f25z0hqmrkimv14j03pgjsxpq5rz9ymk151rlg4j4vpc06n73cq"))))
     (build-system r-build-system)
     (native-inputs
      (list gfortran r-knitr))
@@ -5810,13 +5811,13 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.34.3")
+    (version "1.34.4")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "1pw8ml6b33z7zh7h592xl23l8dy32nqq4lzq20p57n9f0krqj1iv"))))
+                "1nskqmlar85zg96c1fbacl7dqg6r0gl814rc7yh482y4wgmwyg0r"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
@@ -5870,13 +5871,13 @@ alignments.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.50.2")
+    (version "1.50.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "10w15j107hy9qb0lh6jmyw7rinfvy3ca34xsskxw3wf25mh6vhzz"))))
+                "14pn7lngayascj5k84g2g748assbivpiakss247cdj9ngzx5sfwz"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -5948,13 +5949,13 @@ provide added flexibility for data combination and manipulation.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.50.1")
+    (version "1.50.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "14m4pvvd9m8kpc7k905km9vib7giq0i9g11bxc1ygw30ifi96966"))))
+                "13b6bm6nrxx1vgzrzpf59c2lq5w8kjq9hsch5h037f0p9w3w5z9p"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
@@ -6111,13 +6112,13 @@ of other R packages who wish to make use of HTSlib.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.72.1")
+    (version "1.72.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "0862mpbmznizcq5bgnp85dl9q0bip76jkga45gssdrv90wsi2192"))))
+                "1k697pqlkrwmfszipl9irbzmwhk1vz97j3rh0k5nj2mrj3dr71mv"))))
     (native-inputs
      (list gfortran))
     (build-system r-build-system)
@@ -6180,13 +6181,13 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-lfa
   (package
     (name "r-lfa")
-    (version "1.28.0")
+    (version "1.28.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lfa" version))
        (sha256
-        (base32 "1l3ip0bsvbz9nagzv47qjh5hf7qf8ffk4hlnkwagngiwyq84vyp1"))))
+        (base32 "0047wspvarbnbawrwvfjfz5y6i36l2r2k2501zjya09rjpiq101m"))))
     (properties `((upstream-name . "lfa")))
     (build-system r-build-system)
     (propagated-inputs (list r-corpcor))
@@ -7313,13 +7314,13 @@ comprehensive scDblFinder method.")
 (define-public r-scmap
   (package
     (name "r-scmap")
-    (version "1.20.0")
+    (version "1.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scmap" version))
        (sha256
-        (base32 "14vyjvfs2n4h0xsy25xg4zdmc8dqbg5vyl3qns6f0rh4bsshqdlm"))))
+        (base32 "0rq185ynk874vgw4a5s2n92381dj6kxxnx2fcx2v7b2ahr3ybys7"))))
     (properties `((upstream-name . "scmap")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7860,13 +7861,13 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-tximport
   (package
     (name "r-tximport")
-    (version "1.26.0")
+    (version "1.26.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tximport" version))
               (sha256
                (base32
-                "1w1m6r85a5nvcfxbkq5dmczaar8vf3vbrgrmxqkjqhlpcq58z5ng"))))
+                "1r67q4nb2bx9nqycyr2gnfmh4gizl0c7l510vmlcdvplv3yi73yn"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -8233,14 +8234,14 @@ packages.")
 (define-public r-oligo
   (package
     (name "r-oligo")
-    (version "1.62.0")
+    (version "1.62.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligo" version))
        (sha256
         (base32
-         "0l6yb58frh4c080k6h8wyipc5kiz4qi7jimnr62jg8d737rrvnk2"))))
+         "1rhzav57d092ip9qjsmskj3l8h4xyq8cpa2a2jl8g32fwh0dyvsz"))))
     (properties `((upstream-name . "oligo")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -8378,14 +8379,14 @@ signal in the input, that lead to spurious peaks during peak calling.")
 (define-public r-diffbind
   (package
     (name "r-diffbind")
-    (version "3.8.1")
+    (version "3.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DiffBind" version))
        (sha256
         (base32
-         "1wgnrd1xpl49pdxxjzzl0v9535naapwp3ayqzvrx3z4m6iai2awj"))))
+         "039gy9ll6ingh3y5h2hp3rhbh2imaryjxzgf8ysk87irlbpnx1qs"))))
     (properties `((upstream-name . "DiffBind")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9096,13 +9097,13 @@ information.")
 (define-public r-glmgampoi
   (package
     (name "r-glmgampoi")
-    (version "1.10.0")
+    (version "1.10.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "glmGamPoi" version))
               (sha256
                (base32
-                "12jbqigg4k2ngrk2anbrrxrwkp57bbzdz492lg8lc6w1gygp5yip"))))
+                "1qxzbh5i208cpghmysailachj8xpx4g4iqk8552xjpjkn54pkpbd"))))
     (properties `((upstream-name . "glmGamPoi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9623,14 +9624,14 @@ penalized least squares regression method.")
 (define-public r-dnacopy
   (package
     (name "r-dnacopy")
-    (version "1.72.0")
+    (version "1.72.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNAcopy" version))
        (sha256
         (base32
-         "0z2hl68f5f6d2w6gbhax4531g3zbgiihj99h32sa44hp29al38ld"))))
+         "1f6ilfwhli7bdnr48y2ijdydvw7kjbyz701kgbsw3w7inr6x6ayr"))))
     (properties `((upstream-name . "DNAcopy")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -9781,14 +9782,14 @@ coordinates.")
 (define-public r-lpsymphony
   (package
     (name "r-lpsymphony")
-    (version "1.26.0")
+    (version "1.26.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lpsymphony" version))
        (sha256
         (base32
-         "0ryl48zxscb35s1gizyspxg48dlqg1j51h9iw2flq16y7y63ppzi"))))
+         "167zpf7k7gn7gw2cxkqx89y322qinyzjr1naracp5axj4q2qagm3"))))
     (build-system r-build-system)
     (arguments
      (list
@@ -10670,14 +10671,14 @@ especially Illumina Infinium methylation microarrays.")
 (define-public r-linnorm
   (package
     (name "r-linnorm")
-    (version "2.22.0")
+    (version "2.22.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Linnorm" version))
        (sha256
         (base32
-         "0ndhvdd9gkqyayxqgj5320sgj15di7ji945lpdi3rj5lwldh7na0"))))
+         "16d7viyidqbsy3mbr2cpq9p291yf362a4blhvs05qxcwm3fjllij"))))
     (properties `((upstream-name . "Linnorm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11018,14 +11019,14 @@ the data set is suitable for such analysis.")
 (define-public r-sigpathway
   (package
     (name "r-sigpathway")
-    (version "1.66.0")
+    (version "1.66.1")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "sigPathway" version))
         (sha256
           (base32
-            "0vb6v61ak8z3hx7d65lr1hrxk89n36j0zi3x0pp828khdyh3zvag"))))
+            "1ln1n4zwmjw1ils45vix93q3h19xlg4q894yhhxkphgyj0qcy00b"))))
     (properties `((upstream-name . "sigPathway")))
     (build-system r-build-system)
     (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102")
@@ -11140,14 +11141,14 @@ data.")
 (define-public r-enrichplot
   (package
     (name "r-enrichplot")
-    (version "1.18.1")
+    (version "1.18.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "enrichplot" version))
        (sha256
         (base32
-         "1x84wlkqisq1x2zniy4mp02zlsp4v85kxbflalmq0pixlkagq0vr"))))
+         "0nzcr23m58z3h0n0frxf26z14j7ilcl4fjy7rqm7f2i1wyld70zl"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-aplot
@@ -11218,13 +11219,13 @@ profiles (GO and KEGG) of gene and gene clusters.")
 (define-public r-clusterexperiment
   (package
     (name "r-clusterexperiment")
-    (version "2.18.0")
+    (version "2.18.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "clusterExperiment" version))
               (sha256
                (base32
-                "04kdiwz8qzr7cr1an1c7a684wqv9pkca0iaym5f069pdjhqvvq0a"))))
+                "1f3f56d88yiqyj45rhcwqb04wbxr9m4fxhbbckw1j7nykm8100ps"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -11987,14 +11988,14 @@ investigation using RNA-seq data.")
 (define-public r-aucell
   (package
     (name "r-aucell")
-    (version "1.20.1")
+    (version "1.20.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AUCell" version))
        (sha256
         (base32
-         "0bq729kavqkam2s4dmfzixgznsys61j0lvj5pk3b70gxv44gmpsh"))))
+         "1qb13qd5xzgrpx6jlg3ll0ff5spz3y06ji31vvqzm759almg2w3s"))))
     (properties `((upstream-name . "AUCell")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12003,6 +12004,7 @@ investigation using RNA-seq data.")
            r-delayedarray
            r-delayedmatrixstats
            r-gseabase
+           r-matrix
            r-mixtools
            r-r-utils
            r-shiny
@@ -12823,14 +12825,14 @@ and data files used across sessions.")
 (define-public r-iclusterplus
   (package
     (name "r-iclusterplus")
-    (version "1.34.0")
+    (version "1.34.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iClusterPlus" version))
        (sha256
         (base32
-         "01bl1gmc1v1b4lh88sdazjvm8pl7383dgzxnhmzpxwz7lkcxi1h2"))))
+         "05y4jmbf8sxl32f3g5lw9ycxky0rw69gax3n2z0kif7xcb5qf3qv"))))
     (properties `((upstream-name . "iClusterPlus")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -13263,14 +13265,14 @@ annotations.")
 (define-public r-rsubread
   (package
     (name "r-rsubread")
-    (version "2.12.0")
+    (version "2.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rsubread" version))
        (sha256
         (base32
-         "0iha7xln7l3mrmka8rcmmlp74f5km9rc88k9nv6bxw0krr03089n"))))
+         "1gvd8vmglvzc3bixqxrm4k7yikl2as5l4x6bvvvnwsgx2i7vz7dm"))))
     (properties `((upstream-name . "Rsubread")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -13496,14 +13498,14 @@ manipulation of flow cytometry data.")
 (define-public r-ggcyto
   (package
     (name "r-ggcyto")
-    (version "1.26.0")
+    (version "1.26.4")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggcyto" version))
        (sha256
         (base32
-         "0phhm54wcqihj62a0jk46whmf6wwg7wj3306wvnszy7yik4z857w"))))
+         "1pj1v0bhvckvwn1p826phskqz9lv71c1913cz5w0fd87dzdbpzpj"))))
     (properties `((upstream-name . "ggcyto")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13719,38 +13721,30 @@ package.")
 (define-public r-opencyto
   (package
     (name "r-opencyto")
-    (version "2.10.0")
+    (version "2.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "openCyto" version))
        (sha256
         (base32
-         "1pkpm98fs17zqdvyymd58sl4cib7gdi7drvdkagilrafjcrpq31m"))))
+         "16wsa9dhnz8gz1siyhfxvnbfg142g7fmhxiqxr7n69qpq9w8yhr0"))))
     (properties `((upstream-name . "openCyto")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-biobase
+     (list r-bh
+           r-biobase
            r-biocgenerics
-           r-clue
+           r-cpp11
            r-data-table
            r-flowclust
            r-flowcore
-           r-flowstats
            r-flowviz
            r-flowworkspace
            r-graph
-           r-gtools
-           r-ks
-           r-lattice
-           r-mass
            r-ncdfflow
-           r-plyr
-           r-r-utils
            r-rbgl
-           r-rcolorbrewer
-           r-rcpp
-           r-rrcov))
+           r-rcolorbrewer))
     (native-inputs
      (list r-knitr))
     (home-page "https://bioconductor.org/packages/openCyto")
@@ -13950,14 +13944,14 @@ data, to only emphasize the data that actually matters.")
 (define-public r-rcistarget
   (package
     (name "r-rcistarget")
-    (version "1.17.0")
+    (version "1.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RcisTarget" version))
        (sha256
         (base32
-         "1anwin5476q2n0zgywrmp3nj6sgy07i6pw1lczydvn4h1a8n1rvk"))))
+         "02lz2m2zhwy1dvmjvlss6qg0dh574qhnvn7al3wx7ck1hkz0dgi2"))))
     (properties `((upstream-name . "RcisTarget")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15620,13 +15614,13 @@ functionality.")
 (define-public r-biocviews
   (package
     (name "r-biocviews")
-    (version "1.66.0")
+    (version "1.66.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biocViews" version))
               (sha256
                (base32
-                "1rgn0agw5m4y8838lxzq1r658h1pblaidmm444yfimjffa8znj23"))))
+                "1xplkzm29v6aysfhb6kf2nnmvc37jmcvv6vsgbx8z8qccn96jk02"))))
     (properties
      `((upstream-name . "biocViews")))
     (build-system r-build-system)
@@ -15638,6 +15632,7 @@ functionality.")
            r-rcurl
            r-xml
            r-runit))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/biocViews")
     (synopsis "Bioconductor package categorization helper")
     (description "The purpose of biocViews is to create HTML pages that
@@ -16206,14 +16201,14 @@ generated.")
 (define-public r-preprocesscore
   (package
     (name "r-preprocesscore")
-    (version "1.60.0")
+    (version "1.60.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "preprocessCore" version))
        (sha256
         (base32
-         "1l0m591scln024jdpib47fndhx2wfp9jgkj3mdmwd9nkc5y0qjda"))))
+         "1rwr31jp4dh3xcfx1kx8rz5xvyx1mrwy85hqrjrfr4m6h0qv28k1"))))
     (properties
      `((upstream-name . "preprocessCore")))
     (build-system r-build-system)
@@ -16227,13 +16222,13 @@ routines.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.36.0")
+    (version "0.36.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "05al4diwdbsa9b37i8msxnp79fxk7k24dk2vhh131s3snb89jvfs"))))
+                "16lssnmhy3klqp4sw1328f38cixkjh9317gdyikcrmsbcwg2ak6v"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
@@ -16717,13 +16712,13 @@ This package wraps C++ code from the MOODS motif calling library.")
 (define-public r-chromvar
   (package
     (name "r-chromvar")
-    (version "1.20.0")
+    (version "1.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromVAR" version))
        (sha256
-        (base32 "1rwgbicbmszdkr05ksxfsisyhk0a4pvc3jrxbzjyc13jj5h6m5kp"))))
+        (base32 "1nhhpqhpvmw6b0nwxdwsjnakmfpxzpii8fmabwwg9bk8ni3zj5dq"))))
     (properties `((upstream-name . "chromVAR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16824,14 +16819,14 @@ cell types to infer the cell of origin of each single cell independently.")
 (define-public r-scuttle
   (package
     (name "r-scuttle")
-    (version "1.8.1")
+    (version "1.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scuttle" version))
        (sha256
         (base32
-         "10wk46zgi57m9q9ab6wlmljcss3fph2r9yp1bp01s9yv7sd749b2"))))
+         "1wgh28rj8m5dz89s9y4rzfy68d8ign6pcnnwj9g7h4sc3jfsg56i"))))
     (properties `((upstream-name . "scuttle")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16904,14 +16899,14 @@ quality control.")
 (define-public r-scran
   (package
     (name "r-scran")
-    (version "1.26.0")
+    (version "1.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scran" version))
        (sha256
         (base32
-         "11iwpw44600pfx01vqil97k728m1wf4dljr27k2ak4s7z75kxfih"))))
+         "1sqc8pf1qzm24kf1l45da12wbzv0nxsy6l3v9fc8srmnvk37p04p"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-beachmat
@@ -17506,13 +17501,13 @@ EMBL-EBI GWAS catalog.")
 (define-public r-kegggraph
   (package
     (name "r-kegggraph")
-    (version "1.58.0")
+    (version "1.58.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGgraph" version))
        (sha256
-        (base32 "0hpsb009qmhy9p67d5wd0cl60smhgjlhxsz5f52i1c6qy4jk1niq"))))
+        (base32 "1s5j7zdp8ck4vhca81i4b6qclhwi56gmz8brawrxj3szvwmxf3y6"))))
     (properties `((upstream-name . "KEGGgraph")))
     (build-system r-build-system)
     (propagated-inputs
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 3c96453e5c..b968ecd441 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2016-2018, 2021-2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
@@ -1532,3 +1532,59 @@ existing PXE ROM on your network card, or you can chainload into iPXE to obtain
 the features of iPXE without the hassle of reflashing.")
       (license license:gpl2+))))
 
+(define-public ipxe-qemu
+  (package/inherit ipxe
+    (name "ipxe-qemu")
+    (native-inputs
+     (modify-inputs (package-native-inputs ipxe)
+       (prepend edk2-tools)))
+    (arguments
+     (let ((roms
+            ;; Alist of ROM -> (VID . DID) entries.  This list and below
+            ;; build steps are taken from QEMUs roms/Makefile.
+            '(("e1000"       . ("8086" . "100e"))
+              ("e1000e"      . ("8086" . "10d3"))
+              ("eepro100"    . ("8086" . "1209"))
+              ("ne2k_pci"    . ("1050" . "0940"))
+              ("pcnet"       . ("1022" . "2000"))
+              ("rtl8139"     . ("10ec" . "8139"))
+              ("virtio"      . ("1af4" . "1000"))
+              ("vmxnet3"     . ("15ad" . "07b0")))))
+       (substitute-keyword-arguments (package-arguments ipxe)
+         ((#:modules modules)
+          `((ice-9 match) ,@modules))
+         ((#:make-flags flags)
+          #~(append (delete "everything" #$flags)
+                    '("CONFIG=qemu")
+                    (map (match-lambda
+                           ((_ . (vid . did))
+                            (string-append "bin/" vid did ".rom")))
+                         '#$roms)
+                    (map (match-lambda
+                           ((_ . (vid . did))
+                            (string-append "bin-efi/"
+                                           vid did ".efidrv")))
+                         '#$roms)))
+         ((#:phases phases)
+          #~(modify-phases #$phases
+              (replace 'install
+                (lambda _
+                  (let ((firmware (string-append #$output "/share/firmware")))
+                    (mkdir-p firmware)
+                    (for-each
+                     (match-lambda
+                       ((name . (vid . did))
+                        (let ((rom (string-append "bin/" vid did ".rom")))
+                          (copy-file rom
+                                     (string-append firmware
+                                                    "/pxe-" name ".rom"))
+                          (invoke "EfiRom"
+                                  "-b" rom
+                                  "-l" "0x02"
+                                  "-f" (string-append "0x" vid)
+                                  "-i" (string-append "0x" did)
+                                  "-ec" (string-append "bin-efi/"
+                                                       vid did ".efidrv")
+                                  "-o" (string-append firmware
+                                                      "/efi-" name ".rom")))))
+                     '#$roms)))))))))))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 387755b8ec..83515ad17e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1621,14 +1621,14 @@ types are supported, as is encryption.")
 (define-public emacs-rec-mode
   (package
     (name "emacs-rec-mode")
-    (version "1.9.0")
+    (version "1.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://elpa.gnu.org/packages/"
                                   "rec-mode-" version ".tar"))
               (sha256
                (base32
-                "1w1q6kh567fd8xismq9i6wr1y893lypd30l452yvydi1qjiq1n6x"))
+                "0f60bw07l6kk1kkjjxsk30p6rxj9mpngaxqy8piyabnijfgjzd3s"))
               (snippet #~(begin (delete-file "rec-mode.info")))))
     (build-system emacs-build-system)
     (arguments
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f97775ce95..6e1d05dceb 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1283,6 +1283,38 @@ leveraging built-in functionality.")
     (license (list license:gpl3+
                    license:fdl1.3+)))) ; GFDLv1.3+ for the manual
 
+(define-public emacs-fzf
+  (let ((commit "21912ebc7e1084aa88c9d8b7715e782a3978ed23")
+        (revision "0"))
+    (package
+      (name "emacs-fzf")
+      (version (git-version "0.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/bling/fzf.el")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0gdqjh8996hb06bnnyhi94k69mjfrzyfgq00a9s4wwagv28sqmkj"))))
+      (build-system emacs-build-system)
+      (arguments
+       (list
+        #:tests? #f                     ;no tests
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'patch-fzf-executable
+              (lambda* (#:key inputs #:allow-other-keys)
+                (emacs-substitute-variables "fzf.el"
+                  ("fzf/executable" (search-input-file inputs "/bin/fzf"))))))))
+      (inputs (list fzf))
+      (home-page "https://github.com/bling/fzf.el")
+      (synopsis "Emacs front-end for Fzf finder")
+      (description "This package provides an Emacs front-end for Fzf general
+purpose finder.")
+      (license license:gpl3+))))
+
 (define-public emacs-minions
   (package
     (name "emacs-minions")
@@ -3581,7 +3613,7 @@ Its features are:
 (define-public emacs-citeproc-el
   (package
     (name "emacs-citeproc-el")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
      (origin
        (method git-fetch)
@@ -3590,7 +3622,7 @@ Its features are:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rkwqn9pcimfcyq19wlrcij0kcjyhbwisla7vwbhjj8ang0bq9rm"))))
+        (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs))                 ;need libxml support
@@ -10196,7 +10228,7 @@ replaced with the directory you choose.")
 (define-public emacs-consult-notmuch
   (package
     (name "emacs-consult-notmuch")
-    (version "0.8")
+    (version "0.8.1")
     (source
      (origin
        (method git-fetch)
@@ -10205,7 +10237,7 @@ replaced with the directory you choose.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18r47cj89qli534irah3lwwzsnik5bcf61clnrkhafqv9y51m67z"))))
+        (base32 "0gcd69i99prnskh1na7clydqgh1y9rbzkdc6dy9zmin9hfdrw1yd"))))
     (build-system emacs-build-system)
     (propagated-inputs
      (list emacs-consult emacs-notmuch))
@@ -14436,7 +14468,7 @@ programming and reproducible research.")
 (define-public emacs-org-contrib
   (package
     (name "emacs-org-contrib")
-    (version "0.4")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -14445,7 +14477,7 @@ programming and reproducible research.")
              (commit (string-append "release_" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "06b1rpywj596nnnap6pj6fnmcq8fcc4i30zv7qsvs3ryxciw01fb"))))
+        (base32 "0f3zjy3ybkqmvvlx04251add0vcz248qibxy5akal96l8bdhjajx"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -16491,14 +16523,14 @@ the center of the screen and not at the bottom.")
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "1.3.1")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "posframe-" version ".tar"))
        (sha256
-        (base32 "0j5nchfpbrf9fsr82lnvhnq6vi33gv3glsbqn18knnby8m7sxzci"))))
+        (base32 "05qkwb3ys05chn0maz7q19kp539m7p5acb8di4rni4vjjlkpx2bj"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
@@ -20413,7 +20445,7 @@ according to a parsing expression grammar.")
 (define-public emacs-eldev
   (package
     (name "emacs-eldev")
-    (version "1.3")
+    (version "1.3.1")
     (source
      (origin
        (method git-fetch)
@@ -20422,7 +20454,7 @@ according to a parsing expression grammar.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "112jv9rz6brglffwsablnhafhhnfnq89k9vh8xzbbi6i4xz2l1ak"))))
+        (base32 "14rrh5ycwd3r5k3df8aif4jii645m5jgplxky3hrjgr8vxd951h8"))))
     (build-system emacs-build-system)
     (arguments
      (list
@@ -27087,7 +27119,7 @@ Debug server.")
 (define-public emacs-bfuture
   (package
     (name "emacs-bfuture")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method git-fetch)
@@ -27096,7 +27128,7 @@ Debug server.")
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "1m4v4xbsvg26z7nvg2c8q7x1nvv7v4ajm56l0nbkwcbdbrgahpva"))
+         "1qflkyr7fafw84mksxs25mka133y8ak8nsga3al29014pshbvzxn"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (arguments
@@ -34649,7 +34681,7 @@ across sessions.")
 (define-public emacs-vertico-posframe
   (package
     (name "emacs-vertico-posframe")
-    (version "0.5.9")
+    (version "0.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -34657,7 +34689,7 @@ across sessions.")
                     ".tar"))
               (sha256
                (base32
-                "1d1b8lfhr8zxa0dwsiqb1wzawx90l6lrr26jl17gpj85iyj3imq6"))))
+                "1cwi26jz9dn8la6zxxai2pfkcpz8lwf4cd8hr44lak6x0ca9bwr3"))))
     (build-system emacs-build-system)
     (propagated-inputs (list emacs-posframe emacs-vertico))
     (home-page "https://github.com/tumashu/vertico-posframe")
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 8c8949a5da..2e2b48162f 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -522,6 +522,7 @@ executing in M-mode.")
     (description "SeaBIOS is an implementation of a 16bit x86 BIOS.  SeaBIOS
 can run in an emulator or it can run natively on X86 hardware with the use of
 coreboot.")
+    (supported-systems '("i686-linux" "x86_64-linux"))
     ;; Dual licensed.
     (license (list license:gpl3+ license:lgpl3+
                    ;; src/fw/acpi-dsdt.dsl is lgpl2
@@ -530,6 +531,70 @@ coreboot.")
                    ;; cpl with a linking exception.
                    license:cpl1.0))))
 
+(define-public edk2-tools
+  (package
+    (name "edk2-tools")
+    (version "202211")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tianocore/edk2")
+                    (commit (string-append "edk2-stable" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1264542mm0mffjcmw5sw34h94n405swz5z56rw1ragp3j62144iy"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:make-flags
+           #~(list (string-append "BUILD_CC=" #$(cc-for-target)))
+           #:test-target "Tests"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'change-directory
+                 (lambda _
+                   (chdir "BaseTools")))
+               (add-after 'change-directory 'disable-some-tools
+                 (lambda _
+                   ;; Disable building brotli and xz, since we package them
+                   ;; separately, and it would require fetching submodules.
+                   (substitute* "Source/C/GNUmakefile"
+                     (("^[[:blank:]]+BrotliCompress[[:blank:]]+\\\\")
+                      "\\")
+                     (("^[[:blank:]]+LzmaCompress[[:blank:]]+\\\\")
+                      "\\"))))
+               (replace 'build
+                 (lambda* (#:key (make-flags #~'()) #:allow-other-keys)
+                   ;; The default build target also runs tests.
+                   (apply invoke "make" "-C" "Source/C" make-flags)))
+               (delete 'configure)
+               (replace 'install
+                 (lambda _
+                   (mkdir #$output)
+                   (copy-recursively "Source/C/bin"
+                                     (string-append #$output "/bin")))))))
+    (native-inputs
+     (list python-wrapper))
+    (inputs
+     (list `(,util-linux "lib")))       ;for libuuid
+    (home-page
+     "https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Tools-List")
+    (synopsis "EFI development tools")
+    (description
+     "This package contains tools for processing UEFI firmware content.
+Executables included are:
+
+@itemize
+@item @code{EfiRom}: Build Option ROM images.
+@item @code{GenFfs}: Generate FFS files.
+@item @code{GenFv}: Generate a PI firmware volume image.
+@item @code{GenFw}: Get image data from PE32 files.
+@item @code{GenSec}: Generate EFI_SECTION type files.
+@item @code{VfrCompile}: Parse preprocessed UEFI and Framework VFR files.
+@item @code{VolInfo}: Display the contents of a firmware volume.
+@end itemize")
+    (license license:bsd-2)))
+
 (define-public ovmf
   (let ((commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
         (revision "1"))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index cefe973f4a..2185af7a98 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -293,7 +293,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
 (define-public geos
   (package
     (name "geos")
-    (version "3.11.0")
+    (version "3.11.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.osgeo.org/geos/geos-"
@@ -301,7 +301,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
                                   ".tar.bz2"))
               (sha256
                (base32
-                "12l59pxawyizmc4wn20dvjn7aifqwkim4ysmc78h91mayjmqravr"))))
+                "1qhbirv1rbznv99ha0pa0zybvcsn0dsz2xfc65vr8bgrm77v63kd"))))
     (build-system cmake-build-system)
     (arguments `(#:phases
                  (modify-phases %standard-phases
@@ -409,6 +409,7 @@ and driving.")
        (method url-fetch)
        (uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-"
                            version ".tar.gz"))
+       (patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"))
        (sha256
         (base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5"))
        (modules '((guix build utils)))
@@ -599,7 +600,7 @@ fully fledged Spatial SQL capabilities.")
 (define-public proj
   (package
     (name "proj")
-    (version "9.1.0")
+    (version "9.1.1")
     (source
      (origin
        (method url-fetch)
@@ -607,7 +608,7 @@ fully fledged Spatial SQL capabilities.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0593vd9sac0c98j1f4rammd90d4xnhygbr6d49i8il6ajjdj7cl1"))))
+         "0fbd1vj4cj19kwh03vdn0a4hr0xaacvi876yyyw5xfsj1q0x8g00"))))
     (build-system cmake-build-system)
     (native-inputs (list googletest pkg-config))
     (propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc
@@ -701,14 +702,14 @@ projections.")
 (define-public python-pyproj
   (package
     (name "python-pyproj")
-    (version "3.3.1")
+    (version "3.4.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pyproj" version))
         (sha256
           (base32
-            "1gjg63irs44djyqbp9gg7s02d0y5i9cd1a83phyzp5fcj56y3n5k"))))
+            "0czbfl5dd7jckbwvinfwiwdb99sxj796gfn3a9zqbsdc4xcl8257"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1045,7 +1046,7 @@ development.")
 (define-public gdal
   (package
     (name "gdal")
-    (version "3.5.1")
+    (version "3.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1053,7 +1054,7 @@ development.")
                      version ".tar.gz"))
               (sha256
                (base32
-                "1l93q7xf6qx9ck5axfkf3ygmvclxkvrjd8x00ckn7j0d0750ci3w"))
+                "1qckwnygszxkkq40bf87s3m1sab6jj9jyakdvskh0qf7dq8zjarf"))
               (modules '((guix build utils)))
               (snippet
                 `(begin
@@ -1083,19 +1084,27 @@ development.")
            json-c
            libgeotiff
            libjpeg-turbo
+           libjxl
            libpng
            libtiff
            libwebp
+           lz4
            netcdf
            openssl
+           openjpeg
            pcre2
            postgresql ; libpq
            proj
            qhull
            sqlite
-           zlib))
+           swig
+           zlib
+           zstd))
     (native-inputs
-     (list pkg-config))
+     (list pkg-config
+           python))
+    (propagated-inputs
+     (list python-numpy))
     (home-page "https://gdal.org/")
     (synopsis "Raster and vector geospatial data format library")
     (description "GDAL is a translator library for raster and vector geospatial
@@ -1124,25 +1133,6 @@ utilities for data translation and processing.")
                ;; frmts/mrf/libLERC
                license:asl2.0))))
 
-(define-public python-gdal
-  (package (inherit gdal)
-    (name "python-gdal")
-    (build-system python-build-system)
-    (arguments
-     '(#:tests? #f                      ; no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'chdir
-           (lambda _
-             (chdir "swig/python")
-             #t)))))
-    (native-inputs '())
-    (propagated-inputs
-     (list python-numpy))
-    (inputs
-     (list gdal))
-    (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
-
 (define-public python-pyshp
   (package
     (name "python-pyshp")
@@ -1177,13 +1167,13 @@ utilities for data translation and processing.")
   (package
     (name "python-cartopy")
     ;; This is a post-release fix that adds build_ext to setup.py.
-    (version "0.20.3")
+    (version "0.21.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Cartopy" version))
        (sha256
-        (base32 "01lhnkhw22jp6hnrs5qvgkq4fqcni2sx7ydiyv8w8xxx5wpglq0d"))))
+        (base32 "0hnfs75dcnz12ximah5xn9566r8zz189lxikmj4lrs9jl4l3l7ff"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1206,13 +1196,12 @@ utilities for data translation and processing.")
            python-scipy
            python-shapely))
     (inputs
-     (list geos
-           ;; cartopy's setup.py looks for the proj executable.
-           ;; Not sure if it actually makes use of it since it
-           ;; probably uses proj only through pyproj.
-           proj))
+     (list geos))
     (native-inputs
-     (list python-cython python-flufl-lock python-pytest))
+     (list python-cython
+           python-flufl-lock
+           python-pytest
+           python-pytest-mpl))
     (home-page "https://scitools.org.uk/cartopy/docs/latest/")
     (synopsis "Cartographic library for visualisation")
     (description
@@ -2551,6 +2540,7 @@ growing set of geoscientific methods.")
                              "ProcessingQgisAlgorithmsTestPt2"
                              "ProcessingQgisAlgorithmsTestPt3"
                              "ProcessingQgisAlgorithmsTestPt4"
+                             "ProcessingGdalAlgorithmsRasterTest"
                              "ProcessingGdalAlgorithmsVectorTest"
                              "ProcessingGrass7AlgorithmsImageryTest"
                              "ProcessingGrass7AlgorithmsRasterTestPt1"
@@ -2668,7 +2658,6 @@ growing set of geoscientific methods.")
            python-chardet
            python-dateutil
            python-future
-           python-gdal
            python-jinja2
            python-numpy
            python-owslib
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f80406cab9..fc7ea120a8 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1761,18 +1761,18 @@ new Date();"))
 (define-public openjdk11
   (package
     (name "openjdk")
-    (version "11.0.15")
+    (version "11.0.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://openjdk-sources.osci.io/openjdk11/openjdk-"
                                   version "-ga.tar.xz"))
-              (file-name (string-append name "-" version ".tar.bz2"))
+              (file-name (string-append name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0di91nnms2iq1svgq72r5y17am17r4vh2lq43k0bkcwpc84d6nd8"))
+                "1prvqy0ysz0999wrhsrbz6vrknpqfihl9l74l16ph93g89dqi5ia"))
               (modules '((guix build utils)))
               (snippet
-               '(for-each delete-file (find-files "." ".*.(bin|exe|jar)$")))))
+               '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
     (build-system gnu-build-system)
     (outputs '("out" "jdk" "doc"))
     (arguments
@@ -1851,8 +1851,7 @@ new Date();"))
                        (format (current-error-port)
                                "warning: failed to substitute: ~a~%"
                                file))))
-                 (find-files "."
-                             "\\.c$|\\.h$")))))
+                 (find-files "." "\\.c$|\\.h$")))))
           (add-before 'build 'write-source-revision-file
             (lambda _
               (with-output-to-file ".src-rev"
@@ -1879,7 +1878,7 @@ new Date();"))
                        ,@make-flags))))
           (replace 'install
             (lambda _
-              (let ((images (car (find-files "build" ".*-server-release"
+              (let ((images (car (find-files "build" "-server-release"
                                              #:directories? #t))))
                 (copy-recursively (string-append images "/images/jdk")
                                   #$output:jdk)
@@ -1913,7 +1912,7 @@ new Date();"))
                   (invoke "unzip" archive))
                 (delete-file archive)
                 (with-directory-excursion dir
-                  (let ((char-data-files (find-files "." "CharacterData.*")))
+                  (let ((char-data-files (find-files "." "CharacterData")))
                     (for-each (lambda (file)
                                 (substitute* file
                                   (((string-append "This file was generated "
@@ -1924,7 +1923,7 @@ new Date();"))
                                                   "file"))))
                               char-data-files)))
                 (with-directory-excursion dir
-                  (let ((files (find-files "." ".*" #:directories? #t)))
+                  (let ((files (find-files "." #:directories? #t)))
                     (apply invoke "zip" "-0" "-X" archive files))))))
           (add-after 'strip-character-data-timestamps 'remove-extraneous-files
             (lambda* (#:key outputs #:allow-other-keys)
@@ -1949,7 +1948,7 @@ new Date();"))
                               (invoke "unzip" archive))
                             (delete-file archive)
                             (for-each (compose repack-archive canonicalize-path)
-                                      (find-files dir "(ct.sym|\\.jar)$"))
+                                      (find-files dir "(ct\\.sym|\\.jar)$"))
                             (let ((reset-file-timestamp
                                    (lambda (file)
                                      (let ((s (lstat file)))
@@ -1959,7 +1958,7 @@ new Date();"))
                               (for-each reset-file-timestamp
                                         (find-files dir #:directories? #t)))
                             (with-directory-excursion dir
-                              (let ((files (find-files "." ".*" #:directories? #t)))
+                              (let ((files (find-files "." #:directories? #t)))
                                 (apply invoke "zip" "-0" "-X" archive files)))))))
                 (for-each repack-archive
                           (find-files #$output:doc "\\.zip$"))
@@ -2019,6 +2018,7 @@ new Date();"))
            libxtst))
     (native-inputs
      (list autoconf
+           bash                     ; not bash-minimal, needs ulimit
            openjdk10
            `(,openjdk10 "jdk")
            gnu-make-4.2
@@ -2100,8 +2100,8 @@ blacklisted.certs.pem"
                   "#! java BlacklistedCertsConverter SHA-256\n"))))))))))
 
 (define-public openjdk13
-  (make-openjdk openjdk12 "13.0.7"
-                "0wrrr0d7lz1v8qqm752mn4gz5l2vpl2kmx4ac3ysvk4mljc924hp"))
+  (make-openjdk openjdk12 "13.0.13"
+                "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji"))
 
 (define-public openjdk14
   (make-openjdk
@@ -2119,8 +2119,8 @@ blacklisted.certs.pem"
 
 (define-public openjdk15
   (make-openjdk
-   openjdk14 "15.0.3"
-   "168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i"
+   openjdk14 "15.0.9"
+   "1k3x06fv89l84ysjsyw8s89q8blghq85m6xjzv373x6297ln8n7a"
    (source (origin
              (inherit (package-source base))
              (modules '())
@@ -2137,13 +2137,13 @@ blacklisted.certs.pem"
       (append `(,openjdk14 "jdk"))))))
 
 (define-public openjdk16
-  (make-openjdk openjdk15 "16.0.1"
-                "1ggddsbsar4dj2fycfqqqagqil7prhb30afvq6933rz7pa9apm2f"))
+  (make-openjdk openjdk15 "16.0.2"
+                "0587px2qbz07g3xi4a3ya6m630p72dvkxcn0bj1813pxnwvcgigz"))
 
 (define-public openjdk17
   (make-openjdk
-   openjdk16 "17.0.3"
-   "0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b"
+   openjdk16 "17.0.5"
+   "1asnysg6kxdkrmb88y6qihdr12ljsyxv0mg6hlcs7cwxgsdlqkfs"
    (arguments
     (substitute-keyword-arguments (package-arguments openjdk16)
       ((#:phases phases)
@@ -2155,8 +2155,8 @@ blacklisted.certs.pem"
                  (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))))
 
 (define-public openjdk18
-  (make-openjdk openjdk17 "18"
-                "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8"))
+  (make-openjdk openjdk17 "18.0.2"
+                "1yimfdkwpinhg5cf1mcrzk9xvjwnray3cx762kypb9jcwbranjwx"))
 
 ;;; Convenience alias to point to the latest version of OpenJDK.
 (define-public openjdk openjdk18)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 41fb24f82a..4cb97d1b82 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -480,7 +480,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-6.0-version "6.0.13")
+(define-public linux-libre-6.0-version "6.0.14")
 (define-public linux-libre-6.0-gnu-revision "gnu")
 (define deblob-scripts-6.0
   (linux-libre-deblob-scripts
@@ -490,7 +490,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "16g2bin3xay30zfss1vlb7pwcss5giaxaksp4v1gk05wn51wjrqr")))
 (define-public linux-libre-6.0-pristine-source
   (let ((version linux-libre-6.0-version)
-        (hash (base32 "191dlxcmbx8vy6z2k04jq2kr6hwnaknsnsyycvqnjmvmdf6i3lq8")))
+        (hash (base32 "0862g1djm2hlcw44ks08494pbsd44syb7k0z8dqjbynggxz8zway")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.0)))
@@ -498,7 +498,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.83")
+(define-public linux-libre-5.15-version "5.15.84")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
@@ -508,12 +508,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1m73pgx8v047xb2gck2g7j7khniis8c9akn9vhzgsdfglrf8p6fj")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1wvzfhzqq9dps508wmp2gblfz93ipppnjzqm0n8pi1acq11hhna0")))
+        (hash (base32 "05w29fh1k40iwsm7h67i86lv6jw075micav5b5dy7hjrn06c739i")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.159")
+(define-public linux-libre-5.10-version "5.10.160")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -523,12 +523,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0a96g4pjdgwvxn2wpz6rfc8nwdlkw138r9pp66kvfrrn08i313ii")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "19yfi5vknxnw0cb8274q3pb5zjs6ny04n16m8xjdfdmznrbvza8v")))
+        (hash (base32 "02w4mapfhds26ahqy5ijm5a6mlh9a5f4q3488l898qz8r9m0gm9h")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.227")
+(define-public linux-libre-5.4-version "5.4.228")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -538,7 +538,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1bgblfkcnrabnr9hpdl07qgps57h6bq4v5pjrxs798vq43db66va")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "14q5gy48j78vwnqivrgpdhj778n2jq5l7yiw5na1rwqmfh1wbvsy")))
+        (hash (base32 "0935dq7zbpf0fkppl3q96a2gh1zrmq01h1nivzgmdhjlmhn3n9c0")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index bde01cb312..5be767a138 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4730,7 +4730,7 @@ standalone JACK client and an LV2 plugin is also available.")
 (define-public sfizz
   (package
     (name "sfizz")
-    (version "1.0.0")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/sfztools/sfizz"
@@ -4738,34 +4738,38 @@ standalone JACK client and an LV2 plugin is also available.")
                                   "/sfizz-" version ".tar.gz"))
               (sha256
                (base32
-                "1pk67xvyqkvhjz2q5hbj5v0mnfvdvvl8vl5bsh6ymwiq3glkd41l"))
+                "1wsr3dpn7a7whqn480m02kp6n4raamnfi3imhf2q8k58md1yn9jw"))
               (modules '((guix build utils)))
               (snippet
-               ;; TODO: pugixml is bundled, but can only be removed in
-               ;; versions after 1.0.0.
                '(for-each delete-file-recursively
                           '("external/abseil-cpp"
                             "external/simde"
                             "plugins/editor/external/vstgui4"
-                            "plugins/vst")))))
+                            "plugins/vst"
+                            "src/external/pugixml")))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list "-DSFIZZ_LV2_UI=OFF"
-             "-DSFIZZ_VST=OFF"
-             "-DSFIZZ_VST2=OFF"
-             "-DSFIZZ_TESTS=ON"
-             "-DSFIZZ_USE_SYSTEM_ABSEIL=ON")))
+     (list
+      #:configure-flags
+      #~(list "-DSFIZZ_LV2_UI=OFF"
+              "-DSFIZZ_VST=OFF"
+              "-DSFIZZ_VST2=OFF"
+              "-DSFIZZ_TESTS=ON"
+              "-DSFIZZ_USE_SYSTEM_ABSEIL=ON"
+              "-DSFIZZ_USE_SYSTEM_PUGIXML=ON"
+              ;; XXX: Guix SIMDe version 0.7.2 is not enough.
+              ;; "-DSFIZZ_USE_SYSTEM_SIMDE=ON"
+              )))
     (native-inputs
      (list pkg-config))
     (inputs
-     `(("abseil-cpp" ,abseil-cpp)
-       ("glib" ,glib)
-       ("jack" ,jack-2)
-       ("lv2" ,lv2)
-       ("libsamplerate" ,libsamplerate)
-       ("pugixml" ,pugixml)
-       ("simde" ,simde)))
+     (list abseil-cpp
+           glib
+           jack-2
+           lv2
+           libsamplerate
+           pugixml
+           simde))
     (home-page "https://sfz.tools/sfizz/")
     (synopsis "SFZ parser and synth library")
     (description "Sfizz provides an SFZ parser and synth C++ library.  It
diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm
index 8c193830fd..f563f077dc 100644
--- a/gnu/packages/pascal.scm
+++ b/gnu/packages/pascal.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Kei Kebreau <address@hidden>
 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -229,43 +231,39 @@ many useful extensions to the Pascal programming language.")
 (define-public p2c
   (package
     (name "p2c")
-    (version "2.01")
+    (version "2.02")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://alum.mit.edu/www/toms/p2c/p2c-"
-                                  version ".tar.gz"))
+              (uri (string-append "http://users.fred.net/tds/lab/p2c/p2c-"
+                                  version ".zip"))
               (sha256
                (base32
-                "03x72lv6jrvikbrpz4kfq1xp61l2jw5ki6capib71lxs65zndajn"))))
+                "17q6s0vbz298pks80bxf4r6gm8kwbrml1q3vfs6g6yj75sqj58xs"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags
-       (let ((out (assoc-ref %outputs "out")))
-         (list (string-append "CC=" ,(cc-for-target))
-               (string-append "HOMEDIR=" out "/lib/p2c")
-               (string-append "INCDIR=" out "/include/p2c")
-               (string-append "BINDIR=" out "/bin")
-               (string-append "LIBDIR=" out "/lib")
-               (string-append "MANDIR=" out "/share/man/man1")
-               "MANFILE=p2c.man.inst"))
-       #:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'mkdir
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/share/man"))
-               (mkdir-p (string-append out "/lib"))
-               (mkdir-p (string-append out "/bin"))
-               (mkdir-p (string-append out "/include")))
-             #t))
-         (add-before 'build 'chdir
-           (lambda* (#:key make-flags #:allow-other-keys)
-             (chdir "src")
-             #t)))))
+     (list
+      #:make-flags
+      #~(list (string-append "CC=" #$(cc-for-target))
+              (string-append "HOMEDIR=" #$output "/lib/p2c")
+              (string-append "INCDIR=" #$output "/include/p2c")
+              (string-append "BINDIR=" #$output "/bin")
+              (string-append "LIBDIR=" #$output "/lib")
+              (string-append "MANDIR=" #$output "/share/man/man1")
+              "MANFILE=p2c.man.inst")
+      #:test-target "test"
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (add-before 'build 'mkdir
+            (lambda _
+              (mkdir-p (string-append #$output "/share/man"))
+              (mkdir-p (string-append #$output "/lib"))
+              (mkdir-p (string-append #$output "/bin"))
+              (mkdir-p (string-append #$output "/include"))))
+          (add-before 'build 'chdir
+            (lambda _ (chdir "src"))))))
     (native-inputs
-     (list perl which))
+     (list perl unzip which))
     (synopsis "p2c converts Pascal programs to C programs")
     (description "This package provides @command{p2c}, a program to convert
 Pascal source code to C source code, and @command{p2cc}, a compiler for
diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch
new file mode 100644
index 0000000000..b4bf292c1e
--- /dev/null
+++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch
@@ -0,0 +1,100 @@
+From: Even Rouault <even.rouault@spatialys.com>
+Date: Sat, 26 Nov 2022 13:23:12 +0100
+Subject: Fix test failures with PROJ 9.1.1
+
+https://github.com/OSGeo/libgeotiff/pull/82
+---
+ bin/listgeo.c             |  7 ++++++-
+ test/testlistgeo          |  4 ++--
+ test/testlistgeo_out.dist | 14 --------------
+ 3 files changed, 8 insertions(+), 17 deletions(-)
+
+diff --git a/bin/listgeo.c b/bin/listgeo.c
+index 06c45f70..acad54c6 100644
+--- a/bin/listgeo.c
++++ b/bin/listgeo.c
+@@ -29,6 +29,7 @@ void Usage()
+         "  -tfw: Generate a .tfw (ESRI TIFF World) file for the target file.\n"
+         "  -proj4: Report PROJ.4 equivalent projection definition.\n"
+         "  -no_norm: Don't report 'normalized' parameter values.\n"
++        "  -no_corners: Don't report corner coordinates.\n"
+         "  filename: Name of the GeoTIFF file to report on.\n" );
+         
+     exit( 1 );
+@@ -42,6 +43,7 @@ int main(int argc, char *argv[])
+     int		i, norm_print_flag = 1, proj4_print_flag = 0;
+     int		tfw_flag = 0, inv_flag = 0, dec_flag = 0;
+     int         st_test_flag = 0;
++    int     corners = 1;
+ 
+     /*
+      * Handle command line options.
+@@ -50,6 +52,8 @@ int main(int argc, char *argv[])
+     {
+         if( strcmp(argv[i],"-no_norm") == 0 )
+             norm_print_flag = 0;
++        else if( strcmp(argv[i],"-no_corners") == 0 )
++            corners = 0;
+         else if( strcmp(argv[i],"-tfw") == 0 )
+             tfw_flag = 1;
+         else if( strcmp(argv[i],"-proj4") == 0 )
+@@ -130,7 +134,8 @@ int main(int argc, char *argv[])
+             
+             TIFFGetField( tif, TIFFTAG_IMAGEWIDTH, &xsize );
+             TIFFGetField( tif, TIFFTAG_IMAGELENGTH, &ysize );
+-            GTIFPrintCorners( gtif, &defn, stdout, xsize, ysize, inv_flag, dec_flag );
++            if( corners )
++                GTIFPrintCorners( gtif, &defn, stdout, xsize, ysize, inv_flag, dec_flag );
+         }
+ 
+     }
+diff --git a/test/testlistgeo b/test/testlistgeo
+index 596301b4..9a41e74f 100755
+--- a/test/testlistgeo
++++ b/test/testlistgeo
+@@ -59,11 +59,11 @@ $EXE ${DATA_DIR}/ProjLinearUnitsGeoKey_9036.tif >>${OUT}
+ echo "" >>${OUT}
+ 
+ echo "Testing listgeo ProjectedCSTypeGeoKey_28191_cassini_soldner.tif" >> ${OUT}
+-$EXE ${DATA_DIR}/ProjectedCSTypeGeoKey_28191_cassini_soldner.tif >>${OUT}
++$EXE -no_corners ${DATA_DIR}/ProjectedCSTypeGeoKey_28191_cassini_soldner.tif >>${OUT}
+ echo "" >>${OUT}
+ 
+ echo "Testing listgeo cassini_soldner.tif" >> ${OUT}
+-$EXE ${DATA_DIR}/cassini_soldner.tif >>${OUT}
++$EXE -no_corners ${DATA_DIR}/cassini_soldner.tif >>${OUT}
+ echo "" >>${OUT}
+ 
+ echo "Testing listgeo ProjectedCSTypeGeoKey_27200_new_zealand_mapping_grid.tif" >> ${OUT}
+diff --git a/test/testlistgeo_out.dist b/test/testlistgeo_out.dist
+index 742f0fce..20221cec 100644
+--- a/test/testlistgeo_out.dist
++++ b/test/testlistgeo_out.dist
+@@ -299,13 +299,6 @@ Ellipsoid: 7010/Clarke 1880 (Benoit) (6378300.79,6356566.43)
+ Prime Meridian: 8901/Greenwich (0.000000/  0d 0' 0.00"E)
+ Projection Linear Units: 9001/metre (1.000000m)
+ 
+-Corner Coordinates:
+-Upper Left    (  440720.000, 3751320.000)  ( 40d47'28.08"E, 64d13'29.57"N)
+-Lower Left    (  440720.000, 3751260.000)  ( 40d47'27.69"E, 64d13'27.64"N)
+-Upper Right   (  440780.000, 3751320.000)  ( 40d47'32.51"E, 64d13'29.40"N)
+-Lower Right   (  440780.000, 3751260.000)  ( 40d47'32.12"E, 64d13'27.47"N)
+-Center        (  440750.000, 3751290.000)  ( 40d47'30.10"E, 64d13'28.52"N)
+-
+ Testing listgeo cassini_soldner.tif
+ Geotiff_Information:
+    Version: 1
+@@ -348,13 +341,6 @@ Projection Method: CT_CassiniSoldner
+    ProjFalseNorthingGeoKey: 126867.909000 m
+ Projection Linear Units: 9001/metre (1.000000m)
+ 
+-Corner Coordinates:
+-Upper Left    (  440720.000, 3751320.000)  ( 40d47'28.08"E, 64d13'29.57"N)
+-Lower Left    (  440720.000, 3751260.000)  ( 40d47'27.69"E, 64d13'27.64"N)
+-Upper Right   (  440780.000, 3751320.000)  ( 40d47'32.51"E, 64d13'29.40"N)
+-Lower Right   (  440780.000, 3751260.000)  ( 40d47'32.12"E, 64d13'27.47"N)
+-Center        (  440750.000, 3751290.000)  ( 40d47'30.10"E, 64d13'28.52"N)
+-
+ Testing listgeo ProjectedCSTypeGeoKey_27200_new_zealand_mapping_grid.tif
+ Geotiff_Information:
+    Version: 1
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d0f5fd5af4..6890f13233 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -175,13 +175,10 @@
        (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; TODO: Scrub all firmwares from this directory!
-           (with-directory-excursion "pc-bios"
-             ;; Delete firmwares provided by SeaBIOS.
-             (for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$")))
            ;; Delete bundled code that we provide externally.
+           ;; TODO: Unbundle SeaBIOS!
            (for-each delete-file-recursively
-                     '("dtc" "meson" "roms/seabios"))))))
+                     '("dtc" "meson"))))))
     (outputs '("out" "static" "doc"))   ;5.3 MiB of HTML docs
     (build-system gnu-build-system)
     (arguments
@@ -192,20 +189,15 @@
                    (not (string=? "i686-linux" (%current-system))))
       #:configure-flags
       #~(let ((gcc (search-input-file %build-inputs "/bin/gcc"))
-              (meson (search-input-file %build-inputs "bin/meson"))
-              (seabios (search-input-file %build-inputs
-                                          "share/firmware/bios.bin"))
               (out #$output))
           (list (string-append "--cc=" gcc)
                 ;; Some architectures insist on using HOST_CC.
                 (string-append "--host-cc=" gcc)
-                (string-append "--meson=" meson)
                 (string-append "--prefix=" out)
-
                 "--sysconfdir=/etc"
+                (string-append "--meson=" (search-input-file %build-inputs
+                                                             "bin/meson"))
                 "--enable-fdt=system"
-                (string-append "--firmwarepath=" out "/share/qemu:"
-                               (dirname seabios))
                 (string-append "--smbd=" out "/libexec/samba-wrapper")
                 "--disable-debug-info"  ;for space considerations
                 ;; The binaries need to be linked against -lrt.
@@ -219,33 +211,6 @@
                   ,@%gnu-build-system-modules)
       #:phases
       #~(modify-phases %standard-phases
-          ;; Since we removed the bundled firmwares above, many tests
-          ;; can't work.  Re-add them here.
-          (add-after 'unpack 'replace-firmwares
-            (lambda* (#:key inputs #:allow-other-keys)
-              (let* ((seabios (dirname (search-input-file
-                                        inputs "share/firmware/bios.bin")))
-                     (seabios-firmwares (find-files seabios "\\.bin$"))
-                     (allowed-differences
-                      ;; Ignore minor differences (addresses etc) in the firmware
-                      ;; data tables compared to what the test suite expects.
-                      '("tests/data/acpi/pc/SSDT.dimmpxm"
-                        "tests/data/acpi/pc/DSDT.dimmpxm"
-                        "tests/data/acpi/pc/ERST.acpierst"
-                        "tests/data/acpi/q35/ERST.acpierst"
-                        "tests/data/acpi/q35/DSDT.cxl"))
-                     (allowed-differences-whitelist
-                      (open-file "tests/qtest/bios-tables-test-allowed-diff.h"
-                                 "a")))
-                (with-directory-excursion "pc-bios"
-                  (for-each (lambda (file)
-                              (symlink file (basename file)))
-                            seabios-firmwares))
-                (for-each (lambda (file)
-                            (format allowed-differences-whitelist
-                                    "\"~a\",~%" file))
-                          allowed-differences)
-                (close-port allowed-differences-whitelist))))
           (add-after 'unpack 'extend-test-time-outs
             (lambda _
               ;; These tests can time out on heavily-loaded and/or slow storage.
@@ -312,22 +277,17 @@
               (mkdir-p "b/qemu")
               (chdir "b/qemu")
               (apply invoke "../../configure" configure-flags)))
-
           ;; Configure, build and install QEMU user-emulation static binaries.
           (add-after 'configure 'configure-user-static
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let* ((static (assoc-ref outputs "static"))
                      (gcc (search-input-file inputs "/bin/gcc"))
-                     (seabios (search-input-file inputs "/share/firmware/bios.bin"))
                      ;; This is the common set of configure flags; it is
                      ;; duplicated here to isolate this phase from manipulations
                      ;; to the #:configure-flags build argument, as done in
                      ;; derived packages such as qemu-minimal.
                      (configure-flags (list (string-append "--cc=" gcc)
                                             (string-append "--host-cc=" gcc)
-                                            (string-append "--firmwarepath="
-                                                           #$output "/share/qemu:"
-                                                           (dirname seabios))
                                             "--sysconfdir=/etc"
                                             "--disable-debug-info")))
               (mkdir-p "../user-static")
@@ -353,15 +313,6 @@
                                         (scandir "."
                                                  (cut string-suffix?
                                                       "-linux-user" <>))))))))
-
-          (add-after 'install 'delete-firmwares
-            (lambda _
-              ;; Delete firmares that are accessible on --firmwarepath.
-              ;; For some reason tests fail if we simply remove them from
-              ;; pc-bios/meson.build, hence this roundabout way.
-              (with-directory-excursion (string-append #$output "/share/qemu")
-                (for-each delete-file
-                          (find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$")))))
           ;; Create a wrapper for Samba. This allows QEMU to use Samba without
           ;; pulling it in as an input. Note that you need to explicitly install
           ;; Samba in your Guix profile for Samba support.
@@ -406,7 +357,6 @@ exec smbd $@")))
            pixman
            pulseaudio
            sdl2
-           seabios
            spice
            usbredir
            util-linux
@@ -417,16 +367,13 @@ exec smbd $@")))
            zlib
            `(,zstd "lib")))
     (native-inputs
-     ;; Note: acpica is here only to pretty-print firmware differences with IASL
-     ;; (see the replace-firmwares phase above).
-     (list acpica
-           bison
-           flex
-           gettext-minimal
+     (list gettext-minimal
            `(,glib "bin")               ;gtester, etc.
+           perl
+           flex
+           bison
            meson-0.63
            ninja
-           perl
            pkg-config
            python-wrapper
            python-sphinx
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 52b94e060b..6993e1f174 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -2494,11 +2494,11 @@ notably to select, copy, and paste text.  The default options use the
                   #$kmscon-command
 
                   ;; The installer needs to be able to display glyphs from
-                  ;; various scripts, so give it access to freefont.
+                  ;; various scripts, so give it access to unifont.
                   ;; TODO: Make this configurable.
                   #:environment-variables
                   (list (string-append "XDG_DATA_DIRS="
-                                       #$font-gnu-freefont "/share"))))
+                                       #$font-gnu-unifont "/share"))))
         (stop #~(make-kill-destructor)))))
    (description "Start the @command{kmscon} virtual terminal emulator for the
 Linux @dfn{kernel mode setting} (KMS).")))
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 2dc235a585..6f588679b1 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1651,6 +1651,8 @@ by @code{dovecot-configuration}.  @var{config} may also be created by
   opensmtpd-configuration?
   (package     opensmtpd-configuration-package
                (default opensmtpd))
+  (shepherd-requirement opensmtpd-configuration-shepherd-requirement
+                        (default '())) ; list of symbols
   (config-file opensmtpd-configuration-config-file
                (default %default-opensmtpd-config-file))
   (setgid-commands? opensmtpd-setgid-commands? (default #t)))
@@ -1666,18 +1668,18 @@ action outbound relay
 match from local for any action outbound
 "))
 
-(define opensmtpd-shepherd-service
-  (match-lambda
-    (($ <opensmtpd-configuration> package config-file)
-     (list (shepherd-service
-            (provision '(smtpd))
-            (requirement '(loopback))
-            (documentation "Run the OpenSMTPD daemon.")
-            (start (let ((smtpd (file-append package "/sbin/smtpd")))
-                     #~(make-forkexec-constructor
-                        (list #$smtpd "-f" #$config-file)
-                        #:pid-file "/var/run/smtpd.pid")))
-            (stop #~(make-kill-destructor)))))))
+(define (opensmtpd-shepherd-service config)
+  (match-record config <opensmtpd-configuration>
+                       (package config-file shepherd-requirement)
+    (list (shepherd-service
+           (provision '(smtpd))
+           (requirement `(loopback ,@shepherd-requirement))
+           (documentation "Run the OpenSMTPD daemon.")
+           (start (let ((smtpd (file-append package "/sbin/smtpd")))
+                    #~(make-forkexec-constructor
+                       (list #$smtpd "-f" #$config-file)
+                       #:pid-file "/var/run/smtpd.pid")))
+           (stop #~(make-kill-destructor))))))
 
 (define %opensmtpd-accounts
   (list (user-group
@@ -1698,58 +1700,56 @@ match from local for any action outbound
          (home-directory "/var/empty")
          (shell (file-append shadow "/sbin/nologin")))))
 
-(define opensmtpd-activation
-  (match-lambda
-    (($ <opensmtpd-configuration> package config-file)
-     (let ((smtpd (file-append package "/sbin/smtpd")))
-       #~(begin
-           (use-modules (guix build utils))
-           ;; Create mbox and spool directories.
-           (mkdir-p "/var/mail")
-           (mkdir-p "/var/spool/smtpd")
-           (chmod "/var/spool/smtpd" #o711)
-           (mkdir-p "/var/spool/mail")
-           (chmod "/var/spool/mail" #o711))))))
+(define (opensmtpd-activation config)
+  (match-record config <opensmtpd-configuration> (package config-file)
+    (let ((smtpd (file-append package "/sbin/smtpd")))
+      #~(begin
+          (use-modules (guix build utils))
+          ;; Create mbox and spool directories.
+          (mkdir-p "/var/mail")
+          (mkdir-p "/var/spool/smtpd")
+          (chmod "/var/spool/smtpd" #o711)
+          (mkdir-p "/var/spool/mail")
+          (chmod "/var/spool/mail" #o711)))))
 
 (define %opensmtpd-pam-services
   (list (unix-pam-service "smtpd")))
 
-(define opensmtpd-set-gids
-  (match-lambda
-    (($ <opensmtpd-configuration> package config-file set-gids?)
-     (if set-gids?
-         (list
-          (setuid-program
-           (program (file-append package "/sbin/smtpctl"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq"))
-          (setuid-program
-           (program (file-append package "/sbin/sendmail"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq"))
-          (setuid-program
-           (program (file-append package "/sbin/send-mail"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq"))
-          (setuid-program
-           (program (file-append package "/sbin/makemap"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq"))
-          (setuid-program
-           (program (file-append package "/sbin/mailq"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq"))
-          (setuid-program
-           (program (file-append package "/sbin/newaliases"))
-           (setuid? #false)
-           (setgid? #true)
-           (group "smtpq")))
-         '()))))
+(define (opensmtpd-set-gids config)
+  (match-record config <opensmtpd-configuration> (package config-file setgid-commands?)
+    (if setgid-commands?
+        (list
+         (setuid-program
+          (program (file-append package "/sbin/smtpctl"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq"))
+         (setuid-program
+          (program (file-append package "/sbin/sendmail"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq"))
+         (setuid-program
+          (program (file-append package "/sbin/send-mail"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq"))
+         (setuid-program
+          (program (file-append package "/sbin/makemap"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq"))
+         (setuid-program
+          (program (file-append package "/sbin/mailq"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq"))
+         (setuid-program
+          (program (file-append package "/sbin/newaliases"))
+          (setuid? #false)
+          (setgid? #true)
+          (group "smtpq")))
+        '())))
 
 (define opensmtpd-service-type
   (service-type
diff --git a/guix/read-print.scm b/guix/read-print.scm
index a6aaa149e4..8a720ef2ef 100644
--- a/guix/read-print.scm
+++ b/guix/read-print.scm
@@ -288,11 +288,13 @@ expressions and blanks that were read."
    ('define-gexp-compiler 2)
    ('define-record-type 2)
    ('define-record-type* 4)
+   ('define-configuration 2)
    ('let 2)
    ('let* 2)
    ('letrec 2)
    ('letrec* 2)
    ('match 2)
+   ('match-record 3)
    ('when 2)
    ('unless 2)
    ('package 1)
diff --git a/tests/cpio.scm b/tests/cpio.scm
index 516de0655b..832101d1bb 100644
--- a/tests/cpio.scm
+++ b/tests/cpio.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2022 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,12 +31,18 @@
 (define %cpio-program
   (which "cpio"))
 
+(define %test-file
+  (search-path %load-path "guix.scm"))
+
 
 (test-begin "cpio")
 
+;; The cpio format expects 'ino' to fit in 32 bits.  If we have a bigger inode
+;; number, skip this test.
+(test-skip
+ (if (>= (stat:ino (lstat %test-file)) (expt 2 32)) 1 0))
 (test-assert "file->cpio-header + write-cpio-header + read-cpio-header"
-  (let* ((file   (search-path %load-path "guix.scm"))
-         (header (file->cpio-header file)))
+  (let* ((header (file->cpio-header %test-file)))
     (call-with-values
         (lambda ()
           (open-bytevector-output-port))
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index dedba2fd74..cc416ec6a1 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -149,11 +149,11 @@ cat > "$module_dir/foo.scm"<<EOF
   #:use-module (gnu packages base))
 
 (define-public deprecated
-  (deprecated-package "fileutils" coreutils))
+  (deprecated-package "fileutils-is-the-old-name" coreutils))
 EOF
 
 guix build -L "$module_dir" -e '(@ (foo) deprecated)' -n
-test "`guix package -L "$module_dir" -s ^fileutils$ | grep ^name:`" = ""
+test "`guix package -L "$module_dir" -s ^fileutils-is-the-old-name$ | grep ^name:`" = ""
 
 rm -rf "$module_dir"