diff --git a/gnu/local.mk b/gnu/local.mk
index 533cb42080..1bd0dce34f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -883,7 +883,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/awesome-4.3-fno-common.patch		\
   %D%/packages/patches/aws-c-auth-install-private-headers.patch	\
   %D%/packages/patches/azr3.patch				\
-  %D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch	\
   %D%/packages/patches/bash-completion-directories.patch	\
   %D%/packages/patches/bash-linux-pgrp-pipe.patch		\
   %D%/packages/patches/bastet-change-source-of-unordered_set.patch	\
@@ -1143,7 +1142,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
   %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch	\
-  %D%/packages/patches/ghc-monad-par-fix-tests.patch		\
   %D%/packages/patches/ghostscript-no-header-id.patch		\
   %D%/packages/patches/ghostscript-no-header-uuid.patch		\
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
@@ -1154,8 +1152,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glib-networking-gnutls-binding.patch	\
   %D%/packages/patches/glib-networking-32-bit-time.patch	\
   %D%/packages/patches/glib-skip-failing-test.patch		\
-  %D%/packages/patches/glibc-CVE-2018-11236.patch		\
-  %D%/packages/patches/glibc-CVE-2018-11237.patch		\
   %D%/packages/patches/glibc-CVE-2019-7309.patch		\
   %D%/packages/patches/glibc-CVE-2019-9169.patch		\
   %D%/packages/patches/glibc-CVE-2019-19126.patch		\
@@ -1174,7 +1170,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch	\
   %D%/packages/patches/glibc-hurd-gettyent.patch		\
   %D%/packages/patches/glibc-hurd-mach-print.patch		\
-  %D%/packages/patches/glibc-hurd-magic-pid.patch		\
   %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch	\
   %D%/packages/patches/glibc-ldd-powerpc.patch			\
   %D%/packages/patches/glibc-ldd-x86_64.patch			\
@@ -1219,7 +1214,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/grantlee-merge-theme-dirs.patch		\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/grfcodec-gcc-compat.patch		\
-  %D%/packages/patches/grocsvs-dont-use-admiral.patch		\
   %D%/packages/patches/gromacs-tinyxml2.patch			\
   %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch	\
   %D%/packages/patches/grub-efi-fat-serial-number.patch		\
@@ -1279,7 +1273,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/hueplusplus-mbedtls.patch		\
   %D%/packages/patches/hurd-cross.patch				\
   %D%/packages/patches/hurd-xattr.patch				\
-  %D%/packages/patches/hydra-disable-darcs-test.patch		\
   %D%/packages/patches/i7z-gcc-10.patch				\
   %D%/packages/patches/icecat-makeicecat.patch			\
   %D%/packages/patches/icecat-avoid-bundled-libraries.patch	\
@@ -1297,7 +1290,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch	\
   %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch	\
   %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
-  %D%/packages/patches/inkscape-poppler-0.76.patch		\
   %D%/packages/patches/instead-use-games-path.patch		\
   %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
@@ -1342,7 +1334,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libffi-float128-powerpc64le.patch	\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
   %D%/packages/patches/libvirt-add-install-prefix.patch	\
-  %D%/packages/patches/libvirt-create-machine-cgroup.patch      \
   %D%/packages/patches/libziparchive-add-includes.patch		\
   %D%/packages/patches/localed-xorg-keyboard.patch		\
   %D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
@@ -1446,7 +1437,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/linbox-fix-pkgconfig.patch		\
   %D%/packages/patches/linphone-desktop-without-sdk.patch           \
   %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
-  %D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
   %D%/packages/patches/linux-pam-no-setfsuid.patch		\
   %D%/packages/patches/linuxdcpp-openssl-1.1.patch		\
   %D%/packages/patches/lirc-localstatedir.patch			\
@@ -1476,13 +1466,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/lvm2-static-link.patch			\
   %D%/packages/patches/mailutils-variable-lookup.patch		\
   %D%/packages/patches/make-impure-dirs.patch			\
-  %D%/packages/patches/marble-qt-add-qt-headers.patch		\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
   %D%/packages/patches/mathjax-disable-webpack.patch			\
   %D%/packages/patches/mathjax-no-a11y.patch			\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
-  %D%/packages/patches/maven-enforcer-api-fix-old-dependencies.patch	\
   %D%/packages/patches/maven-generate-component-xml.patch		\
   %D%/packages/patches/maven-generate-javax-inject-named.patch		\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
@@ -1494,7 +1482,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mercurial-hg-extension-path.patch       \
   %D%/packages/patches/mesa-opencl-all-targets.patch		\
   %D%/packages/patches/mesa-skip-tests.patch			\
-  %D%/packages/patches/mescc-tools-boot.patch			\
   %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
   %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
@@ -1540,9 +1527,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/netsurf-system-utf8proc.patch		\
   %D%/packages/patches/netsurf-y2038-tests.patch		\
   %D%/packages/patches/netsurf-longer-test-timeout.patch	\
-  %D%/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch \
-  %D%/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch	\
-  %D%/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch	\
   %D%/packages/patches/nix-dont-build-html-doc.diff		\
   %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch	\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
@@ -1561,10 +1545,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/nvi-db4.patch				\
   %D%/packages/patches/nyacc-binary-literals.patch		\
   %D%/packages/patches/obs-modules-location.patch		\
-  %D%/packages/patches/ocaml-bitstring-fix-configure.patch \
-  %D%/packages/patches/ocaml-CVE-2015-8869.patch		\
-  %D%/packages/patches/ocaml-Add-a-.file-directive.patch	\
-  %D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch	\
   %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch	\
   %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch	\
   %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
@@ -1577,20 +1557,16 @@ dist_patch_DATA =						\
   %D%/packages/patches/onnx-use-system-googletest.patch	\
   %D%/packages/patches/onnx-shared-libraries.patch	\
   %D%/packages/patches/onnx-skip-model-downloads.patch		\
-  %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
-  %D%/packages/patches/openjdk-14-builtins.patch                \
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
   %D%/packages/patches/openssh-hurd.patch			\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openrgb-unbundle-hueplusplus.patch	\
   %D%/packages/patches/opensles-add-license-file.patch			\
-  %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.1-c-rehash-in.patch		\
   %D%/packages/patches/openssl-3.0-c-rehash-in.patch		\
-  %D%/packages/patches/openssl-c-rehash-in.patch		\
   %D%/packages/patches/open-zwave-hidapi.patch			\
   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
   %D%/packages/patches/osip-CVE-2017-7853.patch			\
@@ -1601,7 +1577,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
   %D%/packages/patches/pam-krb5-CVE-2020-10595.patch		\
   %D%/packages/patches/pango-skip-libthai-test.patch		\
-  %D%/packages/patches/passwordsafe-meson-remove-extra-argument.patch \
   %D%/packages/patches/password-store-tree-compat.patch		\
   %D%/packages/patches/pciutils-hurd-configure.patch		\
   %D%/packages/patches/pciutils-hurd-fix.patch			\
@@ -1627,7 +1602,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/strace-readlink-tests.patch		\
   %D%/packages/patches/sunxi-tools-remove-sys-io.patch	\
   %D%/packages/patches/p11-kit-hurd.patch			\
-  %D%/packages/patches/patchutils-test-perms.patch		\
   %D%/packages/patches/patch-hurd-path-max.patch		\
   %D%/packages/patches/perl-autosplit-default-time.patch	\
   %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
@@ -1694,14 +1668,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-3-fix-tests.patch			\
   %D%/packages/patches/python-3-hurd-configure.patch		\
   %D%/packages/patches/python-3-no-static-lib.patch		\
-  %D%/packages/patches/python-CVE-2018-14647.patch		\
-  %D%/packages/patches/python-CVE-2020-26116.patch		\
   %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch	\
   %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch	\
-  %D%/packages/patches/python-axolotl-AES-fix.patch		\
-  %D%/packages/patches/python-babel-fix-parse-future-test.patch \
   %D%/packages/patches/python-cross-compile.patch		\
-  %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-docopt-pytest6-compat.patch	\
   %D%/packages/patches/python-execnet-read-only-fix.patch	\
@@ -1717,7 +1686,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-flint-includes.patch		\
   %D%/packages/patches/python-libxml2-utf8.patch		\
   %D%/packages/patches/python-magic-python-bytecode.patch	\
-  %D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch	\
   %D%/packages/patches/python-memcached-syntax-warnings.patch	\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-typing-inspect-fix.patch		\
@@ -1730,7 +1698,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
   %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
-  %D%/packages/patches/python-pytest-asyncio-python-3.8.patch	\
   %D%/packages/patches/python-pytorch-runpath.patch		\
   %D%/packages/patches/python-pytorch-system-libraries.patch	\
   %D%/packages/patches/python-robotframework-source-date-epoch.patch \
@@ -1748,7 +1715,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/qemu-fix-agent-paths.patch 		\
   %D%/packages/patches/qpdfview-qt515-compat.patch		\
   %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
-  %D%/packages/patches/qt4-ldflags.patch			\
   %D%/packages/patches/qtbase-absolute-runpath.patch		\
   %D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch	\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
@@ -1794,7 +1760,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
   %D%/packages/patches/rustc-1.39.0-src.patch			\
   %D%/packages/patches/rust-adblock-ignore-live-tests.patch		\
-  %D%/packages/patches/rust-coresimd-doctest.patch		\
   %D%/packages/patches/i3status-rust-enable-unstable-features.patch	\
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch	\
@@ -1840,7 +1805,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/spice-vdagent-glib-2.68.patch		\
   %D%/packages/patches/sssd-fix-samba.patch			\
   %D%/packages/patches/sssd-system-directories.patch		\
-  %D%/packages/patches/streamlink-update-test.patch             \
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/suitesparse-mongoose-cmake.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
@@ -1861,7 +1825,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/tar-remove-wholesparse-check.patch	\
   %D%/packages/patches/tar-skip-unreliable-tests.patch		\
   %D%/packages/patches/tbb-fix-test-on-aarch64.patch		\
-  %D%/packages/patches/tcc-boot-0.9.27.patch			\
   %D%/packages/patches/tclxml-3.2-install.patch			\
   %D%/packages/patches/tcsh-fix-autotest.patch			\
   %D%/packages/patches/teensy-loader-cli-help.patch		\
@@ -1957,7 +1920,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/vte-CVE-2012-2738-pt1.patch			\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch	\
-  %D%/packages/patches/vtk-8-fix-freetypetools-build-failure.patch	\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
   %D%/packages/patches/webkitgtk-share-store.patch		\
   %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
