guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: Merge branch 'master' into core-updates


From: guix-commits
Subject: 01/01: Merge branch 'master' into core-updates
Date: Wed, 8 Jun 2022 08:52:19 -0400 (EDT)

civodul pushed a commit to branch core-updates
in repository guix.

commit 8c3e9da13a3c92a7db308db8c0d81cb474ad7799
Merge: 5439c04ebd 0c5299200f
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Wed Jun 8 14:46:24 2022 +0200

    Merge branch 'master' into core-updates

 .dir-locals.el                                     |     4 +-
 .gitignore                                         |     1 +
 Makefile.am                                        |    48 +-
 build-aux/cuirass/evaluate.scm                     |    53 +-
 doc/build.scm                                      |    26 +-
 doc/contributing.texi                              |   104 +
 doc/guix-cookbook.texi                             |    13 +-
 doc/guix.texi                                      |  1056 +-
 doc/htmlxref.cnf                                   |     9 +-
 doc/local.mk                                       |    18 +-
 etc/committer.scm.in                               |   197 +-
 etc/completion/bash/guix                           |    61 +-
 etc/news.scm                                       |   163 +-
 etc/release-manifest.scm                           |     4 +-
 .../text-mode/guix-commit-message-remove-package   |    13 +
 etc/system-tests.scm                               |    39 +-
 gnu/bootloader/grub.scm                            |    34 +
 gnu/build/file-systems.scm                         |   118 +-
 gnu/build/image.scm                                |    31 +-
 gnu/build/linux-container.scm                      |    78 +-
 gnu/build/marionette.scm                           |    45 +-
 gnu/build/secret-service.scm                       |    90 +-
 gnu/build/shepherd.scm                             |    92 +-
 gnu/ci.scm                                         |    15 +-
 gnu/home/services.scm                              |    45 +-
 gnu/home/services/shells.scm                       |    36 +-
 gnu/home/services/shepherd.scm                     |    44 +-
 gnu/home/services/symlink-manager.scm              |    36 +-
 gnu/home/services/xdg.scm                          |     5 +-
 gnu/image.scm                                      |     2 +-
 gnu/installer/newt/user.scm                        |    49 +-
 gnu/local.mk                                       |   110 +-
 gnu/packages.scm                                   |    53 +-
 gnu/packages/ada.scm                               |    29 -
 gnu/packages/admin.scm                             |   337 +-
 gnu/packages/agda.scm                              |    39 +-
 gnu/packages/algebra.scm                           |    12 +-
 gnu/packages/android.scm                           |    22 +-
 gnu/packages/antivirus.scm                         |   132 +-
 gnu/packages/apl.scm                               |    75 +-
 gnu/packages/aspell.scm                            |     7 +-
 gnu/packages/assembly.scm                          |    25 +-
 gnu/packages/astronomy.scm                         |    53 +-
 gnu/packages/audio.scm                             |   435 +-
 gnu/packages/autogen.scm                           |     4 +
 gnu/packages/autotools.scm                         |    14 +-
 gnu/packages/aux-files/linux-libre/4.4-i686.conf   |  8632 ---
 gnu/packages/aux-files/linux-libre/4.4-x86_64.conf |  8441 ---
 .../linux-libre/{5.16-arm.conf => 5.17-arm.conf}   |   164 +-
 .../{5.16-arm64.conf => 5.17-arm64.conf}           |   220 +-
 .../linux-libre/{5.16-i686.conf => 5.17-i686.conf} |   184 +-
 .../{5.16-x86_64.conf => 5.17-x86_64.conf}         |   203 +-
 gnu/packages/avr-xyz.scm                           |    97 +
 gnu/packages/backup.scm                            |   122 +-
 gnu/packages/base.scm                              |    67 +-
 gnu/packages/benchmark.scm                         |    91 +-
 gnu/packages/bioconductor.scm                      |  3042 +-
 gnu/packages/bioinformatics.scm                    |  1899 +-
 gnu/packages/bittorrent.scm                        |    53 +-
 gnu/packages/boost.scm                             |     7 -
 gnu/packages/bootloaders.scm                       |    59 +-
 gnu/packages/bootstrap.scm                         |    51 +-
 gnu/packages/browser-extensions.scm                |     4 +-
 gnu/packages/build-tools.scm                       |     4 +-
 gnu/packages/busybox.scm                           |    37 +-
 gnu/packages/c.scm                                 |   191 +-
 gnu/packages/ccache.scm                            |     6 +-
 gnu/packages/certs.scm                             |     9 +-
 gnu/packages/check.scm                             |   512 +-
 gnu/packages/chemistry.scm                         |    92 -
 gnu/packages/chez.scm                              |   430 +-
 gnu/packages/chromium.scm                          |   145 +-
 gnu/packages/ci.scm                                |    17 +-
 gnu/packages/cmake.scm                             |    12 +-
 gnu/packages/code.scm                              |   124 +-
 gnu/packages/commencement.scm                      |    52 +-
 gnu/packages/compression.scm                       |    93 +-
 gnu/packages/containers.scm                        |     6 +-
 gnu/packages/coq.scm                               |     4 +-
 gnu/packages/cpp.scm                               |   104 +-
 gnu/packages/cran.scm                              |  1517 +-
 gnu/packages/crates-io.scm                         |   819 +-
 gnu/packages/cross-base.scm                        |     7 +-
 gnu/packages/crypto.scm                            |   138 +-
 gnu/packages/cups.scm                              |    75 +-
 gnu/packages/curl.scm                              |    40 +-
 gnu/packages/cybersecurity.scm                     |     2 +-
 gnu/packages/databases.scm                         |   420 +-
 gnu/packages/datastructures.scm                    |     6 +-
 gnu/packages/dav.scm                               |    12 +-
 gnu/packages/debian.scm                            |   313 +-
 gnu/packages/dezyne.scm                            |   106 +
 gnu/packages/dico.scm                              |    36 +-
 gnu/packages/diffoscope.scm                        |    37 +-
 gnu/packages/disk.scm                              |    94 +-
 gnu/packages/display-managers.scm                  |   143 +-
 gnu/packages/django.scm                            |    29 +-
 gnu/packages/djvu.scm                              |   355 +-
 gnu/packages/dns.scm                               |    15 +-
 gnu/packages/docker.scm                            |     2 +-
 gnu/packages/documentation.scm                     |    57 +
 gnu/packages/education.scm                         |   339 +-
 gnu/packages/electronics.scm                       |     3 +-
 gnu/packages/elixir.scm                            |     4 +-
 gnu/packages/elm.scm                               |   749 +-
 gnu/packages/emacs-xyz.scm                         |  1566 +-
 gnu/packages/emacs.scm                             |   495 +-
 gnu/packages/embedded.scm                          |    48 +-
 gnu/packages/emulators.scm                         |     2 +-
 gnu/packages/engineering.scm                       |   523 +-
 gnu/packages/enlightenment.scm                     |    31 -
 gnu/packages/erlang.scm                            |     6 +-
 gnu/packages/esolangs.scm                          |    50 +-
 gnu/packages/fcitx5.scm                            |    59 +-
 gnu/packages/file-systems.scm                      |   257 +-
 gnu/packages/finance.scm                           |   343 +-
 gnu/packages/fonts.scm                             |   173 +-
 gnu/packages/fontutils.scm                         |   796 +-
 gnu/packages/fpga.scm                              |     3 +-
 gnu/packages/freedesktop.scm                       |   174 +-
 gnu/packages/freeipmi.scm                          |    16 +-
 gnu/packages/ftp.scm                               |     3 +
 gnu/packages/game-development.scm                  |   214 +-
 gnu/packages/games.scm                             |   612 +-
 gnu/packages/gcc.scm                               |    48 +-
 gnu/packages/genimage.scm                          |    10 +-
 gnu/packages/geo.scm                               |    99 +-
 gnu/packages/gimp.scm                              |   208 +-
 gnu/packages/gl.scm                                |    61 +-
 gnu/packages/glib.scm                              |    70 +-
 gnu/packages/gnome-xyz.scm                         |    23 +-
 gnu/packages/gnome.scm                             |   403 +-
 gnu/packages/gnu-doc.scm                           |     4 +-
 gnu/packages/gnucash.scm                           |    22 +-
 gnu/packages/gnunet.scm                            |    90 +-
 gnu/packages/gnupg.scm                             |    77 +-
 gnu/packages/gnustep.scm                           |    64 +-
 gnu/packages/gnuzilla.scm                          |  1125 +-
 gnu/packages/golang.scm                            |    13 +-
 gnu/packages/gps.scm                               |     4 +-
 gnu/packages/graph.scm                             |    31 +-
 gnu/packages/graphics.scm                          |   215 +-
 gnu/packages/graphviz.scm                          |    36 +-
 gnu/packages/gstreamer.scm                         |     4 +-
 gnu/packages/gtk.scm                               |   276 +-
 gnu/packages/guile-wm.scm                          |    51 +-
 gnu/packages/guile-xyz.scm                         |   231 +-
 gnu/packages/guile.scm                             |     6 +-
 gnu/packages/hardware.scm                          |   108 +-
 gnu/packages/haskell-apps.scm                      |    20 +-
 gnu/packages/haskell-web.scm                       |    39 +-
 gnu/packages/hexedit.scm                           |     9 +-
 gnu/packages/idris.scm                             |    35 +-
 gnu/packages/image-processing.scm                  |   244 +-
 gnu/packages/image-viewers.scm                     |   289 +-
 gnu/packages/image.scm                             |    40 +-
 gnu/packages/instrumentation.scm                   |    10 +-
 gnu/packages/irc.scm                               |     5 +-
 gnu/packages/iso-codes.scm                         |    31 +-
 gnu/packages/java.scm                              |    72 +-
 gnu/packages/javascript.scm                        |    39 +-
 gnu/packages/julia-xyz.scm                         |     2 +-
 gnu/packages/jupyter.scm                           |   399 +-
 gnu/packages/kde-frameworks.scm                    |     4 +-
 gnu/packages/kde-multimedia.scm                    |     4 +-
 gnu/packages/kde-pim.scm                           |     9 +-
 gnu/packages/kde.scm                               |     9 +-
 gnu/packages/key-mon.scm                           |    25 -
 gnu/packages/language.scm                          |   437 -
 gnu/packages/libevent.scm                          |    17 +
 gnu/packages/libffi.scm                            |     3 -
 gnu/packages/libusb.scm                            |     6 -
 gnu/packages/linux.scm                             |   849 +-
 gnu/packages/lirc.scm                              |    15 +-
 gnu/packages/lisp-xyz.scm                          |   827 +-
 gnu/packages/lisp.scm                              |    20 +-
 gnu/packages/llvm.scm                              |   282 +-
 gnu/packages/logging.scm                           |    42 +-
 gnu/packages/lsof.scm                              |     3 +
 gnu/packages/lua.scm                               |    45 +-
 gnu/packages/machine-learning.scm                  |   167 +-
 gnu/packages/mail.scm                              |   276 +-
 gnu/packages/markup.scm                            |     4 +-
 gnu/packages/mate.scm                              |     4 +-
 gnu/packages/maths.scm                             |   474 +-
 gnu/packages/matrix.scm                            |     4 +-
 gnu/packages/mercury.scm                           |    14 +-
 gnu/packages/mes.scm                               |    21 +-
 gnu/packages/messaging.scm                         |   120 +-
 gnu/packages/minetest.scm                          |   226 +-
 gnu/packages/monitoring.scm                        |     4 +-
 gnu/packages/mp3.scm                               |    11 +-
 gnu/packages/mpd.scm                               |    27 +-
 gnu/packages/mpi.scm                               |    92 +-
 gnu/packages/music.scm                             |   623 +-
 gnu/packages/musl.scm                              |     6 +-
 gnu/packages/nano.scm                              |     6 +-
 gnu/packages/ncdu.scm                              |    11 +-
 gnu/packages/ncurses.scm                           |    11 +
 gnu/packages/networking.scm                        |    62 +-
 gnu/packages/node-xyz.scm                          |     2 +-
 gnu/packages/node.scm                              |    17 +-
 gnu/packages/nss.scm                               |    10 +-
 gnu/packages/ntp.scm                               |     6 +-
 gnu/packages/nutrition.scm                         |   160 +-
 gnu/packages/ocaml.scm                             |  1652 +-
 gnu/packages/ocr.scm                               |    17 -
 gnu/packages/openbox.scm                           |    20 +-
 gnu/packages/package-management.scm                |   356 +-
 gnu/packages/pantheon.scm                          |    16 +-
 gnu/packages/parallel.scm                          |    45 +-
 gnu/packages/password-utils.scm                    |    97 +-
 gnu/packages/patches/4store-fix-buildsystem.patch  |    56 -
 .../4store-unset-preprocessor-directive.patch      |    16 -
 gnu/packages/patches/breezy-fix-gio.patch          |   338 +
 .../patches/casync-renameat2-declaration.patch     |    27 -
 .../patches/clang-14.0-libc-search-path.patch      |    95 +
 .../dealii-fix-compiliation-with-boost-1.78.patch  |    40 -
 gnu/packages/patches/dealii-fix-sundials.patch     |    60 -
 gnu/packages/patches/efivar-211.patch              |    86 +
 .../patches/elm-compiler-disable-reactor.patch     |    71 -
 .../patches/elm-compiler-fix-map-key.patch         |    38 -
 .../patches/elm-offline-package-registry.patch     |    71 +
 .../patches/elm-reactor-static-files.patch         |   251 +
 .../emacs-deferred-fix-number-of-arguments.patch   |    58 +
 .../emacs-ess-fix-obsolete-function-alias.patch    |    23 +
 gnu/packages/patches/emacs-exec-path.patch         |    12 +-
 .../patches/emacs-git-email-missing-parens.patch   |    27 +
 .../patches/emacs-helpful-fix-docstring-test.patch |    18 +
 .../patches/emacs-ignore-empty-xim-styles.patch    |    24 -
 .../patches/emacs-lispy-fix-thread-last-test.patch |    39 +
 .../patches/emacs-yasnippet-fix-tests.patch        |    95 +
 .../flatpak-unset-gdk-pixbuf-for-sandbox.patch     |    19 +
 gnu/packages/patches/ganeti-haskell-compat.patch   |    18 -
 gnu/packages/patches/ganeti-pyyaml-compat.patch    |    41 +
 gnu/packages/patches/ganeti-sphinx-compat.patch    |    24 -
 .../gcc-12-cross-environment-variables.patch       |    54 +
 .../patches/gcc-12-strmov-store-file-names.patch   |   114 +
 .../patches/gcolor3-update-libportal-usage.patch   |    55 +
 .../patches/gourmet-sqlalchemy-compat.patch        |    18 +
 gnu/packages/patches/gtk-introspection-test.patch  |    22 -
 .../patches/guile-ac-d-bus-fix-tests.patch         |    28 +
 gnu/packages/patches/hwloc-1-test-btrfs.patch      |    54 +
 .../patches/idris-build-with-haskeline-0.8.patch   |    85 -
 .../patches/idris-build-with-megaparsec-9.patch    |    27 -
 gnu/packages/patches/idris-disable-test.patch      |    19 -
 gnu/packages/patches/idris-test-ffi008.patch       |    26 +
 .../irrlicht-link-against-needed-libs.patch        |    24 +
 .../patches/irrlicht-use-system-libs.patch         |    95 +-
 gnu/packages/patches/isc-dhcp-gcc-compat.patch     |    72 -
 .../patches/itk-snap-alt-glibc-compat.patch        |    22 +
 .../patches/libmicrohttpd-0.9.73-test-ssl3.patch   |    35 -
 .../patches/libobjc2-unbundle-robin-map.patch      |    47 +
 .../libxmlb-install-xb-tool-into-bindir.patch      |   100 +
 gnu/packages/patches/mia-fix-boost-headers.patch   |   479 +
 .../patches/minetest-add-MINETEST_MOD_PATH.patch   |   156 -
 gnu/packages/patches/mozjs17-aarch64-support.patch |    60 -
 gnu/packages/patches/mozjs24-aarch64-support.patch |    21 -
 .../patches/mozjs38-pkg-config-version.patch       |    24 -
 gnu/packages/patches/mozjs38-shell-version.patch   |    67 -
 gnu/packages/patches/mozjs38-tracelogger.patch     |   608 -
 .../patches/mozjs38-version-detection.patch        |   180 -
 gnu/packages/patches/mozjs60-riscv64-support.patch |   122 -
 gnu/packages/patches/ncftp-reproducible.patch      |    29 +
 gnu/packages/patches/nftables-fix-makefile.patch   |    34 +
 gnu/packages/patches/openbox-python3.patch         |   165 +
 .../patches/openjdk-15-xcursor-no-dynamic.patch    |    72 +
 .../openssh-trust-guix-store-directory.patch       |    40 +
 gnu/packages/patches/pigx-bsseq-no-citeproc.patch  |    33 -
 .../patches/pigx-chipseq-no-citeproc.patch         |    33 -
 gnu/packages/patches/pigx-rnaseq-no-citeproc.patch |    33 -
 .../patches/pigx-sars-cov2-ww-no-citeproc.patch    |    33 -
 .../patches/pigx-scrnaseq-no-citeproc.patch        |    33 -
 .../patches/python-debugpy-unbundle-pydevd.patch   |   254 +
 .../python-ipython-documentation-chars.patch       |    18 +
 .../python-ipython-documentation-repro.patch       |    25 +
 .../patches/python-mypy-use-sys-path.patch         |   130 +
 .../patches/python-robotframework-atest.patch      |    61 +
 .../python-robotframework-source-date-epoch.patch  |   153 +-
 .../patches/python-robotframework-ug2html.patch    |    57 -
 .../patches/python-w3lib-fix-test-failure.patch    |    60 +
 .../python2-parameterized-docstring-test.patch     |    18 -
 .../patches/python2-pygobject-2-deprecation.patch  |    39 -
 .../python2-subprocess32-disable-input-test.patch  |    18 -
 .../patches/racket-enable-scheme-backport.patch    |   465 -
 .../racket-gui-tethered-launcher-backport.patch    |    26 -
 gnu/packages/patches/rapicorn-isnan.patch          |    87 -
 .../rust-ndarray-0.14-remove-blas-src.patch        |    25 +
 .../sssd-collision-with-external-nss-symbol.patch  |    71 -
 gnu/packages/patches/sssd-fix-samba-4.15.3.patch   |   523 -
 gnu/packages/patches/sssd-fix-samba.patch          |    50 -
 gnu/packages/patches/sssd-optional-systemd.patch   |    45 +
 gnu/packages/patches/sssd-system-directories.patch |    44 +-
 gnu/packages/patches/tor-sandbox-i686.patch        |    36 -
 gnu/packages/patches/tremc-fix-decodestring.patch  |    25 -
 .../patches/u-boot-allow-disabling-openssl.patch   |   107 +-
 .../patches/u-boot-riscv64-fix-extlinux.patch      |    40 -
 .../patches/ungoogled-chromium-system-nspr.patch   |    12 +-
 .../valgrind-fix-default-debuginfo-path.patch      |   100 +
 .../virtuoso-ose-remove-pre-built-jar-files.patch  |   117 +
 gnu/packages/patches/vtk-7-gcc-10-compat.patch     |    14 +
 gnu/packages/patches/vtk-7-hdf5-compat.patch       |    38 +
 gnu/packages/patches/vtk-7-python-compat.patch     |    16 +
 .../patches/webkitgtk-bind-all-fonts.patch         |    25 -
 .../patches/webkitgtk-canonicalize-paths.patch     |    66 -
 gnu/packages/patches/wicd-bitrate-none-fix.patch   |    24 -
 .../patches/wicd-get-selected-profile-fix.patch    |    16 -
 gnu/packages/patches/wicd-urwid-1.3.patch          |    18 -
 gnu/packages/patches/wicd-wpa2-ttls.patch          |    38 -
 .../patches/xterm-370-explicit-xcursor.patch       |    37 +
 gnu/packages/patches/ytfzf-programs.patch          |   643 -
 gnu/packages/patches/ytfzf-updates.patch           |    44 -
 gnu/packages/patches/ytnef-CVE-2021-3403.patch     |    32 -
 gnu/packages/patches/ytnef-CVE-2021-3404.patch     |    30 -
 .../patches/zig-disable-libc-note-test.patch       |    31 -
 gnu/packages/patchutils.scm                        |    35 +-
 gnu/packages/pciutils.scm                          |     7 +-
 gnu/packages/pdf.scm                               |   305 +-
 gnu/packages/perl.scm                              |    31 +
 gnu/packages/photo.scm                             |    74 +-
 gnu/packages/pikchr.scm                            |    59 +
 gnu/packages/plotutils.scm                         |     4 +-
 gnu/packages/polkit.scm                            |     2 +-
 gnu/packages/pretty-print.scm                      |     4 +-
 gnu/packages/profiling.scm                         |     8 +-
 gnu/packages/protobuf.scm                          |    38 +-
 gnu/packages/pulseaudio.scm                        |    52 -
 gnu/packages/python-build.scm                      |    31 +-
 gnu/packages/python-check.scm                      |   351 +-
 gnu/packages/python-compression.scm                |    32 -
 gnu/packages/python-crypto.scm                     |   187 +-
 gnu/packages/python-science.scm                    |   784 +-
 gnu/packages/python-web.scm                        |  1650 +-
 gnu/packages/python-xyz.scm                        |  8529 +--
 gnu/packages/python.scm                            |   338 +-
 gnu/packages/qt.scm                                |   151 +-
 gnu/packages/racket.scm                            |   109 +-
 gnu/packages/radio.scm                             |   149 +-
 gnu/packages/rcm.scm                               |     9 +-
 gnu/packages/rdf.scm                               |    53 +-
 gnu/packages/rsync.scm                             |     4 +-
 gnu/packages/ruby.scm                              |   418 +
 gnu/packages/sagemath.scm                          |     6 -
 gnu/packages/scanner.scm                           |    61 +
 gnu/packages/search.scm                            |    21 +-
 gnu/packages/security-token.scm                    |    18 +-
 gnu/packages/serialization.scm                     |    17 +-
 gnu/packages/shells.scm                            |    45 +-
 gnu/packages/simulation.scm                        |   171 +-
 gnu/packages/sml.scm                               |    34 +-
 gnu/packages/speech.scm                            |    29 +-
 gnu/packages/sphinx.scm                            |   380 +-
 gnu/packages/ssh.scm                               |    40 +-
 gnu/packages/sssd.scm                              |   231 +-
 gnu/packages/statistics.scm                        |   343 +-
 gnu/packages/storage.scm                           |     6 +-
 gnu/packages/sync.scm                              |    67 +-
 gnu/packages/syncthing.scm                         |     6 +-
 gnu/packages/syndication.scm                       |    31 +-
 gnu/packages/task-management.scm                   |    79 +-
 gnu/packages/tcl.scm                               |    46 +
 gnu/packages/terminals.scm                         |   110 +-
 gnu/packages/tex.scm                               |   821 +-
 gnu/packages/text-editors.scm                      |   110 +-
 gnu/packages/time.scm                              |    37 -
 gnu/packages/tls.scm                               |    86 +-
 gnu/packages/tor.scm                               |    72 +-
 gnu/packages/uml.scm                               |     4 +-
 gnu/packages/upnp.scm                              |    31 +-
 gnu/packages/valgrind.scm                          |    67 +-
 gnu/packages/version-control.scm                   |   287 +-
 gnu/packages/video.scm                             |   516 +-
 gnu/packages/vim.scm                               |   171 +-
 gnu/packages/virtualization.scm                    |   238 +-
 gnu/packages/vpn.scm                               |    26 +-
 gnu/packages/web-browsers.scm                      |    98 +-
 gnu/packages/web.scm                               |   493 +-
 gnu/packages/webkit.scm                            |   382 +-
 gnu/packages/wget.scm                              |    95 +-
 gnu/packages/wicd.scm                              |   197 -
 gnu/packages/wine.scm                              |   530 +-
 gnu/packages/wm.scm                                |    91 +-
 gnu/packages/wxwidgets.scm                         |    73 -
 gnu/packages/xdisorg.scm                           |    90 +-
 gnu/packages/xfce.scm                              |   320 +-
 gnu/packages/xiph.scm                              |     6 +-
 gnu/packages/xml.scm                               |    81 +-
 gnu/packages/xorg.scm                              |    23 +-
 gnu/packages/zig.scm                               |     7 +-
 gnu/services.scm                                   |     8 +-
 gnu/services/admin.scm                             |    57 +-
 gnu/services/base.scm                              |    98 +-
 gnu/services/databases.scm                         |    17 +-
 gnu/services/desktop.scm                           |    85 +-
 gnu/services/dict.scm                              |    64 +-
 gnu/services/dns.scm                               |   186 +-
 gnu/services/games.scm                             |    33 +-
 gnu/services/guix.scm                              |    28 +-
 gnu/services/herd.scm                              |    84 +-
 gnu/services/kerberos.scm                          |    12 +-
 gnu/services/lirc.scm                              |     6 +-
 gnu/services/mail.scm                              |    15 +-
 gnu/services/messaging.scm                         |   122 +-
 gnu/services/monitoring.scm                        |     9 +-
 gnu/services/networking.scm                        |   294 +-
 gnu/services/nfs.scm                               |    24 +-
 gnu/services/shepherd.scm                          |    68 +-
 gnu/services/spice.scm                             |     5 +-
 gnu/services/ssh.scm                               |    45 +-
 gnu/services/sysctl.scm                            |     4 +-
 gnu/services/telephony.scm                         |   408 +-
 gnu/services/virtualization.scm                    |     9 +-
 gnu/services/vpn.scm                               |    13 +-
 gnu/services/web.scm                               |    15 +-
 gnu/services/xorg.scm                              |     3 +-
 gnu/system.scm                                     |    51 +-
 gnu/system/file-systems.scm                        |     5 +-
 gnu/system/hurd.scm                                |     2 +-
 gnu/system/image.scm                               |    68 +-
 gnu/system/images/hurd.scm                         |     2 +-
 gnu/system/images/novena.scm                       |     2 +-
 gnu/system/images/pine64.scm                       |     2 +-
 gnu/system/images/pinebook-pro.scm                 |     2 +-
 gnu/system/images/rock64.scm                       |     2 +-
 gnu/system/install.scm                             |   256 +-
 gnu/system/linux-container.scm                     |     3 +-
 gnu/system/mapped-devices.scm                      |    53 +-
 gnu/tests.scm                                      |     7 +-
 gnu/tests/install.scm                              |   114 +-
 gnu/tests/messaging.scm                            |    21 +-
 gnu/tests/ssh.scm                                  |    46 +-
 gnu/tests/version-control.scm                      |    32 +-
 gnu/tests/virtualization.scm                       |    32 +-
 gnu/tests/web.scm                                  |     6 +-
 guix/build-system/elm.scm                          |   206 +
 guix/build-system/linux-module.scm                 |     4 +-
 guix/build-system/r.scm                            |     2 +-
 guix/build/bzr.scm                                 |     8 +-
 guix/build/elm-build-system.scm                    |   380 +
 guix/build/emacs-utils.scm                         |    47 +-
 guix/bzr-download.scm                              |     6 +-
 guix/cache.scm                                     |     9 +-
 guix/colors.scm                                    |    58 +-
 guix/cpu.scm                                       |    91 +-
 guix/deprecation.scm                               |     8 +
 guix/diagnostics.scm                               |    18 +-
 guix/download.scm                                  |    10 +-
 guix/gexp.scm                                      |    44 +
 guix/git-download.scm                              |    13 +
 guix/http-client.scm                               |    26 +-
 guix/import/cabal.scm                              |   107 +-
 guix/import/cran.scm                               |     4 +-
 guix/import/elm.scm                                |   210 +
 guix/import/hackage.scm                            |    23 +-
 guix/import/json.scm                               |     9 +-
 guix/import/minetest.scm                           |     4 +-
 guix/import/opam.scm                               |    85 +-
 guix/import/pypi.scm                               |     4 +-
 guix/import/utils.scm                              |    34 +-
 guix/inferior.scm                                  |     6 +-
 guix/least-authority.scm                           |   135 +
 guix/licenses.scm                                  |    10 +-
 guix/lint.scm                                      |    30 +-
 guix/packages.scm                                  |    16 +-
 guix/platform.scm                                  |   139 +
 {gnu => guix}/platforms/arm.scm                    |    11 +-
 gnu/platforms/hurd.scm => guix/platforms/mips.scm  |    17 +-
 gnu/platform.scm => guix/platforms/powerpc.scm     |    35 +-
 gnu/platforms/hurd.scm => guix/platforms/riscv.scm |    17 +-
 guix/platforms/x86.scm                             |    58 +
 guix/profiles.scm                                  |     8 +-
 guix/scripts/archive.scm                           |    20 +-
 guix/scripts/build.scm                             |    92 +-
 guix/scripts/describe.scm                          |     1 +
 guix/scripts/edit.scm                              |    30 +-
 guix/scripts/environment.scm                       |    20 +-
 guix/scripts/graph.scm                             |    15 +-
 guix/scripts/home.scm                              |     9 +-
 guix/scripts/home/edit.scm                         |    66 +
 guix/scripts/home/import.scm                       |     4 +-
 guix/scripts/import.scm                            |    42 +-
 guix/scripts/import/elm.scm                        |   107 +
 guix/scripts/pack.scm                              |    28 +-
 guix/scripts/package.scm                           |    67 +-
 guix/scripts/publish.scm                           |   121 +-
 guix/scripts/pull.scm                              |    14 +-
 guix/scripts/shell.scm                             |   109 +-
 guix/scripts/size.scm                              |    13 +-
 guix/scripts/style.scm                             |    25 +-
 guix/scripts/substitute.scm                        |    12 +-
 guix/scripts/system.scm                            |    13 +-
 guix/scripts/system/edit.scm                       |    64 +
 guix/scripts/system/reconfigure.scm                |     8 +-
 guix/scripts/system/search.scm                     |    40 +-
 guix/scripts/weather.scm                           |    30 +-
 guix/search-paths.scm                              |    26 +
 guix/self.scm                                      |     3 +-
 guix/store.scm                                     |   151 +-
 guix/store/deduplication.scm                       |    27 +-
 guix/transformations.scm                           |     2 +-
 guix/ui.scm                                        |   103 +-
 guix/utils.scm                                     |    37 +-
 nix/libstore/build.cc                              |     5 +-
 nix/nix-daemon/guix-daemon.cc                      |    42 +-
 po/doc/guix-cookbook.de.po                         |  1417 +-
 po/doc/guix-cookbook.es.po                         |  4474 --
 po/doc/guix-cookbook.fa.po                         |  4473 --
 po/doc/guix-cookbook.fi.po                         |  4472 --
 po/doc/guix-cookbook.fr.po                         |  1413 +-
 po/doc/guix-cookbook.ko.po                         |  1400 +-
 po/doc/guix-cookbook.pt_BR.po                      |  4478 --
 po/doc/guix-cookbook.ru.po                         |  4475 --
 po/doc/guix-cookbook.sk.po                         |  1484 +-
 po/doc/guix-cookbook.uk.po                         |  4503 --
 po/doc/guix-cookbook.zh_Hans.po                    |  4474 --
 po/doc/guix-manual.de.po                           | 28217 ++++----
 po/doc/guix-manual.es.po                           | 27931 ++++----
 po/doc/guix-manual.fa.po                           | 68256 ------------------
 po/doc/guix-manual.fi.po                           | 68261 ------------------
 po/doc/guix-manual.fr.po                           | 28012 ++++----
 po/doc/guix-manual.it.po                           | 68278 ------------------
 po/doc/guix-manual.ko.po                           | 68488 -------------------
 po/doc/guix-manual.pt_BR.po                        | 27653 ++++----
 po/doc/guix-manual.ru.po                           | 27799 ++++----
 po/doc/guix-manual.sk.po                           | 68278 ------------------
 po/doc/guix-manual.zh_CN.po                        | 27571 ++++----
 po/doc/local.mk                                    |    16 +-
 po/guix/LINGUAS                                    |     1 +
 po/guix/POTFILES.in                                |     2 +
 po/guix/cs.po                                      |  2108 +-
 po/guix/da.po                                      |  2188 +-
 po/guix/de.po                                      |  2273 +-
 po/guix/eo.po                                      |  2182 +-
 po/guix/es.po                                      |  2356 +-
 po/guix/fa.po                                      |  2339 +-
 po/guix/fi.po                                      |  2071 +-
 po/guix/fr.po                                      |  2222 +-
 po/guix/hu.po                                      |  2185 +-
 po/guix/it.po                                      |  2067 +-
 po/guix/{fa.po => ja.po}                           |  2074 +-
 po/guix/ko.po                                      |  2082 +-
 po/guix/nl.po                                      |  2222 +-
 po/guix/oc.po                                      |  2060 +-
 po/guix/pl.po                                      |  2084 +-
 po/guix/pt_BR.po                                   |  2210 +-
 po/guix/ru.po                                      |  2089 +-
 po/guix/si.po                                      |  2057 +-
 po/guix/sk.po                                      |  2297 +-
 po/guix/sr.po                                      |  2159 +-
 po/guix/sv.po                                      |  2151 +-
 po/guix/ta.po                                      |  2183 +-
 po/guix/uk.po                                      |  2073 +-
 po/guix/vi.po                                      |  2170 +-
 po/guix/zh_CN.po                                   |  1637 +-
 po/packages/LINGUAS                                |     2 +
 po/packages/da.po                                  |  4874 +-
 po/packages/de.po                                  |  4864 +-
 po/packages/eo.po                                  |  4858 +-
 po/packages/es.po                                  |  4947 +-
 po/packages/fa.po                                  |  8191 ++-
 po/packages/{sk.po => fi.po}                       |  4957 +-
 po/packages/fr.po                                  |  4908 +-
 po/packages/hu.po                                  |  4886 +-
 po/packages/it.po                                  |  4854 +-
 po/packages/ko.po                                  |  4871 +-
 po/packages/nl.po                                  |  4854 +-
 po/packages/oc.po                                  |  4854 +-
 po/packages/pl.po                                  |  4854 +-
 po/packages/pt_BR.po                               |  4854 +-
 po/packages/sk.po                                  |  4854 +-
 po/packages/sr.po                                  |  4854 +-
 po/packages/{sk.po => tr.po}                       |  4967 +-
 po/packages/zh_CN.po                               |  4854 +-
 tests/cache.scm                                    |    15 +
 tests/crate.scm                                    |     4 +-
 tests/elm.scm                                      |   268 +
 tests/gexp.scm                                     |    30 +-
 tests/guix-home.sh                                 |     2 +-
 tests/guix-pack.sh                                 |     2 +-
 tests/guix-package.sh                              |    30 +
 tests/guix-shell-export-manifest.sh                |    90 +
 tests/hackage.scm                                  |   215 +-
 tests/home-import.scm                              |    13 +-
 tests/home-services.scm                            |    46 +
 tests/inferior.scm                                 |    16 +-
 tests/keys/ed25519-2.pub                           |    11 +-
 tests/keys/ed25519-3.pub                           |    10 +-
 tests/keys/ed25519.pub                             |    10 +-
 tests/lint.scm                                     |    11 +-
 tests/packages.scm                                 |    13 +
 tests/profiles.scm                                 |     2 +-
 tests/publish.scm                                  |    23 +
 tests/services.scm                                 |    75 +-
 tests/style.scm                                    |     9 +-
 tests/transformations.scm                          |    14 +-
 595 files changed, 216265 insertions(+), 560683 deletions(-)

