summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-09-16 19:11:43 +0200
committerMarius Bakke <marius@gnu.org>2022-09-16 19:11:43 +0200
commit7e0f2728a46b8f96b875a7199655bd63ad6a9fff (patch)
treebc86385f3ef3f788eed795764ff40c71595dcf2b /gnu/packages
parentaf53cf42b7391d3af4fa303233afb87700eccd5f (diff)
parent706e6c3c8f9aa19c6ec22d4bbd77d09624dbf671 (diff)
downloadguix-7e0f2728a46b8f96b875a7199655bd63ad6a9fff.tar.gz
Merge branch 'staging' into core-updates
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/audio.scm2
-rw-r--r--gnu/packages/bioinformatics.scm2
-rw-r--r--gnu/packages/bootloaders.scm7
-rw-r--r--gnu/packages/build-tools.scm79
-rw-r--r--gnu/packages/check.scm4
-rw-r--r--gnu/packages/chemistry.scm2
-rw-r--r--gnu/packages/cpp.scm4
-rw-r--r--gnu/packages/ebook.scm41
-rw-r--r--gnu/packages/education.scm75
-rw-r--r--gnu/packages/enchant.scm2
-rw-r--r--gnu/packages/engineering.scm2
-rw-r--r--gnu/packages/fonts.scm5
-rw-r--r--gnu/packages/fontutils.scm159
-rw-r--r--gnu/packages/fpga.scm29
-rw-r--r--gnu/packages/geo.scm121
-rw-r--r--gnu/packages/gnome.scm6
-rw-r--r--gnu/packages/irods.scm2
-rw-r--r--gnu/packages/java.scm20
-rw-r--r--gnu/packages/monitoring.scm16
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/nfs.scm1
-rw-r--r--gnu/packages/patches/java-antlr4-fix-code-too-large.java90
-rw-r--r--gnu/packages/python-science.scm112
-rw-r--r--gnu/packages/python-xyz.scm55
-rw-r--r--gnu/packages/security-token.scm4
-rw-r--r--gnu/packages/simulation.scm2
-rw-r--r--gnu/packages/spice.scm48
-rw-r--r--gnu/packages/telegram.scm2
-rw-r--r--gnu/packages/video.scm10
-rw-r--r--gnu/packages/virtualization.scm2
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/xdisorg.scm2
32 files changed, 636 insertions, 278 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 663123e638..fd27c1cc71 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -3615,7 +3615,7 @@ stretching and pitch scaling of audio.  This package contains the library.")
         (base32 "0nvhdzy0m3bchk3dpnspv2f518p2v9fjcrv36z1sva1pv9a2g35w"))))
     (build-system cmake-build-system)
     (native-inputs
-     (list catch-framework2))
+     (list catch2))
     (inputs
      (list fftw))
     (home-page "https://mixxxdj.github.io/libkeyfinder/")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f35412d4ec..b35802e915 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3792,7 +3792,7 @@ comment or quality sections.")
     (inputs
      (list gsl openblas zlib))
     (native-inputs
-     `(("catch" ,catch-framework2-1)
+     `(("catch" ,catch2-1)
        ("perl" ,perl)
        ("shunit2" ,shunit2)
        ("which" ,which)))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b521b57ecd..210bc30536 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -600,7 +600,12 @@ also initializes the boards (RAM etc).")
               (("'cc'") "'gcc'"))
              (substitute* "tools/patman/test_util.py"
               ;; python3-coverage is simply called coverage in guix.
-              (("python3-coverage") "coverage"))
+               (("python3-coverage") "coverage")
+
+               ;; Don't require 100% coverage since it's brittle and can
+               ;; fail with newer versions of coverage or dependencies.
+               (("raise ValueError\\('Test coverage failure'\\)")
+                "print('Continuing anyway since Guix does not care :O')"))
              (substitute* "test/run"
               ;; Make it easier to find test failures.
               (("#!/bin/bash") "#!/bin/bash -x")
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index b5b9d501f9..84a62d0fd6 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -45,9 +45,11 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
@@ -62,7 +64,7 @@
   #:use-module (gnu packages rpc)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages ninja)
+  #:use-module (gnu packages version-control)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
 
@@ -342,6 +344,81 @@ resembles Python.")
 ;; TODO: Bump this in the next rebuild cycle.
 (define-public meson meson-0.60)
 
+(define-public meson-python
+  (package
+    (name "meson-python")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "meson_python" version))
+              (sha256
+               (base32
+                "0k2yn0iws1n184sdznzmfw4xgbqgq5cn02hpc7m0xdaxryj1ybs4"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'avoid-ninja-dependency
+                 (lambda _
+                   ;; Avoid dependency on the "ninja" PyPI distribution,
+                   ;; which is a meta-package that simply downloads and
+                   ;; installs ninja from the web ...
+                   (substitute* "pyproject.toml"
+                     (("'ninja',")
+                      ""))))
+               (replace 'build
+                 (lambda _
+                   ;; ZIP does not support timestamps before 1980.
+                   (setenv "SOURCE_DATE_EPOCH" "315532800")
+                   (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+               (replace 'install
+                 (lambda _
+                   (let ((whl (car (find-files "dist" "\\.whl$"))))
+                     (invoke "pip" "--no-cache-dir" "--no-input"
+                             "install" "--no-deps" "--prefix" #$output whl))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "pytest" "-vv" "tests" "-k"
+                             (string-append
+                              "not "
+                              ;; These tests require a git checkout.
+                              (string-join '("test_contents_unstaged"
+                                             "test_no_pep621"
+                                             "test_pep621"
+                                             "test_dynamic_version"
+                                             "test_contents"
+                                             "test_contents_subdirs")
+                                           " and not ")))))))))
+    (propagated-inputs
+     (list meson-0.63                   ;>=0.62 required
+           ninja
+           ;; XXX: python-meson forcefully sets the RUNPATH of binaries
+           ;; for vendoring purposes, and uses PatchELF for that(!).  This
+           ;; functionality is not useful in Guix, but removing this
+           ;; dependency is tricky.  There is discussion upstream about making
+           ;; it optional, but for now we'll just carry it:
+           ;; https://github.com/FFY00/meson-python/issues/125
+           patchelf
+           python-colorama
+           python-pyproject-metadata
+           python-tomli
+           python-wheel))
+    (native-inputs
+     (list python-pypa-build
+           python-wheel
+
+           ;; For tests.
+           pkg-config
+           python-gitpython
+           python-pytest
+           python-pytest-mock))
+    (home-page "https://github.com/FFY00/mesonpy")
+    (synopsis "Meson-based build backend for Python")
+    (description
+     "meson-python is a PEP 517 build backend for Meson projects.")
+    (license license:expat)))
+
 (define-public premake4
   (package
     (name "premake")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 3ee8fd9b01..4a42bc7eca 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -441,7 +441,7 @@ PyUnit and others.")
 multi-paradigm automated test framework for C++ and Objective-C.")
     (license license:boost1.0)))
 