diff --git a/gnu/packages/patches/bash-reproducible-linux-pgrp-pipe.patch b/gnu/packages/patches/bash-reproducible-linux-pgrp-pipe.patch
deleted file mode 100644
index 8a03c4d982..0000000000
--- a/gnu/packages/patches/bash-reproducible-linux-pgrp-pipe.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Unconditionally enable PGRP_PIPE on Linux (the kernel), regardless of
-the kernel version in use on the build machine.
-
-diff -purN bash-5.0-orig/configure bash-5.0/configure
---- configure	1970-01-01 01:00:00.000000000 +0100
-+++ configure	2019-09-29 11:51:42.664518665 +0200
-@@ -16312,11 +16312,7 @@ solaris2.10*)	LOCAL_CFLAGS=-DSOLARIS  ;;
- solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
- lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
- linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
--		case "`uname -r`" in
--		1.*|2.[0123]*)	: ;;
--		*)	$as_echo "#define PGRP_PIPE 1" >>confdefs.h
-- ;;
--		esac ;;
-+		$as_echo "#define PGRP_PIPE 1" >>confdefs.h ;;
- netbsd*|openbsd*)	LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
- *qnx[67]*)	LOCAL_LIBS="-lncurses" ;;
- *qnx*)		LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
-diff -purN bash-5.0-orig/configure.ac bash-5.0/configure.ac
---- configure.ac	1970-01-01 01:00:00.000000000 +0100
-+++ configure.ac	2019-09-29 11:51:10.692026225 +0200
-@@ -1108,10 +1108,7 @@ solaris2.10*)	LOCAL_CFLAGS=-DSOLARIS  ;;
- solaris2*)	LOCAL_CFLAGS=-DSOLARIS ;;
- lynxos*)	LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
- linux*)		LOCAL_LDFLAGS=-rdynamic		 # allow dynamic loading
--		case "`uname -r`" in
--		1.*|2.[[0123]]*)	: ;;
--		*)	AC_DEFINE(PGRP_PIPE) ;;
--		esac ;;
-+		AC_DEFINE(PGRP_PIPE) ;;
- netbsd*|openbsd*)	LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
- *qnx[[67]]*)	LOCAL_LIBS="-lncurses" ;;
- *qnx*)		LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
diff --git a/gnu/packages/patches/ghc-monad-par-fix-tests.patch b/gnu/packages/patches/ghc-monad-par-fix-tests.patch
deleted file mode 100644
index d21a1e485c..0000000000
--- a/gnu/packages/patches/ghc-monad-par-fix-tests.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-This patch is taken from upstream.  It fixes a test to work with GHC 8.6.
-The paths have been slightly altered to work with the release tarball.
-
-See <https://github.com/simonmar/monad-par/issues/66>.
-
-From e20f81c8060208e4fb038e8f0e0668b41d72a6fb Mon Sep 17 00:00:00 2001
-From: Clint Adams <clint@debian.org>
-Date: Sat, 31 Aug 2019 14:12:34 -0400
-Subject: [PATCH] Use a case statement instead of pattern-matching in
- case_test_diamond
-
-This avoids the need for a MonadFail instance.  Closes #66
----
- monad-par/tests/ParTests_shared.hs | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/tests/ParTests_shared.hs b/tests/ParTests_shared.hs
-index 31f438d..b2de50c 100644
---- a/tests/ParTests_shared.hs
-+++ b/tests/ParTests_shared.hs
-@@ -109,12 +109,15 @@ case_test_diamond :: Assertion
- case_test_diamond = 9 @=? (m :: Int)
-  where 
-   m = runPar $ do
--      [a,b,c,d] <- sequence [new,new,new,new]
--      fork $ do x <- get a; put b (x+1)
--      fork $ do x <- get a; put c (x+2)
--      fork $ do x <- get b; y <- get c; put d (x+y)
--      fork $ do put a 3
--      get d
-+      abcd <- sequence [new,new,new,new]
-+      case abcd of
-+          [a,b,c,d] -> do
-+              fork $ do x <- get a; put b (x+1)
-+              fork $ do x <- get a; put c (x+2)
-+              fork $ do x <- get b; y <- get c; put d (x+y)
-+              fork $ do put a 3
-+              get d
-+          _ -> error "Oops"
- 
- -- | Violate IVar single-assignment:
- --
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/glibc-CVE-2018-11236.patch b/gnu/packages/patches/glibc-CVE-2018-11236.patch
deleted file mode 100644
index 4f8a72943c..0000000000
--- a/gnu/packages/patches/glibc-CVE-2018-11236.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=5460617d1567657621107d895ee2dd83bc1f88f2
-with ChangeLog removed
-
-From 5460617d1567657621107d895ee2dd83bc1f88f2 Mon Sep 17 00:00:00 2001
-From: Paul Pluzhnikov <ppluzhnikov@google.com>
-Date: Tue, 8 May 2018 18:12:41 -0700
-Subject: [PATCH] Fix BZ 22786: integer addition overflow may cause stack
- buffer overflow when realpath() input length is close to SSIZE_MAX.
-
-2018-05-09  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	[BZ #22786]
-	* stdlib/canonicalize.c (__realpath): Fix overflow in path length
-	computation.
-	* stdlib/Makefile (test-bz22786): New test.
-	* stdlib/test-bz22786.c: New test.
----
- ChangeLog             |  8 +++++
- stdlib/Makefile       |  2 +-
- stdlib/canonicalize.c |  2 +-
- stdlib/test-bz22786.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 100 insertions(+), 2 deletions(-)
- create mode 100644 stdlib/test-bz22786.c
-
-diff --git a/stdlib/Makefile b/stdlib/Makefile
-index af1643c..1ddb1f9 100644
---- a/stdlib/Makefile
-+++ b/stdlib/Makefile
-@@ -84,7 +84,7 @@ tests		:= tst-strtol tst-strtod testmb testrand testsort testdiv   \
- 		   tst-cxa_atexit tst-on_exit test-atexit-race 		    \
- 		   test-at_quick_exit-race test-cxa_atexit-race             \
- 		   test-on_exit-race test-dlclose-exit-race 		    \
--		   tst-makecontext-align
-+		   tst-makecontext-align test-bz22786
- 
- tests-internal	:= tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \
- 		   tst-tls-atexit tst-tls-atexit-nodelete
-diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c
-index 4135f3f..390fb43 100644
---- a/stdlib/canonicalize.c
-+++ b/stdlib/canonicalize.c
-@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved)
- 		extra_buf = __alloca (path_max);
- 
- 	      len = strlen (end);
--	      if ((long int) (n + len) >= path_max)
-+	      if (path_max - n <= len)
- 		{
- 		  __set_errno (ENAMETOOLONG);
- 		  goto error;
-diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c
-new file mode 100644
-index 0000000..e7837f9
---- /dev/null
-+++ b/stdlib/test-bz22786.c
-@@ -0,0 +1,90 @@
-+/* Bug 22786: test for buffer overflow in realpath.
-+   Copyright (C) 2018 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+/* This file must be run from within a directory called "stdlib".  */
-+
-+#include <errno.h>
-+#include <limits.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <sys/stat.h>
-+#include <sys/types.h>
-+#include <support/test-driver.h>
-+#include <libc-diag.h>
-+
-+static int
-+do_test (void)
-+{
-+  const char dir[] = "bz22786";
-+  const char lnk[] = "bz22786/symlink";
-+
-+  rmdir (dir);
-+  if (mkdir (dir, 0755) != 0 && errno != EEXIST)
-+    {
-+      printf ("mkdir %s: %m\n", dir);
-+      return EXIT_FAILURE;
-+    }
-+  if (symlink (".", lnk) != 0 && errno != EEXIST)
-+    {
-+      printf ("symlink (%s, %s): %m\n", dir, lnk);
-+      return EXIT_FAILURE;
-+    }
-+
-+  const size_t path_len = (size_t) INT_MAX + 1;
-+
-+  DIAG_PUSH_NEEDS_COMMENT;
-+#if __GNUC_PREREQ (7, 0)
-+  /* GCC 7 warns about too-large allocations; here we need such
-+     allocation to succeed for the test to work.  */
-+  DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
-+#endif
-+  char *path = malloc (path_len);
-+  DIAG_POP_NEEDS_COMMENT;
-+
-+  if (path == NULL)
-+    {
-+      printf ("malloc (%zu): %m\n", path_len);
-+      return EXIT_UNSUPPORTED;
-+    }
-+
-+  /* Construct very long path = "bz22786/symlink/aaaa....."  */
-+  char *p = mempcpy (path, lnk, sizeof (lnk) - 1);
-+  *(p++) = '/';
-+  memset (p, 'a', path_len - (path - p) - 2);
-+  p[path_len - (path - p) - 1] = '\0';
-+
-+  /* This call crashes before the fix for bz22786 on 32-bit platforms.  */
-+  p = realpath (path, NULL);
-+
-+  if (p != NULL || errno != ENAMETOOLONG)
-+    {
-+      printf ("realpath: %s (%m)", p);
-+      return EXIT_FAILURE;
-+    }
-+
-+  /* Cleanup.  */
-+  unlink (lnk);
-+  rmdir (dir);
-+
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test
-+#include <support/test-driver.c>
--- 
-2.9.3
-
diff --git a/gnu/packages/patches/glibc-CVE-2018-11237.patch b/gnu/packages/patches/glibc-CVE-2018-11237.patch
deleted file mode 100644
index 8a7c604ecd..0000000000
--- a/gnu/packages/patches/glibc-CVE-2018-11237.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=9aaaab7c6e4176e61c59b0a63c6ba906d875dc0e
-with the ChangeLog removed
-
-From 9aaaab7c6e4176e61c59b0a63c6ba906d875dc0e Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@suse.de>
-Date: Tue, 22 May 2018 10:37:59 +0200
-Subject: [PATCH] Don't write beyond destination in
- __mempcpy_avx512_no_vzeroupper (bug 23196)
-
-When compiled as mempcpy, the return value is the end of the destination
-buffer, thus it cannot be used to refer to the start of it.
----
- ChangeLog                                               | 9 +++++++++
- string/test-mempcpy.c                                   | 1 +
- sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S | 5 +++--
- 3 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c
-index c08fba8..d98ecdd 100644
---- a/string/test-mempcpy.c
-+++ b/string/test-mempcpy.c
-@@ -18,6 +18,7 @@
-    <http://www.gnu.org/licenses/>.  */
- 
- #define MEMCPY_RESULT(dst, len) (dst) + (len)
-+#define MIN_PAGE_SIZE 131072
- #define TEST_MAIN
- #define TEST_NAME "mempcpy"
- #include "test-string.h"
-diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
-index 23c0f7a..effc3ac 100644
---- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
-+++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
-@@ -336,6 +336,7 @@ L(preloop_large):
- 	vmovups	(%rsi), %zmm4
- 	vmovups	0x40(%rsi), %zmm5
- 
-+	mov	%rdi, %r11
- /* Align destination for access with non-temporal stores in the loop.  */
- 	mov	%rdi, %r8
- 	and	$-0x80, %rdi
-@@ -366,8 +367,8 @@ L(gobble_256bytes_nt_loop):
- 	cmp	$256, %rdx
- 	ja	L(gobble_256bytes_nt_loop)
- 	sfence
--	vmovups	%zmm4, (%rax)
--	vmovups	%zmm5, 0x40(%rax)
-+	vmovups	%zmm4, (%r11)
-+	vmovups	%zmm5, 0x40(%r11)
- 	jmp	L(check)
- 
- L(preloop_large_bkw):
--- 
-2.9.3
-
diff --git a/gnu/packages/patches/glibc-hurd-magic-pid.patch b/gnu/packages/patches/glibc-hurd-magic-pid.patch
deleted file mode 100644
index a6849f7d35..0000000000
--- a/gnu/packages/patches/glibc-hurd-magic-pid.patch
+++ /dev/null
@@ -1,190 +0,0 @@
-This patch implements "magic" lookup for "pid/…", as used when looking up
-/proc/self.
-
-The patch comes from the 't/magic-pid' branch
-at <https://git.savannah.gnu.org/cgit/hurd/glibc.git>.  It squashes
-commit 392e52286a302ca6157fbd221295e64ab6b6d8ba (by Justus Winter)
-and commit 392e52286a302ca6157fbd221295e64ab6b6d8ba (a subsequent fix by
-Samuel Thibault).
-
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Subject: [PATCH] hurd: Handle `pid' magical lookup retry
-
-        * hurd/lookup-retry.c: Handle `pid' magical lookup
-        retry.
-
-diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c
-index aee2ba8f93..6ed8de1653 100644
---- a/hurd/lookup-retry.c
-+++ b/hurd/lookup-retry.c
-@@ -25,6 +25,7 @@
- #include <string.h>
- #include <_itoa.h>
- #include <eloop-threshold.h>
-+#include <unistd.h>
- 
- /* Translate the error from dir_lookup into the error the user sees.  */
- static inline error_t
-@@ -59,6 +60,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
-   error_t err;
-   char *file_name;
-   int nloops;
-+  file_t lastdir = MACH_PORT_NULL;
- 
-   error_t lookup_op (file_t startdir)
-     {
-@@ -107,14 +109,15 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 	{
- 	case FS_RETRY_REAUTH:
- 	  if (err = reauthenticate (*result))
--	    return err;
-+	    goto out;
- 	  /* Fall through.  */
- 
- 	case FS_RETRY_NORMAL:
- 	  if (nloops++ >= __eloop_threshold ())
- 	    {
- 	      __mach_port_deallocate (__mach_task_self (), *result);
--	      return ELOOP;
-+	      err = ELOOP;
-+	      goto out;
- 	    }
- 
- 	  /* An empty RETRYNAME indicates we have the final port.  */
-@@ -174,7 +177,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 
- 	      if (err)
- 		__mach_port_deallocate (__mach_task_self (), *result);
--	      return err;
-+	      goto out;
- 	    }
- 
- 	  startdir = *result;
-@@ -189,7 +192,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 	      if (*result != MACH_PORT_NULL)
- 		__mach_port_deallocate (__mach_task_self (), *result);
- 	      if (nloops++ >= __eloop_threshold ())
--		return ELOOP;
-+		{
-+		  err = ELOOP;
-+		  goto out;
-+		}
- 	      file_name = &retryname[1];
- 	      break;
- 
-@@ -208,7 +214,8 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 		      (*end != '/' && *end != '\0'))
- 		    {
- 		      errno = save;
--		      return ENOENT;
-+		      err = ENOENT;
-+		      goto out;
- 		    }
- 		  if (! get_dtable_port)
- 		    err = EGRATUITOUS;
-@@ -226,9 +233,12 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 		    }
- 		  errno = save;
- 		  if (err)
--		    return err;
-+		    goto out;
- 		  if (*end == '\0')
--		    return 0;
-+		    {
-+		      err = 0;
-+		      goto out;
-+		    }
- 		  else
- 		    {
- 		      /* Do a normal retry on the remaining components.  */
-@@ -255,9 +265,12 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 		  if (err = __host_info (__mach_host_self (), HOST_BASIC_INFO,
- 					 (integer_t *) &hostinfo,
- 					 &hostinfocnt))
--		    return err;
-+		    goto out;
- 		  if (hostinfocnt != HOST_BASIC_INFO_COUNT)
--		    return EGRATUITOUS;
-+		    {
-+		      err = EGRATUITOUS;
-+		      goto out;
-+		    }
- 		  p = _itoa (hostinfo.cpu_subtype, &retryname[8], 10, 0);
- 		  *--p = '/';
- 		  p = _itoa (hostinfo.cpu_type, &retryname[8], 10, 0);
-@@ -293,10 +306,11 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 		      }
- 
- 		  case '\0':
--		    return opentty (result);
-+		    err = opentty (result);
-+		    goto out;
- 		  case '/':
- 		    if (err = opentty (&startdir))
--		      return err;
-+		      goto out;
- 		    strcpy (retryname, &retryname[4]);
- 		    break;
- 		  default:
-@@ -306,14 +320,48 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 		goto bad_magic;
- 	      break;
- 
-+	    case 'p':
-+	      if (retryname[1] == 'i' && retryname[2] == 'd' &&
-+		  (retryname[3] == '/' || retryname[3] == 0))
-+		{
-+		  char *p, buf[1024];  /* XXX */
-+		  size_t len;
-+		  p = _itoa (__getpid (), &buf[sizeof buf], 10, 0);
-+		  len = &buf[sizeof buf] - p;
-+		  memcpy (buf, p, len);
-+		  strcpy (buf + len, &retryname[3]);
-+		  strcpy (retryname, buf);
-+
-+		  /* Do a normal retry on the remaining components.  */
-+		  __mach_port_mod_refs (__mach_task_self (), lastdir,
-+					MACH_PORT_RIGHT_SEND, 1);
-+		  startdir = lastdir;
-+		  file_name = retryname;
-+		}
-+	      else
-+		goto bad_magic;
-+	      break;
-+
- 	    default:
- 	    bad_magic:
--	      return EGRATUITOUS;
-+	      err = EGRATUITOUS;
-+	      goto out;
- 	    }
- 	  break;
- 
- 	default:
--	  return EGRATUITOUS;
-+	  err = EGRATUITOUS;
-+	  goto out;
-+	}
-+
-+      if (MACH_PORT_VALID (*result) && *result != lastdir)
-+	{
-+	  if (MACH_PORT_VALID (lastdir))
-+	    __mach_port_deallocate (__mach_task_self (), lastdir);
-+
-+	  lastdir = *result;
-+	  __mach_port_mod_refs (__mach_task_self (), lastdir,
-+				MACH_PORT_RIGHT_SEND, 1);
- 	}
- 
-       if (startdir != MACH_PORT_NULL)
-@@ -326,6 +374,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
- 	err = (*use_init_port) (dirport, &lookup_op);
-     } while (! err);
- 
-+out:
-+  if (MACH_PORT_VALID (lastdir))
-+    __mach_port_deallocate (__mach_task_self (), lastdir);
-+
-   return err;
- }
- weak_alias (__hurd_file_name_lookup_retry, hurd_file_name_lookup_retry)
diff --git a/gnu/packages/patches/grocsvs-dont-use-admiral.patch b/gnu/packages/patches/grocsvs-dont-use-admiral.patch
deleted file mode 100644
index cb976e19b0..0000000000
--- a/gnu/packages/patches/grocsvs-dont-use-admiral.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-python-admiral doesn't have a license
-https://github.com/nspies/admiral/issues/3
-
-diff --git a/setup.py b/setup.py
-index 692b6a0..568f381 100755
---- a/setup.py
-+++ b/setup.py
-@@ -20,7 +20,7 @@ setup(
-         'console_scripts' : ["grocsvs = grocsvs.main:main"]
-     },
- 
--    install_requires = ["admiral", "h5py", "networkx>=2.0", "pandas", "pybedtools", 
-+    install_requires = ["h5py", "networkx>=2.0", "pandas", "pybedtools", 
-                         "pyfaidx", "pysam>=0.10.0", "scipy", "ipython-cluster-helper",
-                         "pygraphviz", "psutil"],
- 
-diff --git a/src/grocsvs/jobmanagers.py b/src/grocsvs/jobmanagers.py
-index 6da0b58..112d7ff 100755
---- a/src/grocsvs/jobmanagers.py
-+++ b/src/grocsvs/jobmanagers.py
-@@ -41,34 +41,3 @@ class MultiprocessingCluster(Cluster):
-         pool = multiprocessing.Pool(processes=self.processes)
-         return pool.map_async(fn, args).get(999999)
- 
--
--class AdmiralCluster(Cluster):
--    def map(self, fn, args):
--        from admiral import jobmanagers, remote
--
--        cluster_options = self.cluster_settings.cluster_options.copy()
--        
--        scheduler = cluster_options.pop("scheduler")
--
--        jobmanager_class = jobmanagers.get_jobmanager(scheduler)
--        jobmanager = jobmanager_class(
--            batch_dir=self.batch_dir, log_dir=self.batch_dir)
--
--
--        if not "mem" in cluster_options:
--            cluster_options["mem"] = "16g"
--        if not "time" in cluster_options:
--            cluster_options["time"] = "12h"
--
--        jobs = []
--        #for i, arg in enumerate(args):
--
--        job_name = args[0].__class__.__name__
--        args = [[arg] for arg in args]
--        job = remote.run_remote(fn, jobmanager, job_name, args=args,
--                                array=True, overwrite=True, **cluster_options)
--
--        result = jobmanagers.wait_for_jobs([job], wait=5, progress=True)
--
--        if not result:
--            raise Exception("Some chunks failed to complete")
-diff --git a/src/grocsvs/pipeline.py b/src/grocsvs/pipeline.py
-index ab1bb2d..350976f 100755
---- a/src/grocsvs/pipeline.py
-+++ b/src/grocsvs/pipeline.py
-@@ -8,8 +8,7 @@ from grocsvs import utilities
- def make_jobmanager(jobmanager_settings, processes, batch_dir):
-     jobmanager_classes = {"IPCluster":jobmanagers.IPCluster,
-                           "local":    jobmanagers.LocalCluster,
--                          "multiprocessing": jobmanagers.MultiprocessingCluster,
--                          "admiral": jobmanagers.AdmiralCluster}
-+                          "multiprocessing": jobmanagers.MultiprocessingCluster}
- 
-     cls = jobmanager_classes[jobmanager_settings.cluster_type]
-     return cls(processes, jobmanager_settings, batch_dir)
diff --git a/gnu/packages/patches/hydra-disable-darcs-test.patch b/gnu/packages/patches/hydra-disable-darcs-test.patch
deleted file mode 100644
index 5d8e015b08..0000000000
--- a/gnu/packages/patches/hydra-disable-darcs-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- hydra-20150407.4c0e3e4/tests/evaluation-tests.pl	2015-04-15 12:00:19.000000000 -0500
-+++ hydra-20150407.4c0e3e4/tests/evaluation-tests.pl	2015-04-17 08:53:04.940301471 -0500
-@@ -7,7 +7,7 @@
- 
- my $db = Hydra::Model::DB->new;
- 
--use Test::Simple tests => 72;
-+use Test::Simple tests => 68;
- 
- hydra_setup($db);
- 
-@@ -103,13 +103,6 @@
-         uri => "$jobsBaseUri/hg-repo",
-         update => getcwd . "/jobs/hg-update.sh"
-     },
--    {
--        name => "darcs",
--        nixexpr => "darcs-input.nix",
--        type => "darcs",
--        uri => "$jobsBaseUri/darcs-repo",
--        update => getcwd . "/jobs/darcs-update.sh"
--    }
- );
- 
- foreach my $scm ( @scminputs ) {
diff --git a/gnu/packages/patches/inkscape-poppler-0.76.patch b/gnu/packages/patches/inkscape-poppler-0.76.patch
deleted file mode 100644
index 08e8303892..0000000000
--- a/gnu/packages/patches/inkscape-poppler-0.76.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-This patch adds support for Poppler 0.76 and later.
-
-Taken from upstream:
-<https://gitlab.com/inkscape/inkscape/commit/e831b034746f8dc3c3c1b88372751f6dcb974831>
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index 8484984bdf..4f798e35bf 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -421,7 +421,7 @@ void PdfParser::parse(Object *obj, GBool topLevel) {
- 	error(errInternal, -1, "Weird page contents");
-     	return;
-   }
--  parser = new Parser(xref, new Lexer(xref, obj), gFalse);
-+  parser = new _POPPLER_NEW_PARSER(xref, obj);
-   go(topLevel);
-   delete parser;
-   parser = nullptr;
-diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
-index 61a15083a0..5e8bc4ae90 100644
---- a/src/extension/internal/pdfinput/poppler-transition-api.h
-+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -14,6 +14,13 @@
- 
- #include <glib/poppler-features.h>
- 
-+#if POPPLER_CHECK_VERSION(0, 76, 0)
-+#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse)
-+#else
-+#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse)
-+#endif
-+
-+
- #if POPPLER_CHECK_VERSION(0, 72, 0)
- #define getCString c_str
- #endif
diff --git a/gnu/packages/patches/libvirt-create-machine-cgroup.patch b/gnu/packages/patches/libvirt-create-machine-cgroup.patch
deleted file mode 100644
index 585ac237e1..0000000000
--- a/gnu/packages/patches/libvirt-create-machine-cgroup.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 9ca0b2955edea162b255b428e493cd8ffac52167 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
- <rosen644835@gmail.com>
-Date: Fri, 1 Nov 2019 17:29:00 +0100
-Subject: [PATCH] vircgroup: Ensure /machine group is associated with its
- parent.
-
-Call first virCgroupNew on the parent group virCgroupNewPartition if
-it is available on before the creation of the child group.  This
-ensures that the creation of a first level group on the unified
-architecture, as the check at virCgroupV2ParseControllersFile as the
-parent file is there.
-
-Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1760233
----
- src/util/vircgroup.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
-index b46f20abfd..33c61f2d45 100644
---- a/src/util/vircgroup.c
-+++ b/src/util/vircgroup.c
-@@ -855,9 +855,6 @@ virCgroupNewPartition(const char *path,
-     if (virCgroupSetPartitionSuffix(path, &newPath) < 0)
-         goto cleanup;
- 
--    if (virCgroupNew(-1, newPath, NULL, controllers, group) < 0)
--        goto cleanup;
--
-     if (STRNEQ(newPath, "/")) {
-         char *tmp;
-         parentPath = g_strdup(newPath);
-@@ -868,7 +865,12 @@ virCgroupNewPartition(const char *path,
- 
-         if (virCgroupNew(-1, parentPath, NULL, controllers, &parent) < 0)
-             goto cleanup;
-+    }
- 
-+    if (virCgroupNew(-1, newPath, parent, controllers, group) < 0)
-+        goto cleanup;
-+
-+    if (parent) {
-         if (virCgroupMakeGroup(parent, *group, create, VIR_CGROUP_NONE) < 0)
-             goto cleanup;
-     }
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch b/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
deleted file mode 100644
index 51ab544d5e..0000000000
--- a/gnu/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3a75704e99a118f2d8a4d70f07781558bde85770 Mon Sep 17 00:00:00 2001
-From: Jian-Hong Pan <jhp@endlessos.org>
-Date: Thu, 24 Sep 2020 14:30:43 +0800
-Subject: [PATCH] arm64: dts: rockchip: disable USB type-c DisplayPort
-
-The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
-
-kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy
-kernel: cdn-dp: probe of fec00000.dp failed with error -22
-
-Then, the device halts all of the DRM related device jobs. For example,
-the operations: vop_component_ops, vop_component_ops and
-rockchip_dp_component_ops cannot be bound to corresponding devices. So,
-Xorg cannot find the correct DRM device.
-
-The USB type-C DisplayPort does not work for now. So, disable the
-DisplayPort node until the type-C phy work has been done.
-
-Link: https://patchwork.kernel.org/patch/11794141/#23639877
-Signed-off-by: Jian-Hong Pan <jhp@endlessos.org>
----
- arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-index 219b7507a10f..45769764425d 100644
---- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-@@ -380,7 +380,7 @@
- };
- 
- &cdn_dp {
--	status = "okay";
-+	status = "disabled";
- };
- 
- &cpu_b0 {
--- 
-2.30.2
-
diff --git a/gnu/packages/patches/marble-qt-add-qt-headers.patch b/gnu/packages/patches/marble-qt-add-qt-headers.patch
deleted file mode 100644
index 77c58317ad..0000000000
--- a/gnu/packages/patches/marble-qt-add-qt-headers.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-Adapted from Debian: https://salsa.debian.org/qt-kde-team/kde/marble/-/blob/debian/4%2517.08.3-3.1/debian/patches/qt5.11.patch
-Upstream status: Probably irrelevant, as this is an old version of this software.
-
-diff --git a/src/lib/marble/MergedLayerDecorator.cpp b/src/lib/marble/MergedLayerDecorator.cpp
-index 40f3ddb..bafff50 100644
---- a/src/lib/marble/MergedLayerDecorator.cpp
-+++ b/src/lib/marble/MergedLayerDecorator.cpp
-@@ -36,6 +36,7 @@
- 
- #include <QPointer>
- #include <QPainter>
-+#include <QPainterPath>
- 
- using namespace Marble;
- 
-diff --git a/src/lib/marble/VisiblePlacemark.cpp b/src/lib/marble/VisiblePlacemark.cpp
-index cfe08af..1a84006 100644
---- a/src/lib/marble/VisiblePlacemark.cpp
-+++ b/src/lib/marble/VisiblePlacemark.cpp
-@@ -22,6 +22,7 @@
- 
- #include <QApplication>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QPalette>
- #include <QPixmapCache>
- 
-diff --git a/src/lib/marble/graphicsview/FrameGraphicsItem.cpp b/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
-index 8a90526..065f245 100644
---- a/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
-+++ b/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
-@@ -18,6 +18,7 @@
- // Qt
- #include <QSizeF>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QPixmapCache>
- #include <QMargins>
- #include <qdrawutil.h>
-diff --git a/src/lib/marble/layers/GroundLayer.cpp b/src/lib/marble/layers/GroundLayer.cpp
-index 58d409f..df6d226 100644
---- a/src/lib/marble/layers/GroundLayer.cpp
-+++ b/src/lib/marble/layers/GroundLayer.cpp
-@@ -14,6 +14,9 @@
- #include "ViewportParams.h"
- #include "RenderState.h"
- 
-+#include <QPainter>
-+#include <QPainterPath>
-+
- namespace Marble
- {
- 
-diff --git a/src/plugins/render/compass/CompassFloatItem.cpp b/src/plugins/render/compass/CompassFloatItem.cpp
-index d8dc021..66095cc 100644
---- a/src/plugins/render/compass/CompassFloatItem.cpp
-+++ b/src/plugins/render/compass/CompassFloatItem.cpp
-@@ -19,6 +19,7 @@
- #include <QRect>
- #include <QColor>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QPushButton>
- #include <QSvgRenderer>
- 
-diff --git a/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp b/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
-index a790c16..96f5bed 100644
---- a/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
-+++ b/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
-@@ -31,6 +31,7 @@
- #include <QContextMenuEvent>
- #include <QRect>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QPushButton>
- #include <QMenu>
- #include <QMouseEvent>
-diff --git a/src/plugins/render/foursquare/FoursquareItem.cpp b/src/plugins/render/foursquare/FoursquareItem.cpp
-index d9e1f57..ef80472 100644
---- a/src/plugins/render/foursquare/FoursquareItem.cpp
-+++ b/src/plugins/render/foursquare/FoursquareItem.cpp
-@@ -13,6 +13,8 @@
- #include "ViewportParams.h"
- 
- #include <QFontMetrics>
-+#include <QPainter>
-+#include <QPainterPath>
-  
- namespace Marble
- {
-diff --git a/src/plugins/render/gpsinfo/GpsInfo.cpp b/src/plugins/render/gpsinfo/GpsInfo.cpp
-index 522e907..20fd75a 100644
---- a/src/plugins/render/gpsinfo/GpsInfo.cpp
-+++ b/src/plugins/render/gpsinfo/GpsInfo.cpp
-@@ -21,6 +21,8 @@
- #include "ViewportParams.h"
- #include "GeoDataAccuracy.h"
- 
-+#include <QIcon>
-+
- namespace Marble
- {
- 
-diff --git a/src/plugins/render/license/License.cpp b/src/plugins/render/license/License.cpp
-index 511dfc0..9436083 100644
---- a/src/plugins/render/license/License.cpp
-+++ b/src/plugins/render/license/License.cpp
-@@ -23,6 +23,7 @@
- #include <QCommonStyle>
- #include <QContextMenuEvent>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QLabel>
- #include <QMenu>
- #include <QMouseEvent>
-diff --git a/src/plugins/render/notes/NotesItem.cpp b/src/plugins/render/notes/NotesItem.cpp
-index 9d0961f..0c9fe99 100644
---- a/src/plugins/render/notes/NotesItem.cpp
-+++ b/src/plugins/render/notes/NotesItem.cpp
-@@ -9,6 +9,7 @@
- #include "MarbleDirs.h"
- 
- #include <QPainter>
-+#include <QPainterPath>
- #include <QRect>
- 
- using namespace Marble;
-diff --git a/src/plugins/render/postalcode/PostalCodeItem.cpp b/src/plugins/render/postalcode/PostalCodeItem.cpp
-index 772c0b2..0ff7957 100644
---- a/src/plugins/render/postalcode/PostalCodeItem.cpp
-+++ b/src/plugins/render/postalcode/PostalCodeItem.cpp
-@@ -17,6 +17,7 @@
- // Qt
- #include <QFontMetrics>
- #include <QPainter>
-+#include <QPainterPath>
- 
- using namespace Marble;
- 
-diff --git a/src/plugins/render/progress/ProgressFloatItem.cpp b/src/plugins/render/progress/ProgressFloatItem.cpp
-index a465857..6e2452c 100644
---- a/src/plugins/render/progress/ProgressFloatItem.cpp
-+++ b/src/plugins/render/progress/ProgressFloatItem.cpp
-@@ -22,6 +22,7 @@
- #include <QColor>
- #include <QPaintDevice>
- #include <QPainter>
-+#include <QPainterPath>
- 
- namespace Marble
- {
-diff --git a/src/plugins/render/satellites/SatellitesPlugin.cpp b/src/plugins/render/satellites/SatellitesPlugin.cpp
-index 04d8321..0a43d24 100644
---- a/src/plugins/render/satellites/SatellitesPlugin.cpp
-+++ b/src/plugins/render/satellites/SatellitesPlugin.cpp
-@@ -25,6 +25,7 @@
- 
- #include "ui_SatellitesConfigDialog.h"
- 
-+#include <QAction>
- #include <QUrl>
- #include <QMouseEvent>
- 
-diff --git a/src/plugins/render/speedometer/Speedometer.cpp b/src/plugins/render/speedometer/Speedometer.cpp
-index 6e9c532..f40a174 100644
---- a/src/plugins/render/speedometer/Speedometer.cpp
-+++ b/src/plugins/render/speedometer/Speedometer.cpp
-@@ -19,6 +19,8 @@
- #include "MarbleGraphicsGridLayout.h"
- #include "ViewportParams.h"
- 
-+#include <QIcon>
-+
- namespace Marble
- {
- 
-diff --git a/src/plugins/render/stars/StarsPlugin.cpp b/src/plugins/render/stars/StarsPlugin.cpp
-index 6599545..482680f 100644
---- a/src/plugins/render/stars/StarsPlugin.cpp
-+++ b/src/plugins/render/stars/StarsPlugin.cpp
-@@ -19,6 +19,8 @@
- #include <QContextMenuEvent>
- #include <QMenu>
- #include <QColorDialog>
-+#include <QPainter>
-+#include <QPainterPath>
- #include <qmath.h>
- 
- #include "MarbleClock.h"
diff --git a/gnu/packages/patches/maven-enforcer-api-fix-old-dependencies.patch b/gnu/packages/patches/maven-enforcer-api-fix-old-dependencies.patch
deleted file mode 100644
index 98a0c8a395..0000000000
--- a/gnu/packages/patches/maven-enforcer-api-fix-old-dependencies.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From eccc46eaf7903a8e837813795498b12c078faaea Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Wed, 11 Mar 2020 21:53:32 +0100
-Subject: [PATCH] Fix old dependencies
-
----
- .../enforcer/AbstractBanDependencies.java     |  2 +-
- .../enforcer/BanTransitiveDependencies.java   |  2 +-
- .../enforcer/DependencyConvergence.java       | 17 ++++++++---------
- .../enforcer/RequireUpperBoundDeps.java       | 19 +++++++++----------
- .../enforcer/utils/DependencyVersionMap.java  |  6 +++---
- 5 files changed, 22 insertions(+), 24 deletions(-)
-
-diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
-index 2888a61..2b944b7 100644
---- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
-+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
-@@ -119,7 +119,7 @@ public abstract class AbstractBanDependencies
-         Set<Artifact> dependencies = null;
-         try
-         {
--            DependencyNode node = graphBuilder.buildDependencyGraph( project, null );
-+            DependencyNode node = graphBuilder.buildDependencyGraph( project.getProjectBuildingRequest(), null );
-             if ( searchTransitive )
-             {
-                 dependencies = ArtifactUtils.getAllDescendants( node );
-diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
-index 6e1dcd4..1b964ba 100644
---- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
-+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
-@@ -158,7 +158,7 @@ public class BanTransitiveDependencies
-         try
-         {
-             MavenProject project = (MavenProject) helper.evaluate( "${project}" );
--            rootNode = createDependencyGraphBuilder().buildDependencyGraph( project, null );
-+            rootNode = createDependencyGraphBuilder().buildDependencyGraph( project.getProjectBuildingRequest(), null );
-         }
-         catch ( Exception e )
-         {
-diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
-index 684f984..ca7ad3a 100644
---- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
-+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
-@@ -35,9 +35,9 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
- import org.apache.maven.plugin.logging.Log;
- import org.apache.maven.plugins.enforcer.utils.DependencyVersionMap;
- import org.apache.maven.project.MavenProject;
--import org.apache.maven.shared.dependency.tree.DependencyNode;
--import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
--import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
-+import org.apache.maven.shared.dependency.graph.DependencyNode;
-+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
-+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
- import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
- import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
- 
-@@ -60,7 +60,7 @@ public class DependencyConvergence
-     // CHECKSTYLE_OFF: LineLength
-     /**
-      * Uses the {@link EnforcerRuleHelper} to populate the values of the
--     * {@link DependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
-+     * {@link DependencyGraphBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
-      * factory method. <br/>
-      * This method simply exists to hide all the ugly lookup that the {@link EnforcerRuleHelper} has to do.
-      * 
-@@ -75,16 +75,15 @@ public class DependencyConvergence
-         try
-         {
-             MavenProject project = (MavenProject) helper.evaluate( "${project}" );
--            DependencyTreeBuilder dependencyTreeBuilder =
--                (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class );
-+            DependencyGraphBuilder dependencyTreeBuilder =
-+                (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
-             ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
-             ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
-             ArtifactMetadataSource metadataSource =
-                 (ArtifactMetadataSource) helper.getComponent( ArtifactMetadataSource.class );
-             ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class );
-             ArtifactFilter filter = null; // we need to evaluate all scopes
--            DependencyNode node = dependencyTreeBuilder.buildDependencyTree( project, repository, factory,
--                                                                             metadataSource, filter, collector );
-+            DependencyNode node = dependencyTreeBuilder.buildDependencyGraph( project.getProjectBuildingRequest(), filter);
-             return node;
-         }
-         catch ( ExpressionEvaluationException e )
-@@ -95,7 +94,7 @@ public class DependencyConvergence
-         {
-             throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e );
-         }
--        catch ( DependencyTreeBuilderException e )
-+        catch ( DependencyGraphBuilderException e )
-         {
-             throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e );
-         }
-diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
-index 458554a..2de9870 100644
---- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
-+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
-@@ -38,10 +38,10 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
- import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
- import org.apache.maven.plugin.logging.Log;
- import org.apache.maven.project.MavenProject;
--import org.apache.maven.shared.dependency.tree.DependencyNode;
--import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
--import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
--import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
-+import org.apache.maven.shared.dependency.graph.DependencyNode;
-+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
-+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
-+import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
- import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
- import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
- 
-@@ -91,7 +91,7 @@ public class RequireUpperBoundDeps
-     // CHECKSTYLE_OFF: LineLength
-     /**
-      * Uses the {@link EnforcerRuleHelper} to populate the values of the
--     * {@link DependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
-+     * {@link DependencyGraphBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
-      * factory method. <br/>
-      * This method simply exists to hide all the ugly lookup that the {@link EnforcerRuleHelper} has to do.
-      * 
-@@ -106,8 +106,8 @@ public class RequireUpperBoundDeps
-         try
-         {
-             MavenProject project = (MavenProject) helper.evaluate( "${project}" );
--            DependencyTreeBuilder dependencyTreeBuilder =
--                (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class );
-+            DependencyGraphBuilder dependencyTreeBuilder =
-+                (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
-             ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
-             ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
-             ArtifactMetadataSource metadataSource =
-@@ -115,8 +115,7 @@ public class RequireUpperBoundDeps
-             ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class );
-             ArtifactFilter filter = null; // we need to evaluate all scopes
-             DependencyNode node =
--                dependencyTreeBuilder.buildDependencyTree( project, repository, factory, metadataSource, filter,
--                                                           collector );
-+                dependencyTreeBuilder.buildDependencyGraph( project.getProjectBuildingRequest(), filter);
-             return node;
-         }
-         catch ( ExpressionEvaluationException e )
-@@ -127,7 +126,7 @@ public class RequireUpperBoundDeps
-         {
-             throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e );
-         }
--        catch ( DependencyTreeBuilderException e )
-+        catch ( DependencyGraphBuilderException e )
-         {
-             throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e );
-         }
-diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
-index b6213fa..2c2a645 100644
---- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
-+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
-@@ -26,8 +26,8 @@ import java.util.Map;
- 
- import org.apache.maven.artifact.Artifact;
- import org.apache.maven.plugin.logging.Log;
--import org.apache.maven.shared.dependency.tree.DependencyNode;
--import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
-+import org.apache.maven.shared.dependency.graph.DependencyNode;
-+import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
- 
- /**
-  * @author Brian Fox
-@@ -132,4 +132,4 @@ public class DependencyVersionMap
-         }
-         return output;
-     }
--}
-\ No newline at end of file
-+}
--- 
-2.24.1
-
diff --git a/gnu/packages/patches/mescc-tools-boot.patch b/gnu/packages/patches/mescc-tools-boot.patch
deleted file mode 100644
index 2bce8a49c2..0000000000
--- a/gnu/packages/patches/mescc-tools-boot.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From c184e95096881a13f29ebd7fc507fe305d3d8de5 Mon Sep 17 00:00:00 2001
-From: Jan Nieuwenhuizen <janneke@gnu.org>
-Date: Thu, 4 Oct 2018 22:03:31 +0200
-Subject: [PATCH] build.sh: Update for mes 0.18.
-
----
- build.sh   | 92 +++++++++++++++++++++++++++++++++++++-----------------
- install.sh |  6 ++--
- 2 files changed, 66 insertions(+), 32 deletions(-)
-
-diff --git a/build.sh b/build.sh
-index 335a7bb..19a0029 100755
---- a/build.sh
-+++ b/build.sh
-@@ -18,7 +18,8 @@
- # along with mescc-tools.  If not, see <http://www.gnu.org/licenses/>.
- 
- set -eux
--MES_SEED=${MES_SEED-../mescc-tools-seed/libs}
-+MES_PREFIX=${MES_PREFIX-../mes}
-+MES_SEED=${MES_SEED-../mes-seed}
- MESCC_TOOLS_SEED=${MESCC_TOOLS_SEED-../mescc-tools-seed}
- 
- #########################################
-@@ -32,15 +33,23 @@ MESCC_TOOLS_SEED=${MESCC_TOOLS_SEED-../mescc-tools-seed}
- # blood-elf
- # Create proper debug segment
- $MESCC_TOOLS_SEED/blood-elf\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/blood-elf.M1\
-     -o blood-elf-blood-elf-footer.M1
- 
- # Build
- # M1-macro phase
- $MESCC_TOOLS_SEED/M1 --LittleEndian --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/blood-elf.M1\
-     -f blood-elf-blood-elf-footer.M1\
-     -o blood-elf.hex2
-@@ -49,7 +58,7 @@ $MESCC_TOOLS_SEED/hex2\
-     --LittleEndian\
-     --Architecture 1\
-     --BaseAddress 0x1000000\
--    -f $MES_SEED/elf32-header.hex2\
-+    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-     -f blood-elf.hex2\
-     --exec_enable\
-     -o bin/blood-elf
-@@ -65,9 +74,13 @@ $MESCC_TOOLS_SEED/hex2\
- $MESCC_TOOLS_SEED/M1 \
-     --LittleEndian\
-     --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/M1.M1\
-     -f M1-footer.M1\
-     -o M1.hex2
-@@ -76,7 +89,7 @@ $MESCC_TOOLS_SEED/hex2 \
-     --LittleEndian\
-     --Architecture 1\
-     --BaseAddress 0x1000000\
--    -f $MES_SEED/elf32-header.hex2\
-+    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-     -f M1.hex2\
-     --exec_enable\
-     -o bin/M1
-@@ -92,9 +105,13 @@ $MESCC_TOOLS_SEED/hex2 \
- ./bin/M1 \
-     --LittleEndian\
-     --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/hex2.M1\
-     -f hex2-footer.M1\
-     -o hex2.hex2
-@@ -103,10 +120,10 @@ $MESCC_TOOLS_SEED/hex2 \
-       --LittleEndian\
-       --Architecture 1\
-       --BaseAddress 0x1000000\
--      -f $MES_SEED/elf32-header.hex2\
-+      -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-       -f hex2.hex2\
-       --exec_enable\
--      -o bin/hex2
-+      -o bin/hex2-0
- 
- #########################
- # Phase-1 Self-host     #
-@@ -123,18 +140,22 @@ $MESCC_TOOLS_SEED/hex2 \
- ./bin/M1 \
-     --LittleEndian\
-     --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/blood-elf.M1\
-     -f blood-elf-blood-elf-footer.M1\
-     -o blood-elf.hex2
- # Hex2-linker phase
--./bin/hex2 \
-+./bin/hex2-0 \
-     --LittleEndian\
-     --Architecture 1\
-     --BaseAddress 0x1000000\
--    -f $MES_SEED/elf32-header.hex2\
-+    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-     -f blood-elf.hex2\
-     --exec_enable\
-     -o blood-elf
-@@ -150,18 +171,22 @@ $MESCC_TOOLS_SEED/hex2 \
- ./bin/M1 \
-     --LittleEndian\
-     --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/M1.M1\
-     -f M1-footer.M1\
-     -o M1.hex2
- # Hex2-linker phase
--./bin/hex2 \
-+./bin/hex2-0 \
-     --LittleEndian\
-     --Architecture 1\
-     --BaseAddress 0x1000000\
--    -f $MES_SEED/elf32-header.hex2\
-+    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-     -f M1.hex2\
-     --exec_enable\
-     -o bin/M1
-@@ -177,18 +202,27 @@ $MESCC_TOOLS_SEED/hex2 \
- ./bin/M1 \
-     --LittleEndian\
-     --Architecture 1\
--    -f $MES_SEED/x86.M1\
--    -f $MES_SEED/crt1.M1\
--    -f $MES_SEED/libc+tcc-mes.M1\
-+    -f $MES_PREFIX/lib/x86-mes/x86.M1\
-+    -f $MES_SEED/x86-mes/crt1.S\
-+    -f $MES_SEED/x86-mes/libc+tcc.S\
-+    -f $MESCC_TOOLS_SEED/file_print.M1\
-+    -f $MESCC_TOOLS_SEED/match.M1\
-+    -f $MESCC_TOOLS_SEED/numerate_number.M1\
-+    -f $MESCC_TOOLS_SEED/string.M1\
-     -f $MESCC_TOOLS_SEED/hex2.M1\
-     -f hex2-footer.M1\
-     -o hex2.hex2
- # Hex2-linker phase
--./bin/hex2 \
-+./bin/hex2-0 \
-       --LittleEndian\
-       --Architecture 1\
-       --BaseAddress 0x1000000\
--      -f $MES_SEED/elf32-header.hex2\
-+      -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
-       -f hex2.hex2\
-       --exec_enable\
-       -o bin/hex2
-+
-+# TODO
-+touch bin/exec_enable
-+touch bin/get_machine
-+touch bin/kaem
-diff --git a/install.sh b/install.sh
-index e4dccff..29e58d6 100644
---- a/install.sh
-+++ b/install.sh
-@@ -18,6 +18,6 @@
- PREFIX=${PREFIX-usr}
- 
- mkdir -p "$PREFIX/bin"
--cp blood-elf "$PREFIX/bin/blood-elf"
--cp hex2 "$PREFIX/bin/hex2"
--cp M1 "$PREFIX/bin/M1"
-+cp bin/blood-elf "$PREFIX/bin/blood-elf"
-+cp bin/hex2 "$PREFIX/bin/hex2"
-+cp bin/M1 "$PREFIX/bin/M1"
--- 
-2.18.0
-
diff --git a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch
deleted file mode 100644
index 4343c87795..0000000000
--- a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-Copied from upstream nettle git repository.
-Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
-
-From 485b5e2820a057e873b1ba812fdb39cae4adf98c Mon Sep 17 00:00:00 2001
-From: Niels Möller <nisse@lysator.liu.se>
-Date: Mon, 17 May 2021 20:55:26 +0200
-Subject: [PATCH 1/2] Change _rsa_sec_compute_root_tr to take a fix input size.
-
-Improves consistency with _rsa_sec_compute_root, and fixes zero-input bug.
----
- ChangeLog                    | 15 +++++++++
- rsa-decrypt-tr.c             |  7 ++---
- rsa-internal.h               |  4 +--
- rsa-sec-decrypt.c            |  9 ++++--
- rsa-sign-tr.c                | 61 +++++++++++++++++-------------------
- testsuite/rsa-encrypt-test.c | 14 ++++++++-
- 6 files changed, 68 insertions(+), 42 deletions(-)
-
-diff --git a/rsa-decrypt-tr.c b/rsa-decrypt-tr.c
-index 0224c0b7..927a8915 100644
---- a/rsa-decrypt-tr.c
-+++ b/rsa-decrypt-tr.c
-@@ -52,14 +52,13 @@ rsa_decrypt_tr(const struct rsa_public_key *pub,
-   mp_size_t key_limb_size;
-   int res;
- 
--  key_limb_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
-+  key_limb_size = mpz_size(pub->n);
- 
-   TMP_GMP_ALLOC (m, key_limb_size);
-   TMP_GMP_ALLOC (em, key->size);
-+  mpz_limbs_copy(m, gibberish, key_limb_size);
- 
--  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m,
--				  mpz_limbs_read(gibberish),
--				  mpz_size(gibberish));
-+  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m, m);
- 
-   mpn_get_base256 (em, key->size, m, key_limb_size);
- 
-diff --git a/rsa-internal.h b/rsa-internal.h
-index b828e451..f66a7df0 100644
---- a/rsa-internal.h
-+++ b/rsa-internal.h
-@@ -78,11 +78,11 @@ _rsa_sec_compute_root(const struct rsa_private_key *key,
-                       mp_limb_t *scratch);
- 
- /* Safe side-channel silent variant, using RSA blinding, and checking the
-- * result after CRT. */
-+ * result after CRT. In-place calls, with x == m, is allowed. */
- int
- _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
- 			 const struct rsa_private_key *key,
- 			 void *random_ctx, nettle_random_func *random,
--			 mp_limb_t *x, const mp_limb_t *m, size_t mn);
-+			 mp_limb_t *x, const mp_limb_t *m);
- 
- #endif /* NETTLE_RSA_INTERNAL_H_INCLUDED */
-diff --git a/rsa-sec-decrypt.c b/rsa-sec-decrypt.c
-index 6866e7c8..fc4757a0 100644
---- a/rsa-sec-decrypt.c
-+++ b/rsa-sec-decrypt.c
-@@ -58,9 +58,12 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
-   TMP_GMP_ALLOC (m, mpz_size(pub->n));
-   TMP_GMP_ALLOC (em, key->size);
- 
--  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m,
--				  mpz_limbs_read(gibberish),
--				  mpz_size(gibberish));
-+  /* We need a copy because m can be shorter than key_size,
-+   * but _rsa_sec_compute_root_tr expect all inputs to be
-+   * normalized to a key_size long buffer length */
-+  mpz_limbs_copy(m, gibberish, mpz_size(pub->n));
-+
-+  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m, m);
- 
-   mpn_get_base256 (em, key->size, m, mpz_size(pub->n));
- 
-diff --git a/rsa-sign-tr.c b/rsa-sign-tr.c
-index f824c4ca..9e137c7a 100644
---- a/rsa-sign-tr.c
-+++ b/rsa-sign-tr.c
-@@ -131,35 +131,34 @@ int
- _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
- 			 const struct rsa_private_key *key,
- 			 void *random_ctx, nettle_random_func *random,
--			 mp_limb_t *x, const mp_limb_t *m, size_t mn)
-+			 mp_limb_t *x, const mp_limb_t *m)
- {
-+  mp_size_t nn;
-   mpz_t mz;
-   mpz_t xz;
-   int res;
- 
--  mpz_init(mz);
-   mpz_init(xz);
- 
--  mpn_copyi(mpz_limbs_write(mz, mn), m, mn);
--  mpz_limbs_finish(mz, mn);
-+  nn = mpz_size (pub->n);
- 
--  res = rsa_compute_root_tr(pub, key, random_ctx, random, xz, mz);
-+  res = rsa_compute_root_tr(pub, key, random_ctx, random, xz,
-+			    mpz_roinit_n(mz, m, nn));
- 
-   if (res)
--    mpz_limbs_copy(x, xz, mpz_size(pub->n));
-+    mpz_limbs_copy(x, xz, nn);
- 
--  mpz_clear(mz);
-   mpz_clear(xz);
-   return res;
- }
- #else
- /* Blinds m, by computing c = m r^e (mod n), for a random r. Also
--   returns the inverse (ri), for use by rsa_unblind. */
-+   returns the inverse (ri), for use by rsa_unblind. Must have c != m,
-+   no in-place operation.*/
- static void
- rsa_sec_blind (const struct rsa_public_key *pub,
-                void *random_ctx, nettle_random_func *random,
--               mp_limb_t *c, mp_limb_t *ri, const mp_limb_t *m,
--               mp_size_t mn)
-+               mp_limb_t *c, mp_limb_t *ri, const mp_limb_t *m)
- {
-   const mp_limb_t *ep = mpz_limbs_read (pub->e);
-   const mp_limb_t *np = mpz_limbs_read (pub->n);
-@@ -177,15 +176,15 @@ rsa_sec_blind (const struct rsa_public_key *pub,
- 
-   /* c = m*(r^e) mod n */
-   itch = mpn_sec_powm_itch(nn, ebn, nn);
--  i2 = mpn_sec_mul_itch(nn, mn);
-+  i2 = mpn_sec_mul_itch(nn, nn);
-   itch = MAX(itch, i2);
--  i2 = mpn_sec_div_r_itch(nn + mn, nn);
-+  i2 = mpn_sec_div_r_itch(2*nn, nn);
-   itch = MAX(itch, i2);
-   i2 = mpn_sec_invert_itch(nn);
-   itch = MAX(itch, i2);
- 
--  TMP_GMP_ALLOC (tp, nn + mn + itch);
--  scratch = tp + nn + mn;
-+  TMP_GMP_ALLOC (tp, 2*nn  + itch);
-+  scratch = tp + 2*nn;
- 
-   /* ri = r^(-1) */
-   do
-@@ -198,9 +197,8 @@ rsa_sec_blind (const struct rsa_public_key *pub,
-   while (!mpn_sec_invert (ri, tp, np, nn, 2 * nn * GMP_NUMB_BITS, scratch));
- 
-   mpn_sec_powm (c, rp, nn, ep, ebn, np, nn, scratch);
--  /* normally mn == nn, but m can be smaller in some cases */
--  mpn_sec_mul (tp, c, nn, m, mn, scratch);
--  mpn_sec_div_r (tp, nn + mn, np, nn, scratch);
-+  mpn_sec_mul (tp, c, nn, m, nn, scratch);
-+  mpn_sec_div_r (tp, 2*nn, np, nn, scratch);
-   mpn_copyi(c, tp, nn);
- 
-   TMP_GMP_FREE (r);
-@@ -208,7 +206,7 @@ rsa_sec_blind (const struct rsa_public_key *pub,
-   TMP_GMP_FREE (tp);
- }
- 
--/* m = c ri mod n */
-+/* m = c ri mod n. Allows x == c. */
- static void
- rsa_sec_unblind (const struct rsa_public_key *pub,
-                  mp_limb_t *x, mp_limb_t *ri, const mp_limb_t *c)
-@@ -299,7 +297,7 @@ int
- _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
- 			 const struct rsa_private_key *key,
- 			 void *random_ctx, nettle_random_func *random,
--			 mp_limb_t *x, const mp_limb_t *m, size_t mn)
-+			 mp_limb_t *x, const mp_limb_t *m)
- {
-   TMP_GMP_DECL (c, mp_limb_t);
-   TMP_GMP_DECL (ri, mp_limb_t);
-@@ -307,7 +305,7 @@ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
-   size_t key_limb_size;
-   int ret;
- 
--  key_limb_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
-+  key_limb_size = mpz_size(pub->n);
- 
-   /* mpz_powm_sec handles only odd moduli. If p, q or n is even, the
-      key is invalid and rejected by rsa_private_key_prepare. However,
-@@ -321,19 +319,18 @@ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
-     }
- 
-   assert(mpz_size(pub->n) == key_limb_size);
--  assert(mn <= key_limb_size);
- 
-   TMP_GMP_ALLOC (c, key_limb_size);
-   TMP_GMP_ALLOC (ri, key_limb_size);
-   TMP_GMP_ALLOC (scratch, _rsa_sec_compute_root_itch(key));
- 
--  rsa_sec_blind (pub, random_ctx, random, x, ri, m, mn);
-+  rsa_sec_blind (pub, random_ctx, random, c, ri, m);
- 
--  _rsa_sec_compute_root(key, c, x, scratch);
-+  _rsa_sec_compute_root(key, x, c, scratch);
- 
--  ret = rsa_sec_check_root(pub, c, x);
-+  ret = rsa_sec_check_root(pub, x, c);
- 
--  rsa_sec_unblind(pub, x, ri, c);
-+  rsa_sec_unblind(pub, x, ri, x);
- 
-   cnd_mpn_zero(1 - ret, x, key_limb_size);
- 
-@@ -357,17 +354,17 @@ rsa_compute_root_tr(const struct rsa_public_key *pub,
- 		    mpz_t x, const mpz_t m)
- {
-   TMP_GMP_DECL (l, mp_limb_t);
-+  mp_size_t nn = mpz_size(pub->n);
-   int res;
- 
--  mp_size_t l_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
--  TMP_GMP_ALLOC (l, l_size);
-+  TMP_GMP_ALLOC (l, nn);
-+  mpz_limbs_copy(l, m, nn);
- 
--  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, l,
--				  mpz_limbs_read(m), mpz_size(m));
-+  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, l, l);
-   if (res) {
--    mp_limb_t *xp = mpz_limbs_write (x, l_size);
--    mpn_copyi (xp, l, l_size);
--    mpz_limbs_finish (x, l_size);
-+    mp_limb_t *xp = mpz_limbs_write (x, nn);
-+    mpn_copyi (xp, l, nn);
-+    mpz_limbs_finish (x, nn);
-   }
- 
-   TMP_GMP_FREE (l);
-diff --git a/testsuite/rsa-encrypt-test.c b/testsuite/rsa-encrypt-test.c
-index 87525f78..d3bc374b 100644
---- a/testsuite/rsa-encrypt-test.c
-+++ b/testsuite/rsa-encrypt-test.c
-@@ -19,6 +19,7 @@ test_main(void)
-   uint8_t after;
- 
-   mpz_t gibberish;
-+  mpz_t zero;
- 
-   rsa_private_key_init(&key);
-   rsa_public_key_init(&pub);
-@@ -101,6 +102,17 @@ test_main(void)
-   ASSERT(decrypted[decrypted_length] == after);
-   ASSERT(decrypted[0] == 'A');
- 
-+  /* Test zero input. */
-+  mpz_init_set_ui (zero, 0);
-+  decrypted_length = msg_length;
-+  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, zero));
-+  ASSERT(!rsa_decrypt_tr(&pub, &key,
-+			 &lfib, (nettle_random_func *) knuth_lfib_random,
-+			 &decrypted_length, decrypted, zero));
-+  ASSERT(!rsa_sec_decrypt(&pub, &key,
-+			  &lfib, (nettle_random_func *) knuth_lfib_random,
-+			  decrypted_length, decrypted, zero));
-+  ASSERT(decrypted_length == msg_length);
- 
-   /* Test invalid key. */
-   mpz_add_ui (key.q, key.q, 2);
-@@ -112,6 +124,6 @@ test_main(void)
-   rsa_private_key_clear(&key);
-   rsa_public_key_clear(&pub);
-   mpz_clear(gibberish);
-+  mpz_clear(zero);
-   free(decrypted);
- }
--  
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch
deleted file mode 100644
index 5f19bd80d3..0000000000
--- a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-Copied from upstream nettle git repository.
-Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
-
-From 0ad0b5df315665250dfdaa4a1e087f4799edaefe Mon Sep 17 00:00:00 2001
-From: Niels Möller <nisse@lysator.liu.se>
-Date: Mon, 17 May 2021 22:02:47 +0200
-Subject: [PATCH 2/2] Add input check to rsa_decrypt family of functions.
-
----
- ChangeLog                    |  8 ++++++++
- rsa-decrypt-tr.c             |  4 ++++
- rsa-decrypt.c                | 10 ++++++++++
- rsa-sec-decrypt.c            |  4 ++++
- rsa.h                        |  5 +++--
- testsuite/rsa-encrypt-test.c | 38 ++++++++++++++++++++++++++++++------
- 6 files changed, 61 insertions(+), 8 deletions(-)
-
-diff --git a/rsa-decrypt-tr.c b/rsa-decrypt-tr.c
-index 927a8915..4a9e9d74 100644
---- a/rsa-decrypt-tr.c
-+++ b/rsa-decrypt-tr.c
-@@ -52,6 +52,10 @@ rsa_decrypt_tr(const struct rsa_public_key *pub,
-   mp_size_t key_limb_size;
-   int res;
- 
-+  /* First check that input is in range. */
-+  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, pub->n) >= 0)
-+    return 0;
-+
-   key_limb_size = mpz_size(pub->n);
- 
-   TMP_GMP_ALLOC (m, key_limb_size);
-diff --git a/rsa-decrypt.c b/rsa-decrypt.c
-index 7681439d..540d8baa 100644
---- a/rsa-decrypt.c
-+++ b/rsa-decrypt.c
-@@ -48,6 +48,16 @@ rsa_decrypt(const struct rsa_private_key *key,
-   int res;
- 
-   mpz_init(m);
-+
-+  /* First check that input is in range. Since we don't have the
-+     public key available here, we need to reconstruct n. */
-+  mpz_mul (m, key->p, key->q);
-+  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, m) >= 0)
-+    {
-+      mpz_clear (m);
-+      return 0;
-+    }
-+
-   rsa_compute_root(key, m, gibberish);
- 
-   res = pkcs1_decrypt (key->size, m, length, message);
-diff --git a/rsa-sec-decrypt.c b/rsa-sec-decrypt.c
-index fc4757a0..4c98958d 100644
---- a/rsa-sec-decrypt.c
-+++ b/rsa-sec-decrypt.c
-@@ -55,6 +55,10 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
-   TMP_GMP_DECL (em, uint8_t);
-   int res;
- 
-+  /* First check that input is in range. */
-+  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, pub->n) >= 0)
-+    return 0;
-+
-   TMP_GMP_ALLOC (m, mpz_size(pub->n));
-   TMP_GMP_ALLOC (em, key->size);
- 
-diff --git a/rsa.h b/rsa.h
-index 3b10155f..2dd35a2d 100644
---- a/rsa.h
-+++ b/rsa.h
-@@ -428,13 +428,14 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
- 	        size_t length, uint8_t *message,
- 	        const mpz_t gibberish);
- 
--/* Compute x, the e:th root of m. Calling it with x == m is allowed. */
-+/* Compute x, the e:th root of m. Calling it with x == m is allowed.
-+   It is required that 0 <= m < n. */
- void
- rsa_compute_root(const struct rsa_private_key *key,
- 		 mpz_t x, const mpz_t m);
- 
- /* Safer variant, using RSA blinding, and checking the result after
--   CRT. */
-+   CRT. It is required that 0 <= m < n. */
- int
- rsa_compute_root_tr(const struct rsa_public_key *pub,
- 		    const struct rsa_private_key *key,
-diff --git a/testsuite/rsa-encrypt-test.c b/testsuite/rsa-encrypt-test.c
-index d3bc374b..d1a440f6 100644
---- a/testsuite/rsa-encrypt-test.c
-+++ b/testsuite/rsa-encrypt-test.c
-@@ -19,11 +19,12 @@ test_main(void)
-   uint8_t after;
- 
-   mpz_t gibberish;
--  mpz_t zero;
-+  mpz_t bad_input;
- 
-   rsa_private_key_init(&key);
-   rsa_public_key_init(&pub);
-   mpz_init(gibberish);
-+  mpz_init(bad_input);
- 
-   knuth_lfib_init(&lfib, 17);
-   
-@@ -103,15 +104,40 @@ test_main(void)
-   ASSERT(decrypted[0] == 'A');
- 
-   /* Test zero input. */
--  mpz_init_set_ui (zero, 0);
-+  mpz_set_ui (bad_input, 0);
-   decrypted_length = msg_length;
--  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, zero));
-+  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
-   ASSERT(!rsa_decrypt_tr(&pub, &key,
- 			 &lfib, (nettle_random_func *) knuth_lfib_random,
--			 &decrypted_length, decrypted, zero));
-+			 &decrypted_length, decrypted, bad_input));
-   ASSERT(!rsa_sec_decrypt(&pub, &key,
- 			  &lfib, (nettle_random_func *) knuth_lfib_random,
--			  decrypted_length, decrypted, zero));
-+			  decrypted_length, decrypted, bad_input));
-+  ASSERT(decrypted_length == msg_length);
-+
-+  /* Test input that is slightly larger than n */
-+  mpz_add(bad_input, gibberish, pub.n);
-+  decrypted_length = msg_length;
-+  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
-+  ASSERT(!rsa_decrypt_tr(&pub, &key,
-+			 &lfib, (nettle_random_func *) knuth_lfib_random,
-+			 &decrypted_length, decrypted, bad_input));
-+  ASSERT(!rsa_sec_decrypt(&pub, &key,
-+			  &lfib, (nettle_random_func *) knuth_lfib_random,
-+			  decrypted_length, decrypted, bad_input));
-+  ASSERT(decrypted_length == msg_length);
-+
-+  /* Test input that is considerably larger than n */
-+  mpz_mul_2exp (bad_input, pub.n, 100);
-+  mpz_add (bad_input, bad_input, gibberish);
-+  decrypted_length = msg_length;
-+  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
-+  ASSERT(!rsa_decrypt_tr(&pub, &key,
-+			 &lfib, (nettle_random_func *) knuth_lfib_random,
-+			 &decrypted_length, decrypted, bad_input));
-+  ASSERT(!rsa_sec_decrypt(&pub, &key,
-+			  &lfib, (nettle_random_func *) knuth_lfib_random,
-+			  decrypted_length, decrypted, bad_input));
-   ASSERT(decrypted_length == msg_length);
- 
-   /* Test invalid key. */
-@@ -124,6 +150,6 @@ test_main(void)
-   rsa_private_key_clear(&key);
-   rsa_public_key_clear(&pub);
-   mpz_clear(gibberish);
--  mpz_clear(zero);
-+  mpz_clear(bad_input);
-   free(decrypted);
- }
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch b/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch
deleted file mode 100644
index 297816e698..0000000000
--- a/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-Copied from upstream nettle git repository.
-Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
-
-From 7616541e6eff73353bf682c62e3a68e4fe696707 Mon Sep 17 00:00:00 2001
-From: Niels Möller <nisse@lysator.liu.se>
-Date: Thu, 6 May 2021 21:29:56 +0200
-Subject: [PATCH] Add check that message length to _pkcs1_sec_decrypt is valid.
-
-* pkcs1-sec-decrypt.c (_pkcs1_sec_decrypt): Check that message
-length is valid, for given key size.
-* testsuite/rsa-sec-decrypt-test.c (test_main): Add test cases for
-calls to rsa_sec_decrypt specifying a too large message length.
----
- ChangeLog                        |  7 +++++++
- pkcs1-sec-decrypt.c              |  4 +++-
- testsuite/rsa-sec-decrypt-test.c | 17 ++++++++++++++++-
- 3 files changed, 26 insertions(+), 2 deletions(-)
-
-diff --git a/pkcs1-sec-decrypt.c b/pkcs1-sec-decrypt.c
-index 4f13080e..16833691 100644
---- a/pkcs1-sec-decrypt.c
-+++ b/pkcs1-sec-decrypt.c
-@@ -63,7 +63,9 @@ _pkcs1_sec_decrypt (size_t length, uint8_t *message,
-   volatile int ok;
-   size_t i, t;
- 
--  assert (padded_message_length >= length);
-+  /* Message independent branch */
-+  if (length + 11 > padded_message_length)
-+    return 0;
- 
-   t = padded_message_length - length - 1;
- 
-diff --git a/testsuite/rsa-sec-decrypt-test.c b/testsuite/rsa-sec-decrypt-test.c
-index fb0ed3a1..3419322e 100644
---- a/testsuite/rsa-sec-decrypt-test.c
-+++ b/testsuite/rsa-sec-decrypt-test.c
-@@ -55,6 +55,7 @@ rsa_decrypt_for_test(const struct rsa_public_key *pub,
- #endif
- 
- #define PAYLOAD_SIZE 50
-+#define DECRYPTED_SIZE 256
- void
- test_main(void)
- {
-@@ -63,7 +64,7 @@ test_main(void)
-   struct knuth_lfib_ctx random_ctx;
- 
-   uint8_t plaintext[PAYLOAD_SIZE];
--  uint8_t decrypted[PAYLOAD_SIZE];
-+  uint8_t decrypted[DECRYPTED_SIZE];
-   uint8_t verifybad[PAYLOAD_SIZE];
-   unsigned n_size = 1024;
-   mpz_t gibberish;
-@@ -99,6 +100,20 @@ test_main(void)
-                                     PAYLOAD_SIZE, decrypted, gibberish) == 1);
-       ASSERT (MEMEQ (PAYLOAD_SIZE, plaintext, decrypted));
- 
-+      ASSERT (pub.size > 10);
-+      ASSERT (pub.size <= DECRYPTED_SIZE);
-+
-+      /* Check that too large message length is rejected, largest
-+	 valid size is pub.size - 11. */
-+      ASSERT (!rsa_decrypt_for_test (&pub, &key, &random_ctx,
-+				     (nettle_random_func *) knuth_lfib_random,
-+				     pub.size - 10, decrypted, gibberish));
-+
-+      /* This case used to result in arithmetic underflow and a crash. */
-+      ASSERT (!rsa_decrypt_for_test (&pub, &key, &random_ctx,
-+				     (nettle_random_func *) knuth_lfib_random,
-+				     pub.size, decrypted, gibberish));
-+
-       /* bad one */
-       memcpy(decrypted, verifybad, PAYLOAD_SIZE);
-       nettle_mpz_random_size(garbage, &random_ctx,
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/ocaml-Add-a-.file-directive.patch b/gnu/packages/patches/ocaml-Add-a-.file-directive.patch
deleted file mode 100644
index 07842e9c32..0000000000
--- a/gnu/packages/patches/ocaml-Add-a-.file-directive.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From: Stephane Glondu <steph@glondu.net>
-Date: Sun, 16 Aug 2015 20:59:14 +0200
-Subject: Add a .file directive to generated .s files
-
-When no .file directive is given, the toolchain records the filename
-of the .o file, which is sometimes random, making generated objects
-non-deterministic.
-
-We use Location.input_name for adding .file directives to assembly
-files. Note: when the file is preprocessed, this reference holds the
-name of the temporary file. Hence, files compiled with -pp are still
-not deterministic.
-
-Bug-Debian: https://bugs.debian.org/795784
-Bug-Debian: https://bugs.debian.org/796336
----
- asmcomp/amd64/emit.mlp | 1 +
- asmcomp/arm/emit.mlp   | 1 +
- asmcomp/arm64/emit.mlp | 1 +
- asmcomp/i386/emit.mlp  | 1 +
- asmcomp/power/emit.mlp | 1 +
- asmcomp/sparc/emit.mlp | 1 +
- 6 files changed, 6 insertions(+)
-
-diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
-index d56d0f5..4d7aa30 100644
---- a/asmcomp/amd64/emit.mlp
-+++ b/asmcomp/amd64/emit.mlp
-@@ -794,6 +794,7 @@ let data l =
- let begin_assembly() =
-   reset_debug_info();                   (* PR#5603 *)
-   float_constants := [];
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   if !Clflags.dlcode then begin
-     (* from amd64.S; could emit these constants on demand *)
-     if macosx then
-diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp
-index 4948fb2..6f30fba 100644
---- a/asmcomp/arm/emit.mlp
-+++ b/asmcomp/arm/emit.mlp
-@@ -892,6 +892,7 @@ let data l =
-
- let begin_assembly() =
-   reset_debug_info();
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   `	.syntax	unified\n`;
-   begin match !arch with
-   | ARMv4   -> `	.arch	armv4t\n`
-diff --git a/asmcomp/arm64/emit.mlp b/asmcomp/arm64/emit.mlp
-index 750c2b2..5afbb8a 100644
---- a/asmcomp/arm64/emit.mlp
-+++ b/asmcomp/arm64/emit.mlp
-@@ -942,6 +942,7 @@ let data l =
-
- let begin_assembly() =
-   reset_debug_info();
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
-   `	.data\n`;
-   `	.globl	{emit_symbol lbl_begin}\n`;
-diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
-index 98df5f9..531150f 100644
---- a/asmcomp/i386/emit.mlp
-+++ b/asmcomp/i386/emit.mlp
-@@ -986,6 +986,7 @@ let data l =
- let begin_assembly() =
-   reset_debug_info();                   (* PR#5603 *)
-   float_constants := [];
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
-   `	.data\n`;
-   `	.globl	{emit_symbol lbl_begin}\n`;
-diff --git a/asmcomp/power/emit.mlp b/asmcomp/power/emit.mlp
-index 4344085..343132b 100644
---- a/asmcomp/power/emit.mlp
-+++ b/asmcomp/power/emit.mlp
-@@ -887,6 +887,7 @@ let data l =
- let begin_assembly() =
-   defined_functions := StringSet.empty;
-   external_functions := StringSet.empty;
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   (* Emit the beginning of the segments *)
-   let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
-   emit_string data_space;
-diff --git a/asmcomp/sparc/emit.mlp b/asmcomp/sparc/emit.mlp
-index 877a3d5..7b041e9 100644
---- a/asmcomp/sparc/emit.mlp
-+++ b/asmcomp/sparc/emit.mlp
-@@ -727,6 +727,7 @@ let data l =
- (* Beginning / end of an assembly file *)
-
- let begin_assembly() =
-+  `	.file \"{emit_string (String.escaped !Location.input_name)}\"\n`;
-   let lbl_begin = Compilenv.make_symbol (Some "data_begin") in
-   `	.data\n`;
-   `	.global	{emit_symbol lbl_begin}\n`;
diff --git a/gnu/packages/patches/ocaml-CVE-2015-8869.patch b/gnu/packages/patches/ocaml-CVE-2015-8869.patch
deleted file mode 100644
index 0a4cb34d25..0000000000
--- a/gnu/packages/patches/ocaml-CVE-2015-8869.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Adapted from upstream commit 659615c7b100a89eafe6253e7a5b9d84d0e8df74,
-this patch omits the upstream changes to 'Changes' and 'VERSION'.
-
-http://seclists.org/oss-sec/2016/q2/170
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8869
-https://github.com/ocaml/ocaml/commit/659615c7b100a89eafe6253e7a5b9d84d0e8df74
----
- byterun/alloc.c  | 4 ++--
- byterun/intern.c | 2 +-
- byterun/str.c    | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/byterun/alloc.c b/byterun/alloc.c
-index 96a21bf..0db9947 100644
---- a/byterun/alloc.c
-+++ b/byterun/alloc.c
-@@ -153,7 +153,7 @@ CAMLexport int caml_convert_flag_list(value list, int *flags)
- /* [size] is a [value] representing number of words (fields) */
- CAMLprim value caml_alloc_dummy(value size)
- {
--  mlsize_t wosize = Int_val(size);
-+  mlsize_t wosize = Long_val(size);
- 
-   if (wosize == 0) return Atom(0);
-   return caml_alloc (wosize, 0);
-@@ -169,7 +169,7 @@ CAMLprim value caml_alloc_dummy_function(value size,value arity)
- /* [size] is a [value] representing number of floats. */
- CAMLprim value caml_alloc_dummy_float (value size)
- {
--  mlsize_t wosize = Int_val(size) * Double_wosize;
-+  mlsize_t wosize = Long_val(size) * Double_wosize;
- 
-   if (wosize == 0) return Atom(0);
-   return caml_alloc (wosize, 0);
-diff --git a/byterun/intern.c b/byterun/intern.c
-index 89d13d1..7b8d049 100644
---- a/byterun/intern.c
-+++ b/byterun/intern.c
-@@ -291,7 +291,7 @@ static void intern_rec(value *dest)
-   case OFreshOID:
-     /* Refresh the object ID */
-     /* but do not do it for predefined exception slots */
--    if (Int_val(Field((value)dest, 1)) >= 0)
-+    if (Long_val(Field((value)dest, 1)) >= 0)
-       caml_set_oo_id((value)dest);
-     /* Pop item and iterate */
-     sp--;
-diff --git a/byterun/str.c b/byterun/str.c
-index 5ad4e29..885772f 100644
---- a/byterun/str.c
-+++ b/byterun/str.c
-@@ -266,7 +266,7 @@ CAMLprim value caml_string_greaterequal(value s1, value s2)
- CAMLprim value caml_blit_string(value s1, value ofs1, value s2, value ofs2,
-                                 value n)
- {
--  memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Int_val(n));
-+  memmove(&Byte(s2, Long_val(ofs2)), &Byte(s1, Long_val(ofs1)), Long_val(n));
-   return Val_unit;
- }
- 
-@@ -278,7 +278,7 @@ CAMLprim value caml_fill_string(value s, value offset, value len, value init)
- 
- CAMLprim value caml_bitvect_test(value bv, value n)
- {
--  int pos = Int_val(n);
-+  intnat pos = Long_val(n);
-   return Val_int(Byte_u(bv, pos >> 3) & (1 << (pos & 7)));
- }
- 
--- 
-2.7.4
-
diff --git a/gnu/packages/patches/ocaml-bitstring-fix-configure.patch b/gnu/packages/patches/ocaml-bitstring-fix-configure.patch
deleted file mode 100644
index c358bf3d6b..0000000000
--- a/gnu/packages/patches/ocaml-bitstring-fix-configure.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0aaddfceeea3e89df196ab1846da54d09713a512 Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Thu, 15 Dec 2016 21:17:31 +0100
-Subject: [PATCH] fix configure
-
----
- Makefile.in | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index d040f4c..85e0b38 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -32,6 +32,7 @@ BISECT_REPORT	= @BISECT_REPORT@
- BYTESWAP_H	= @BYTESWAP_H@
-
- OCAMLLIB	= @OCAMLLIB@
-+BISECTLIB	= $(shell if test -z $${BISECTLIB}; then echo $(OCAMLLIB); else echo $${BISECTLIB}; fi)
- top_srcdir	= @top_srcdir@
-
- pkg_cil		= @OCAML_PKG_cil@
-@@ -47,9 +48,9 @@ OCAMLOPTPACKAGES = $(OCAMLCPACKAGES)
- OCAMLOPTLIBS	= -linkpkg
-
- ifneq ($(enable_coverage),no)
--OCAMLCFLAGS     += -I +bisect -pp 'camlp4o $(OCAMLLIB)/bisect/instrument.cma'
-+OCAMLCFLAGS     += -I +bisect -pp 'camlp4o $(BISECTLIB)/bisect/instrument.cma'
- OCAMLCLIBS	+= -I +bisect bisect.cma
--OCAMLOPTFLAGS   += -I +bisect -pp 'camlp4o $(OCAMLLIB)/bisect/instrument.cma'
-+OCAMLOPTFLAGS   += -I +bisect -pp 'camlp4o $(BISECTLIB)/bisect/instrument.cma'
- OCAMLOPTLIBS	+= -I +bisect bisect.cmxa
- endif
-
-@@ -110,7 +111,7 @@ bitstring_persistent.cmi: bitstring_persistent.mli
-	  -I +camlp4 -pp camlp4of -c $<
-
- pa_bitstring.cmo: pa_bitstring.ml bitstring.cma bitstring_persistent.cma
--	$(OCAMLFIND) ocamlc bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
-+	$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) bitstring.cma -I +camlp4 dynlink.cma camlp4lib.cma \
-	  -pp camlp4of -c $< -o $@
-
- bitstring-objinfo: bitstring_objinfo.cmo bitstring.cma bitstring_persistent.cma
-@@ -133,7 +134,7 @@ byteswap.h: byteswap.in.h
- ifeq ($(enable_coverage),no)
- PP	= -pp 'camlp4o bitstring.cma bitstring_persistent.cma pa_bitstring.cmo'
- else
--PP	= -pp 'camlp4o $(OCAMLLIB)/bisect/bisect.cma bitstring.cma bitstring_persistent.cma pa_bitstring.cmo'
-+PP	= -pp 'camlp4o $(BISECTLIB)/bisect/bisect.cma bitstring.cma bitstring_persistent.cma pa_bitstring.cmo'
- endif
-
- check: test
---
-2.11.0
diff --git a/gnu/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch b/gnu/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch
deleted file mode 100644
index 39fb7aa226..0000000000
--- a/gnu/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From a87c3f20e846c00e53d695497dba7038edbd12f0 Mon Sep 17 00:00:00 2001
-From: Valentin Lorentz <progval@progval.net>
-Date: Thu, 13 Aug 2015 11:59:04 +0200
-Subject: [PATCH] Enable ocamldoc to build reproducible manpages
-
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794586
-Signed-off-by: Stephane Glondu <steph@glondu.net>
----
- ocamldoc/odoc_man.ml   | 15 +++++----------
- ocamldoc/odoc_misc.ml  | 12 ++++++++++--
- ocamldoc/odoc_misc.mli |  7 ++++++-
- 3 files changed, 21 insertions(+), 13 deletions(-)
-
-diff --git a/ocamldoc/odoc_man.ml b/ocamldoc/odoc_man.ml
-index 615c5e172..3c85aa32a 100644
---- a/ocamldoc/odoc_man.ml
-+++ b/ocamldoc/odoc_man.ml
-@@ -864,14 +864,13 @@ class man =
-     (** Generate the man page for the given class.*)
-     method generate_for_class cl =
-       Odoc_info.reset_type_names () ;
--      let date = Unix.time () in
-       let file = self#file_name cl.cl_name in
-       try
-         let chanout = self#open_out file in
-         let b = new_buf () in
-         bs b (".TH \""^cl.cl_name^"\" ");
-         bs b !man_section ;
--        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
-+        bs b (" source: "^Odoc_misc.current_date^" ");
-         bs b "OCamldoc ";
-         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
- 
-@@ -923,14 +922,13 @@ class man =
-     (** Generate the man page for the given class type.*)
-     method generate_for_class_type ct =
-       Odoc_info.reset_type_names () ;
--      let date = Unix.time () in
-       let file = self#file_name ct.clt_name in
-       try
-         let chanout = self#open_out file in
-         let b = new_buf () in
-         bs b (".TH \""^ct.clt_name^"\" ");
-         bs b !man_section ;
--        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
-+        bs b (" source: "^Odoc_misc.current_date^" ");
-         bs b "OCamldoc ";
-         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
- 
-@@ -1016,14 +1014,13 @@ class man =
-     (** Generate the man file for the given module type.
-        @raise Failure if an error occurs.*)
-     method generate_for_module_type mt =
--      let date = Unix.time () in
-       let file = self#file_name mt.mt_name in
-       try
-         let chanout = self#open_out file in
-         let b = new_buf () in
-         bs b (".TH \""^mt.mt_name^"\" ");
-         bs b !man_section ;
--        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
-+        bs b (" source: "^Odoc_misc.current_date^" ");
-         bs b "OCamldoc ";
-         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
- 
-@@ -1099,14 +1096,13 @@ class man =
-     (** Generate the man file for the given module.
-        @raise Failure if an error occurs.*)
-     method generate_for_module m =
--      let date = Unix.time () in
-       let file = self#file_name m.m_name in
-       try
-         let chanout = self#open_out file in
-         let b = new_buf () in
-         bs b (".TH \""^m.m_name^"\" ");
-         bs b !man_section ;
--        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
-+        bs b (" source: "^Odoc_misc.current_date^" ");
-         bs b "OCamldoc ";
-         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
- 
-@@ -1206,14 +1202,13 @@ class man =
-           | Res_const (_,f) -> f.vc_name
-          )
-      in
--     let date = Unix.time () in
-       let file = self#file_name name in
-       try
-         let chanout = self#open_out file in
-         let b = new_buf () in
-         bs b (".TH \""^name^"\" ");
-         bs b !man_section ;
--        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
-+        bs b (" source: "^Odoc_misc.current_date^" ");
-         bs b "OCamldoc ";
-         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
-         bs b ".SH NAME\n";
-diff --git a/ocamldoc/odoc_misc.ml b/ocamldoc/odoc_misc.ml
-index 4c74476da..456225f62 100644
---- a/ocamldoc/odoc_misc.ml
-+++ b/ocamldoc/odoc_misc.ml
-@@ -223,9 +223,9 @@ let apply_opt f v_opt =
-     None -> None
-   | Some v -> Some (f v)
- 
--let string_of_date ?(hour=true) d =
-+let string_of_date ?(absolute=false) ?(hour=true) d =
-   let add_0 s = if String.length s < 2 then "0"^s else s in
--  let t = Unix.localtime d in
-+  let t = (if absolute then Unix.gmtime else Unix.localtime) d in
-   (string_of_int (t.Unix.tm_year + 1900))^"-"^
-   (add_0 (string_of_int (t.Unix.tm_mon + 1)))^"-"^
-   (add_0 (string_of_int t.Unix.tm_mday))^
-@@ -238,6 +238,14 @@ let string_of_date ?(hour=true) d =
-      ""
-   )
- 
-+let current_date =
-+  let time =
-+    try
-+      float_of_string (Sys.getenv "SOURCE_DATE_EPOCH")
-+    with
-+      Not_found -> Unix.time ()
-+  in string_of_date ~absolute: true ~hour: false time
-+
- 
- let rec text_list_concat sep l =
-   match l with
-diff --git a/ocamldoc/odoc_misc.mli b/ocamldoc/odoc_misc.mli
-index dd5a7fcb9..38ff0612b 100644
---- a/ocamldoc/odoc_misc.mli
-+++ b/ocamldoc/odoc_misc.mli
-@@ -62,7 +62,12 @@ val apply_opt : ('a -> 'b) -> 'a option -> 'b option
- 
- (** Return a string representing a date given as a number of seconds
-    since 1970. The hour is optionnaly displayed. *)
--val string_of_date : ?hour:bool -> float -> string
-+val string_of_date : ?absolute:bool -> ?hour:bool -> float -> string
-+
-+(* Value returned by string_of_date for current time.
-+ * Uses environment variable SOURCE_DATE_EPOCH if set; falls back to
-+ * current timestamp otherwise. *)
-+val current_date : string
- 
- (** Return the first sentence (until the first dot) of a text.
-    Don't stop in the middle of [Code], [Verbatim], [List], [Lnum],
--- 
-2.17.1
-
diff --git a/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch b/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch
deleted file mode 100644
index 879df026a1..0000000000
--- a/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 52cea818bf68f8a2d3c48d55d00c2f8b7da25e4c Mon Sep 17 00:00:00 2001
-From: Daniel Hogan <daniel.hogan@usask.ca>
-Date: Tue, 28 Mar 2017 22:21:18 -0600
-Subject: [PATCH] Remove delete statement.
-
-When from_scratch is true, coordinates is not allocated. A separate if
-statement was added to handle the case when from_scratch is true that
-does not try to free coordinates.
----
- src/formats/nwchemformat.cpp | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/src/formats/nwchemformat.cpp b/src/formats/nwchemformat.cpp
-index 6f625ad5b..79298555f 100644
---- a/src/formats/nwchemformat.cpp
-+++ b/src/formats/nwchemformat.cpp
-@@ -232,11 +232,14 @@ static const char* OPTIMIZATION_END_PATTERN = "  Optimization converged";
-           break;
-         tokenize(vs,buffer);
-     }
--    if ((from_scratch)||(i != natoms))
--      {
-+    if (from_scratch) 
-+    {
-+        return;
-+    }
-+    if (i != natoms) {
-         delete[] coordinates;
-         return;
--      }
-+    }
-     molecule->AddConformer(coordinates);
-   }
- 
diff --git a/gnu/packages/patches/openjdk-14-builtins.patch b/gnu/packages/patches/openjdk-14-builtins.patch
deleted file mode 100644
index 0e7e3dcaa9..0000000000
--- a/gnu/packages/patches/openjdk-14-builtins.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- jdk14-bc54620a3848/make/autoconf/basics.m4	2020-02-07 04:40:54.000000000 +1030
-+++ jdk14-bc54620a3848-new/make/autoconf/basics.m4	2020-04-24 10:59:33.056098506 +0930
-@@ -583,7 +583,7 @@
-   BASIC_SETUP_TOOL($1, [AC_PATH_PROGS($1, $2, , $3)])
-   if test "x[$]$1" = x; then
-     AC_MSG_NOTICE([Required tool $2 not found in PATH, checking built-in])
--    if help $2 > /dev/null 2>&1; then
-+    if command -v $2 > /dev/null 2>&1; then
-       AC_MSG_NOTICE([Found $2 as shell built-in. Using it])
-       $1="$2"
-     else
diff --git a/gnu/packages/patches/openssl-c-rehash-in.patch b/gnu/packages/patches/openssl-c-rehash-in.patch
deleted file mode 100644
index bd3d3178f1..0000000000
--- a/gnu/packages/patches/openssl-c-rehash-in.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This patch removes the explicit reference to the 'perl' binary,
-such that OpenSSL does not retain a reference to Perl.
-
-The 'c_rehash' program is seldom used, but it is used nonetheless
-to create symbolic links to certificates, for instance in the 'nss-certs'
-package.
-
---- openssl-1.0.2g/tools/c_rehash.in	2015-09-09 18:36:07.313316482 +0200
-+++ openssl-1.0.2g/tools/c_rehash.in	2015-09-09 18:36:28.965458458 +0200
-@@ -1,4 +1,6 @@
--#!/usr/local/bin/perl
-+eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
-+  & eval 'exec perl -wS "$0" $argv:q'
-+    if 0;
- 
- # Perl c_rehash script, scan all files in a directory
- # and add symbolic links to their hash values.
diff --git a/gnu/packages/patches/openssl-runpath.patch b/gnu/packages/patches/openssl-runpath.patch
deleted file mode 100644
index fa7c0b9962..0000000000
--- a/gnu/packages/patches/openssl-runpath.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-This patch makes the build system pass -Wl,-rpath=$out/lib even for
-libraries (it already does so for executables, thanks to 'DO_GNU_APP'
-in 'Makefile.shared'.)
-
---- openssl-1.0.2a/Makefile.shared	2015-04-05 01:07:35.357602454 +0200
-+++ openssl-1.0.2a/Makefile.shared	2015-04-05 01:09:50.474513303 +0200
-@@ -106,7 +106,7 @@ LINK_SO=	\
-     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
-     LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
-     LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
--    $${SHAREDCMD} $${SHAREDFLAGS} \
-+    $${SHAREDCMD} $${SHAREDFLAGS} -Wl,-rpath,$(LIBRPATH) \
- 	-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
- 	$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
-   ) && $(SYMLINK_SO)
diff --git a/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch b/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch
deleted file mode 100644
index 3cb61a364a..0000000000
--- a/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/data/meson.build b/data/meson.build
-index 46f6373..26a2c18 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -35,7 +35,6 @@ if get_option('profile') == 'development'
- endif
- desktop_conf.set('ICON', application_id)
- desktop = i18n.merge_file(
--  'desktop',
-   input: configure_file(
-     input: files('org.gnome.PasswordSafe.desktop.in.in'),
-     output: 'org.gnome.PasswordSafe.desktop.in',
-@@ -65,7 +64,6 @@ if get_option('profile') == 'development'
- endif
- appdata_conf.set('APPID', application_id)
- appdata = i18n.merge_file(
--  'appdata',
-   input: configure_file(
-     input: files('org.gnome.PasswordSafe.appdata.xml.in.in'),
-     output: 'org.gnome.PasswordSafe.appdata.xml.in',
diff --git a/gnu/packages/patches/patchutils-test-perms.patch b/gnu/packages/patches/patchutils-test-perms.patch
deleted file mode 100644
index c7652b9af2..0000000000
--- a/gnu/packages/patches/patchutils-test-perms.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Need to mark one of the tests as PHONY to get permissions set correctly on
-built scripts.
-
---- a/Makefile.in	2011-02-10 09:44:43.000000000 -0600
-+++ b/Makefile.in	2018-11-29 21:52:05.000000000 -0600
-@@ -1106,5 +1108,6 @@
- 	rm -f $(DESTDIR)$(bindir)/"`echo lsdiff|sed '$(transform)'`"
- 	rm -f $(DESTDIR)$(bindir)/"`echo grepdiff|sed '$(transform)'`"
- 
-+.PHONY: tests/newline1/run-test
- tests/newline1/run-test: src/combinediff$(EXEEXT) src/flipdiff$(EXEEXT) \
- 		src/lsdiff$(EXEEXT) src/grepdiff$(EXEEXT) \
-		scripts/splitdiff
-
diff --git a/gnu/packages/patches/python-CVE-2018-14647.patch b/gnu/packages/patches/python-CVE-2018-14647.patch
deleted file mode 100644
index 24f8d21820..0000000000
--- a/gnu/packages/patches/python-CVE-2018-14647.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Fix CVE-2018-14647:
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647
-https://bugs.python.org/issue34623
-
-Taken from upstream:
-https://github.com/python/cpython/commit/f7666e828cc3d5873136473ea36ba2013d624fa1
-
-diff --git Include/pyexpat.h Include/pyexpat.h
-index 44259bf6d7..07020b5dc9 100644
---- Include/pyexpat.h
-+++ Include/pyexpat.h
-@@ -3,7 +3,7 @@
- 
- /* note: you must import expat.h before importing this module! */
- 
--#define PyExpat_CAPI_MAGIC  "pyexpat.expat_CAPI 1.0"
-+#define PyExpat_CAPI_MAGIC  "pyexpat.expat_CAPI 1.1"
- #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
- 
- struct PyExpat_CAPI
-@@ -48,6 +48,8 @@ struct PyExpat_CAPI
-     enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
-     int (*DefaultUnknownEncodingHandler)(
-         void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
-+    /* might be none for expat < 2.1.0 */
-+    int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
-     /* always add new stuff to the end! */
- };
- 
-diff --git Modules/_elementtree.c Modules/_elementtree.c
-index 707ab2912b..53f05f937f 100644
---- Modules/_elementtree.c
-+++ Modules/_elementtree.c
-@@ -3261,6 +3261,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
-         PyErr_NoMemory();
-         return -1;
-     }
-+    /* expat < 2.1.0 has no XML_SetHashSalt() */
-+    if (EXPAT(SetHashSalt) != NULL) {
-+        EXPAT(SetHashSalt)(self->parser,
-+                           (unsigned long)_Py_HashSecret.expat.hashsalt);
-+    }
- 
-     if (target) {
-         Py_INCREF(target);
-diff --git Modules/pyexpat.c Modules/pyexpat.c
-index 47c3e86c20..aa21d93c11 100644
---- Modules/pyexpat.c
-+++ Modules/pyexpat.c
-@@ -1887,6 +1887,11 @@ MODULE_INITFUNC(void)
-     capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
-     capi.SetEncoding = XML_SetEncoding;
-     capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
-+#if XML_COMBINED_VERSION >= 20100
-+    capi.SetHashSalt = XML_SetHashSalt;
-+#else
-+    capi.SetHashSalt = NULL;
-+#endif
- 
-     /* export using capsule */
-     capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);
diff --git a/gnu/packages/patches/python-CVE-2020-26116.patch b/gnu/packages/patches/python-CVE-2020-26116.patch
deleted file mode 100644
index dc0571e964..0000000000
--- a/gnu/packages/patches/python-CVE-2020-26116.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Fix CVE-2020-26116:
-
-https://cve.circl.lu/cve/CVE-2020-26116
-https://bugs.python.org/issue39603
-
-Taken from upstream (sans test and NEWS update):
-https://github.com/python/cpython/commit/668d321476d974c4f51476b33aaca870272523bf
-
-diff --git a/Lib/http/client.py b/Lib/http/client.py
---- a/Lib/http/client.py
-+++ b/Lib/http/client.py
-@@ -147,6 +147,10 @@
- #  _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
- # We are more lenient for assumed real world compatibility purposes.
- 
-+# These characters are not allowed within HTTP method names
-+# to prevent http header injection.
-+_contains_disallowed_method_pchar_re = re.compile('[\x00-\x1f]')
-+
- # We always set the Content-Length header for these methods because some
- # servers will otherwise respond with a 411
- _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
-@@ -1087,6 +1091,8 @@ def putrequest(self, method, url, skip_host=False,
-         else:
-             raise CannotSendRequest(self.__state)
- 
-+        self._validate_method(method)
-+
-         # Save the method for use later in the response phase
-         self._method = method
- 
-@@ -1177,6 +1183,15 @@ def _encode_request(self, request):
-         # ASCII also helps prevent CVE-2019-9740.
-         return request.encode('ascii')
- 
-+    def _validate_method(self, method):
-+        """Validate a method name for putrequest."""
-+        # prevent http header injection
-+        match = _contains_disallowed_method_pchar_re.search(method)
-+        if match:
-+            raise ValueError(
-+                    f"method can't contain control characters. {method!r} "
-+                    f"(found at least {match.group()!r})")
-+
-     def _validate_path(self, url):
-         """Validate a url for putrequest."""
-         # Prevent CVE-2019-9740.
diff --git a/gnu/packages/patches/python-axolotl-AES-fix.patch b/gnu/packages/patches/python-axolotl-AES-fix.patch
deleted file mode 100644
index d34f4855cb..0000000000
--- a/gnu/packages/patches/python-axolotl-AES-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Patch taken from the Debian package for python-axolotl-0.1.39.
-See <https://bugs.gnu.org/29415>.
-
-Description: Removes IV paramenter from AES constructor, since it is not necessary for ctr mode.
-Author: Josue Ortega <josue@debian.org>
-Last-Update: 2017-04-13
-
---- a/axolotl/sessioncipher.py
-+++ b/axolotl/sessioncipher.py
-@@ -228,13 +228,7 @@
-         # counterint = struct.unpack(">L", counterbytes)[0]
-         # counterint = int.from_bytes(counterbytes, byteorder='big')
-         ctr = Counter.new(128, initial_value=counter)
--
--        # cipher = AES.new(key, AES.MODE_CTR, counter=ctr)
--        ivBytes = bytearray(16)
--        ByteUtil.intToByteArray(ivBytes, 0, counter)
--
--        cipher = AES.new(key, AES.MODE_CTR, IV=bytes(ivBytes), counter=ctr)
--
-+        cipher = AES.new(key, AES.MODE_CTR, counter=ctr)
-         return cipher
- 
- 
diff --git a/gnu/packages/patches/python-babel-fix-parse-future-test.patch b/gnu/packages/patches/python-babel-fix-parse-future-test.patch
deleted file mode 100644
index 8a90166ec5..0000000000
--- a/gnu/packages/patches/python-babel-fix-parse-future-test.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 7bdaa28a55e8d8228d5434effa4b1473ab7b3669 Mon Sep 17 00:00:00 2001
-From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
-Date: Tue, 5 May 2020 08:05:56 +0000
-Subject: [PATCH] fix tests when using Python 3.9a6
-
-In Python 3.9a6 integer values for future flags were changed to prevent
-collision with compiler flags. We need to retrieve these at runtime so
-the test suite works with Python <= 3.8 as well as Python 3.9.
----
- tests/test_util.py | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/tests/test_util.py b/tests/test_util.py
-index a6a4450c..b9343aaa 100644
---- a/tests/test_util.py
-+++ b/tests/test_util.py
-@@ -11,6 +11,7 @@
- # individuals. For the exact contribution history, see the revision
- # history and logs, available at http://babel.edgewall.org/log/.
- 
-+import __future__
- import unittest
- 
- import pytest
-@@ -20,6 +21,12 @@
- from babel.util import parse_future_flags
- 
- 
-+class _FF:
-+    division         = __future__.division.compiler_flag
-+    print_function   = __future__.print_function.compiler_flag
-+    with_statement   = __future__.with_statement.compiler_flag
-+    unicode_literals = __future__.unicode_literals.compiler_flag
-+
- def test_distinct():
-     assert list(util.distinct([1, 2, 1, 3, 4, 4])) == [1, 2, 3, 4]
-     assert list(util.distinct('foobar')) == ['f', 'o', 'b', 'a', 'r']
-@@ -70,25 +77,25 @@ def test_parse_encoding_non_ascii():
- from __future__ import print_function,
-     division, with_statement,
-     unicode_literals
--''', 0x10000 | 0x2000 | 0x8000 | 0x20000),
-+''', _FF.print_function | _FF.division | _FF.with_statement | _FF.unicode_literals),
-     ('''
- from __future__ import print_function, division
- print('hello')
--''', 0x10000 | 0x2000),
-+''', _FF.print_function | _FF.division),
-     ('''
- from __future__ import print_function, division, unknown,,,,,
- print 'hello'
--''', 0x10000 | 0x2000),
-+''', _FF.print_function | _FF.division),
-     ('''
- from __future__ import (
-     print_function,
-     division)
--''', 0x10000 | 0x2000),
-+''', _FF.print_function | _FF.division),
-     ('''
- from __future__ import \\
-     print_function, \\
-     division
--''', 0x10000 | 0x2000),
-+''', _FF.print_function | _FF.division),
- ])
- def test_parse_future(source, result):
-     fp = BytesIO(source.encode('latin-1'))
diff --git a/gnu/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch b/gnu/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch
deleted file mode 100644
index 6f067763b5..0000000000
--- a/gnu/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Tue, 02 Mar 2021 18:04:33 +0100
-Subject: [PATCH] gnu: python-matplotlib: Run under Wayland with GTK3.
-
-Adopted from upstream's fix[0] for
-<https://github.com/matplotlib/matplotlib/issues/19405>.
-
-[0]: https://github.com/liuyun88/matplotlib/commit/3d5000463bd23cb046681220f5511f07743f7d82
-
----
-diff -Naur a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py
---- a/lib/matplotlib/backends/backend_gtk3.py	2019-11-21 23:47:05.000000000 +0100
-+++ b/lib/matplotlib/backends/backend_gtk3.py	2021-03-02 18:00:57.479929766 +0100
-@@ -42,11 +42,12 @@
- 
- try:
-+    _display = Gdk.Display.get_default()
-     cursord = {
--        cursors.MOVE          : Gdk.Cursor.new(Gdk.CursorType.FLEUR),
--        cursors.HAND          : Gdk.Cursor.new(Gdk.CursorType.HAND2),
--        cursors.POINTER       : Gdk.Cursor.new(Gdk.CursorType.LEFT_PTR),
--        cursors.SELECT_REGION : Gdk.Cursor.new(Gdk.CursorType.TCROSS),
--        cursors.WAIT          : Gdk.Cursor.new(Gdk.CursorType.WATCH),
-+        cursors.MOVE          : Gdk.Cursor.new_from_name(_display, "move"),
-+        cursors.HAND          : Gdk.Cursor.new_from_name(_display, "pointer"),
-+        cursors.POINTER       : Gdk.Cursor.new_from_name(_display, "default"),
-+        cursors.SELECT_REGION : Gdk.Cursor.new_from_name(_display, "crosshair"),
-+        cursors.WAIT          : Gdk.Cursor.new_from_name(_display, "wait"),
-     }
- except TypeError as exc:
-     # Happens when running headless.  Convert to ImportError to cooperate with
diff --git a/gnu/packages/patches/python-pytest-asyncio-python-3.8.patch b/gnu/packages/patches/python-pytest-asyncio-python-3.8.patch
deleted file mode 100644
index 519f92c047..0000000000
--- a/gnu/packages/patches/python-pytest-asyncio-python-3.8.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-# Modified to apply on 0.10.0.
-
-From c7a111180b3f35f2fe5a07ead185e4e792f9dfa0 Mon Sep 17 00:00:00 2001
-From: Andrew Svetlov <andrew.svetlov@gmail.com>
-Date: Thu, 9 Apr 2020 08:44:46 +0200
-Subject: [PATCH] Test on Python 3.8, drop 3.3 and 3.4
-
----
- .travis.yml                          |  7 +++---
- setup.py                             |  1 +
- tests/conftest.py                    |  2 +-
- tests/test_hypothesis_integration.py |  2 +-
- tests/test_simple.py                 | 32 +++++++++++-----------------
- tests/test_simple_35.py              | 17 ++++++---------
- tests/test_subprocess.py             |  6 ++----
- tox.ini                              |  5 +++--
- 8 files changed, 29 insertions(+), 43 deletions(-)
-
-diff --git a/.travis.yml b/.travis.yml
-index fe90234..b93377a 100644
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -1,4 +1,5 @@
- language: python
-+
- matrix:
-   include:
-     - python: 3.5
-@@ -7,10 +8,8 @@ matrix:
-       env: TOX_ENV=py36
-     - python: 3.7
-       env: TOX_ENV=py37
--      # TODO: the dist and sudo keys are currently needed to use Python 3.7.
--      # They should be removed once Travis-CI supports 3.7 on the default image.
--      dist: xenial
--      sudo: true
-+    - python: 3.8
-+      env: TOX_ENV=py38
- 
- install: pip install tox-travis coveralls
- 
-diff --git a/setup.py b/setup.py
-index 18566bf..6175711 100644
---- a/setup.py
-+++ b/setup.py
-@@ -36,6 +36,7 @@ def find_version():
-         "Programming Language :: Python :: 3.5",
-         "Programming Language :: Python :: 3.6",
-         "Programming Language :: Python :: 3.7",
-+        "Programming Language :: Python :: 3.8",
-         "Topic :: Software Development :: Testing",
-         "Framework :: Pytest",
-     ],
-diff --git a/tests/conftest.py b/tests/conftest.py
-index 6203cf8..cc2ec16 100644
---- a/tests/conftest.py
-+++ b/tests/conftest.py
-@@ -17,7 +17,7 @@ def dependent_fixture(event_loop):
-     async def just_a_sleep():
-         """Just sleep a little while."""
-         nonlocal event_loop
--        await asyncio.sleep(0.1, loop=event_loop)
-+        await asyncio.sleep(0.1)
-         nonlocal counter
-         counter += 1
- 
-diff --git a/tests/test_simple.py b/tests/test_simple.py
-index 1627139..00c07fc 100644
---- a/tests/test_simple.py
-+++ b/tests/test_simple.py
-@@ -1,28 +1,26 @@
- """Quick'n'dirty unit tests for provided fixtures and markers."""
- import asyncio
--import os
- import pytest
- 
- import pytest_asyncio.plugin
- 
- 
--async def async_coro(loop=None):
--    """A very simple coroutine."""
--    await asyncio.sleep(0, loop=loop)
-+async def async_coro():
-+    await asyncio.sleep(0)
-     return 'ok'
- 
- 
- def test_event_loop_fixture(event_loop):
-     """Test the injection of the event_loop fixture."""
-     assert event_loop
--    ret = event_loop.run_until_complete(async_coro(event_loop))
-+    ret = event_loop.run_until_complete(async_coro())
-     assert ret == 'ok'
- 
- 
- @pytest.mark.asyncio
--def test_asyncio_marker():
-+async def test_asyncio_marker():
-     """Test the asyncio pytest marker."""
--    yield  # sleep(0)
-+    await asyncio.sleep(0)
- 
- 
- @pytest.mark.xfail(reason='need a failure', strict=True)
-@@ -45,13 +43,11 @@ async def closer(_, writer):
-         writer.close()
- 
-     server1 = await asyncio.start_server(closer, host='localhost',
--                                         port=unused_tcp_port,
--                                         loop=event_loop)
-+                                         port=unused_tcp_port)
- 
-     with pytest.raises(IOError):
-         await asyncio.start_server(closer, host='localhost',
--                                   port=unused_tcp_port,
--                                   loop=event_loop)
-+                                   port=unused_tcp_port)
- 
-     server1.close()
-     await server1.wait_closed()
-@@ -68,20 +64,16 @@ async def closer(_, writer):
-                            unused_tcp_port_factory())
- 
-     server1 = await asyncio.start_server(closer, host='localhost',
--                                         port=port1,
--                                         loop=event_loop)
-+                                         port=port1)
-     server2 = await asyncio.start_server(closer, host='localhost',
--                                         port=port2,
--                                         loop=event_loop)
-+                                         port=port2)
-     server3 = await asyncio.start_server(closer, host='localhost',
--                                         port=port3,
--                                         loop=event_loop)
-+                                         port=port3)
- 
-     for port in port1, port2, port3:
-         with pytest.raises(IOError):
-             await asyncio.start_server(closer, host='localhost',
--                                       port=port,
--                                       loop=event_loop)
-+                                       port=port)
- 
-     server1.close()
-     await server1.wait_closed()
-@@ -117,7 +109,7 @@ class Test:
-     @pytest.mark.asyncio
-     async def test_asyncio_marker_method(self, event_loop):
-         """Test the asyncio pytest marker in a Test class."""
--        ret = await async_coro(event_loop)
-+        ret = await async_coro()
-         assert ret == 'ok'
- 
- 
-diff --git a/tests/test_simple_35.py b/tests/test_simple_35.py
-index 1e4d697..4141fb0 100644
---- a/tests/test_simple_35.py
-+++ b/tests/test_simple_35.py
-@@ -6,7 +6,7 @@
- 
- @pytest.mark.asyncio
- async def async_coro(loop):
--    await asyncio.sleep(0, loop=loop)
-+    await asyncio.sleep(0)
-     return 'ok'
- 
- 
-@@ -27,8 +27,7 @@ async def closer(_, writer):
-         writer.close()
- 
-     server1 = await asyncio.start_server(closer, host='localhost',
--                                         port=unused_tcp_port,
--                                         loop=event_loop)
-+                                         port=unused_tcp_port)
- 
-     server1.close()
-     await server1.wait_closed()
-@@ -45,20 +44,16 @@ async def closer(_, writer):
- 
-     async def run_test():
-         server1 = await asyncio.start_server(closer, host='localhost',
--                                             port=port1,
--                                             loop=event_loop)
-+                                             port=port1)
-         server2 = await asyncio.start_server(closer, host='localhost',
--                                             port=port2,
--                                             loop=event_loop)
-+                                             port=port2)
-         server3 = await asyncio.start_server(closer, host='localhost',
--                                             port=port3,
--                                             loop=event_loop)
-+                                             port=port3)
- 
-         for port in port1, port2, port3:
-             with pytest.raises(IOError):
-                 await asyncio.start_server(closer, host='localhost',
--                                           port=port,
--                                           loop=event_loop)
-+                                           port=port)
- 
-         server1.close()
-         await server1.wait_closed()
-diff --git a/tests/test_subprocess.py b/tests/test_subprocess.py
-index 83490e8..069c6c2 100644
---- a/tests/test_subprocess.py
-+++ b/tests/test_subprocess.py
-@@ -21,8 +21,7 @@ def event_loop():
- async def test_subprocess(event_loop):
-     """Starting a subprocess should be possible."""
-     proc = await asyncio.subprocess.create_subprocess_exec(
--        sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
--        loop=event_loop)
-+        sys.executable, '--version', stdout=asyncio.subprocess.PIPE)
-     await proc.communicate()
- 
- 
-@@ -30,6 +29,5 @@ async def test_subprocess(event_loop):
- async def test_subprocess_forbid(event_loop):
-     """Starting a subprocess should be possible."""
-     proc = await asyncio.subprocess.create_subprocess_exec(
--        sys.executable, '--version', stdout=asyncio.subprocess.PIPE,
--        loop=event_loop)
-+        sys.executable, '--version', stdout=asyncio.subprocess.PIPE)
-     await proc.communicate()
-diff --git a/tox.ini b/tox.ini
-index 13d5155..eed6fb6 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -1,6 +1,7 @@
- [tox]
--envlist = py35, py36, py37
--minversion = 2.5.0
-+minversion = 3.14.0
-+envlist = py35, py36, py37, py38
-+skip_missing_interpreters = true
- 
- [testenv]
- extras = testing
diff --git a/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch b/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch
deleted file mode 100644
index f1db5d7c3b..0000000000
--- a/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ca548da9ba78ddee90779051210e3e89185e4f7d Mon Sep 17 00:00:00 2001
-From: Michel Alexandre Salim <michel@michel-slm.name>
-Date: Mon, 15 Feb 2016 23:03:42 +0700
-Subject: coverage-4.0a6 compatibility
-
-coverage 4.0a6 no longer generates .coverage file, so use -f when
-deleting .coverage to ensure deletion does not fail.
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-(limited to 'Makefile')
-
-diff --git a/Makefile b/Makefile
-index 7818f57..362c07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -23,7 +23,7 @@ fsck-larch.1: fsck-larch.1.in fsck-larch
- 
- check:
- 	python -m CoverageTestRunner --ignore-missing-from=without-tests
--	rm .coverage
-+	rm -f .coverage
- 	./insert-remove-test tempdir 100
- 	rm -r tempdir larch.log
- 	cmdtest tests
--- 
-cgit v1.1
-
diff --git a/gnu/packages/patches/qt4-ldflags.patch b/gnu/packages/patches/qt4-ldflags.patch
deleted file mode 100644
index 0d6398018a..0000000000
--- a/gnu/packages/patches/qt4-ldflags.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Explicitly link against libicui18n so that libQtCore.so always finds it.
-
---- qt-everywhere-opensource-src-4.8.6/src/corelib/corelib.pro	2015-04-15 12:01:41.661862663 +0200
-+++ qt-everywhere-opensource-src-4.8.6/src/corelib/corelib.pro	2015-04-15 12:03:57.954586336 +0200
-@@ -19,6 +19,13 @@ include(codecs/codecs.pri)
- include(statemachine/statemachine.pri)
- include(xml/xml.pri)
- 
-+# Explicitly link with icui18n, which is dlopened by libQtCore.so.
-+# We cannot do this by setting LDFLAGS because that then overrides
-+# other LDFLAGS: <https://bugreports.qt.io/browse/QTBUG-5471>.
-+# XXX: According to the Nixpkgs recipe, this may be necessary for
-+# further libraries (cups, gtk-x11-2.0, libgdk-x11-2.0).
-+LIBS_PRIVATE += -licui18n
-+
- !qpa:mac|darwin:LIBS_PRIVATE += -framework ApplicationServices
- qpa:mac {
-     !ios {
diff --git a/gnu/packages/patches/rust-coresimd-doctest.patch b/gnu/packages/patches/rust-coresimd-doctest.patch
deleted file mode 100644
index bfa0ab224b..0000000000
--- a/gnu/packages/patches/rust-coresimd-doctest.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Doctest coresimd::x86::__m256 failed on processors withouth "avx" feature.
-Backported patch with changes from https://github.com/rust-lang-nursery/stdsimd/issues/481
-
---- rustc-1.26.2-src-orig/src/stdsimd/coresimd/x86/mod.rs	1970-01-01 05:00:00.000000000 +0500
-+++ rustc-1.26.2-src/src/stdsimd/coresimd/x86/mod.rs	2018-06-22 00:01:55.142026720 +0500
-@@ -293,13 +293,13 @@
-     /// use std::arch::x86_64::*;
-     ///
-     /// # fn main() {
--    /// # #[target_feature(enable = "sse")]
-+    /// # #[target_feature(enable = "avx")]
-     /// # unsafe fn foo() {
-     /// let eight_zeros = _mm256_setzero_ps();
-     /// let eight_ones = _mm256_set1_ps(1.0);
-     /// let eight_floats = _mm256_set_ps(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
-     /// # }
--    /// # if is_x86_feature_detected!("sse") { unsafe { foo() } }
-+    /// # if is_x86_feature_detected!("avx") { unsafe { foo() } }
-     /// # }
-     /// ```
-     pub struct __m256(f32, f32, f32, f32, f32, f32, f32, f32);
diff --git a/gnu/packages/patches/streamlink-update-test.patch b/gnu/packages/patches/streamlink-update-test.patch
deleted file mode 100644
index 2d90009192..0000000000
--- a/gnu/packages/patches/streamlink-update-test.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-https://github.com/streamlink/streamlink/commit/a3123346824ee7b9c461110f292ea6987ea9a78d.patch
-This is taken from upstream, and can be removed at the next release
-
-From c6f3994e177a42792238f2edd07ba9053c10abc9 Mon Sep 17 00:00:00 2001
-From: back-to <backto@protonmail.ch>
-Date: Sat, 21 Jul 2018 14:30:51 +0200
-Subject: [PATCH] tests.localization: use en_CA instead of en_US for
- test_equivalent
-
-**python-iso3166** got an update which breaks the Streamlink tests.
-https://pypi.org/project/iso3166/#history
-
-**python-iso3166** and **pycountry** have now a different `name` for _the United States of America_
-
-> python-iso3166: United States of America
-https://github.com/deactivated/python-iso3166/commit/e5f8b37f18b01fcb5fa0e8130d8296fc7a7b5a9f
-
-> pycountry: United States
-https://bitbucket.org/flyingcircus/pycountry/src/5aa4bb47e33798cb631a81521b7b5b18f7d6c919/src/pycountry/databases/iso3166-1.json?at=default&fileviewer=file-view-default#iso3166-1.json-1572:1578
-
-https://www.iso.org/obp/ui/#iso:code:3166:US
-
----
-
-use **en_CA** instead of **en_US** for backwards compatibility,
-as changing the **US** name would fail with older versions of **python-iso3166** / **pycountry**
----
- tests/test_localization.py | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/tests/test_localization.py b/tests/test_localization.py
-index 0b81ae591..90bb3ac31 100644
---- a/tests/test_localization.py
-+++ b/tests/test_localization.py
-@@ -32,11 +32,12 @@ def test_bad_language_code(self):
-         self.assertRaises(LookupError, l10n.Localization, "enUS")
- 
-     def test_equivalent(self):
--        l = l10n.Localization("en_US")
-+        l = l10n.Localization("en_CA")
-         self.assertTrue(l.equivalent(language="eng"))
-         self.assertTrue(l.equivalent(language="en"))
--        self.assertTrue(l.equivalent(language="en", country="US"))
--        self.assertTrue(l.equivalent(language="en", country="United States"))
-+        self.assertTrue(l.equivalent(language="en", country="CA"))
-+        self.assertTrue(l.equivalent(language="en", country="CAN"))
-+        self.assertTrue(l.equivalent(language="en", country="Canada"))
- 
-     def test_equivalent_remap(self):
-         l = l10n.Localization("fr_FR")
-@@ -48,7 +49,7 @@ def test_not_equivalent(self):
-         self.assertFalse(l.equivalent(language="eng"))
-         self.assertFalse(l.equivalent(language="en"))
-         self.assertFalse(l.equivalent(language="en", country="US"))
--        self.assertFalse(l.equivalent(language="en", country="United States"))
-+        self.assertFalse(l.equivalent(language="en", country="Canada"))
-         self.assertFalse(l.equivalent(language="en", country="ES"))
-         self.assertFalse(l.equivalent(language="en", country="Spain"))
- 
-@@ -71,8 +72,8 @@ def test_get_country(self):
-                          l10n.Localization.get_country("USA").alpha2)
-         self.assertEqual("GB",
-                          l10n.Localization.get_country("GB").alpha2)
--        self.assertEqual("United States",
--                         l10n.Localization.get_country("United States").name)
-+        self.assertEqual("Canada",
-+                         l10n.Localization.get_country("Canada").name)
- 
-     def test_get_country_miss(self):
-         self.assertRaises(LookupError, l10n.Localization.get_country, "XE")
diff --git a/gnu/packages/patches/tcc-boot-0.9.27.patch b/gnu/packages/patches/tcc-boot-0.9.27.patch
deleted file mode 100644
index 6f9d365788..0000000000
--- a/gnu/packages/patches/tcc-boot-0.9.27.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1431ba3a99582e4c3d2693ac37e57f361858affd Mon Sep 17 00:00:00 2001
-From: Jan Nieuwenhuizen <janneke@gnu.org>
-Date: Mon, 11 Jun 2018 18:39:44 +0200
-Subject: [PATCH] bootstrappable: Force static link.
-
----
- libtcc.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libtcc.c b/libtcc.c
-index 3448f44..02ab850 100644
---- a/libtcc.c
-+++ b/libtcc.c
-@@ -735,6 +735,9 @@ LIBTCCAPI TCCState *tcc_new(void)
-     tcc_state = s;
-     ++nb_states;
- 
-+#if BOOTSTRAP
-+    s->static_link = 1;
-+#endif
-     s->alacarte_link = 1;
-     s->nocommon = 1;
-     s->warn_implicit_function_declaration = 1;
--- 
-2.16.2
-
diff --git a/gnu/packages/patches/vtk-8-fix-freetypetools-build-failure.patch b/gnu/packages/patches/vtk-8-fix-freetypetools-build-failure.patch
deleted file mode 100644
index 6988e65872..0000000000
--- a/gnu/packages/patches/vtk-8-fix-freetypetools-build-failure.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-This fixes a build failure in VTK when building against recent versions
-of freetype.
-
-  https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7432
-
-Patch by Ben Boeckel <ben.boeckel@kitware.com>
-
-Subject: [PATCH] vtkFreeTypeTools: avoid using an internal macro
-
-This macro has been removed upstream as it was always intended to be
-private.
----
- Rendering/FreeType/vtkFreeTypeTools.cxx | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/Rendering/FreeType/vtkFreeTypeTools.cxx b/Rendering/FreeType/vtkFreeTypeTools.cxx
-index c54289dc60..03b899c4da 100644
---- a/Rendering/FreeType/vtkFreeTypeTools.cxx
-+++ b/Rendering/FreeType/vtkFreeTypeTools.cxx
-@@ -387,11 +387,8 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
- }
- 
- //----------------------------------------------------------------------------
--FT_CALLBACK_DEF(FT_Error)
--vtkFreeTypeToolsFaceRequester(FTC_FaceID face_id,
--                              FT_Library lib,
--                              FT_Pointer request_data,
--                              FT_Face* face)
-+static FT_Error vtkFreeTypeToolsFaceRequester(
-+  FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
- {
- #if VTK_FTFC_DEBUG_CD
-   printf("vtkFreeTypeToolsFaceRequester()\n");
--- 
-2.30.1
-