diff --cc gnu/local.mk
index 14cb3cf1c1,68b317b32a..c786a2720b
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@@ -10,8 -10,8 +10,8 @@@
  # Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus 
<rekado@elephly.net>
  # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
  # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
 -# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner 
<efraim@flashner.co.il>
 +# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner 
<efraim@flashner.co.il>
- # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen 
<janneke@gnu.org>
+ # Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Jan (janneke) 
Nieuwenhuizen <janneke@gnu.org>
  # Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
  # Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
  # Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
@@@ -1079,11 -1082,11 +1082,10 @@@ dist_patch_DATA =                            
                
    %D%/packages/patches/fxdiv-system-libraries.patch           \
    %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch   \
    %D%/packages/patches/ganeti-disable-version-symlinks.patch  \
-   %D%/packages/patches/ganeti-haskell-compat.patch            \
    %D%/packages/patches/ganeti-haskell-pythondir.patch         \
+   %D%/packages/patches/ganeti-pyyaml-compat.patch             \
    %D%/packages/patches/ganeti-shepherd-master-failover.patch  \
    %D%/packages/patches/ganeti-shepherd-support.patch          \
-   %D%/packages/patches/ganeti-sphinx-compat.patch             \
 -  %D%/packages/patches/gash-utils-ls-test.patch                       \
    %D%/packages/patches/gawk-shell.patch                               \
    %D%/packages/patches/gcc-arm-bug-71399.patch                        \
    %D%/packages/patches/gcc-arm-link-spec-fix.patch            \