-(define-public catch-framework2-1
+(define-public catch2-1
   (package
     (name "catch2")
     (version "1.12.2")
@@ -470,7 +470,7 @@ multi-paradigm automated test framework for C++ and Objective-C.")
 a multi-paradigm automated test framework for C++ and Objective-C.")
     (license license:boost1.0)))
 
-(define-public catch-framework2
+(define-public catch2
   (package
     (name "catch2")
     (version "2.13.8")
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 735d599d2d..c517610fe8 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -559,7 +559,7 @@ symmetries written in C.  Spglib can be used to:
            glm
            netcdf))
     (native-inputs
-     (list catch-framework2 python-setuptools))
+     (list catch2 python-setuptools))
     (home-page "https://pymol.org")
     (synopsis "Molecular visualization system")
     (description "PyMOL is a capable molecular viewer and renderer.  It can be
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 6289c9520f..d03e0bc7e1 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -531,7 +531,7 @@ functions, class methods, and stl containers.
               (modules '((guix build utils)))
               (snippet '(delete-file-recursively "./test/thirdparty"))))
     (inputs
-     (list catch-framework2-1))
+     (list catch2-1))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
@@ -1264,7 +1264,7 @@ services including database, analytic, and machine learning technologies.")
            (lambda _
              (invoke "./tests"))))))
     (native-inputs
-     (list catch-framework2))
+     (list catch2))
     (synopsis "C++11/14/17 std::expected with functional-style extensions")
     (description "@code{std::expected} is proposed as the preferred way to
 represent objects which will either have an expected value, or an unexpected
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index c3a27cb113..df4064ae56 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Mathieu Laparie <mlaparie@disr.it>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -678,3 +679,43 @@ format documents, with the following features:
 @item handling encrypted documents
 @end itemize\n")
     (license license:lgpl3+)))
+
+(define-public python-ebooklib
+  (package
+    (name "python-ebooklib")
+    (version "0.17.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "EbookLib" version))
+              (sha256
+               (base32
+                "1w972g0kmh9cdxf3kjr7v4k99wvv4lxv3rxkip39c08550nf48zy"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-lxml python-six))
+    (home-page "https://github.com/aerkalov/ebooklib")
+    (synopsis "Ebook library which can handle EPUB2/EPUB3 and Kindle format")
+    (description
+     "Ebook library which can handle EPUB2/EPUB3 and Kindle format.")
+    (license license:agpl3+)))
+
+(define-public shirah
+  (package
+    (name "shirah")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "shirah_reader" version))
+              (sha256
+               (base32
+                "0j15v435lz68c1mj5clfx5dmfyjc6jvvz2q8hqvv799mb2faj42y"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-beautifulsoup4 python-ebooklib
+                             python-syllables python-termcolor))
+    (home-page "https://github.com/hallicopter/shirah-reader")
+    (synopsis "Terminal ebook reader with an optional RSVP mode")
+    (description
+     "@command{shirah} is a curses based terminal ebook reader that can
+display ebooks in the usual way or with Rapid Serial Visual Presentation, a
+method to enable speedreading by showing the text word by word at configurable
+speeds.")
+  (license license:gpl2+)))
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index afe93ef842..54cd00d08d 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
@@ -45,6 +47,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages kde)
@@ -1075,3 +1078,75 @@ machine, and more.")
     (description "Commandline client for exercism.io, a free service providing
 mentored learning for programming languages.")
     (license license:expat)))