diff --cc gnu/packages/cups.scm
index 0c0d4b701f,005ec15f11..bd5e06a9a5
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@@ -53,8 -52,8 +53,9 @@@
    #:use-module (guix build-system gnu)
    #:use-module (guix build-system python)
    #:use-module (guix download)
 +  #:use-module (guix gexp)
    #:use-module (guix git-download)
+   #:use-module (guix gexp)
    #:use-module ((guix licenses) #:prefix license:)
    #:use-module (guix packages)
    #:use-module (guix utils)
diff --cc gnu/packages/djvu.scm
index 4773e408da,b85193ccdb..4f4f40db1b
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@@ -149,30 -151,15 +151,28 @@@ a continuous layout."
         (sha256
          (base32 "0c595yziz81c9izf9s5sskd00qmgz2n1hp2vdcgg0dx81g3xfidb"))))
      (build-system gnu-build-system)
-     (native-inputs
-      `(("gettext" ,gettext-minimal)
-        ("pkg-config" ,pkg-config)
-        ("python2" ,python-2)
-        ("python2-nose" ,python2-nose)))
 -    (arguments (list #:tests? #f))      ;requires Python 2
+     (native-inputs (list gettext-minimal pkg-config))
      (inputs
-      `(("djvulibre" ,djvulibre)
-        ("exiv2" ,exiv2)
-        ("graphicsmagick" ,graphicsmagick)
-        ("poppler" ,poppler)
-        ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
+      (list djvulibre
+            exiv2
+            graphicsmagick
+            poppler
+            poppler-data
+            `(,util-linux "lib")))       ;for libuuid
 +    (arguments
 +     `(#:test-target "test"
++       #:tests? #f                                ;requires Python 2
 +       #:phases
 +       (modify-phases %standard-phases
 +         (add-after 'unpack 'fix-tests
 +           (lambda _
 +             (substitute* "tests/test-xmp-broken.py"
 +               ;; Error message changed in recent versions of XML parser
 +               (("XML parsing failure")
 +                "Error in XMLValidator"))))
 +         (add-before 'check 'set-home-for-tests
 +           (lambda _
 +             (setenv "HOME" "/tmp"))))))
      (synopsis "PDF to DjVu converter")
      (description
       "@code{pdf2djvu} creates DjVu files from PDF files.
diff --cc gnu/packages/fontutils.scm
index f4e1501b4c,712517c685..c2686c380f
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@@ -106,8 -112,661 +112,661 @@@ It supports both bitmap and scalable fo
  Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others.  It supports high-speed
  anti-aliased glyph bitmap generation with 256 gray levels.")
     (license license:freetype)           ; some files have other licenses
 -   (home-page "https://www.freetype.org/";)))
 +   (home-page "https://freetype.org/";)))
  
+ (define-public opentype-sanitizer
+   (package
+     (name "opentype-sanitizer")
+     (version "8.2.1")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "https://github.com/khaledhosny/ots";
+                                   "/releases/download/v" version
+                                   "/ots-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "17z8cxv48rfig5k7j3xk3bmbf7rm3kxsc3bazix96l0wws58r569"))))
+     (build-system meson-build-system)
+     (native-inputs (list googletest pkg-config))
+     (inputs (list freetype lz4 woff2 zlib))
+     (home-page "https://github.com/khaledhosny/ots";)
+     (synopsis "Sanitizer for OpenType fonts")
+     (description "The OpenType Sanitizer (OTS) parses and serializes OpenType
+ files (OTF, TTF) and WOFF and WOFF2 font files, validating them and sanitizing
+ them as it goes.")
+     (license license:bsd-3)))
+ 
+ (define-public python-afdko
+   (package
+     (name "python-afdko")
+     (version "3.8.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "afdko" version))
+        (sha256
+         (base32 "171r9f7n8fgz37dkcgpzj508lxfafcyzzx43ps12j1z2nk1sk905"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'patch-problematic-requirements
+             (lambda _
+               (substitute* "requirements.txt"
+                 ;; Remove lxml because the version requested here is different
+                 ;; than the one propagated by the python-fonttools package.
+                 (("^lxml==.*") ""))))
+           (add-after 'unpack 'patch-setup.py
+             (lambda _
+               ;; There is no use for Python-provided CMake nor Ninja binaries.
+               (substitute* '("pyproject.toml" "setup.py")
+                 ((".*cmake.*") "")
+                 ((".*ninja.*") ""))))
+           (add-after 'unpack 'unbundle-antlr4-cpp
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "CMakeLists.txt"
+                 (("^include\\(ExternalAntlr4Cpp).*")
+                  (format #f "include_directories(SYSTEM ~a)"
+                          (search-input-directory inputs
+                                                  "include/antlr4-runtime"))))
+               (substitute* "c/makeotf/lib/hotconv/CMakeLists.txt"
+                 (("antlr4_static")
+                  "antlr4-runtime"))))
+           ;; The test suite expects the commands to be Python rather than
+           ;; shell scripts, so move the wrap phase after the tests.
+           (delete 'wrap)
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (setenv "HOME" "/tmp")
+                 (invoke "pytest" "-vv"))))
+           (add-after 'check 'wrap
+             (assoc-ref %standard-phases 'wrap))
+           (add-before 'wrap 'wrap-PATH
+             (lambda _
+               ;; The commands execute other commands from this package from
+               ;; PATH; by wrapping them with bindir, they can be found even
+               ;; when the command is run from its store location.
+               (let* ((bindir (string-append #$output "/bin"))
+                      (commands (find-files bindir)))
+                 (for-each (lambda (c)
+                             (wrap-program c
+                               `("PATH" prefix (,bindir))))
+                           commands)))))))
+     (native-inputs
+      (list ninja python-pytest python-scikit-build python-wheel))
+     (inputs (list java-antlr4-runtime-cpp `(,util-linux "lib")))
+     (propagated-inputs
+      (list psautohint
+            python-booleanoperations
+            python-defcon
+            python-fontmath
+            python-fonttools-next
+            python-lxml
+            python-tqdm
+            python-ufonormalizer
+            python-ufoprocessor))
+     (home-page "https://github.com/adobe-type-tools/afdko";)
+     (synopsis "Adobe Font Development Kit for OpenType")
+     (description "The Adobe Font Development Kit for OpenType (AFDKO) is a set
+ of tools for building OpenType font (OTF) files from PostScript and TrueType
+ font data.  It includes the following commands:
+ @table @command
+ @item buildcff2vf
+ Assemble a CFF2 variable font from a .designspace file.
+ @item buildmasterotfs
+ Build master source OpenType/CFF fonts from a @file{.designspace} file
+ and UFO master source fonts.
+ @item charplot
+ @itemx digiplot
+ @itemx fontplot
+ @itemx fontsetplot
+ @itemx hintplot
+ @itemx waterfallplot
+ Aliases for the corresponding options of the @command{proofpdf} command.
+ @item checkoutlinesufo
+ Perform outline quality checks.  It can also remove path overlaps.
+ @item comparefamily
+ Look in a specific directory, examine and report on all the OpenType fonts 
found.
+ @item type1
+ @itemx detype1
+ Compile and decompile, respectively, a Type 1 font to and from a plain-text
+ representation.
+ @item makeinstancesufo
+ Generate UFO font instances from a set of master UFO fonts.
+ @item makeotfexe
+ Read all the font data and build the final OpenType font.
+ @item makeotf
+ This command can be used to prepare the input files needed by
+ @command{makeotfexe}.
+ @item mergefonts
+ Merge one or more fonts into a parent font.
+ @item otc2otf
+ Extract all OpenType fonts from the parent OpenType Collection font.
+ @item otf2otc
+ Build an OpenType Collection font file from two or more OpenType font
+ files.
+ @item otf2ttf
+ Converts OpenType-CFF fonts to TrueType.
+ @item rotatefont
+ Apply a Postscript transform matrix to the source font files.
+ @item sfntdiff
+ Low-level comparison of two OpenType font files.
+ @item sfntedit
+ Support table-editing, listing, and checksumming options on
+ sfnt-formatted files such as OpenType Format (OTF) or TrueType.
+ @item spot
+ Dump sfnt data from plain files or Macintosh resource files.
+ @item ttfcomponentizer
+ Take in a TrueType font and look for a UFO font stored in the same directory.
+ Use the UFO's components data to compose matching TrueType glyphs.
+ @item ttfdecomponentizer
+ Take in a TrueType font and decompose any composite glyphs into simple glyphs.
+ @item ttxn
+ Make a normalized dump of the font, or of selected tables.
+ @item tx
+ The @command{tx} (Type eXchange) is a test harness for the CoreType libraries
+ but also provides many useful font conversion and analysis facilities.
+ @end table")
+     (license license:asl2.0)))
+ 
+ (define-public python-cffsubr
+   (package
+     (name "python-cffsubr")
+     (version "0.2.9.post1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "cffsubr" version))
+        (modules '((guix build utils)))
+        (snippet '(delete-file-recursively "external")) ;unbundle ADFKO
+        (sha256
+         (base32 "0p7wyagkmwf4agr6ysgswrpmpifx5rz8dnjbcs2gmj29rwnl2cbb"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'patch-setup.py
+             (lambda _
+               (substitute* '("pyproject.toml"
+                              "setup.py")
+                 ;; This is not needed when building the package.
+                 (("setuptools-git-ls-files") "")
+                 ;; Do not attempt to build the unbundled ADFKO.
+                 (("cmdclass\\[\"build_ext\"] = ExecutableBuildExt.*")
+                  ""))))
+           (add-after 'unpack 'patch-tx-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (define tx (search-input-file inputs "bin/tx"))
+               (substitute* "src/cffsubr/__init__.py"
+                 (("TX_EXE = \"tx\"")
+                  (format #f "TX_EXE = ~s" tx))
+                 ;; Use the full 'tx' file name directly.
+                 (("with path\\(__name__, TX_EXE) as tx_cli:")
+                  "")
+                 (("    (return subprocess.run\\(\\[)str\\(tx_cli)(].*)" _ h t)
+                  (format #f "~a~s~a" h tx t)))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "pytest" "-vv")))))))
+     (native-inputs (list python-pytest python-setuptools-scm python-wheel))
+     (inputs (list python-afdko))
+     (propagated-inputs (list python-fonttools))
+     (home-page "https://github.com/adobe-type-tools/cffsubr";)
+     (synopsis "Compact Font Format (CFF) subroutinizer")
+     (description "This package provides the @command{cffsubr} command, a
+ Compact Font Format (CFF) subroutinizer based on the Adobe Font Development
+ Kit for OpenType (AFDKO) @command{tx} tool.")
+     (license license:asl2.0)))
+ 
+ (define-public python-compreffor
+   (package
+     (name "python-compreffor")
+     (version "0.5.1.post1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "compreffor" version))
+        (sha256
+         (base32 "1r3wqd67qnz8p6irv68mvadqv1nklgzw53376iarw3pq4gxrma36"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'patch-setup.py
+             (lambda _
+               (substitute* "setup.py"
+                 ;; Not actually needed.
+                 ((", \"setuptools_git_ls_files\"") "")))))))
+     (native-inputs (list python-pytest python-pytest-runner
+                          python-setuptools-scm))
+     (propagated-inputs (list python-fonttools))
+     (home-page "https://github.com/googlefonts/compreffor";)
+     (synopsis "Compact Font Format (CFF) subroutinizer for fontTools")
+     (description "This package provides a Compact Font Format (CFF)
+ subroutinizer for fontTools.")
+     (license license:asl2.0)))
+ 
+ (define-public python-cu2qu
+   (package
+     (name "python-cu2qu")
+     (version "1.6.7.post1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "cu2qu" version ".zip"))
+        (sha256
+         (base32 "1x762r7bf39g6aivfvrmq00h6f07abvs9x1xm0fz8l81vq8jz64c"))))
+     (build-system python-build-system)
+     (propagated-inputs (list python-fonttools-full))
+     (native-inputs
+      (list python-cython
+            python-defcon
+            python-pytest
+            python-pytest-runner
+            python-setuptools-scm
+            unzip))
+     (home-page "https://github.com/googlefonts/cu2qu";)
+     (synopsis "Cubic-to-quadratic bezier curve conversion")
+     (description "This library provides functions which take in @acronym{UFO,
+ Unified Font Object} objects (such as Defcon Fonts or Robofab RFonts) and
+ converts any cubic curves to quadratic.  The most useful function is probably
+ @code{fonts_to_quadratic}.")
+     (license license:asl2.0)))
+ 
+ (define-public python-ufo2ft
+   (package
+     (name "python-ufo2ft")
+     (version "2.26.0")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "ufo2ft" version))
+        (sha256
+         (base32 "0a6iq5g6qdxj7nvip8nnf0mf8y5wmpd3wwq0dv7d4nm9bjrh0r6m"))))
+     (build-system python-build-system)
+     (native-inputs (list python-pytest python-pytest-runner))
+     (propagated-inputs
+      (list python-booleanoperations
+            python-cffsubr
+            python-compreffor
+            python-cu2qu
+            python-defcon
+            python-fonttools
+            python-skia-pathops
+            python-ufolib2))
+     (home-page "https://github.com/googlefonts/ufo2ft";)
+     (synopsis "Generate OpenType fonts from Unified Font Objects (UFOs)")
+     (description "@code{ufo2ft} (UFO to FontTools) is a fork of @code{ufo2fdk}
+ intended to leverage FontTools (a Python library) rather than the Adobe Font
+ Development Kit for OpenType (AFDKO), a set of C libraries/utilities so that
+ it can be more easily extended.  Like @code{ufo2fdk}, its primary purpose is
+ to generate OpenType font binaries from Unified Font Objects (UFOs).")
+     (license license:expat)))
+ 
+ (define-public python-fontmath
+   (package
+     (name "python-fontmath")
+     (version "0.9.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "fontMath" version ".zip"))
+        (sha256
+         (base32 "001756zxn2386dm4svgqjgw5026hvyacxl09b2qlk7s06phpcphw"))))
+     (build-system python-build-system)
+     (propagated-inputs (list python-fonttools))
+     (native-inputs
+      (list python-setuptools-scm
+            python-pytest
+            python-pytest-runner
+            python-wheel
+            unzip))
+     (home-page "https://github.com/robotools/fontMath";)
+     (synopsis "Fast font mathematical operations library")
+     (description "This package provides a set of objects for performing fast
+ font, glyph, etc. mathematical operations on font data.")
+     (license license:expat)))
+ 
+ ;;; An untested variant used to break a cycle with python-booleanoperations.
+ (define-public python-fontpens-bootstrap
+   (package
+     (name "python-fontpens-bootstrap")
+     (version "0.2.4")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "fontPens" version ".zip"))
+        (sha256
+         (base32 "1za15dzsnymq6d9x7xdfqwgw4a3003wj75fn2crhyidkfd2s3nd6"))))
+     (build-system python-build-system)
+     (arguments (list #:tests? #f))
+     (propagated-inputs (list python-fonttools))
+     (native-inputs (list unzip))
+     (home-page "https://github.com/robofab-developers/fontPens";)
+     (synopsis "Python classes implementing the pen protocol")
+     (description "This package provides a collection of Python classes
+ implementing the pen protocol for manipulating glyphs.")
+     (license license:bsd-3)))
+ 
+ (define-public python-fontpens
+   (hidden-package
+    (package/inherit python-fontpens-bootstrap
+      (name "python-fontpens")
+      (arguments
+       (substitute-keyword-arguments (package-arguments 
python-fontpens-bootstrap)
+         ((#:tests? _ #f)
+          #t)))
+      (native-inputs
+       (modify-inputs (package-native-inputs python-fontpens-bootstrap)
+         (append python-fontparts-bootstrap
+                 python-fontpens-bootstrap
+                 python-pytest
+                 python-pytest-runner))))))
+ 
+ ;;; A variant used to break a cycle with python-fontpens.
+ (define-public python-fontparts-bootstrap
+   (hidden-package
+    (package
+      (name "python-fontparts-bootstrap")
+      (version "0.10.4")
+      (source
+       (origin
+         (method url-fetch)
+         (uri (pypi-uri "fontParts" version ".zip"))
+         (sha256
+          (base32 "1ic453q86s5hsw8mxnclk1vr4qp69fd67gywhv23zqwz9a7kb7lh"))))
+      (build-system python-build-system)
+      (propagated-inputs
+       (list python-booleanoperations
+             python-defcon-bootstrap
+             python-fontmath
+             python-fonttools))
+      (native-inputs (list unzip))
+      (home-page "https://github.com/robotools/fontParts";)
+      (synopsis "Library for interacting with font parts")
+      (description "FontParts is an @acronym{API, Application Programming
+ Interface} for interacting with the parts of fonts during the font development
+ process.  FontParts is the successor of RoboFab.")
+      (license license:expat))))
+ 
+ (define-public python-fontparts
+   (package/inherit python-fontparts-bootstrap
+     (name "python-fontparts")
+     (propagated-inputs
+      (modify-inputs (package-propagated-inputs python-fontparts-bootstrap)
+        (replace "python-defcon-bootstrap" python-defcon)))
+     (properties
+      (alist-delete 'hidden?
+                    (package-properties python-fontparts-bootstrap)))))
+ 
+ (define-public python-opentype-sanitizer
+   (package
+     (name "python-opentype-sanitizer")
+     (version "8.2.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "opentype-sanitizer" version))
+        (sha256
+         (base32 "1wjy6chbnj9ic5yjxal6spln5jfzr8cigqs6ab0gj7q60dndrl5k"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'unbundle-opentype-sanitizer
+             (lambda* (#:key inputs #:allow-other-keys)
+               (delete-file-recursively "src/c")
+               (substitute* "setup.py"
+                 (("^cmdclass\\[\"download\"].*") "")
+                 (("^cmdclass\\[\"build_ext\"].*") "")
+                 (("^cmdclass\\[\"egg_info\"].*") ""))
+               (substitute* "src/python/ots/__init__.py"
+                 (("^OTS_SANITIZE = .*")
+                  (format #f "OTS_SANITIZE = ~s~%"
+                          (search-input-file inputs "bin/ots-sanitize"))))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "pytest" "-vv")))))))
+     (native-inputs (list python-pytest python-setuptools-scm))
+     (inputs (list opentype-sanitizer))
+     (home-page "https://github.com/googlefonts/ots-python";)
+     (synopsis "Python wrapper for OpenType Sanitizer")
+     (description "Python wrapper for the OpenType Sanitizer library.")
+     (license license:bsd-3)))
+ 
+ (define-public python-mutatormath
+   (package
+     (name "python-mutatormath")
+     (version "3.0.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "MutatorMath" version ".zip"))
+        (sha256
+         (base32 "0r1qq45np49x14zz1zwkaayqrn7m8dn2jlipjldg2ihnmpzw29w1"))))
+     (build-system python-build-system)
+     (propagated-inputs (list python-defcon python-fontmath python-fonttools))
+     (native-inputs (list unzip))
+     (home-page "https://github.com/LettError/MutatorMath";)
+     (synopsis "Piecewise linear interpolation Python library")
+     (description "MutatorMath is a Python library for the calculation of
+ piecewise linear interpolations in n-dimensions with any number of masters. It
+ was developed for interpolating data related to fonts, but if can handle any
+ arithmetic object.")
+     (license license:bsd-3)))
+ 
+ (define-public psautohint-font-data
+   ;; There is no release tag, so use the latest commit.
+   (let ((revision "0")
+         (commit "1e4c5061d328105c4dcfcb6fdbc27ec49b3e9d23"))
+     (hidden-package
+      (package
+        (name "psautohint-font-data")
+        (version (git-version "0.0.0" revision commit))
+        (source
+         (origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url 
"https://github.com/adobe-type-tools/psautohint-testdata";)
+                 (commit commit)))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "0p7g8mnndzp8zpbj9h6lkvfdpvd74fy10q8wmkagbg2ahbdi1zva"))))
+        (build-system copy-build-system)
+        (home-page "https://github.com/adobe-type-tools/psautohint-testdata";)
+        (synopsis "Test font data psautohint")
+        (description "This package contains the font data used by the test
+ suite of the @code{psautohint} package.")
+        ;; The bundle contains font data from the Cantarell, Libertinus, Source
+        ;; Code Pro, Source Serif Pro, all available under the same license.
+        (license license:silofl1.1)))))
+ 
+ (define-public psautohint
+   (package
+     (name "psautohint")
+     (version "2.4.0")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "psautohint" version))
+        (sha256
+         (base32 "0zzz7hy1kkkjfrrm9ly2di3xv2x1ywdqhbyqy21k670jysldw3nm"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'copy-font-data
+             ;; The data is copied as it needs to be writable for the tests.
+             (lambda _
+               (copy-recursively
+                #$(this-package-native-input "psautohint-font-data")
+                "tests/integration/data")
+               (for-each make-file-writable
+                         (find-files "tests/integration/data"))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "pytest" "-vv")))))))
+     (propagated-inputs (list python-fonttools))
+     (native-inputs
+      (list psautohint-font-data
+            python-fs
+            python-pytest
+            python-pytest-cov
+            python-pytest-randomly
+            python-pytest-xdist
+            python-setuptools-scm
+            python-wheel))
+     (home-page "https://github.com/adobe-type-tools/psautohint";)
+     (synopsis "Adobe's PostScript autohinter")
+     (description "This package provides the @command{autohinter} command that
+ can be used to hint PostScript fonts.  A Python wrapper is also included.")
+     (license license:asl2.0)))
+ 
+ (define-public python-sfdlib
+   (package
+     (name "python-sfdlib")
+     (version "1.2.3")
+     (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/aliftype/sfdLib";)
+                     (commit (string-append "v" version))))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "1q61km32i1h3cmn8nazcgsbzpm8q2nxp3kq3glqgfgvlxr1s3brm"))))
+     (build-system python-build-system)
+     (propagated-inputs (list python-ufolib2))
+     (home-page "https://github.com/aliftype/sfdLib";)
+     (synopsis "Simple SFD to UFO converter")
+     (description "This package provides the @command{sfd2ufo} command, a
+ converter from FontForge’s @acronym{SFD, Spline Font Database} fonts to
+ @acronym{UFO, Unified Font Object} fonts.")
+     (license license:bsd-3)))
+ 
+ (define-public python-skia-pathops
+   (package
+     (name "python-skia-pathops")
+     (version "0.7.2")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "skia-pathops" version ".zip"))
+        (modules '((guix build utils)))
+        (snippet '(delete-file-recursively "src/cpp")) ;140+ MiB of stuff
+        (sha256
+         (base32 "1456rclfn6a01c2cchlgyn166zppcjcqij0k5gwmm8gvzsd5rn0r"))))
+     (build-system python-build-system)
+     (arguments
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'configure-env
+             (lambda _
+               (setenv "BUILD_SKIA_FROM_SOURCE" "0")))
+           (add-after 'unpack 'adjust-c++-language
+             (lambda _
+               ;; Our version of Skia requires c++17.
+               (substitute* "setup.py"
+                 (("-std=c\\+\\+14")
+                  "-std=c++17"))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "pytest" "-vv")))))))
+     (native-inputs
+      (list pkg-config
+            python-cython
+            python-pytest
+            python-setuptools-scm
+            unzip))
+     (inputs (list skia))
+     (home-page "https://github.com/fonttools/skia-pathops";)
+     (synopsis "Python bindings for the Skia library's Path Ops module")
+     (description "This package provides Python bindings for the Path Ops
+ module of the Skia library, performing boolean operations on
+ paths (intersection, union, difference, xor).")
+     (license license:bsd-3)))
+ 
+ (define-public python-ufoprocessor
+   (package
+     (name "python-ufoprocessor")
+     (version "1.9.0")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "ufoProcessor" version ".zip"))
+        (sha256
+         (base32 "0ns11aamgavgsfj8qf5kq7dvzmgl0mhr1cbych2f075ipfdvva5s"))))
+     (build-system python-build-system)
+     (arguments
+      (list #:phases #~(modify-phases %standard-phases
+                         (replace 'check
+                           (lambda* (#:key tests? #:allow-other-keys)
+                             (when tests?
+                               ;; Most of the tests appear to be a work in
+                               ;; progress; run only a subset.
+                               (invoke "python" "Tests/tests.py")))))))
+     (propagated-inputs
+      (list python-defcon
+            python-fontmath
+            python-fontparts
+            python-fonttools
+            python-mutatormath))
+     (native-inputs (list unzip))
+     (home-page "https://github.com/LettError/ufoProcessor";)
+     (synopsis "Process and generate @acronym{UFO, Unified Font Object} files")
+     (description "This Python package processes and generates instances for
+ @acronym{UFO, Unified Font Object} files, glyphs and other data.  It can,
+ among other things:
+ @itemize
+ @item Collect source materials.
+ @item Provide mutators for specific glyphs, font info, kerning so that other
+ tools can generate partial instances.
+ @item Support designspace format 4 with layers.
+ @item Apply avar-like designspace bending.
+ @item Apply rules.
+ @item Generate actual UFO instances in formats 2 and 3.
+ @item Round geometry as requested.
+ @end itemize")
+     (license license:expat)))
+ 
+ (define-public python-ufonormalizer
+   (package
+     (name "python-ufonormalizer")
+     (version "0.6.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "ufonormalizer" version ".zip"))
+        (sha256
+         (base32 "0v5awian2alap7nvxfz38aahyqbqnma16nrqcpr8602hbbki04g6"))))
+     (build-system python-build-system)
+     (native-inputs (list python-setuptools-scm unzip))
+     (home-page "https://github.com/unified-font-object/ufoNormalizer";)
+     (synopsis "Script to normalize @acronym{UFO, Unified Font Object} data")
+     (description "The purpose of the @command{ufonormalizer} command is to
+ provide a standard formatting so that updates to @acronym{UFO, Unified Font
+ Object} data can be usefully versioned.  Examples of formatting applied by
+ ufoNormalizer include:
+ @itemize
+ @item Changing floating-point numbers to integers where it doesn't alter the
+ value (e.g. @samp{x=\"95.0\"} becomes @samp{x=\"95\"})
+ @item Rounding floating-point numbers to 10 digits
+ @item Formatting XML with tabs rather than spaces.
+ @end itemize")
+     (license license:bsd-3)))
+ 
  (define-public ttfautohint
    (package
      (name "ttfautohint")
diff --cc gnu/packages/freedesktop.scm
index b44d0ca03c,fc2c45c1f1..bbfdbda0cc
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@@ -27,9 -27,8 +27,9 @@@
  ;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
  ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
  ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
- ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+ ;;; Copyright © 2021, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
 +;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
diff --cc gnu/packages/gnuzilla.scm
index 88637d2fcd,6fbcf12a04..7f02984dd4
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@@ -895,56 -557,56 +900,56 @@@ in C/C++."
      (name "icecat")
      (version %icecat-version)
      (source icecat-source)
 -    (build-system gnu-build-system)
 +    (build-system mozilla-build-system)
      (inputs
-      `(("alsa-lib" ,alsa-lib)
-        ("bzip2" ,bzip2)
-        ("cups" ,cups)
-        ("dbus-glib" ,dbus-glib)
-        ("gdk-pixbuf" ,gdk-pixbuf)
-        ("glib" ,glib)
-        ("gtk+" ,gtk+)
-        ("gtk+-2" ,gtk+-2)
-        ;; UNBUNDLE-ME! ("graphite2" ,graphite2)
-        ("cairo" ,cairo)
-        ("pango" ,pango)
-        ("freetype" ,freetype)
-        ("font-dejavu" ,font-dejavu)
-        ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz)
-        ("libcanberra" ,libcanberra)
-        ("libgnome" ,libgnome)
-        ("libjpeg-turbo" ,libjpeg-turbo)
-        ("libpng-apng" ,libpng-apng)
-        ;; UNBUNDLE-ME! ("libogg" ,libogg)
-        ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet 
released
-        ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis)
-        ("libxft" ,libxft)
-        ("libevent" ,libevent)
-        ("libxinerama" ,libxinerama)
-        ("libxscrnsaver" ,libxscrnsaver)
-        ("libxcomposite" ,libxcomposite)
-        ("libxt" ,libxt)
-        ("libffi" ,libffi)
-        ("ffmpeg" ,ffmpeg)
-        ("libvpx" ,libvpx)
-        ("icu4c" ,icu4c)
-        ("pixman" ,pixman)
-        ("pulseaudio" ,pulseaudio)
-        ("mesa" ,mesa)
-        ("pciutils" ,pciutils)
-        ("mit-krb5" ,mit-krb5)
-        ("hunspell" ,hunspell)
-        ("libnotify" ,libnotify)
-        ;; See <https://bugs.gnu.org/32833>
-        ;;   and related comments in the 'remove-bundled-libraries' phase.
-        ;; UNBUNDLE-ME! ("nspr" ,nspr)
-        ;; UNBUNDLE-ME! ("nss" ,nss)
-        ("shared-mime-info" ,shared-mime-info)
-        ("sqlite" ,sqlite)
-        ("eudev" ,eudev)
-        ("unzip" ,unzip)
-        ("zip" ,zip)
-        ("zlib" ,zlib)))
+      (list alsa-lib
+            bzip2
+            cups
+            dbus-glib
+            gdk-pixbuf
+            glib
+            gtk+
+            gtk+-2
+            ;; UNBUNDLE-ME! graphite2
+            cairo
+            pango
+            freetype
+            font-dejavu
+            ;; UNBUNDLE-ME! harfbuzz
+            libcanberra
+            libgnome
+            libjpeg-turbo
+            libpng-apng
+            ;; UNBUNDLE-ME! libogg
+            ;; UNBUNDLE-ME! libtheora ; wants theora-1.2, not yet released
+            ;; UNBUNDLE-ME! libvorbis
+            libxft
+            libevent
+            libxinerama
+            libxscrnsaver
+            libxcomposite
+            libxt
+            libffi
+            ffmpeg
+            libvpx
+            icu4c
+            pixman
+            pulseaudio
+            mesa
+            pciutils
+            mit-krb5
+            hunspell
+            libnotify
+            ;; See <https://bugs.gnu.org/32833>
+            ;;   and related comments in the 'remove-bundled-libraries' phase.
+            ;; UNBUNDLE-ME! nspr
+            ;; UNBUNDLE-ME! nss
+            shared-mime-info
+            sqlite
+            eudev
+            unzip
+            zip
+            zlib))
      (native-inputs
       ;; The following patches are specific to the Guix packaging of IceCat,
       ;; and therefore we prefer to leave them out of 'source', which should be
diff --cc gnu/packages/python-crypto.scm
index d331601c66,753f6bb503..92c1638c6d
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@@ -705,23 -655,8 +708,9 @@@ message digests and key derivation func
      (description
        "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
  library.")
 +    (properties `((python2-variant . ,(delay python2-pyopenssl))))
      (license license:asl2.0)))
  
- (define-public python2-pyopenssl
-   (let ((base (package-with-python2 (strip-python2-variant 
python-pyopenssl))))
-     (package
-       (inherit base)
-       (version "21.0.0")
-       (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "pyOpenSSL" version))
-          (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))
-          (sha256
-           (base32
-            "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay")))))))
- 
  (define-public python-ed25519
    (package
      (name "python-ed25519")
diff --cc gnu/packages/python-xyz.scm
index fe1123120f,f3d7fab973..7d73c145b7
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@@ -7488,25 -7051,88 +7051,84 @@@ write a wide range of image data, inclu
  data, and scientific formats.")
      (license license:bsd-2)))
  