+
+(define-public mazo
+  (package
+    (name "mazo")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/luis-felipe/mazo.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "06246380i5rxycniwg5syn0aldd2zy10cbqk1lgyc0qfqb2lyrwj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:use-setuptools? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (let* ((out (assoc-ref outputs "out"))
+                      (home (string-append out "/tmp")))
+                 (add-installed-pythonpath inputs outputs)
+                 (setenv "HOME" home)
+                 (invoke "python3" "manage.py" "test")))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (script (string-append bin "/mazo"))
+                    (share (string-append out "/share"))
+                    (help (string-append share "/help/C/mazo"))
+                    (icons (string-append
+                            share
+                            "/icons/hicolor/scalable/apps"))
+                    (apps (string-append share "/applications"))
+                    (site (string-append
+                           (site-packages inputs outputs)
+                           "/mazo")))
+               (mkdir-p help)
+               (mkdir-p bin)
+               (copy-file "mazo.py" script)
+               (chmod script #o555)
+               (install-file "icons/mazo.svg" icons)
+               (install-file "lugare.ulkeva.Mazo.desktop" apps)
+               (copy-recursively "help/C/mazo" help)
+               (copy-recursively "mazo" site)))))))
+    (native-inputs
+     (list python-django
+           python-django-cleanup
+           python-django-svg-image-form-field
+           python-pillow
+           python-pycairo))
+    (propagated-inputs
+     (list gstreamer
+           gtk+
+           python
+           python-django
+           python-django-cleanup
+           python-django-svg-image-form-field
+           python-pillow
+           python-pycairo
+           python-pygobject
+           yelp))
+    (home-page "https://luis-felipe.gitlab.io/mazo/")
+    (synopsis "Memorize concepts using multimedia flash cards")
+    (description "Mazo is a learning application that helps you memorize
+simple concepts using multimedia flash cards and spaced reviews.")
+    (license license:public-domain)))
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index 4b31c3131b..1f82b2447e 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -58,7 +58,7 @@
         (base32 "0wbb6dwmzlsyy224y0liis0azgzwbjdvcyzc31pw1aw6vbp36na6"))))
     (build-system cmake-build-system)
     (native-inputs
-     (list catch-framework2
+     (list catch2
            git-minimal
            perl
            ;;FIX-ME: Building with ronn fails.
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 673ea8023b..5c84b9ede0 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3218,7 +3218,7 @@ perform various useful functions such as:
     ;;      with all of these.
     (inputs
      `(("boost" ,boost)
-       ("catch2" ,catch-framework2)
+       ("catch2" ,catch2)
        ("cgal" ,cgal)
        ("eigen" ,eigen)
        ("embree" ,embree)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index edcd888f73..a812476db1 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -756,7 +756,7 @@ OpenType variant of these fonts.")
 (define-public font-amiri
   (package
     (name "font-amiri")
-    (version "0.114")
+    (version "0.117")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -765,7 +765,7 @@ OpenType variant of these fonts.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01d54i68pmy37fhvxv8kld3iqlc1m0vr871zd66y5y4c7kn2v7as"))))
+                "1z2hdmny52bapakf96y5xfr29f8ax7q6nj651zrihnnhfdriqfx1"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -779,6 +779,7 @@ OpenType variant of these fonts.")
                      (assoc-ref font:%standard-phases 'install)))))
     (native-inputs
      (list python-fonttools
+           python-glyphsets
            python-pcpp
            python-opentype-sanitizer
            python-sfdlib
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index bedd8ead8c..902472546e 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -138,16 +138,22 @@ them as it goes.")
 (define-public python-afdko
   (package
     (name "python-afdko")
-    (version "3.8.1")
+    (version "3.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "afdko" version))
        (sha256
-        (base32 "171r9f7n8fgz37dkcgpzj508lxfafcyzzx43ps12j1z2nk1sk905"))
+        (base32 "0k1204vykgx32saa495s1lgmz1dixcp8bjiv486imx77killvm02"))
        (modules '((guix build utils)))
        (snippet
         #~(begin
+            (substitute*
+                "tests/buildcff2vf_data/expected_output/SHSansJPVFTest.ttx"
+              ;; Adjust expected output to match newer fonttools.  Taken from:
+              ;; https://github.com/adobe-type-tools/afdko/commit/7c526390a10e
+              (("FDSelect format=\"3\"")
+               "FDSelect format=\"0\""))
             (with-directory-excursion "c/makeotf/lib/hotconv"
               ;; Delete ANTLR-generated code.
               (for-each delete-file
@@ -158,6 +164,27 @@ them as it goes.")
      (list
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'use-c++17
+            (lambda _
+              ;; ANTLR4 4.10 and later require C++ 17.
+              (substitute* "CMakeLists.txt"
+                (("CMAKE_CXX_STANDARD 11")
+                 "CMAKE_CXX_STANDARD 17"))))
+          (add-after 'unpack 'use-system-libxml2
+            (lambda _
+              ;; XXX: These horrifying substitutions revert this upstream
+              ;; PR: <https://github.com/adobe-type-tools/afdko/pull/1527>.
+              ;; Hopefully it's only temporary..!
+              (substitute* (find-files "." "^CMakeLists.txt$")
+                (("\\(\\(NOT \\$\\{LibXml2_FOUND\\}\\) OR \
+\"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)")
+                 "(NOT ${LibXml2_FOUND})")
+                (("\\(\\(\\$\\{LibXml2_FOUND\\}\\) AND \
+\\(NOT \"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)\\)")
+                 "(${LibXml2_FOUND})"))
+                (substitute* "cmake/ExternalLibXML2.cmake"
+                  (("set\\(LIBXML2_STATIC_INCLUDE_DIR")
+                   "set(LIBXML2_INCLUDE_DIR)"))))
           (add-after 'unpack 'patch-problematic-requirements
             (lambda _
               (substitute* "requirements.txt"
@@ -177,7 +204,8 @@ them as it goes.")
                  (format #f "include_directories(SYSTEM ~a)"
                          (search-input-directory inputs
                                                  "include/antlr4-runtime"))))
-              (substitute* "c/makeotf/lib/hotconv/CMakeLists.txt"
+              (substitute* '("c/makeotf/lib/hotconv/CMakeLists.txt"
+                             "c/makeotf/lib/cffread/CMakeLists.txt")
                 (("antlr4_static")
                  "antlr4-runtime"))))
           (add-after 'unpack 'regenerate-hotconv-grammar
@@ -198,7 +226,8 @@ them as it goes.")
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
                 (setenv "HOME" "/tmp")
-                (invoke "pytest" "-vv"))))
+                (invoke "pytest" "-vv" "--dist" "loadfile" "-n"
+                        (number->string (parallel-job-count))))))
           (add-after 'check 'wrap
             (assoc-ref %standard-phases 'wrap))
           (add-before 'wrap 'wrap-PATH
@@ -216,11 +245,16 @@ them as it goes.")
      (list antlr4
            openjdk                      ;required by antlr4
            ninja
+           pkg-config
            python-pytest
+           python-pytest-xdist
            python-scikit-build
            python-setuptools-scm
            python-wheel))
-    (inputs (list java-antlr4-runtime-cpp `(,util-linux "lib")))
+    (inputs
+     (list java-antlr4-runtime-cpp
+           libxml2
+           `(,util-linux "lib")))
     (propagated-inputs
      (list psautohint
            python-booleanoperations
@@ -349,13 +383,13 @@ Kit for OpenType (AFDKO) @command{tx} tool.")
 (define-public python-compreffor
   (package
     (name "python-compreffor")
-    (version "0.5.1.post1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "compreffor" version))
        (sha256
-        (base32 "1r3wqd67qnz8p6irv68mvadqv1nklgzw53376iarw3pq4gxrma36"))))
+        (base32 "0r6vlxrm73j719f5q3n6sy737p2424n7qam52am83p55j0fb9h5f"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -405,13 +439,13 @@ converts any cubic curves to quadratic.  The most useful function is probably
 (define-public python-ufo2ft
   (package
     (name "python-ufo2ft")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ufo2ft" version))
        (sha256
-        (base32 "0a6iq5g6qdxj7nvip8nnf0mf8y5wmpd3wwq0dv7d4nm9bjrh0r6m"))))
+        (base32 "068hm62s1iphyg66w96vgiif6ahpcsaf8fr44rk6jdf71f6fyqd5"))))
     (build-system python-build-system)
     (native-inputs
      (list python-pytest python-pytest-runner python-setuptools-scm))
@@ -436,13 +470,13 @@ to generate OpenType font binaries from Unified Font Objects (UFOs).")
 (define-public python-fontmath
   (package
     (name "python-fontmath")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "fontMath" version ".zip"))
        (sha256
-        (base32 "001756zxn2386dm4svgqjgw5026hvyacxl09b2qlk7s06phpcphw"))))
+        (base32 "014407hpvqdx123g06i664qrfq86bf9l621x7jllpgqw3rqir2sc"))))
     (build-system python-build-system)
     (propagated-inputs (list python-fonttools))
     (native-inputs
@@ -509,13 +543,13 @@ implementing the pen protocol for manipulating glyphs.")
   (hidden-package
    (package
      (name "python-fontparts-bootstrap")
-     (version "0.10.4")
+     (version "0.10.8")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fontParts" version ".zip"))
         (sha256
-         (base32 "1ic453q86s5hsw8mxnclk1vr4qp69fd67gywhv23zqwz9a7kb7lh"))))
+         (base32 "0i5ww6yl9m74wnjd7gyvjkdh7m56haql4gv7lasmppdipay2209g"))))
      (build-system python-build-system)
      (propagated-inputs
       (list python-booleanoperations
@@ -540,6 +574,101 @@ process.  FontParts is the successor of RoboFab.")
      (alist-delete 'hidden?
                    (package-properties python-fontparts-bootstrap)))))
 
+(define-public python-glyphslib
+  (package
+    (name "python-glyphslib")
+    (version "6.0.7")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "glyphsLib" version))
+              (sha256
+               (base32
+                "0mkkwd09g76hvif603ij5aqicxh47zvhgyyd0pjcjmpdy6dr70yw"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'build
+            (lambda _
+              ;; The Zip format does not support pre-1980 time stamps.
+              (let ((circa-1980 (* 10 366 24 60 60)))
+                (setenv "SOURCE_DATE_EPOCH" (number->string circa-1980))
+                (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))))
+          (replace 'install
+            (lambda _
+              (let ((whl (car (find-files "dist" "\\.whl$"))))
+                (invoke "pip" "--no-cache-dir" "--no-input"
+                        "install" "--no-deps" "--prefix" #$output whl))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "GUIX_PYTHONPATH"
+                        (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH")))
+                (invoke "pytest" "-vv"
+                        ;; These fail because the test data has not yet been
+                        ;; updated for newer FontTools:
+                        ;;   https://github.com/googlefonts/glyphsLib/issues/787
+                        ;; Re-enable for versions > 6.0.7.
+                        "--ignore=tests/builder/designspace_gen_test.py"
+                        "--ignore=tests/builder/interpolation_test.py"
+                        )))))))
+    (native-inputs
+     (list python-pypa-build
+           python-setuptools-scm
+           python-wheel
+
+           ;; For tests.
+           python-pytest
+           python-xmldiff))
+    (propagated-inputs
+     (list python-defcon
+           python-fonttools
+           python-openstep-plist
+           python-ufolib2
+           python-ufo2ft
+           python-ufonormalizer))
+    (home-page "https://github.com/googlefonts/glyphsLib")
+    (synopsis "Bridge Glyphs source files to UFOs")
+    (description
+     "This package provides a bridge from Glyphs source files (@file{.glyphs})
+to UFOs and DesignSpace files via @code{defcon} and @code{designspaceLib}.")
+    (license license:asl2.0)))
+
+(define-public python-glyphsets
+ (package
+  (name "python-glyphsets")
+  (version "0.5.2")
+  (source (origin
+            (method url-fetch)
+            (uri (pypi-uri "glyphsets" version))
+            (sha256
+             (base32
+              "1dc24i0hkd85gkkg3bqjhagjyw3xsqxazd86yh2l60c1wr5n9y6g"))))
+  (build-system python-build-system)
+  (arguments
+   (list #:phases
+         #~(modify-phases %standard-phases
+             (add-after 'unpack 'loosen-version-constraints
+               (lambda _
+                 (substitute* "setup.py"
+                   (("setuptools_scm>=4,<6\\.1")
+                    "setuptools_scm>=4"))))
+             (replace 'check
+               (lambda* (#:key tests? #:allow-other-keys)
+                 (when tests?
+                   (invoke "pytest" "-vv" "tests/testglyphdata.py")
+                   (invoke "pytest" "-vv" "tests/testusage.py")))))))
+  (native-inputs (list python-pytest python-setuptools-scm))
+  (propagated-inputs
+   (list python-defcon python-fonttools python-glyphslib))
+  (home-page "https://github.com/googlefonts/glyphsets/")
+  (synopsis "Evaluate coverage of glyph sets")
+  (description
+   "This package provides an API with data about glyph sets for many
+different scripts and languages.")
+  (license license:asl2.0)))
+
 (define-public python-opentype-sanitizer
   (package
     (name "python-opentype-sanitizer")
@@ -1556,13 +1685,13 @@ API-compatible with defcon.")
 (define-public python-defcon-bootstrap
   (package
     (name "python-defcon-bootstrap")
-    (version "0.10.0")
+    (version "0.10.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "defcon" version ".zip"))
        (sha256
-        (base32 "0g0bjwzdj6sskyh8snbxsxza3czdmvb807qv38mizx631cm8c2d0"))))
+        (base32 "0i1a306b8c42dpbplwxj6ili2aac5lwq2ir6r1jswicysvk9dqxf"))))
     (build-system python-build-system)
     (propagated-inputs (list python-fontpens-bootstrap python-fonttools-full))
     (native-inputs
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 58b81bf83a..11c56477a8 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -58,7 +58,8 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages algebra)
-  #:use-module (gnu packages libftdi))
+  #:use-module (gnu packages libftdi)
+  #:use-module (gnu packages libusb))
 
 (define-public abc
  (let ((commit "5ae4b975c49c")
@@ -584,3 +585,29 @@ libraries, optionally encrypted, into other simulators.")
 hardware designs in Verilog.")
       (home-page "https://zipcpu.com/")
       (license license:lgpl3+))))
+
+(define-public openfpgaloader
+  (package
+    (name "openfpgaloader")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/trabucayre/openFPGALoader.git")
+                     (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1v3bwzhsrnsn304cqhd5azn68cl847qv8w8cb8bl7372jiqz5wqq"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libftdi libusb hidapi zlib))
+    (arguments
+     `(#:tests? #f)) ; No tests exist
+    (synopsis "Utility for programming FPGA")
+    (description "This package provides a program to transfer a bitstream
+to an FPGA.")
+    (home-page "https://f4pga.org/")
+    (license license:asl2.0)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index d210cd63b5..4fdee3dc7b 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -65,6 +65,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages cups)
@@ -823,42 +824,72 @@ street bearings/orientations, and speed/travel time.")
     (license license:expat)))
 
 (define-public mapnik
-  (package
-    (name "mapnik")
-    (version "3.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/mapnik/mapnik/releases/download/v"
-                           version "/mapnik-v" version ".tar.bz2"))
-       (sha256
-        (base32
-         "0qb2irykja5qhr9apz9r230pcxap9v3j85fi98mj2xd9sa163ms3"))))
-    (build-system scons-build-system)
-    (inputs
-     (list boost
-           cairo
-           freetype
-           harfbuzz
-           icu4c
-           libjpeg-turbo
-           libpng
-           libtiff
-           libwebp
-           libxml2
-           proj.4
-           sqlite
-           zlib))
-    (native-inputs
-     (list pkg-config postgresql))
-    (arguments
-     `(#:scons-flags
-       (list "CC=gcc"
-             (string-append "PREFIX=" %output)
-             (string-append "CUSTOM_LDFLAGS=-Wl,-rpath=" %output "/lib"))))
-    (home-page "https://mapnik.org/")
-    (synopsis "Toolkit for developing mapping applications")
-    (description "Mapnik is a toolkit for developing mapping applications.  It
+  ;; There hasn't been a release since early 2021, and it fails to build with
+  ;; Boost 1.77+.
+  (let ((commit "81103491b467e17218140f50bc0bb9dc8c1f0317")
+        (revision "0"))
+    (package
+      (name "mapnik")
+      (version (git-version "3.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mapnik/mapnik")
+               (commit commit)
+               ;; TODO: Un-bundle mapbox dependencies (not yet packaged).
+               (recursive? #t)))        ;for mapbox dependencies and test data
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "094nam57bdd5nak88qy33z2p3kjahk3vk2nk56m5jkcr5d3hlnx2"))))
+      (build-system qt-build-system)
+      (arguments
+       (list
+        #:cmake cmake                   ;for FIND_PACKAGE_ARGS
+        #:configure-flags
+        #~(list (string-append "-DCMAKE_CXX_FLAGS=-I"
+                               #$(this-package-native-input "catch2")
+                               "/include/catch2"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'use-system-catch2
+              (lambda _
+                (substitute* "test/CMakeLists.txt"
+                  (("GIT_TAG.*v2.13.7" all)
+                   (string-append all "\n"
+                                  "  FIND_PACKAGE_ARGS NAMES Catch2"))
+                  (("^include.*Catch2_SOURCE_DIR.*contrib/Catch.cmake.*")
+                   "include(Catch)\n"))))
+            (add-after 'unpack 'disable-problematic-tests
+              (lambda _
+                ;; The 'ogr' test fails for unknown reasons.  Mark it as
+                ;; expected to fail (see:
+                ;; https://github.com/mapnik/mapnik/issues/4329).
+                (substitute* "test/unit/datasource/ogr.cpp"
+                  (("TEST_CASE\\(\"ogr\"" all)
+                   (string-append all ", \"[!shouldfail]\""))))))))
+      (native-inputs
+       (list catch2
+             pkg-config
+             postgresql))
+      (inputs
+       (list boost
+             cairo
+             freetype
+             gdal
+             harfbuzz
+             icu4c
+             libjpeg-turbo
+             libpng
+             libtiff
+             libwebp
+             libxml2
+             proj
+             sqlite
+             zlib))
+      (home-page "https://mapnik.org/")
+      (synopsis "Toolkit for developing mapping applications")
+      (description "Mapnik is a toolkit for developing mapping applications.  It
 is basically a collection of geographic objects like maps, layers,
 datasources, features, and geometries.  At its core is a C++ shared library
 providing algorithms and patterns for spatial data access and visualization.
@@ -866,15 +897,15 @@ The library does not rely on any specific windowing system and can be deployed
 to any server environment.  It is intended to play fair in a multi-threaded
 environment and is aimed primarily, but not exclusively, at web-based
 development.")
-    (license (list license:lgpl2.1+
-                   ;; demo/viewer, demo/python/rundemo.py
-                   license:gpl2+
-                   ;; deps/boost, deps/mapbox, deps/agg/include/agg_conv_offset.h
-                   license:boost1.0
-                   ;; deps/mapnik/sparsehash
-                   license:bsd-3
-                   ;; deps/agg
-                   (license:non-copyleft "file://deps/agg/copying")))))
+      (license (list license:lgpl2.1+
+                     ;; demo/viewer, demo/python/rundemo.py
+                     license:gpl2+
+                     ;; deps/boost, deps/mapbox, deps/agg/include/agg_conv_offset.h
+                     license:boost1.0
+                     ;; deps/mapnik/sparsehash
+                     license:bsd-3
+                     ;; deps/agg
+                     (license:non-copyleft "file://deps/agg/copying"))))))
 
 (define-public spatialite-gui
   (package
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 201d939918..cb255fc488 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9730,8 +9730,10 @@ associations for GNOME.")
            gobject-introspection
            gsettings-desktop-schemas
            pkg-config))
-    (inputs
-     (list rest-next))
+    (propagated-inputs
+     ;; These dependencies are required by govirt-1.0.pc.
+     (list glib
+           rest-next))
     (synopsis "GoVirt Library")
     (description "GoVirt is a GObject wrapper for the oVirt REST API.")
     (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
diff --git a/gnu/packages/irods.scm b/gnu/packages/irods.scm
index e9ac0d5297..58ef3bf474 100644
--- a/gnu/packages/irods.scm
+++ b/gnu/packages/irods.scm
@@ -154,7 +154,7 @@
        ("unixodbc" ,unixodbc)
        ("zeromq" ,zeromq)))
     (native-inputs
-     `(("catch2" ,catch-framework2)
+     `(("catch2" ,catch2)
        ("clang" ,clang-toolchain-6)
        ("clang-runtime" ,clang-runtime-6)
        ("libcxx+libcxxabi" ,libcxx+libcxxabi-6)))
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 8b3b172ae9..f467c473d7 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -8717,7 +8717,7 @@ actual rendering.")
 (define-public java-antlr4-runtime
   (package
     (name "java-antlr4-runtime")
-    (version "4.8")
+    (version "4.10.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -8726,10 +8726,9 @@ actual rendering.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qal3add26qxskm85nk7r758arladn5rcyjinmhlhznmpbbv9j8m"))
+                "0ldvd9jm4nrivaw7i7wh1q40q6xgzmzirsywiakbhg8sppagqlv7"))
               (patches
-                (search-patches "java-antlr4-Add-standalone-generator.patch"
-                                "java-antlr4-fix-code-too-large.java"))))
+                (search-patches "java-antlr4-Add-standalone-generator.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-antlr4-runtime.jar"
@@ -8759,6 +8758,8 @@ sources by ANTLR.")
       ;; TODO: try to run the tests under
       ;; runtime-testsuite/test/org/antlr/v4/test/runtime/cpp with antlr4.
       #:tests? #f                       ;no CMake test target
+      ;; TODO: Building the tests wants to download googletest.
+      #:configure-flags #~'("-DANTLR_BUILD_CPP_TESTS=OFF")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'chdir
@@ -8787,10 +8788,12 @@ generated sources by ANTLR.")))
     (arguments
      `(#:jar-name "antlr4.jar"
        #:source-dir "tool/src"
-       #:test-dir "tool-testsuite/test:runtime-testsuite/test:runtime-testsuite/annotations/src"
+       #:test-dir "tool-testsuite/test:runtime-testsuite/test"
        #:test-include (list "**/Test*.java")
        #:test-exclude (list
-                        ;; no runnable method
+                       ;; These have no runnable methods and fail because
+                       ;; test-include above is too broad.
+                        "**/TestContext.java"
                         "**/TestOutputReading.java"
                         ;; no @Test methods
                         "**/TestParserErrors.java"
@@ -8808,9 +8811,7 @@ generated sources by ANTLR.")))
                         "**/TestFullContextParsing.java"
                         "**/TestCompositeLexers.java"
                         ;; Null pointer exception
-                        "**/TestCompositeGrammars.java"
-                        ;; Wrong assumption on emoji
-                        "**/TestUnicodeData.java")
+                        "**/TestCompositeGrammars.java")
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-build.xml
@@ -8824,7 +8825,6 @@ generated sources by ANTLR.")))
          (add-after 'bin-install 'check
            (lambda _
              (invoke "ant" "compile-tests")
-             (invoke "ant" "check" "-Dtest.home=runtime-testsuite/annotations/src")
              (invoke "ant" "check" "-Dtest.home=runtime-testsuite/test")
              (invoke "ant" "check" "-Dtest.home=tool-testsuite/test")
              #t))
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 47845700ee..e2cdf7c448 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -311,7 +311,7 @@ through a text-based interface.")
 (define-public python-pyzabbix
   (package
     (name "python-pyzabbix")
-    (version "1.0.0")
+    (version "1.2.1")
     (home-page "https://github.com/lukecyca/pyzabbix")
     ;; No tests on PyPI, use the git checkout.
     (source
@@ -321,26 +321,20 @@ through a text-based interface.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "146pv8bj6pv8max1lkm07560b9zcc268c927kff6rcib47qxfnn2"))))
+         "0ad5xac67brmwc3wd0f87pjplly3cqyrz1dp725lzz2hrjgiaqi8"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch
-                    (lambda _
-                      ;; Permit newer versions of httpretty.
-                      (substitute* "setup.py"
-                        (("httpretty<0\\.8\\.7")
-                         "httpretty"))))
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       (if tests?
-                          (invoke "nosetests")
+                          (invoke "pytest" "-vv" "tests")
                           (format #t "test suite not run~%")))))))
     (native-inputs
      ;; For tests.
-     (list python-httpretty python-nose))
+     (list python-requests-mock python-pytest))
     (propagated-inputs
-     (list python-requests python-semantic-version))
+     (list python-packaging python-requests))
     (synopsis "Python interface to the Zabbix API")
     (description
      "@code{pyzabbix} is a Python module for working with the Zabbix API.")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ee4d91bd2a..a69c7fbad8 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1378,7 +1378,7 @@ between different versions of ØMQ.")
     (native-inputs
      (list pkg-config))
     (inputs
-     (list catch-framework2 zeromq))
+     (list catch2 zeromq))
     (home-page "https://zeromq.org")
     (synopsis "C++ bindings for the ØMQ messaging library")
     (description
@@ -3603,7 +3603,7 @@ communication over HTTP.")
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      (list zlib
-           catch-framework2
+           catch2
            openssl
            boost
            pcre
diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm
index ce951543ff..d5ebe6a760 100644
--- a/gnu/packages/nfs.scm
+++ b/gnu/packages/nfs.scm
@@ -116,7 +116,6 @@
     (inputs
      `(("keyutils" ,keyutils)
        ("libevent" ,libevent)
-       ("libnfsidmap" ,libnfsidmap)
        ("rpcsvc-proto" ,rpcsvc-proto)   ;for 'rpcgen'
        ("sqlite" ,sqlite)
        ("lvm2" ,lvm2)
diff --git a/gnu/packages/patches/java-antlr4-fix-code-too-large.java b/gnu/packages/patches/java-antlr4-fix-code-too-large.java
deleted file mode 100644
index 9e9f92349d..0000000000
--- a/gnu/packages/patches/java-antlr4-fix-code-too-large.java
+++ /dev/null
@@ -1,90 +0,0 @@
-From d22db2048534bdf3d9615117291f9d86564ff10d Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Sat, 19 Sep 2020 21:05:48 +0200
-Subject: [PATCH] Separate addPropertyAliases in two methods
-
-The quantity of data used to generate addPropertyAliases creates a big
-method, that is too big for java and results in "error: code too large".
-This is most likely due to added data between the expected version of
-icu and the actual version of icu in Guix.
----
- .../org/antlr/v4/tool/templates/unicodedata.st | 17 ++++++++++++++---
- .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++--------
- 2 files changed, 24 insertions(+), 11 deletions(-)
-
-diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
-index 0f22c73..3573873 100644
---- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
-+++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
-@@ -1,4 +1,4 @@
--unicodedata(propertyCodePointRanges, propertyAliases) ::= <<
-+unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= <<
- package org.antlr.v4.unicode;
- 
- import java.util.Arrays;
-@@ -15,7 +15,7 @@ import org.antlr.v4.runtime.misc.Interval;
-  */
- public abstract class UnicodeData {
-        private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<\>(<length(propertyCodePointRanges)>);
--       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliases)>);
-+       private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>);
- 
-        // Work around Java 64k bytecode method limit by splitting up static
-        // initialization into one method per Unicode property
-@@ -30,9 +30,20 @@ static private void addProperty<i>() {
-        propertyCodePointRanges.put("<k>".toLowerCase(Locale.US), codePointRanges);
- \}}; separator="\n\n">
- 
-+       // Property aliases
-+       static private void addPropertyAliases1() {
-+              <propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n">
-+       }
-+
-+       // Property aliases
-+       static private void addPropertyAliases2() {
-+              <propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n">
-+       }
-+
-        // Property aliases
-        static private void addPropertyAliases() {
--              <propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n">
-+             addPropertyAliases1();
-+             addPropertyAliases2();
-        }
- 
-        // Put it all together
-diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
-index da244a3..dc591cb 100644
---- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
-+++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
-@@ -78,17 +78,19 @@ public abstract class UnicodeDataTemplateController {
- 		addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges);
- 		addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges);
- 
--		Map<String, String> propertyAliases = new LinkedHashMap<>();
--		addUnicodeCategoryCodesToNames(propertyAliases);
--		addUnicodeBinaryPropertyCodesToNames(propertyAliases);
--		addUnicodeScriptCodesToNames(propertyAliases);
--		addUnicodeBlocksToNames(propertyAliases);
--		addUnicodeIntPropertyCodesToNames(propertyAliases);
--		propertyAliases.put("EP", "Extended_Pictographic");
-+		Map<String, String> propertyAliases1 = new LinkedHashMap<>();
-+		Map<String, String> propertyAliases2 = new LinkedHashMap<>();
-+		addUnicodeCategoryCodesToNames(propertyAliases1);
-+		addUnicodeBinaryPropertyCodesToNames(propertyAliases1);
-+		addUnicodeScriptCodesToNames(propertyAliases1);
-+		addUnicodeBlocksToNames(propertyAliases2);
-+		addUnicodeIntPropertyCodesToNames(propertyAliases2);
-+		propertyAliases2.put("EP", "Extended_Pictographic");
- 
- 		Map<String, Object> properties = new LinkedHashMap<>();
- 		properties.put("propertyCodePointRanges", propertyCodePointRanges);
--		properties.put("propertyAliases", propertyAliases);
-+		properties.put("propertyAliasesA", propertyAliases1);
-+		properties.put("propertyAliasesB", propertyAliases2);
- 		return properties;
- 	}
- 
--- 
-2.28.0
-
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 3548345326..d1698e5f67 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bioinformatics)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages databases)
@@ -75,81 +76,86 @@
 (define-public python-scipy
   (package
     (name "python-scipy")
-    (version "1.8.0")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "scipy" version))
        (sha256
-        (base32 "1gghkwn93niyasm36333xbqrnn3yiadq9d97wnc9mg14nzbg5m1i"))))
-    (outputs '("out" "doc"))
+        (base32 "1jcb94xal7w7ax80kaivqqics36v8smi4a3xngyxbrh0i538rli6"))))
     (build-system python-build-system)
     (arguments
      (list
-      #:modules '((guix build utils)
-                  (guix build python-build-system)
-                  (ice-9 format))
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'unpack 'disable-pythran
-            (lambda _
-              (setenv "SCIPY_USE_PYTHRAN" "0")))
-          (add-before 'build 'change-home-dir
+          (add-after 'unpack 'loosen-requirements
             (lambda _
-              ;; Change from /homeless-shelter to /tmp for write permission.
-              (setenv "HOME" "/tmp")))
-          (add-before 'build 'configure-openblas
+              (substitute* "pyproject.toml"
+                (("numpy==") "numpy>=")
+                (("meson==") "meson>="))))
+          (replace 'build
             (lambda _
-              (call-with-output-file "site.cfg"
-                (lambda (port)
-                  (format port
-                          "\
-[blas]
-libraries = openblas
-library_dirs = ~a/lib
-include_dirs = ~:*~a/include
-
-[atlas]
-library_dirs = ~:*~a/lib
-atlas_libs = openblas~%"  #$(this-package-input "openblas"))))))
-          (add-before 'build 'parallelize-build
+              ;; ZIP does not support timestamps before 1980.
+              (setenv "SOURCE_DATE_EPOCH" "315532800")
+              (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+          (replace 'install
             (lambda _
-              (setenv "NPY_NUM_BUILD_JOBS"
-                      (number->string (parallel-job-count)))))
-          (add-before 'check 'install-doc
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
-                     (doc (string-append data "/doc/" #$name "-" #$version))
-                     (html (string-append doc "/html")))
-                (with-directory-excursion "doc"
-                  ;; Build doc.
-                  (invoke "make" "html"
-                          ;; Building the documentation takes a very long time.
-                          ;; Parallelize it.
-                          (string-append "SPHINXOPTS=-j"
-                                         (number->string (parallel-job-count))))
-                  ;; Install doc.
-                  (mkdir-p html)
-                  (copy-recursively "build/html" html)))))
+              (let ((whl (car (find-files "dist" "\\.whl$"))))
+                (invoke "pip" "--no-cache-dir" "--no-input"
+                        "install" "--no-deps" "--prefix" #$output whl))))
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
-                (invoke "./runtests.py" "-vv" "--no-build" "--mode=fast"
-                        "-j" (number->string (parallel-job-count)))))))))
-    (propagated-inputs (list python-numpy python-matplotlib python-pyparsing))
+                ;; Step out of the source directory to avoid interference.
+                (with-directory-excursion "/tmp"
+                  (invoke "python" "-c"
+                          (string-append
+                           "import scipy; scipy.test('fast', parallel="
+                           (number->string (parallel-job-count))
+                           ", verbose=2)"))))))
+          (add-after 'check 'install-doc
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; FIXME: Documentation cannot be built because it requires
+              ;; a newer version of pydata-sphinx-theme, which currently
+              ;; cannot build without internet access:
+              ;; <https://github.com/pydata/pydata-sphinx-theme/issues/628>.
+              ;; Keep the phase for easy testing.
+              (let ((sphinx-build (false-if-exception
+                                   (search-input-file input "bin/sphinx-build"))))
+                (if sphinx-build
+                    (let* ((doc (assoc-ref outputs "doc"))
+                           (data (string-append doc "/share"))
+                           (docdir (string-append
+                                    data "/doc/"
+                                    #$(package-name this-package) "-"
+                                    #$(package-version this-package)))
+                           (html (string-append docdir "/html")))
+                      (with-directory-excursion "doc"
+                        ;; Build doc.
+                        (invoke "make" "html"
+                                ;; Building the documentation takes a very long time.
+                                ;; Parallelize it.
+                                (string-append "SPHINXOPTS=-j"
+                                               (number->string (parallel-job-count))))
+                        ;; Install doc.
+                        (mkdir-p html)
+                        (copy-recursively "build/html" html)))
+                    (format #t "sphinx-build not found, skipping~%"))))))))
+    (propagated-inputs
+     (list python-numpy python-matplotlib python-pyparsing python-pythran))
     (inputs (list openblas pybind11))
     (native-inputs
      (list gfortran
-           perl
+           ;; XXX: Adding gfortran shadows GCC headers, causing a compilation
+           ;; failure.  Somehow also providing GCC works around it ...
+           gcc
+           meson-python
+           pkg-config
            python-cython
-           python-numpydoc
-           python-pydata-sphinx-theme
+           python-pypa-build
            python-pytest
            python-pytest-xdist
-           python-sphinx-4
-           python-sphinx-panels
-           python-threadpoolctl
-           which))
+           python-threadpoolctl))
     (home-page "https://scipy.org/")
     (synopsis "The Scipy library provides efficient numerical routines")
     (description "The SciPy library is one of the core packages that make up
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 72bb841208..92db6715df 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -128,6 +128,7 @@
 ;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk>
 ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
 ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
+;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -10030,6 +10031,24 @@ function signatures.")
      "This package provides a YAML template engine with Python expressions.")
     (license license:expat)))
 
+(define-public python-syllables
+  (package
+    (name "python-syllables")
+    (version "1.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "syllables" version))
+              (sha256
+               (base32
+                "0wkl6h0rg6fbsxfp0a8fnibf3l4l6lbh6z12cvcilgb6qhxzpmv3"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/prosegrinder/python-syllables")
+    (synopsis "Package for estimating the number of syllables in a word")
+    (description
+     "This package provides a Python package for estimating the number of
+syllables in a word.")
+    (license license:gpl3)))
+
 (define-public python-sympy
   (package
     (name "python-sympy")
@@ -11559,6 +11578,40 @@ reading and writing MessagePack data.")
 and MAC network addresses.")
     (license license:bsd-3)))
 
+(define-public python-openstep-plist
+ (package
+  (name "python-openstep-plist")
+  (version "0.3.0")
+  (home-page "https://github.com/fonttools/openstep-plist")
+  (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url home-page)
+                  (commit (string-append "v" version))))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "1rxjgzh0p069ncsr2986rn32vhdqyq35irbqg2559jh18456mkca"))))
+  (build-system python-build-system)
+  (arguments
+   (list #:phases
+         #~(modify-phases %standard-phases
+             (add-after 'unpack 'pretend-version
+               (lambda _
+                 (setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
+                         #$(package-version this-package))))
+             (replace 'check
+               (lambda* (#:key tests? #:allow-other-keys)
+                 (when tests?
+                   (invoke "pytest" "-vv")))))))
+  (native-inputs
+   (list python-cython python-pytest python-setuptools-scm))
+  (synopsis "OpenStep plist parser and writer")
+  (description
+   "This package provides a parser for the \"old style\" OpenStep property
+list format (also known as ASCII plist), written in Cython.")
+  (license license:expat)))
+
 (define-public python-wrapt
   (package
     (name "python-wrapt")
@@ -22283,7 +22336,7 @@ user-space file systems in Python.")
 
        ;; The following dependencies are used for tests.
        ("python-pytest" ,python-pytest)
-       ("catch" ,catch-framework2-1)
+       ("catch" ,catch2-1)
        ("eigen" ,eigen)))
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index d89714b577..f2cd6e33af 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -741,7 +741,7 @@ an unprivileged user.")
     (arguments
      ;; These tests do not require any device to be connected
      '(#:configure-flags (list "-DCOMPILE_OFFLINE_TESTS=ON")))
-    (native-inputs (list catch-framework2 doxygen graphviz pkg-config))
+    (native-inputs (list catch2 doxygen graphviz pkg-config))
     (inputs (list hidapi libusb))
     (home-page "https://github.com/Nitrokey/libnitrokey")
     (synopsis "Communication library for Nitrokey")
@@ -765,7 +765,7 @@ an unprivileged user.")
     (arguments
      '(#:configure-flags (list "-DBUILD_TESTING=on")))
     (native-inputs (list pkg-config qttools-5))
-    (inputs (list catch-framework2))
+    (inputs (list catch2))
     (home-page "https://github.com/tplgy/cppcodec")
     (synopsis "Header library to encode/decode base64, base64url, etc.")
     (description "This package provides library to encode/decode base64,
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index b1bbb7f996..39b5620822 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -465,7 +465,7 @@ FFC is part of the FEniCS Project.")
        ("sundials" ,sundials-openmpi)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("catch" ,catch-framework2-1)
+     `(("catch" ,catch2-1)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("ffc" ,python-fenics-ffc)
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 5d505b0ee2..2be724c455 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,22 +24,26 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nss)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages security-token)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -369,35 +374,32 @@ share smart cards from client system to local or remote virtual machines.")
 (define-public virt-viewer
   (package
     (name "virt-viewer")
-    (version "7.0")
+    (version "11.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                "https://virt-manager.org/download/sources/virt-viewer/"
-                "virt-viewer-" version ".tar.gz"))
+                    "https://virt-manager.org/download/sources/virt-viewer/"
+                    "virt-viewer-" version ".tar.xz"))
               (sha256
                (base32
-                "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
-    (build-system gnu-build-system)
-    (inputs
-      (list gtk+ gtk-vnc libcap libxml2 spice-gtk))
+                "1l5bv6x6j21l487mk3n93ai121gg62n6b069r2jpf72cbhra4gx4"))))
+    (build-system meson-build-system)
     (native-inputs
-      `(("glib:bin" ,glib "bin")
-        ("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
-    (arguments
-      `(#:configure-flags
-        '("--with-spice-gtk")
-        #:phases
-         (modify-phases %standard-phases
-           (add-after
-            'install 'wrap-remote-viewer
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let ((out             (assoc-ref outputs "out"))
-                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
-                (wrap-program (string-append out "/bin/remote-viewer")
-                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
-              #t)))))
+     (list `(,glib "bin")
+           gettext-minimal
+           perl                         ;for pod2man
+           pkg-config
+           python))
+    (inputs
+     (list bash-completion
+           gtk+
+           gtk-vnc
+           libcap
+           libgovirt
+           libvirt-glib
+           libxml2
+           spice-gtk
+           vte))
     (synopsis "Graphical console client for virtual machines")
     (description "Graphical console client for virtual machines using SPICE or
 VNC.")
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 4976acbc0c..1a22d230d2 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -387,7 +387,7 @@ Telegram project, for its use in telegram desktop client.")
     (inputs
      `(("alsa" ,alsa-lib)
        ("c++-gsl" ,c++-gsl)
-       ("catch" ,catch-framework2)
+       ("catch" ,catch2)
        ("codegen-source"
         ,(origin
            (method git-fetch)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8c0f187be1..9cc1ea46e3 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -784,9 +784,15 @@ old-fashioned output methods with powerful ascii-art renderer.")
                            "/celluloid-" version ".tar.xz"))
        (sha256
         (base32 "0ns9xh582c8kajw4v2x5ap5jfiba3gxywqc2klc0v6fc3id1gqii"))))
-    (build-system glib-or-gtk-build-system)
+    (build-system meson-build-system)
     (native-inputs
-     (list intltool pkg-config))
+     (list
+      desktop-file-utils           ; for update-desktop-database
+      intltool
+      `(,glib "bin")               ; for glib-compile-resources
+      `(,gtk "bin")                ; for gtk-update-icon-cache
+      pkg-config
+      python-wrapper))             ; for generate-authors.py
     (inputs
      (list gtk libadwaita libepoxy mpv))
     (home-page "https://github.com/celluloid-player/celluloid")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index cebcc9742d..199156dbb9 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1517,7 +1517,7 @@ virtualization library.")
      (list dconf
            gtk+
            gtk-vnc
-           gtksourceview
+           gtksourceview-4
            libvirt
            libvirt-glib
            libosinfo
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e92cb22d7d..6a60e65650 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5717,14 +5717,14 @@ on the fly.")
 (define-public hitch
   (package
     (name "hitch")
-    (version "1.7.2")
+    (version "1.7.3")
     (home-page "https://hitch-tls.org/")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "source/hitch-" version ".tar.gz"))
               (sha256
                (base32
-                "118p3a8wjvr0yhldpd1zm7d2cmgaw4vmyz9ib8m64z18qsz5rmnw"))))
+                "11wp50zs5irb5bj5xyanm060nlvna6ha328wqf6p2nvpbnaz86qs"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 0d595992cc..02e04ccf88 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2893,7 +2893,7 @@ create layout indicator widgets.")
                 "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"))))
     (build-system cmake-build-system)
     (native-inputs
-     (list catch-framework2))
+     (list catch2))
     (arguments
      `(#:configure-flags '("-DWITH_GIT_CATCH=off")
        #:phases