- (define-public python-pycparser
+ (define-public python-pyvips
    (package
-     (name "python-pycparser")
-     (version "2.21")
+     (name "python-pyvips")
+     (version "2.2.0")
      (source
       (origin
-       (method url-fetch)
-       (uri (pypi-uri "pycparser" version))
-       (sha256
-        (base32
-         "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76"))))
-     (outputs '("out" "doc"))
+        (method url-fetch)
+        (uri (pypi-uri "pyvips" version))
+        (sha256
+         (base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b"))))
      (build-system python-build-system)
      (arguments
-      `(#:phases
-        (modify-phases %standard-phases
-          (replace 'check
-            (lambda _
-              (invoke "python" "-m" "unittest" "discover")))
+      (list #:phases
+            #~(modify-phases %standard-phases
+                ;; Maybe switch to API mode (i.e., build the C extension)?
+                ;; It is advertised as faster to start up and run.
+                ;; However, even with ‘pkg-config’ and ‘python-pkgconfig’ in
+                ;; ‘native-inputs’, the API mode build fails with:
+                ;;
+                ;;   Falling back to ABI mode. Details: unable to find 
pkg-config package "vips"
+                ;;
+                ;; The build doesn't actually fail without the below
+                ;; substitution, it's just slower because ‘setup.py’ tries
+                ;; (unsuccessfully) to download the Python ‘pkgconfig’ module.
+                (add-after 'unpack 'fix-build
+                  (lambda _
+                    (substitute* "setup.py"
+                      (("^( +setup_)API\\(\\)\n" _ prefix)
+                       (string-append prefix "ABI()\n")))))
+                (add-after 'unpack 'fix-paths
+                  (lambda _
+                    (substitute* "pyvips/__init__.py"
+                      (("^( +_vips_libname) = '(libvips.so.42)'"
+                        _ var libname)
+                       (format #f "~a = '~a/lib/~a'"
+                               var #$(this-package-input "vips") libname))
+                      (("^( +_gobject_libname) = '(libgobject-2.0.so.0)'"
+                        _ var libname)
+                       (format #f "~a = '~a/lib/~a'"
+                               var #$(this-package-input "glib") libname)))))
+                (replace 'check
+                  (lambda* (#:key tests? #:allow-other-keys)
+                    (when tests?
+                      (invoke "python" "setup.py" "test")))))))
+     (native-inputs
+      (list python-pyperf
+            python-pytest
+            python-pytest-flake8
+            python-pytest-runner))
+     (inputs
+      (list glib vips))
+     (propagated-inputs
+      (list python-cffi))
+     (home-page "https://github.com/libvips/pyvips";)
+     (synopsis "Python bindings for VIPS")
+     (description "The @code{pyvips} package provides Python bindings for VIPS,
+ a multithreaded image-processing system with low memory needs.")
+     (license license:expat)))
+ 
+ (define-public python-pycparser
+   (package
+     (name "python-pycparser")
 -    (version "2.20")
++    (version "2.21")
+     (source
+      (origin
+       (method url-fetch)
+       (uri (pypi-uri "pycparser" version))
+       (sha256
+        (base32
 -        "1w0m3xvlrzq4lkbvd1ngfm8mdw64r1yxy6n7djlw6qj5d0km6ird"))))
++        "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76"))))
+     (outputs '("out" "doc"))
+     (build-system python-build-system)
 -    (native-inputs
 -     (list pkg-config))
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda _
 -             (with-directory-excursion "tests"
 -               (invoke "python" "all_tests.py"))
 -             #t))
++             (invoke "python" "-m" "unittest" "discover")))
           (add-after 'install 'install-doc
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@@ -12122,21 -11851,8 +11846,9 @@@ from the earlier standard from 2003.  T
  suitable drop-in replacement for the “encodings.idna” module that comes with
  the Python standard library but currently only supports the older 2003
  specification.")
 +    (properties `((python2-variant . ,(delay python2-idna))))
      (license license:bsd-4)))
  
- (define-public python2-idna
-   (let ((base (package-with-python2 (strip-python2-variant python-idna))))
-     (package
-       (inherit base)
-       (version "2.10")
-       (source (origin
-                 (method url-fetch)
-                 (uri (pypi-uri "idna" version))
-                 (sha256
-                  (base32
-                   
"1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))))))
- 
  (define-public python-libsass
    (package
      (name "python-libsass")
@@@ -12744,96 -12797,64 +12793,97 @@@ time."
         (uri (pypi-uri "nbconvert" version))
         (sha256
          (base32
-          "00lhqaxn481qvk2w5568asqlsnvrw2fm61p1vssx3m7vdnl17g6b"))))
+          "17g9xq4za7vvzml6l6d8zrzknhxsvgx02hymmsw9d1dygbi4cgi2"))))
      (build-system python-build-system)
      (arguments
-      `(#:phases
-        (modify-phases %standard-phases
-          (add-after 'unpack 'fix-paths-and-tests
-            (lambda _
-              ;; Use pandoc binary from input.
-              (substitute* "nbconvert/utils/pandoc.py"
-                (("'pandoc'") (string-append "'" (which "pandoc") "'")))
-              ;; Same for LaTeX.
-              (substitute* "nbconvert/exporters/pdf.py"
-                (("\"xelatex\"") (string-append "\"" (which "xelatex") "\""))
-                (("\"bibtex\"") (string-append "\"" (which "bibtex") "\"")))
-              ;; Make sure tests are not skipped.
-              (substitute* (find-files "." "test_.+\\.py$")
-                (("@onlyif_cmds_exist\\(('(pandoc|xelatex)'(, )?)+\\)") ""))
-              ;; Pandoc is never missing, disable test.
-              (substitute* "nbconvert/utils/tests/test_pandoc.py"
-                (("import os" all) (string-append all "\nimport pytest"))
-                (("(.+)(def test_pandoc_available)" all indent def)
-                 (string-append indent "@pytest.mark.skip('disabled by 
guix')\n"
-                                indent def)))
-              ;; Not installing pyppeteer, delete test.
-              (delete-file "nbconvert/exporters/tests/test_webpdf.py")
-              (substitute* "nbconvert/tests/test_nbconvertapp.py"
-                (("(.+)(def test_webpdf_with_chromium)" all indent def)
-                 (string-append indent "@pytest.mark.skip('disabled by 
guix')\n"
-                                indent def)))))
-          (replace 'check
-            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
-              (when tests?
-                ;; Some tests invoke the installed nbconvert binary.
-                (add-installed-pythonpath inputs outputs)
-                ;; Tests depend on templates installed to output.
-                (setenv "JUPYTER_PATH"
-                        (string-append
-                         (assoc-ref outputs "out")
-                         "/share/jupyter:"
-                         (getenv "JUPYTER_PATH")))
-                ;; Some tests need HOME
-                (setenv "HOME" "/tmp")
-                (invoke "pytest" "-vv")))))))
+      (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Use pandoc binary from input.
+               (substitute* "nbconvert/utils/pandoc.py"
+                 (("'pandoc'")
+                  (format #f "~s" (search-input-file inputs "bin/pandoc"))))
+               ;; Same for LaTeX.
+               (substitute* "nbconvert/exporters/pdf.py"
+                 (("\"xelatex\"")
+                  (format #f "~s" (search-input-file inputs "bin/xelatex")))
+                 (("\"bibtex\"")
+                  (format #f "~s" (search-input-file inputs "bin/bibtex"))))
+               ;; Likewise for Inkscape.
+               (substitute* "nbconvert/preprocessors/svg2pdf.py"
+                 (("inkscape_path = which\\(\"inkscape\")")
+                  (format #f "inkscape_path = ~s"
+                          (search-input-file inputs "bin/inkscape"))))))
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 ;; Tests depend on templates installed to output.
+                 (setenv "JUPYTER_PATH"
+                         (string-append #$output "/share/jupyter:"
+                                        (getenv "JUPYTER_PATH")))
+                 ;; Step outside of the source directory to avoid having both
+                 ;; the installed package *and* the package from the source on
+                 ;; Python's path.
+                 (with-directory-excursion "/tmp"
+                   (invoke "pytest" "--pyargs" "nbconvert"
+                           "-vv" "-n" (number->string (parallel-job-count))
+                           "-k"
+                           (string-append
+                            ;; These tests require pyppeteer, not yet
+                            ;; available in Guix.
+                            "not test_webpdf_with_chromium "
+                            "and not test_webpdf.py "
+                            ;; These tests require ipywidgets, which would
+                            ;; introduce a dependency cycle.
+                            "and not test_execute_widgets_from_nbconvert "
+                            "and not test_execute_multiple_notebooks ")))))))))
      (inputs
-      (list pandoc
-            ;; XXX: Disabled, needs substitute*.
-            ;;("inkscape" ,inkscape)
-            ))
+      (list inkscape pandoc))
      (native-inputs
 -     (list python-ipykernel
 -           ;; Adding ipywidgets would create a cycle.
 -           ;;python-ipywidgets
 -           ;;python-pyppeteer    ;TODO: package me
 -           python-pytest
 -           python-pytest-xdist))
 +     `(("python-ipykernel" ,python-ipykernel)
 +       ;; XXX: Disabled, not in guix.
 +       ;;("python-pyppeteer" ,python-pyppeteer)
 +       ("python-pytest" ,python-pytest)
 +       ("python-pytest-cov" ,python-pytest-cov)
 +       ("python-pytest-dependency" ,python-pytest-dependency)
 +       ("texlive" ,(texlive-updmap.cfg
 +                    (list texlive-adjustbox
 +                          texlive-amsfonts
 +                          texlive-booktabs
 +                          texlive-caption
 +                          texlive-eurosym
 +                          texlive-fancyvrb
 +                          texlive-fonts-rsfs
 +                          texlive-fontspec
 +                          texlive-grffile
 +                          texlive-hyperref
 +                          texlive-iftex
 +                          texlive-jknappen
 +                          texlive-latex-amsmath
 +                          texlive-latex-enumitem
 +                          texlive-latex-float
 +                          texlive-latex-geometry
 +                          texlive-latex-jknapltx
 +                          texlive-latex-parskip
 +                          texlive-latex-trimspaces
 +                          texlive-latex-ucs
 +                          texlive-latex-upquote
 +                          texlive-lm
 +                          texlive-mathpazo
 +                          texlive-ms
 +                          texlive-oberdiek
 +                          texlive-stringenc
 +                          texlive-tcolorbox
 +                          texlive-titling
 +                          texlive-tools
 +                          texlive-ulem
 +                          texlive-xcolor
 +                          texlive-zapfding)))))
      (propagated-inputs
-      (list python-bleach
+      (list python-beautifulsoup4
+            python-bleach
             python-defusedxml
             python-entrypoints
             python-jinja2
diff --cc gnu/packages/tex.scm
index 7fab21679e,4831cf0933..529ecee891
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@@ -20,7 -20,7 +20,8 @@@
  ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
  ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
  ;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
 +;;; Copyright © 2022 Simon South <simon@simonsouth.net>
+ ;;; Copyright © 2022 Jack Hill <jackhill@jackhill.us>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@@ -3348,40 -3391,31 +3497,36 @@@ used by @code{hyperref} and @code{bookm
  (define-public texlive-xcolor
    (let ((template (simple-texlive-package
                     "texlive-xcolor"
 -                   (list "/doc/latex/xcolor/"
 -                         "/source/latex/xcolor/")
 +                   (list "doc/latex/xcolor/"
 +                         "dvips/xcolor/"
 +                         "source/latex/xcolor/"
 +                         "tex/latex/xcolor/")
                     (base32
 -                    "12q6spmpxg30alhvarjmxzigmz7lazapbrb0mc4vhbn6n1sdz7pp"))))
 +                    "1d7108b67fcaf1sgyk43ph18l0z5m35iqg3aahqs1ymzwdfnd3f7"))))
      (package
        (inherit template)
 +      (outputs '("out" "doc"))
        (arguments
         (substitute-keyword-arguments (package-arguments template)
 -         ((#:tex-directory _ #t)
 +         ((#:tex-directory _ '())
            "latex/xcolor")
 +         ((#:build-targets _ '())
 +          #~(list "xcolor.ins"))
           ((#:phases phases)
 -          `(modify-phases ,phases
 -             (add-after 'unpack 'chdir
 -               (lambda _ (chdir "source/latex/xcolor") #t))
 -             (add-after 'install 'move-files
 -               (lambda* (#:key outputs #:allow-other-keys)
 -                 (let ((share (string-append (assoc-ref outputs "out")
 -                                             "/share/texmf-dist")))
 -                   (mkdir-p (string-append share "/dvips/xcolor"))
 -                   (rename-file (string-append share 
"/tex/latex/xcolor/xcolor.pro")
 -                                (string-append share 
"/dvips/xcolor/xcolor.pro"))
 -                   #t)))))))
 +          #~(modify-phases #$phases
 +              (add-after 'unpack 'chdir
-                 (lambda _ (chdir "source/latex/xcolor")))
-               (replace 'copy-files
-                 (lambda* (#:key inputs outputs #:allow-other-keys)
-                   (let ((origin (assoc-ref inputs "source"))
-                         (source (string-append #$output
-                                                "/share/texmf-dist/source"))
-                         (doc (string-append #$output:doc
-                                             "/share/texmf-dist/doc")))
-                     (copy-recursively (string-append origin "/source") source)
-                     (copy-recursively (string-append origin "/doc") doc)
-                     (let ((share (string-append #$output
-                                                 "/share/texmf-dist")))
-                       (mkdir-p (string-append share "/dvips/xcolor"))
-                       (rename-file
-                        (string-append share "/tex/latex/xcolor/xcolor.pro")
-                        (string-append share 
"/dvips/xcolor/xcolor.pro"))))))))))
++                (lambda _ (chdir "source/latex/xcolor") #t))
++              (add-after 'install 'move-files
++                (lambda* (#:key outputs #:allow-other-keys)
++                  (let ((share (string-append (assoc-ref outputs "out")
++                                              "/share/texmf-dist")))
++                    (mkdir-p (string-append share "/dvips/xcolor"))
++                    (rename-file (string-append share 
"/tex/latex/xcolor/xcolor.pro")
++                                 (string-append share 
"/dvips/xcolor/xcolor.pro"))
++                    #t)))))))
+       ;; TODO: Propagate texlive-hyperref and many others in the next rebuild
+       ;; cycle.  Grep for '\usepackage' to see what packages it requires.
+       ;; (propagated-inputs (list texlive-hyperref ...))
        (home-page "https://www.ctan.org/pkg/xcolor";)
        (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX")
        (description
@@@ -6799,10 -6967,43 +7355,45 @@@ to put several logical pages onto each 
  hypertext features like hyperlinks and article threads are provided.  The
  package supports pdfTeX (pdfLaTeX) and VTeX.  With VTeX it is even possible to
  use this package to insert PostScript files, in addition to PDF files.")
 -    (license license:lppl1.3+)))
 +      (license license:lppl1.3+))))
 +
 +(define-deprecated-package texlive-latex-pdfpages texlive-pdfpages)
  
+ (define-public texlive-stix2-otf
+   (let ((base (simple-texlive-package
+                "texlive-stix2-otf"
+                (list "/doc/fonts/stix2-otf/"
+                      "/fonts/opentype/public/stix2-otf/")
+                (base32 "0i7rd1wn5jgm3gbi779gy78apz63w034ck4pn73xw6s10zgjzmgl")
+                ;; Building these fonts requires FontLab, which is nonfree.
+                #:trivial? #t)))
+     (package
+       (inherit base)
+       (arguments
+        (substitute-keyword-arguments (package-arguments base)
+          ((#:phases phases)
+           #~(modify-phases #$phases
+               (add-after 'install 'symlink-fonts-to-system-fonts-prefix
+                 ;; This is so that fontconfig can locate the fonts, such as
+                 ;; when using xetex or xelatex.
+                 (lambda _
+                   (let ((system-fonts-prefix (string-append #$output
+                                                             "/share/fonts")))
+                     (mkdir-p system-fonts-prefix)
+                     (symlink (string-append
+                               #$output "/share/texmf-dist/fonts/opentype"
+                               "/public/stix2-otf")
+                              (string-append system-fonts-prefix
+                                             "/stix2-otf")))))))))
+       (home-page "https://www.stixfonts.org/";)
+       (synopsis "OpenType Unicode text and maths fonts")
+       (description "The Scientific and Technical Information eXchange (STIX)
+ fonts are intended to satisfy the demanding needs of authors, publishers,
+ printers, and others working in the scientific, medical, and technical fields.
+ They combine a comprehensive Unicode-based collection of mathematical symbols
+ and alphabets with a set of text faces suitable for professional publishing.")
+       (license license:silofl1.1))))
+ 
  (define-public texlive-stmaryrd
    (let ((template (simple-texlive-package
                     "texlive-stmaryrd"
diff --cc gnu/packages/time.scm
index 1b94632c09,185bb682f6..5b0ef6af9e
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@@ -374,22 -359,8 +359,9 @@@ ISO 8601 dates, time and duration."
      (description
       "This module parses the most common forms of ISO 8601 date strings (e.g.
  @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
 +    (properties `((python2-variant . ,(delay python2-iso8601))))
      (license expat)))
  
- (define-public python2-iso8601
-   (let ((base (package-with-python2 (strip-python2-variant python-iso8601))))
-     (package
-       (inherit base)
-       (version "0.1.16")
-       (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "iso8601" version))
-          (sha256
-           (base32
-            "0ny8dlycapxr8n2m13jxy0r7kbqvgypfshb6y7l981c0rivjylrn")))))))
- 
  (define-public python-monotonic
    (package
      (name "python-monotonic")
diff --cc gnu/packages/web-browsers.scm
index bae161806b,ead9e9749e..ad03c4fa53
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@@ -501,41 -501,42 +503,58 @@@ interface."
         #:tests? #f
         #:phases
         (modify-phases %standard-phases
 +         (add-after 'unpack 'patch-systemdir
 +           (lambda* (#:key outputs #:allow-other-keys)
 +             (let ((out (assoc-ref outputs "out")))
 +               (substitute* "qutebrowser/utils/standarddir.py"
 +                 (("/usr/share") (string-append out "/share"))))))
+          (add-after 'unpack 'find-userscripts
+            (lambda* (#:key outputs #:allow-other-keys)
+              (substitute* "qutebrowser/commands/userscripts.py"
+                (("os.path.join.*system=True)")
+                (string-append "os.path.join(\""
+                               (assoc-ref outputs "out")
+                               "\", \"share\", \"qutebrowser\"")))))
           (add-before 'check 'set-env-offscreen
             (lambda _
               (setenv "QT_QPA_PLATFORM" "offscreen")))
           (add-after 'install 'install-more
             (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (rename-file "misc/Makefile" "Makefile")
+                (substitute* "Makefile"
+                  ((".*setup\\.py.*") ""))
+                (invoke "make" "install" (string-append "PREFIX=" out))
+                (delete-file-recursively (string-append out 
"/share/metainfo")))))
+          (add-after 'install-more 'wrap-scripts
+            (lambda* (#:key inputs outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
-                     (app (string-append out "/share/applications"))
-                     (hicolor (string-append out "/share/icons/hicolor")))
-                (install-file "doc/qutebrowser.1"
-                              (string-append out "/share/man/man1"))
+                     (python (assoc-ref inputs "python"))
+                     (path (string-append out "/lib/python"
+                                          ,(version-major+minor 
(package-version
+                                                                 python))
+                                          "/site-packages:"
+                                          (getenv "GUIX_PYTHONPATH"))))
                 (for-each
 -                 (lambda (file)
 -                   (wrap-program file
 -                     `("GUIX_PYTHONPATH" ":" prefix (,path))))
 -                 (append
 -                   (find-files
 -                     (string-append out "/share/qutebrowser/scripts") 
"\\.py$")
 -                   (find-files
 -                     (string-append out 
"/share/qutebrowser/userscripts")))))))
 +                (lambda (i)
 +                  (let ((src  (format #f "icons/qutebrowser-~dx~d.png" i i))
 +                        (dest (format #f "~a/~dx~d/apps/qutebrowser.png"
 +                                      hicolor i i)))
 +                    (mkdir-p (dirname dest))
 +                    (copy-file src dest)))
 +                '(16 24 32 48 64 128 256 512))
 +               (install-file "icons/qutebrowser.svg"
 +                             (string-append hicolor "/scalable/apps"))
 +               (substitute* "misc/org.qutebrowser.qutebrowser.desktop"
 +                 (("Exec=qutebrowser")
 +                  (string-append "Exec=" out "/bin/qutebrowser")))
 +               (install-file "misc/org.qutebrowser.qutebrowser.desktop" 
app))))
 +         (add-after 'install 'install-userscripts
 +           (lambda* (#:key outputs #:allow-other-keys)
 +             (let* ((out     (assoc-ref outputs "out"))
 +                    (scripts (string-append out 
"/share/qutebrowser/userscripts")))
 +               (mkdir-p scripts)
 +               (copy-recursively "misc/userscripts" scripts))))
           (add-after 'wrap 'wrap-qt-process-path
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]