summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2022-06-01 12:31:09 +0300
committerEfraim Flashner <efraim@flashner.co.il>2022-06-01 12:42:04 +0300
commit64c043e63a4be97f59fd1906c47973a74eedda67 (patch)
tree37b15dfb4830e4f874edca87b521b6e9cdc3c81b /gnu/packages/patches
parentb1f763de54dc2b8e240d0f01f7948ce76f67243e (diff)
parent75af73e1b7ac58770122d8831faa3a8158638bb0 (diff)
downloadguix-patches-64c043e63a4be97f59fd1906c47973a74eedda67.tar
guix-patches-64c043e63a4be97f59fd1906c47973a74eedda67.tar.gz
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/4store-fix-buildsystem.patch56
-rw-r--r--gnu/packages/patches/4store-unset-preprocessor-directive.patch16
-rw-r--r--gnu/packages/patches/breezy-fix-gio.patch338
-rw-r--r--gnu/packages/patches/casync-renameat2-declaration.patch27
-rw-r--r--gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch58
-rw-r--r--gnu/packages/patches/emacs-helpful-fix-docstring-test.patch18
-rw-r--r--gnu/packages/patches/gcc-12-cross-environment-variables.patch54
-rw-r--r--gnu/packages/patches/gourmet-sqlalchemy-compat.patch18
-rw-r--r--gnu/packages/patches/guile-ac-d-bus-fix-tests.patch28
-rw-r--r--gnu/packages/patches/itk-snap-alt-glibc-compat.patch22
-rw-r--r--gnu/packages/patches/mia-fix-boost-headers.patch479
-rw-r--r--gnu/packages/patches/mozjs17-aarch64-support.patch60
-rw-r--r--gnu/packages/patches/mozjs24-aarch64-support.patch21
-rw-r--r--gnu/packages/patches/mozjs38-pkg-config-version.patch24
-rw-r--r--gnu/packages/patches/mozjs38-shell-version.patch67
-rw-r--r--gnu/packages/patches/mozjs38-tracelogger.patch608
-rw-r--r--gnu/packages/patches/mozjs38-version-detection.patch180
-rw-r--r--gnu/packages/patches/mozjs60-riscv64-support.patch122
-rw-r--r--gnu/packages/patches/openbox-python3.patch165
-rw-r--r--gnu/packages/patches/python2-parameterized-docstring-test.patch18
-rw-r--r--gnu/packages/patches/python2-pygobject-2-deprecation.patch39
-rw-r--r--gnu/packages/patches/python2-subprocess32-disable-input-test.patch18
-rw-r--r--gnu/packages/patches/rapicorn-isnan.patch87
-rw-r--r--gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch117
-rw-r--r--gnu/packages/patches/vtk-7-gcc-10-compat.patch14
-rw-r--r--gnu/packages/patches/vtk-7-hdf5-compat.patch38
-rw-r--r--gnu/packages/patches/vtk-7-python-compat.patch16
-rw-r--r--gnu/packages/patches/wicd-bitrate-none-fix.patch24
-rw-r--r--gnu/packages/patches/wicd-get-selected-profile-fix.patch16
-rw-r--r--gnu/packages/patches/wicd-urwid-1.3.patch18
-rw-r--r--gnu/packages/patches/wicd-wpa2-ttls.patch38
31 files changed, 1365 insertions, 1439 deletions
diff --git a/gnu/packages/patches/4store-fix-buildsystem.patch b/gnu/packages/patches/4store-fix-buildsystem.patch
deleted file mode 100644
index 383baa9461..0000000000
--- a/gnu/packages/patches/4store-fix-buildsystem.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-This patch sets a fixed version to avoid needing Git and the .git/ folder.
-It also removes the creation of "/var/lib/4store", which is not available
-during the install phase in GNU Guix.
-
-Patch by Roel Janssen <roel@gnu.org>
-*** a/configure.ac Wed Feb 4 19:05:24 2015
---- b/configure.ac Wed Mar 23 11:20:38 2016
-***************
-*** 2,13 ****
- # Process this file with autoconf to produce a configure script.
-
- AC_PREREQ([2.50])
-! AC_INIT([4store], m4_esyscmd([./version.sh .version]), [http://4store.org/support/], [4store])
- AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
-! AM_INIT_AUTOMAKE([1.7 std-options -Wall])
- AC_CONFIG_HEADERS(4store-config.h)
-
- # Checks for programs.
- AC_PROG_LIBTOOL
- AC_PROG_AWK
- AC_PROG_CC
---- 2,14 ----
- # Process this file with autoconf to produce a configure script.
-
- AC_PREREQ([2.50])
-! AC_INIT([4store], [1.1.6], [http://4store.org/support/], [4store])
- AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
-! AM_INIT_AUTOMAKE([1.7 std-options foreign -Wall])
- AC_CONFIG_HEADERS(4store-config.h)
-
- # Checks for programs.
-+ AM_PROG_AR
- AC_PROG_LIBTOOL
- AC_PROG_AWK
- AC_PROG_CC
-
-*** a/src/utilities/Makefile.am Wed Feb 4 19:05:24 2015
---- b/src/utilities/Makefile.am Wed Mar 23 14:05:56 2016
-***************
-*** 13,20 ****
- noinst_PROGRAMS = lex-file-verify 4s-rid
-
- install-data-local:
-! mkdir -p $(DESTDIR)@FS_STORE_ROOT@
-! chmod 1777 $(DESTDIR)@FS_STORE_ROOT@
-
- 4s_backend_destroy_SOURCES = backend-destroy.c
- 4s_backend_destroy_LDADD = ../common/lib4sintl.a
---- 13,19 ----
- noinst_PROGRAMS = lex-file-verify 4s-rid
-
- install-data-local:
-! echo "Please create the following directory: " $(DESTDIR)@FS_STORE_ROOT@
-
- 4s_backend_destroy_SOURCES = backend-destroy.c
- 4s_backend_destroy_LDADD = ../common/lib4sintl.a
diff --git a/gnu/packages/patches/4store-unset-preprocessor-directive.patch b/gnu/packages/patches/4store-unset-preprocessor-directive.patch
deleted file mode 100644
index c4b1d6eda4..0000000000
--- a/gnu/packages/patches/4store-unset-preprocessor-directive.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This patch removes the _XOPEN_SOURCE preprocessor directive as it does not seem to be needed.
-Setting it removes the definition of strdup, which is used in filter-datatypes.c.
-
-Patch by Roel Janssen <roel@gnu.org>
-*** a/src/frontend/filter-datatypes.c 1970-01-01 01:00:00.000000000 +0100
---- b/src/frontend/filter-datatypes.c 2018-04-03 17:39:23.177905592 +0200
-***************
-*** 18,24 ****
- * Copyright (C) 2006 Steve Harris for Garlik
- */
-
-- #define _XOPEN_SOURCE
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
---- 18,23 ----
diff --git a/gnu/packages/patches/breezy-fix-gio.patch b/gnu/packages/patches/breezy-fix-gio.patch
new file mode 100644
index 0000000000..f70e761555
--- /dev/null
+++ b/gnu/packages/patches/breezy-fix-gio.patch
@@ -0,0 +1,338 @@
+This patch combines https://code.launchpad.net/~jelmer/brz/enable-gio/+merge/419150
+and https://bazaar.launchpad.net/~jelmer/brz/fix-gio/revision/7570.
+
+=== modified file 'breezy/transport/gio_transport.py'
+--- a/breezy/transport/gio_transport.py 2022-04-09 12:17:41 +0000
++++ b/breezy/transport/gio_transport.py 2022-04-09 12:33:51 +0000
+@@ -52,11 +52,7 @@
+ from ..tests.test_server import TestServer
+
+ try:
+- import glib
+-except ImportError as e:
+- raise errors.DependencyNotPresent('glib', e)
+-try:
+- import gio
++ from gi.repository import Gio as gio
+ except ImportError as e:
+ raise errors.DependencyNotPresent('gio', e)
+
+
+@@ -57,6 +57,9 @@
+ raise errors.DependencyNotPresent('gio', e)
+
+
++from gi.repository.GLib import GError
++
++
+ class GioLocalURLServer(TestServer):
+ """A pretend server for local transports, using file:// urls.
+
+@@ -81,7 +84,7 @@
+ def __init__(self, transport, relpath):
+ FileStream.__init__(self, transport, relpath)
+ self.gio_file = transport._get_GIO(relpath)
+- self.stream = self.gio_file.create()
++ self.stream = self.gio_file.create(0, None)
+
+ def _close(self):
+ self.stream.close()
+@@ -90,7 +93,7 @@
+ try:
+ # Using pump_string_file seems to make things crash
+ osutils.pumpfile(BytesIO(bytes), self.stream)
+- except gio.Error as e:
++ except GError as e:
+ # self.transport._translate_gio_error(e,self.relpath)
+ raise errors.BzrError(str(e))
+
+@@ -98,12 +101,12 @@
+ class GioStatResult(object):
+
+ def __init__(self, f):
+- info = f.query_info('standard::size,standard::type')
++ info = f.query_info('standard::size,standard::type', 0, None)
+ self.st_size = info.get_size()
+ type = info.get_file_type()
+- if (type == gio.FILE_TYPE_REGULAR):
++ if type == gio.FileType.REGULAR:
+ self.st_mode = stat.S_IFREG
+- elif type == gio.FILE_TYPE_DIRECTORY:
++ elif type == gio.FileType.DIRECTORY:
+ self.st_mode = stat.S_IFDIR
+
+
+@@ -122,7 +125,7 @@
+ user, netloc = netloc.rsplit('@', 1)
+ # Seems it is not possible to list supported backends for GIO
+ # so a hardcoded list it is then.
+- gio_backends = ['dav', 'file', 'ftp', 'obex', 'sftp', 'ssh', 'smb']
++ gio_backends = ['dav', 'file', 'ftp', 'obex', 'sftp', 'ssh', 'smb', 'http']
+ if scheme not in gio_backends:
+ raise urlutils.InvalidURL(base,
+ extra="GIO support is only available for " +
+@@ -138,13 +141,10 @@
+ _from_transport=_from_transport)
+
+ def _relpath_to_url(self, relpath):
+- full_url = urlutils.join(self.url, relpath)
+- if isinstance(full_url, str):
+- raise urlutils.InvalidURL(full_url)
+- return full_url
++ return urlutils.join(self.url, relpath)
+
+ def _get_GIO(self, relpath):
+- """Return the ftplib.GIO instance for this object."""
++ """Return the GIO instance for this object."""
+ # Ensures that a connection is established
+ connection = self._get_connection()
+ if connection is None:
+@@ -152,7 +152,7 @@
+ connection, credentials = self._create_connection()
+ self._set_connection(connection, credentials)
+ fileurl = self._relpath_to_url(relpath)
+- file = gio.File(fileurl)
++ file = gio.File.new_for_uri(fileurl)
+ return file
+
+ def _auth_cb(self, op, message, default_user, default_domain, flags):
+@@ -197,7 +197,7 @@
+ try:
+ obj.mount_enclosing_volume_finish(res)
+ self.loop.quit()
+- except gio.Error as e:
++ except GError as e:
+ self.loop.quit()
+ raise errors.BzrError(
+ "Failed to mount the given location: " + str(e))
+@@ -209,12 +209,12 @@
+ user, password = credentials
+
+ try:
+- connection = gio.File(self.url)
++ connection = gio.File.new_for_uri(self.url)
+ mount = None
+ try:
+ mount = connection.find_enclosing_mount()
+- except gio.Error as e:
+- if (e.code == gio.ERROR_NOT_MOUNTED):
++ except GError as e:
++ if e.code == gio.IOErrorEnum.NOT_MOUNTED:
+ self.loop = glib.MainLoop()
+ ui.ui_factory.show_message('Mounting %s using GIO' %
+ self.url)
+@@ -227,7 +227,7 @@
+ m = connection.mount_enclosing_volume(op,
+ self._mount_done_cb)
+ self.loop.run()
+- except gio.Error as e:
++ except GError as e:
+ raise errors.TransportError(msg="Error setting up connection:"
+ " %s" % str(e), orig_error=e)
+ return connection, (user, password)
+@@ -257,8 +257,8 @@
+ if stat.S_ISREG(st.st_mode) or stat.S_ISDIR(st.st_mode):
+ return True
+ return False
+- except gio.Error as e:
+- if e.code == gio.ERROR_NOT_FOUND:
++ except GError as e:
++ if e.code == gio.IOErrorEnum.NOT_FOUND:
+ return False
+ else:
+ self._translate_gio_error(e, relpath)
+@@ -281,10 +281,10 @@
+ buf = fin.read()
+ fin.close()
+ return BytesIO(buf)
+- except gio.Error as e:
++ except GError as e:
+ # If we get a not mounted here it might mean
+ # that a bad path has been entered (or that mount failed)
+- if (e.code == gio.ERROR_NOT_MOUNTED):
++ if e.code == gio.IOErrorEnum.NOT_MOUNTED:
+ raise errors.PathError(relpath,
+ extra='Failed to get file, make sure the path is correct. '
+ + str(e))
+@@ -307,19 +307,19 @@
+ closed = True
+ try:
+ f = self._get_GIO(tmppath)
+- fout = f.create()
++ fout = f.create(0, None)
+ closed = False
+ length = self._pump(fp, fout)
+ fout.close()
+ closed = True
+ self.stat(tmppath)
+ dest = self._get_GIO(relpath)
+- f.move(dest, flags=gio.FILE_COPY_OVERWRITE)
++ f.move(dest, flags=gio.FileCopyFlags.OVERWRITE)
+ f = None
+ if mode is not None:
+ self._setmode(relpath, mode)
+ return length
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+ finally:
+ if not closed and fout is not None:
+@@ -335,7 +335,7 @@
+ f = self._get_GIO(relpath)
+ f.make_directory()
+ self._setmode(relpath, mode)
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+
+ def open_write_stream(self, relpath, mode=None):
+@@ -369,14 +369,11 @@
+ f.delete()
+ else:
+ raise errors.NotADirectory(relpath)
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+ except errors.NotADirectory as e:
+ # just pass it forward
+ raise e
+- except Exception as e:
+- mutter('failed to rmdir %s: %s' % (relpath, e))
+- raise errors.PathError(relpath)
+
+ def append_file(self, relpath, file, mode=None):
+ """Append the text in the file-like object into the final
+@@ -392,7 +389,7 @@
+ result = 0
+ fo = self._get_GIO(tmppath)
+ fi = self._get_GIO(relpath)
+- fout = fo.create()
++ fout = fo.create(0, None)
+ try:
+ info = GioStatResult(fi)
+ result = info.st_size
+@@ -400,11 +397,11 @@
+ self._pump(fin, fout)
+ fin.close()
+ # This separate except is to catch and ignore the
+- # gio.ERROR_NOT_FOUND for the already existing file.
++ # gio.IOErrorEnum.NOT_FOUND for the already existing file.
+ # It is valid to open a non-existing file for append.
+ # This is caused by the broken gio append_to...
+- except gio.Error as e:
+- if e.code != gio.ERROR_NOT_FOUND:
++ except GError as e:
++ if e.code != gio.IOErrorEnum.NOT_FOUND:
+ self._translate_gio_error(e, relpath)
+ length = self._pump(file, fout)
+ fout.close()
+@@ -413,9 +410,11 @@
+ raise errors.BzrError("Failed to append size after "
+ "(%d) is not original (%d) + written (%d) total (%d)" %
+ (info.st_size, result, length, result + length))
+- fo.move(fi, flags=gio.FILE_COPY_OVERWRITE)
++ fo.move(
++ fi, flags=gio.FileCopyFlags.OVERWRITE, cancellable=None,
++ progress_callback=None)
+ return result
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+
+ def _setmode(self, relpath, mode):
+@@ -429,8 +428,8 @@
+ try:
+ f = self._get_GIO(relpath)
+ f.set_attribute_uint32(gio.FILE_ATTRIBUTE_UNIX_MODE, mode)
+- except gio.Error as e:
+- if e.code == gio.ERROR_NOT_SUPPORTED:
++ except GError as e:
++ if e.code == gio.IOErrorEnum.NOT_SUPPORTED:
+ # Command probably not available on this server
+ mutter("GIO Could not set permissions to %s on %s. %s",
+ oct(mode), self._remote_path(relpath), str(e))
+@@ -444,8 +443,8 @@
+ mutter("GIO move (rename): %s => %s", rel_from, rel_to)
+ f = self._get_GIO(rel_from)
+ t = self._get_GIO(rel_to)
+- f.move(t)
+- except gio.Error as e:
++ f.move(t, flags=0, cancellable=None, progress_callback=None)
++ except GError as e:
+ self._translate_gio_error(e, rel_from)
+
+ def move(self, rel_from, rel_to):
+@@ -455,8 +454,8 @@
+ mutter("GIO move: %s => %s", rel_from, rel_to)
+ f = self._get_GIO(rel_from)
+ t = self._get_GIO(rel_to)
+- f.move(t, flags=gio.FILE_COPY_OVERWRITE)
+- except gio.Error as e:
++ f.move(t, flags=gio.FileCopyFlags.OVERWRITE)
++ except GError as e:
+ self._translate_gio_error(e, relfrom)
+
+ def delete(self, relpath):
+@@ -466,7 +465,7 @@
+ mutter("GIO delete: %s", relpath)
+ f = self._get_GIO(relpath)
+ f.delete()
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+
+ def external_url(self):
+@@ -489,11 +488,11 @@
+ try:
+ entries = []
+ f = self._get_GIO(relpath)
+- children = f.enumerate_children(gio.FILE_ATTRIBUTE_STANDARD_NAME)
++ children = f.enumerate_children(gio.FILE_ATTRIBUTE_STANDARD_NAME, 0, None)
+ for child in children:
+ entries.append(urlutils.escape(child.get_name()))
+ return entries
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath)
+
+ def iter_files_recursive(self):
+@@ -519,7 +518,7 @@
+ mutter("GIO stat: %s", relpath)
+ f = self._get_GIO(relpath)
+ return GioStatResult(f)
+- except gio.Error as e:
++ except GError as e:
+ self._translate_gio_error(e, relpath, extra='error w/ stat')
+
+ def lock_read(self, relpath):
+@@ -556,21 +555,21 @@
+ mutter("GIO Error: %s %s" % (str(err), path))
+ if extra is None:
+ extra = str(err)
+- if err.code == gio.ERROR_NOT_FOUND:
++ if err.code == gio.IOErrorEnum.NOT_FOUND:
+ raise errors.NoSuchFile(path, extra=extra)
+- elif err.code == gio.ERROR_EXISTS:
++ elif err.code == gio.IOErrorEnum.EXISTS:
+ raise errors.FileExists(path, extra=extra)
+- elif err.code == gio.ERROR_NOT_DIRECTORY:
++ elif err.code == gio.IOErrorEnum.NOT_DIRECTORY:
+ raise errors.NotADirectory(path, extra=extra)
+- elif err.code == gio.ERROR_NOT_EMPTY:
++ elif err.code == gio.IOErrorEnum.NOT_EMPTY:
+ raise errors.DirectoryNotEmpty(path, extra=extra)
+- elif err.code == gio.ERROR_BUSY:
++ elif err.code == gio.IOErrorEnum.BUSY:
+ raise errors.ResourceBusy(path, extra=extra)
+- elif err.code == gio.ERROR_PERMISSION_DENIED:
++ elif err.code == gio.IOErrorEnum.PERMISSION_DENIED:
+ raise errors.PermissionDenied(path, extra=extra)
+- elif err.code == gio.ERROR_HOST_NOT_FOUND:
++ elif err.code == gio.IOErrorEnum.HOST_NOT_FOUND:
+ raise errors.PathError(path, extra=extra)
+- elif err.code == gio.ERROR_IS_DIRECTORY:
++ elif err.code == gio.IOErrorEnum.IS_DIRECTORY:
+ raise errors.PathError(path, extra=extra)
+ else:
+ mutter('unable to understand error for path: %s: %s', path, err)
+
diff --git a/gnu/packages/patches/casync-renameat2-declaration.patch b/gnu/packages/patches/casync-renameat2-declaration.patch
deleted file mode 100644
index 74c2ca7b3c..0000000000
--- a/gnu/packages/patches/casync-renameat2-declaration.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix build failure on glibc 2.28 where 'renameat2' would end up being
-declared twice: <https://github.com/systemd/casync/issues/166>.
-
-From 625244ca47e8ee1375d2d0092271bfd13b0913ea Mon Sep 17 00:00:00 2001
-From: Daniel Mack <daniel@zonque.org>
-Date: Tue, 13 Nov 2018 17:52:48 +0100
-Subject: [PATCH] meson.build: pass -D_GNU_SOURCE when checking for functions
-
-As described in #166, -D_GNU_SOURCE needs to be passed to the meson function
-availability checker. h/t to @tomeon for providing a link to the solution as
-well.
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index f42ed16..c0f741e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -78,6 +78,6 @@ foreach ident : [
- ['copy_file_range', '''#include <sys/syscall.h>
- #include <unistd.h>'''],
- ]
-- have = cc.has_function(ident[0], prefix : ident[1])
-+ have = cc.has_function(ident[0], args : '-D_GNU_SOURCE', prefix : ident[1])
- conf.set10('HAVE_' + ident[0].to_upper(), have)
- endforeach
diff --git a/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch b/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch
new file mode 100644
index 0000000000..fdb444c29b
--- /dev/null
+++ b/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch
@@ -0,0 +1,58 @@
+From 226734f06196d31971d8ca2026a9ce432d5227d0 Mon Sep 17 00:00:00 2001
+From: r0man <roman@burningswell.com>
+Date: Thu, 26 May 2022 10:42:25 +0200
+Subject: [PATCH] Fix wrong-number-of-arguments error
+
+With Emacs 28 I'm seeing the following error when running the tests.
+
+```
+deferred error : (wrong-number-of-arguments #<subr start-process-shell-command> 4)
+```
+
+I believe this is because the `start-process-shell-command` function
+is called with the command arguments as &rest parameters. This is the
+function signature of `start-process-shell-command`, and it only takes
+3 arguments, the name, buffer, and command. The command argument can
+be a shell string like "ls -l" for example.
+
+```
+(defun start-process-shell-command (name buffer command) ...)
+```
+
+The `start-process` function on the other hand has &rest parameters
+and can be called with a list of arguments.
+
+```
+(defun start-process (name buffer program &rest program-args) ...)
+```
+
+This PR fixes the issue by concatenating the command and it's argument
+before calling out to `deferred:process-buffer-gen`, which is used in
+both cases, when calling `start-process-shell-command`, and when
+calling `start-process`.
+---
+ deferred.el | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/deferred.el b/deferred.el
+index 041c90b..3092ac0 100644
+--- a/deferred.el
++++ b/deferred.el
+@@ -754,7 +754,7 @@ object. The process name and buffer name of the argument of the
+ `start-process-shell-command' are generated by this function automatically.
+ The next deferred object receives stdout and stderr string from
+ the command process."
+- (deferred:process-gen 'start-process-shell-command command args))
++ (deferred:process-gen 'start-process-shell-command (string-join (cons command args) " ") nil))
+
+ (defun deferred:process-buffer (command &rest args)
+ "A deferred wrapper of `start-process'. Return a deferred
+@@ -770,7 +770,7 @@ object. The process name and buffer name of the argument of the
+ `start-process-shell-command' are generated by this function automatically.
+ The next deferred object receives stdout and stderr buffer from
+ the command process."
+- (deferred:process-buffer-gen 'start-process-shell-command command args))
++ (deferred:process-buffer-gen 'start-process-shell-command (string-join (cons command args) " ") nil))
+
+ (defun deferred:process-gen (f command args)
+ "[internal]"
diff --git a/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch b/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch
new file mode 100644
index 0000000000..de40010fa2
--- /dev/null
+++ b/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch
@@ -0,0 +1,18 @@
+This patch fixing a build failure has been cherry-picked from upstream.
+Originally submitted as pull request by Erik Šabič.
+See also <https://github.com/Wilfred/helpful/pull/296>.
+diff --git a/test/helpful-unit-test.el b/test/helpful-unit-test.el
+index a07aa8e..8a95129 100644
+--- a/test/helpful-unit-test.el
++++ b/test/helpful-unit-test.el
+@@ -119,7 +119,9 @@ bar")))
+ (should
+ (equal
+ (helpful--docstring #'test-foo-advised t)
+- "Docstring here too.")))
++ (if (version< emacs-version "28")
++ "Docstring here too."
++ "Docstring here too.\n\nThis function has :around advice: `ad-Advice-test-foo-advised'."))))
+
+ (defun test-foo-no-docstring ()
+ nil)
diff --git a/gnu/packages/patches/gcc-12-cross-environment-variables.patch b/gnu/packages/patches/gcc-12-cross-environment-variables.patch
new file mode 100644
index 0000000000..8787f094c0
--- /dev/null
+++ b/gnu/packages/patches/gcc-12-cross-environment-variables.patch
@@ -0,0 +1,54 @@
+Search path environment variables for cross-compilers. See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
+at <http://bugs.gnu.org/22186>.
+
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -4832,7 +4832,7 @@ process_command (unsigned int decoded_options_count,
+ }
+
+ temp = env.get (LIBRARY_PATH_ENV);
+- if (temp && *cross_compile == '0')
++ if (temp)
+ {
+ const char *startp, *endp;
+ char *nstore = (char *) alloca (strlen (temp) + 3);
+diff --git a/gcc/incpath.cc b/gcc/incpath.cc
+--- a/gcc/incpath.cc
++++ b/gcc/incpath.cc
+@@ -480,8 +480,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+ int stdinc, int cxx_stdinc, int verbose)
+ {
+ static const char *const lang_env_vars[] =
+- { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
+- "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
++ { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
++ "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
+ cpp_options *cpp_opts = cpp_get_options (pfile);
+ size_t idx = (cpp_opts->objc ? 2: 0);
+
+@@ -492,7 +492,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+
+ /* CPATH and language-dependent environment variables may add to the
+ include chain. */
+- add_env_var_paths ("CPATH", INC_BRACKET);
++ add_env_var_paths ("CROSS_CPATH", INC_BRACKET);
+ add_env_var_paths (lang_env_vars[idx], INC_SYSTEM);
+
+ target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1317,4 +1317,6 @@ endswith (const char *str, const char *suffix)
+ return memcmp (str + str_len - suffix_len, suffix, suffix_len) == 0;
+ }
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
+--
+2.36.1
+
diff --git a/gnu/packages/patches/gourmet-sqlalchemy-compat.patch b/gnu/packages/patches/gourmet-sqlalchemy-compat.patch
new file mode 100644
index 0000000000..d0cdf9e5a7
--- /dev/null
+++ b/gnu/packages/patches/gourmet-sqlalchemy-compat.patch
@@ -0,0 +1,18 @@
+diff --git a/gourmet/backends/db.py b/gourmet/backends/db.py
+index faa6a57a..7e6d2bc6 100644
+--- a/gourmet/backends/db.py
++++ b/gourmet/backends/db.py
+@@ -773,9 +773,11 @@ class RecData (Pluggable):
+ """Return the number of rows in table that match criteria
+ """
+ if criteria:
+- return table.count(*make_simple_select_arg(criteria,table)).execute().fetchone()[0]
++ return sqlalchemy.select(
++ sqlalchemy.func.count(criteria)).select_from(table).scalar()
+ else:
+- return table.count().execute().fetchone()[0]
++ return sqlalchemy.select(
++ sqlalchemy.func.count()).select_from(table).scalar()
+
+ def fetch_join (self, table1, table2, col1, col2,
+ column_names=None, sort_by=[], **criteria):
diff --git a/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch b/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch
new file mode 100644
index 0000000000..19fd475c39
--- /dev/null
+++ b/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch
@@ -0,0 +1,28 @@
+Submitted upstream: https://gitlab.com/weinholt/ac-d-bus/-/merge_requests/3
+
+diff --git a/tests/test-signature.sps b/tests/test-signature.sps
+index 278401b..cc5574f 100755
+--- a/tests/test-signature.sps
++++ b/tests/test-signature.sps
+@@ -43,6 +43,7 @@
+ (format-type-signature '(message BYTE BYTE BYTE BYTE UINT32 UINT32
+ (ARRAY (STRUCT BYTE VARIANT)))))
+
++(define fail-count (test-runner-fail-count (test-runner-get)))
+ (test-end)
+
+-(exit (if (zero? (test-runner-fail-count (test-runner-get))) 0 1))
++(exit (if (zero? fail-count) 0 1))
+diff --git a/tests/test-wire.sps b/tests/test-wire.sps
+index c3354bf..06ae73b 100755
+--- a/tests/test-wire.sps
++++ b/tests/test-wire.sps
+@@ -147,6 +147,7 @@
+ #x08 #x01 #x67 #x00 #x00 #x00 #x00 #x00 #x05 #x01 #x75 #x00 #x04 #x00 #x00 #x00
+ #x07 #x01 #x73 #x00 #x06 #x00 #x00 #x00 #x3A #x31 #x2E #x32 #x39 #x38 #x00 #x00)))
+
++(define fail-count (test-runner-fail-count (test-runner-get)))
+ (test-end)
+
+-(exit (if (zero? (test-runner-fail-count (test-runner-get))) 0 1))
++(exit (if (zero? fail-count) 0 1))
diff --git a/gnu/packages/patches/itk-snap-alt-glibc-compat.patch b/gnu/packages/patches/itk-snap-alt-glibc-compat.patch
new file mode 100644
index 0000000000..764c5da2c2
--- /dev/null
+++ b/gnu/packages/patches/itk-snap-alt-glibc-compat.patch
@@ -0,0 +1,22 @@
+Retrieved from ALT Linux.
+https://git.altlinux.org/tasks/273587/build/300/x86_64/srpm/itk-snap-3.8.0-alt6.src.rpm
+
+diff --git a/GUI/Qt/main.cxx b/GUI/Qt/main.cxx
+index 576f7160..ceab92e6 100644
+--- a/GUI/Qt/main.cxx
++++ b/GUI/Qt/main.cxx
+@@ -51,12 +51,13 @@ using namespace std;
+ #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
+
+ #include <signal.h>
++#include <string.h>
+ #include <execinfo.h>
+
+ void SegmentationFaultHandler(int sig)
+ {
+ cerr << "*************************************" << endl;
+- cerr << "ITK-SNAP: " << sys_siglist[sig] << endl;
++ cerr << "ITK-SNAP: " << strsignal(sig) << " (" << sigabbrev_np(sig) << ")" << endl;
+ cerr << "BACKTRACE: " << endl;
+ void *array[50];
+ int nsize = backtrace(array, 50);
diff --git a/gnu/packages/patches/mia-fix-boost-headers.patch b/gnu/packages/patches/mia-fix-boost-headers.patch
new file mode 100644
index 0000000000..158ab2afeb
--- /dev/null
+++ b/gnu/packages/patches/mia-fix-boost-headers.patch
@@ -0,0 +1,479 @@
+Retrieved from Debian, and added a few "#include <boost/mpl/vector.hpp>"
+directives to fix the build.
+
+diff --git a/addons/hdf5/test_hdf5_3dimage.cc b/addons/hdf5/test_hdf5_3dimage.cc
+index a7185618..7a398821 100644
+--- a/addons/hdf5/test_hdf5_3dimage.cc
++++ b/addons/hdf5/test_hdf5_3dimage.cc
+@@ -23,7 +23,7 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
++#include <boost/test/unit_test.hpp>
+
+ #include <addons/hdf5/hdf5_3dimage.hh>
+
+diff --git a/addons/hdf5/test_hdf5mia.cc b/addons/hdf5/test_hdf5mia.cc
+index 3d62106e..8141be07 100644
+--- a/addons/hdf5/test_hdf5mia.cc
++++ b/addons/hdf5/test_hdf5mia.cc
+@@ -23,7 +23,6 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+
+ #include <addons/hdf5/hdf5a_mia.hh>
+diff --git a/addons/nifti/test_niftiimage.cc b/addons/nifti/test_niftiimage.cc
+index 8df3f0b5..840ae585 100644
+--- a/addons/nifti/test_niftiimage.cc
++++ b/addons/nifti/test_niftiimage.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+
+ #include <nifti/niftiimage.hh>
+ #include <unistd.h>
+diff --git a/addons/vistaio/test_2dvistaio.cc b/addons/vistaio/test_2dvistaio.cc
+index b3da29a0..9b1599dd 100644
+--- a/addons/vistaio/test_2dvistaio.cc
++++ b/addons/vistaio/test_2dvistaio.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+
+ #include <vistaio/2dvistaio.hh>
+ #include <unistd.h>
+diff --git a/addons/vistaio/test_3dvistaio.cc b/addons/vistaio/test_3dvistaio.cc
+index 93c007d0..c3ae1fdb 100644
+--- a/addons/vistaio/test_3dvistaio.cc
++++ b/addons/vistaio/test_3dvistaio.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+
+ #include <vistaio/3dvistaio.hh>
+ #include <unistd.h>
+diff --git a/addons/vtk/test_vtkimage.cc b/addons/vtk/test_vtkimage.cc
+index eaf96a6b..8212ef1d 100644
+--- a/addons/vtk/test_vtkimage.cc
++++ b/addons/vtk/test_vtkimage.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+
+ #include <vtk/vtkimage.hh>
+ #include <unistd.h>
+diff --git a/mia/2d/creator/test_circle.cc b/mia/2d/creator/test_circle.cc
+index 9784e05d..7ca4bab9 100644
+--- a/mia/2d/creator/test_circle.cc
++++ b/mia/2d/creator/test_circle.cc
+@@ -21,8 +21,6 @@
+
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ #include <mia/2d/creator/circle.hh>
+
+ using namespace mia;
+diff --git a/mia/2d/filter/test_convert.cc b/mia/2d/filter/test_convert.cc
+index 80304793..f40d295a 100644
+--- a/mia/2d/filter/test_convert.cc
++++ b/mia/2d/filter/test_convert.cc
+@@ -25,7 +25,6 @@
+ #include <type_traits>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+
+
+diff --git a/mia/2d/filter/test_morphological.cc b/mia/2d/filter/test_morphological.cc
+index 2fc58583..9a004946 100644
+--- a/mia/2d/filter/test_morphological.cc
++++ b/mia/2d/filter/test_morphological.cc
+@@ -20,7 +20,6 @@
+
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/2d/filter/morphological.hh>
+
+ namespace bmpl = boost::mpl;
+diff --git a/mia/2d/filter/test_sortlabel.cc b/mia/2d/filter/test_sortlabel.cc
+index 78464e1a..49c327e3 100644
+--- a/mia/2d/filter/test_sortlabel.cc
++++ b/mia/2d/filter/test_sortlabel.cc
+@@ -23,7 +23,6 @@
+ #include <mia/2d/filter/sortlabel.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ namespace bmpl = boost::mpl;
+
+
+diff --git a/mia/2d/filter/test_thinning.cc b/mia/2d/filter/test_thinning.cc
+index 3ebb2cdc..8bc5b356 100644
+--- a/mia/2d/filter/test_thinning.cc
++++ b/mia/2d/filter/test_thinning.cc
+@@ -21,7 +21,6 @@
+
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/2d/filter/thinning.hh>
+ #include <mia/2d/imagetest.hh>
+
+diff --git a/mia/2d/test_filter_cast.cc b/mia/2d/test_filter_cast.cc
+index e806e14f..91c77398 100644
+--- a/mia/2d/test_filter_cast.cc
++++ b/mia/2d/test_filter_cast.cc
+@@ -24,7 +24,7 @@
+ #include <mia/internal/autotest.hh>
+ #include <mia/2d/filter.hh>
+
+-#include <boost/test/test_case_template.hpp>
++#include <boost/mpl/vector.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/mpl/list.hpp>
+
+diff --git a/mia/2d/test_image.cc b/mia/2d/test_image.cc
+index c82dc59b..1f602510 100644
+--- a/mia/2d/test_image.cc
++++ b/mia/2d/test_image.cc
+@@ -24,6 +24,7 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/filesystem/path.hpp>
++#include <boost/mpl/vector.hpp>
+
+ #include <iostream>
+
+diff --git a/mia/2d/test_interpol.cc b/mia/2d/test_interpol.cc
+index d1f3703d..5caafccf 100644
+--- a/mia/2d/test_interpol.cc
++++ b/mia/2d/test_interpol.cc
+@@ -23,7 +23,6 @@
+
+ #include <mia/internal/autotest.hh>
+
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/mpl/list.hpp>
+
+diff --git a/mia/3d/fifotestfixture.cc b/mia/3d/fifotestfixture.cc
+index ab2e7c65..1b6e6bb4 100644
+--- a/mia/3d/fifotestfixture.cc
++++ b/mia/3d/fifotestfixture.cc
+@@ -24,7 +24,7 @@
+
+ #include <climits>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <mia/core/msgstream.hh>
+ #include <mia/2d/imagetest.hh>
+ #include <mia/3d/fifotestfixture.hh>
+diff --git a/mia/3d/filter/test_convert.cc b/mia/3d/filter/test_convert.cc
+index e83032c1..dad9afaa 100644
+--- a/mia/3d/filter/test_convert.cc
++++ b/mia/3d/filter/test_convert.cc
+@@ -20,7 +20,6 @@
+
+ #include <mia/internal/autotest.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/core/type_traits.hh>
+ #include <mia/3d/filter/convert.hh>
+ #include <boost/mpl/insert_range.hpp>
+diff --git a/mia/3d/test_image.cc b/mia/3d/test_image.cc
+index 18f71892..c21e0d20 100644
+--- a/mia/3d/test_image.cc
++++ b/mia/3d/test_image.cc
+@@ -21,7 +21,8 @@
+ #include <climits>
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
++#include <boost/mpl/vector.hpp>
+
+ #include <mia/3d/image.hh>
+ #include <mia/core/filter.hh>
+diff --git a/mia/3d/test_imageio.cc b/mia/3d/test_imageio.cc
+index 0640a668..7a6b5635 100644
+--- a/mia/3d/test_imageio.cc
++++ b/mia/3d/test_imageio.cc
+@@ -20,7 +20,6 @@
+
+ #include <mia/internal/autotest.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+
+ #include <mia/core/attribute_names.hh>
+diff --git a/mia/core/splinekernel/test_bspline.cc b/mia/core/splinekernel/test_bspline.cc
+index 54d6bda3..0abfe443 100644
+--- a/mia/core/splinekernel/test_bspline.cc
++++ b/mia/core/splinekernel/test_bspline.cc
+@@ -23,8 +23,6 @@
+ #include <mia/core/splinekernel/bspline.hh>
+ #include <mia/core/interpolator1d.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+
+ using namespace mia;
+ using namespace mia::bsplinekernel;
+diff --git a/mia/core/test_cost.cc b/mia/core/test_cost.cc
+index 70097b2e..305ca84d 100644
+--- a/mia/core/test_cost.cc
++++ b/mia/core/test_cost.cc
+@@ -27,7 +27,7 @@
+ #include <mia/core/msgstream.hh>
+
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <boost/test/test_tools.hpp>
+
+ NS_MIA_USE
+diff --git a/mia/core/test_cstplan.cc b/mia/core/test_cstplan.cc
+index aa241d48..a9e5a0e3 100644
+--- a/mia/core/test_cstplan.cc
++++ b/mia/core/test_cstplan.cc
+@@ -23,7 +23,7 @@
+
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/cstplan.hh>
+
+diff --git a/mia/core/test_dictmap.cc b/mia/core/test_dictmap.cc
+index a9217290..fd05fe30 100644
+--- a/mia/core/test_dictmap.cc
++++ b/mia/core/test_dictmap.cc
+@@ -26,7 +26,7 @@
+
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/dictmap.hh>
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/core/test_fifofilter.cc b/mia/core/test_fifofilter.cc
+index 2a066f2e..6e2a385d 100644
+--- a/mia/core/test_fifofilter.cc
++++ b/mia/core/test_fifofilter.cc
+@@ -27,7 +27,7 @@
+
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/core/test_gsl_matrix.cc b/mia/core/test_gsl_matrix.cc
+index 4add5f7a..6d16353d 100644
+--- a/mia/core/test_gsl_matrix.cc
++++ b/mia/core/test_gsl_matrix.cc
+@@ -25,7 +25,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <mia/core/gsl_matrix.hh>
+
+ #include <stdexcept>
+diff --git a/mia/core/test_gsl_matrix_vector_ops.cc b/mia/core/test_gsl_matrix_vector_ops.cc
+index e5f7d7b9..217020f7 100644
+--- a/mia/core/test_gsl_matrix_vector_ops.cc
++++ b/mia/core/test_gsl_matrix_vector_ops.cc
+@@ -28,7 +28,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <iostream>
+ #include <cmath>
+diff --git a/mia/core/test_gsl_multimin.cc b/mia/core/test_gsl_multimin.cc
+index 5bbc434b..129f578a 100644
+--- a/mia/core/test_gsl_multimin.cc
++++ b/mia/core/test_gsl_multimin.cc
+@@ -25,7 +25,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <vector>
+
+ #include <mia/core/gsl_multimin.hh>
+diff --git a/mia/core/test_gsl_pca.cc b/mia/core/test_gsl_pca.cc
+index 436b36b0..12942921 100644
+--- a/mia/core/test_gsl_pca.cc
++++ b/mia/core/test_gsl_pca.cc
+@@ -27,7 +27,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/gsl_pca.hh>
+
+diff --git a/mia/core/test_gsl_vector.cc b/mia/core/test_gsl_vector.cc
+index 541c88b8..ba91f159 100644
+--- a/mia/core/test_gsl_vector.cc
++++ b/mia/core/test_gsl_vector.cc
+@@ -25,10 +25,9 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+
+ #include <mia/core/gsl_vector.hh>
+
+diff --git a/mia/core/test_interpol.cc b/mia/core/test_interpol.cc
+index 36669dc0..2dd5157d 100644
+--- a/mia/core/test_interpol.cc
++++ b/mia/core/test_interpol.cc
+@@ -24,7 +24,7 @@
+ #include <mia/internal/autotest.hh>
+
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
++#include <boost/test/unit_test.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/filesystem/path.hpp>
+
+diff --git a/mia/core/test_parameter.cc b/mia/core/test_parameter.cc
+index ae9b4976..28ef2a80 100644
+--- a/mia/core/test_parameter.cc
++++ b/mia/core/test_parameter.cc
+@@ -26,7 +26,7 @@
+
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/parameter.hh>
+ #include <mia/core/msgstream.hh>
+diff --git a/mia/core/test_probmap.cc b/mia/core/test_probmap.cc
+index 2dc6cb6c..38052681 100644
+--- a/mia/core/test_probmap.cc
++++ b/mia/core/test_probmap.cc
+@@ -22,7 +22,7 @@
+
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/cmdlineparser.hh>
+ #include <mia/core/probmap.hh>
+diff --git a/mia/core/test_sqmin.cc b/mia/core/test_sqmin.cc
+index f00b3b85..4a0b67b9 100644
+--- a/mia/core/test_sqmin.cc
++++ b/mia/core/test_sqmin.cc
+@@ -23,7 +23,7 @@
+ #define BOOST_TEST_DYN_LINK
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core/sqmin.hh>
+
+diff --git a/mia/internal/autotest.hh b/mia/internal/autotest.hh
+index 419f6e8f..4458c0b2 100644
+--- a/mia/internal/autotest.hh
++++ b/mia/internal/autotest.hh
+@@ -34,7 +34,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <miaconfig.h>
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/internal/plugintester.hh b/mia/internal/plugintester.hh
+index 2d42b858..e632e5f7 100644
+--- a/mia/internal/plugintester.hh
++++ b/mia/internal/plugintester.hh
+@@ -31,7 +31,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <miaconfig.h>
+ #include <mia/core/factory.hh>
+diff --git a/mia/test/testhelpers.hh b/mia/test/testhelpers.hh
+index 27f37e7f..68c213a6 100644
+--- a/mia/test/testhelpers.hh
++++ b/mia/test/testhelpers.hh
+@@ -23,7 +23,7 @@
+
+ #include <type_traits>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ namespace miatest
+ {
+diff --git a/src/2dlerp.cc b/src/2dlerp.cc
+index 4c7dde77..1e8801de 100644
+--- a/src/2dlerp.cc
++++ b/src/2dlerp.cc
+@@ -25,7 +25,7 @@
+
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core.hh>
+ #include <mia/internal/main.hh>
+diff --git a/src/3dlerp.cc b/src/3dlerp.cc
+index 6ee8dca0..2f1c1f3a 100644
+--- a/src/3dlerp.cc
++++ b/src/3dlerp.cc
+@@ -24,7 +24,7 @@
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+
+ #include <mia/core.hh>
+ #include <mia/internal/main.hh>
diff --git a/gnu/packages/patches/mozjs17-aarch64-support.patch b/gnu/packages/patches/mozjs17-aarch64-support.patch
deleted file mode 100644
index 51e2e306d5..0000000000
--- a/gnu/packages/patches/mozjs17-aarch64-support.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch
-
-index c071c33..90764c3 100644
---- a/js/src/assembler/jit/ExecutableAllocator.h
-+++ b/js/src/assembler/jit/ExecutableAllocator.h
-@@ -382,6 +382,12 @@ public:
- {
- reprotectRegion(start, size, Executable);
- }
-+#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX
-+ static void cacheFlush(void* code, size_t size)
-+ {
-+ intptr_t end = reinterpret_cast<intptr_t>(code) + size;
-+ __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
-+ }
- #else
- static void makeWritable(void*, size_t) {}
- static void makeExecutable(void*, size_t) {}
-diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h
-index 0c84896..e8763a7 100644
---- a/js/src/assembler/wtf/Platform.h
-+++ b/js/src/assembler/wtf/Platform.h
-@@ -325,6 +325,10 @@
- #define WTF_THUMB_ARCH_VERSION 0
- #endif
-
-+/* CPU(AArch64) - 64-bit ARM */
-+#if defined(__aarch64__)
-+#define WTF_CPU_AARCH64 1
-+#endif
-
- /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */
- /* On ARMv5 and below the natural alignment is required.
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 15605b2..19fd704 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -1121,6 +1121,10 @@ arm*)
- CPU_ARCH=arm
- ;;
-
-+aarch64)
-+ CPU_ARCH=aarch64
-+ ;;
-+
- mips|mipsel)
- CPU_ARCH=&quot;mips&quot;
- ;;
-diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
-index 0eec2d9..fe26dab 100644
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -58,6 +58,7 @@
- defined(__mips__) || defined(__powerpc__) || \
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
-+ defined(__aarch64__) || \
- defined(_MIPS_ARCH_MIPS32R2)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
diff --git a/gnu/packages/patches/mozjs24-aarch64-support.patch b/gnu/packages/patches/mozjs24-aarch64-support.patch
deleted file mode 100644
index 9dca8e500c..0000000000
--- a/gnu/packages/patches/mozjs24-aarch64-support.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-This patch is sourced from Debian's mozjs24 patch set.
-
-Description: Add arm64 support
-Author: Andreas Schwab <schwab@suse.de>
-Origin: vendor, https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch
-Forwarded: no
-Last-Update: 2014-01-03
-
-Index: b/mfbt/double-conversion/utils.h
-===================================================================
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -58,7 +58,7 @@
- defined(__mips__) || defined(__powerpc__) || \
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
-- defined(_MIPS_ARCH_MIPS32R2)
-+ defined(_MIPS_ARCH_MIPS32R2) || defined(__aarch64__)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #if defined(_WIN32)
diff --git a/gnu/packages/patches/mozjs38-pkg-config-version.patch b/gnu/packages/patches/mozjs38-pkg-config-version.patch
deleted file mode 100644
index 49ff6f6f8d..0000000000
--- a/gnu/packages/patches/mozjs38-pkg-config-version.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837770.
-
-Add major version to pkg-config filename.
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2015-05-04
-
-Index: b/js/src/Makefile.in
-===================================================================
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -214,10 +214,10 @@
- $(JS_CONFIG_NAME): js-config
- cp $^ $@
-
--$(LIBRARY_NAME).pc: js.pc
-+$(JS_LIBRARY_NAME).pc: js.pc
- cp $^ $@
-
--install:: $(LIBRARY_NAME).pc
-+install:: $(JS_LIBRARY_NAME).pc
- $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
-
- install:: js-config.h
diff --git a/gnu/packages/patches/mozjs38-shell-version.patch b/gnu/packages/patches/mozjs38-shell-version.patch
deleted file mode 100644
index e7d3d19c85..0000000000
--- a/gnu/packages/patches/mozjs38-shell-version.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837771.
-
-# HG changeset patch
-# Parent 4732a0e5d22bc7e5c1f1ace7a182d537d9cc2c6a
-Add major version to shell and js-config filenames.
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2014-10-29
-
----
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -1696,8 +1696,13 @@
- MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
- IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
-
-+if test -n "$JS_STANDALONE"; then
-+JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
-+JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
-+else
- JS_SHELL_NAME=js
- JS_CONFIG_NAME=js-config
-+fi
-
-
- if test -n "$IS_ALPHA"; then
-
-diff --git a/js/src/configure.in b/js/src/configure.in
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -234,16 +234,13 @@ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSI
- MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
- IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
-
--dnl XXX in a temporary bid to avoid developer anger at renaming files
--dnl XXX before "js" symlinks exist, don't change names.
--dnl
--dnl if test -n "$JS_STANDALONE"; then
--dnl JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
--dnl JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
--dnl else
-+if test -n "$JS_STANDALONE"; then
-+JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
-+JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
-+else
- JS_SHELL_NAME=js
- JS_CONFIG_NAME=js-config
--dnl fi
-+fi
-
- changequote([,])
- if test -n "$IS_ALPHA"; then
-
-diff -r 80a9e64d75f5 js/src/Makefile.in
---- a/js/src/Makefile.in Wed Jun 25 15:11:42 2014 +0200
-+++ b/js/src/Makefile.in Sat Jul 05 14:08:38 2014 +0200
-@@ -273,6 +273,9 @@
- SCRIPTS = $(JS_CONFIG_NAME)
- SDK_BINARY = $(JS_CONFIG_NAME)
-
-+$(JS_CONFIG_NAME): js-config
-+ cp $^ $@
-+
- $(JS_LIBRARY_NAME).pc: js.pc
- cp $^ $@
-
diff --git a/gnu/packages/patches/mozjs38-tracelogger.patch b/gnu/packages/patches/mozjs38-tracelogger.patch
deleted file mode 100644
index 0375ec36cc..0000000000
--- a/gnu/packages/patches/mozjs38-tracelogger.patch
+++ /dev/null
@@ -1,608 +0,0 @@
-Squashed version of several commits to fix the tracelogger.
-
-Taken from
-https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch.
-
-# === Fix the SM38 tracelogger ===
-# This patch is a squashed version of several patches that were adapted
-# to fix failing hunks.
-#
-# Applied in the following order, they are:
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767
-# Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210
-# Also fix stop-information to make reduce.py work correctly.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914
-# Limit the memory tracelogger can take.
-# This causes tracelogger to flush data to the disk regularly and prevents out of
-# memory issues if a lot of data gets logged.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618
-# Fix tracelogger destructor that touches possibly uninitialised hash table.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636
-# Don't treat extraTextId as containing only extra ids.
-# This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028
-# Fix when to keep the payload of a TraceLogger event.
-# This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649
-# Handle failing to add to pointermap gracefully.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648
-# Don't cache based on pointers to movable GC things.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123
-# Fix the use of LastEntryId in tracelogger.h.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170
-# Use size in debugger instead of the current id to track last logged item.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844
-# Move TraceLogger_Invalidation to LOG_ITEM.
-# Add some debug checks to logTimestamp.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766
-# Also mark resizing of memory.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403
-# Only increase capacity by multiples of 2.
-# Always make sure there are 3 free slots for events.
-# ===
-
-diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js
-new file mode 100644
-index 0000000..023e93e
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1231170.js
-@@ -0,0 +1,3 @@
-+var du = new Debugger();
-+if (typeof du.drainTraceLogger === "function")
-+ du.drainTraceLogger();
-diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js
-new file mode 100644
-index 0000000..81ae7ad
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js
-@@ -0,0 +1,10 @@
-+
-+var du = new Debugger();
-+if (typeof du.setupTraceLogger === "function" &&
-+ typeof oomTest === 'function')
-+{
-+ du.setupTraceLogger({
-+ Scripts: true
-+ })
-+ oomTest(() => function(){});
-+}
-diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp
-index 93e2fda..09049d6 100644
---- a/js/src/jit/Ion.cpp
-+++ b/js/src/jit/Ion.cpp
-@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script)
-
- script->destroyCaches();
- script->unlinkFromRuntime(fop);
-+ // Frees the potential event we have set.
-+ script->traceLoggerScriptEvent_ = TraceLoggerEvent();
- fop->free_(script);
- }
-
-diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
-index 26262fd..af7f313 100644
---- a/js/src/vm/Debugger.cpp
-+++ b/js/src/vm/Debugger.cpp
-@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg)
- objects(cx),
- environments(cx),
- #ifdef NIGHTLY_BUILD
-- traceLoggerLastDrainedId(0),
-+ traceLoggerLastDrainedSize(0),
- traceLoggerLastDrainedIteration(0),
- #endif
-- traceLoggerScriptedCallsLastDrainedId(0),
-+ traceLoggerScriptedCallsLastDrainedSize(0),
- traceLoggerScriptedCallsLastDrainedIteration(0)
- {
- assertSameCompartment(cx, dbg);
-@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp)
- size_t num;
- TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
- bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration,
-- dbg->traceLoggerLastDrainedId);
-+ dbg->traceLoggerLastDrainedSize);
- EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration,
-- &dbg->traceLoggerLastDrainedId,
-+ &dbg->traceLoggerLastDrainedSize,
- &num);
-
- RootedObject array(cx, NewDenseEmptyArray(cx));
-@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
- size_t num;
- TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
- bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration,
-- dbg->traceLoggerScriptedCallsLastDrainedId);
-+ dbg->traceLoggerScriptedCallsLastDrainedSize);
- EventEntry* events = logger->getEventsStartingAt(
- &dbg->traceLoggerScriptedCallsLastDrainedIteration,
-- &dbg->traceLoggerScriptedCallsLastDrainedId,
-+ &dbg->traceLoggerScriptedCallsLastDrainedSize,
- &num);
-
- RootedObject array(cx, NewDenseEmptyArray(cx));
-diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h
-index 8cac36a..c92d685 100644
---- a/js/src/vm/Debugger.h
-+++ b/js/src/vm/Debugger.h
-@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger>
- * lost events.
- */
- #ifdef NIGHTLY_BUILD
-- uint32_t traceLoggerLastDrainedId;
-+ uint32_t traceLoggerLastDrainedSize;
- uint32_t traceLoggerLastDrainedIteration;
- #endif
-- uint32_t traceLoggerScriptedCallsLastDrainedId;
-+ uint32_t traceLoggerScriptedCallsLastDrainedSize;
- uint32_t traceLoggerScriptedCallsLastDrainedIteration;
-
- class FrameRange;
-diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp
-index 6715b36..9766a6f 100644
---- a/js/src/vm/TraceLogging.cpp
-+++ b/js/src/vm/TraceLogging.cpp
-@@ -131,7 +131,7 @@ TraceLoggerThread::init()
- {
- if (!pointerMap.init())
- return false;
-- if (!extraTextId.init())
-+ if (!textIdPayloads.init())
- return false;
- if (!events.init())
- return false;
-@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread()
- graph = nullptr;
- }
-
-- for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront())
-- js_delete(r.front().value());
-- extraTextId.finish();
-- pointerMap.finish();
-+ if (textIdPayloads.initialized()) {
-+ for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront())
-+ js_delete(r.front().value());
-+ }
- }
-
- bool
-@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id)
- if (id < TraceLogger_Last)
- return TLTextIdString(static_cast<TraceLoggerTextId>(id));
-
-- TextIdHashMap::Ptr p = extraTextId.lookup(id);
-+ TextIdHashMap::Ptr p = textIdPayloads.lookup(id);
- MOZ_ASSERT(p);
-
- return p->value()->string();
-@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename,
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId)
- {
-- TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId);
-- if (p)
-+ TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId);
-+ if (p) {
-+ MOZ_ASSERT(p->value()->textId() == textId); // Sanity check.
- return p->value();
-+ }
-
- TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr);
-
-- if (!extraTextId.add(p, textId, payload))
-+ if (!textIdPayloads.add(p, textId, payload))
- return nullptr;
-
- return payload;
-@@ -357,8 +359,10 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(const char* text)
- {
- PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text);
-- if (p)
-+ if (p) {
-+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
- return p->value();
-+ }
-
- size_t len = strlen(text);
- char* str = js_pod_malloc<char>(len + 1);
-@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
- MOZ_ASSERT(ret == len);
- MOZ_ASSERT(strlen(str) == len);
-
-- uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+ uint32_t textId = nextTextId;
-
- TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
- if (!payload) {
-@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
- return nullptr;
- }
-
-- if (!extraTextId.putNew(textId, payload)) {
-+ if (!textIdPayloads.putNew(textId, payload)) {
- js_delete(payload);
- return nullptr;
- }
-
-- if (!pointerMap.add(p, text, payload))
-- return nullptr;
--
- if (graph.get())
- graph->addTextId(textId, str);
-
-+ nextTextId++;
-+
-+ if (!pointerMap.add(p, text, payload))
-+ return nullptr;
-+
- return payload;
- }
-
-@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
- if (!traceLoggerState->isTextIdEnabled(type))
- return getOrCreateEventPayload(type);
-
-- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr);
-- if (p)
-- return p->value();
-+ PointerHashMap::AddPtr p;
-+ if (ptr) {
-+ p = pointerMap.lookupForAdd(ptr);
-+ if (p) {
-+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
-+ return p->value();
-+ }
-+ }
-
- // Compute the length of the string to create.
- size_t lenFilename = strlen(filename);
-@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
- MOZ_ASSERT(ret == len);
- MOZ_ASSERT(strlen(str) == len);
-
-- uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+ uint32_t textId = nextTextId;
- TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
- if (!payload) {
- js_free(str);
- return nullptr;
- }
-
-- if (!extraTextId.putNew(textId, payload)) {
-+ if (!textIdPayloads.putNew(textId, payload)) {
- js_delete(payload);
- return nullptr;
- }
-
-- if (!pointerMap.add(p, ptr, payload))
-- return nullptr;
--
- if (graph.get())
- graph->addTextId(textId, str);
-
-+ nextTextId++;
-+
-+ if (ptr) {
-+ if (!pointerMap.add(p, ptr, payload))
-+ return nullptr;
-+ }
-+
- return payload;
- }
-
-@@ -453,14 +468,14 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script)
- {
- return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(),
-- script);
-+ nullptr);
- }
-
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type,
- const JS::ReadOnlyCompileOptions& script)
- {
-- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script);
-+ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr);
- }
-
- void
-@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id)
- if (!traceLoggerState->isTextIdEnabled(id))
- return;
-
-- logTimestamp(id);
-+ log(id);
- }
-
- void
-@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id)
- if (!traceLoggerState->isTextIdEnabled(id))
- return;
-
-- logTimestamp(TraceLogger_Stop);
-+ log(TraceLogger_Stop);
- }
-
- void
-@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id)
- void
- TraceLoggerThread::logTimestamp(uint32_t id)
- {
-+ MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last);
-+ log(id);
-+}
-+
-+void
-+TraceLoggerThread::log(uint32_t id)
-+{
- if (enabled == 0)
- return;
-
- MOZ_ASSERT(traceLoggerState);
-- if (!events.ensureSpaceBeforeAdd()) {
-+
-+ // We request for 3 items to add, since if we don't have enough room
-+ // we record the time it took to make more place. To log this information
-+ // we need 2 extra free entries.
-+ if (!events.hasSpaceForAdd(3)) {
- uint64_t start = rdtsc() - traceLoggerState->startupTime;
-
-- if (graph.get())
-- graph->log(events);
-+ if (!events.ensureSpaceBeforeAdd(3)) {
-+ if (graph.get())
-+ graph->log(events);
-+
-+ iteration_++;
-+ events.clear();
-+
-+ // Remove the item in the pointerMap for which the payloads
-+ // have no uses anymore
-+ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) {
-+ if (e.front().value()->uses() != 0)
-+ continue;
-+
-+ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId());
-+ MOZ_ASSERT(p);
-+ textIdPayloads.remove(p);
-+
-+ e.removeFront();
-+ }
-
-- iteration_++;
-- events.clear();
-+ // Free all payloads that have no uses anymore.
-+ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) {
-+ if (e.front().value()->uses() == 0) {
-+ js_delete(e.front().value());
-+ e.removeFront();
-+ }
-+ }
-+ }
-
- // Log the time it took to flush the events as being from the
- // Tracelogger.
- if (graph.get()) {
-- MOZ_ASSERT(events.capacity() > 2);
-+ MOZ_ASSERT(events.hasSpaceForAdd(2));
- EventEntry& entryStart = events.pushUninitialized();
- entryStart.time = start;
- entryStart.textId = TraceLogger_Internal;
-@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id)
- entryStop.textId = TraceLogger_Stop;
- }
-
-- // Free all TextEvents that have no uses anymore.
-- for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) {
-- if (e.front().value()->uses() == 0) {
-- js_delete(e.front().value());
-- e.removeFront();
-- }
-- }
- }
-
- uint64_t time = rdtsc() - traceLoggerState->startupTime;
-@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent()
- if (payload_)
- payload_->release();
- }
-+
-+TraceLoggerEvent&
-+TraceLoggerEvent::operator=(const TraceLoggerEvent& other)
-+{
-+ if (hasPayload())
-+ payload()->release();
-+ if (other.hasPayload())
-+ other.payload()->use();
-+
-+ payload_ = other.payload_;
-+
-+ return *this;
-+}
-diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h
-index a124dcb..91a1eb0 100644
---- a/js/src/vm/TraceLogging.h
-+++ b/js/src/vm/TraceLogging.h
-@@ -110,6 +110,9 @@ class TraceLoggerEvent {
- bool hasPayload() const {
- return !!payload_;
- }
-+
-+ TraceLoggerEvent& operator=(const TraceLoggerEvent& other);
-+ TraceLoggerEvent(const TraceLoggerEvent& event) = delete;
- };
-
- /**
-@@ -130,6 +133,10 @@ class TraceLoggerEventPayload {
- uses_(0)
- { }
-
-+ ~TraceLoggerEventPayload() {
-+ MOZ_ASSERT(uses_ == 0);
-+ }
-+
- uint32_t textId() {
- return textId_;
- }
-@@ -166,7 +173,8 @@ class TraceLoggerThread
- mozilla::UniquePtr<TraceLoggerGraph> graph;
-
- PointerHashMap pointerMap;
-- TextIdHashMap extraTextId;
-+ TextIdHashMap textIdPayloads;
-+ uint32_t nextTextId;
-
- ContinuousSpace<EventEntry> events;
-
-@@ -181,6 +189,7 @@ class TraceLoggerThread
- : enabled(0),
- failed(false),
- graph(),
-+ nextTextId(TraceLogger_Last),
- iteration_(0),
- top(nullptr)
- { }
-@@ -195,22 +204,22 @@ class TraceLoggerThread
- bool enable(JSContext* cx);
- bool disable();
-
-- // Given the previous iteration and lastEntryId, return an array of events
-+ // Given the previous iteration and size, return an array of events
- // (there could be lost events). At the same time update the iteration and
-- // lastEntry and gives back how many events there are.
-- EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) {
-+ // size and gives back how many events there are.
-+ EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) {
- EventEntry* start;
- if (iteration_ == *lastIteration) {
-- MOZ_ASSERT(events.lastEntryId() >= *lastEntryId);
-- *num = events.lastEntryId() - *lastEntryId;
-- start = events.data() + *lastEntryId + 1;
-+ MOZ_ASSERT(*lastSize <= events.size());
-+ *num = events.size() - *lastSize;
-+ start = events.data() + *lastSize;
- } else {
-- *num = events.lastEntryId() + 1;
-+ *num = events.size();
- start = events.data();
- }
-
- *lastIteration = iteration_;
-- *lastEntryId = events.lastEntryId();
-+ *lastSize = events.size();
- return start;
- }
-
-@@ -220,16 +229,16 @@ class TraceLoggerThread
- const char** lineno, size_t* lineno_len, const char** colno,
- size_t* colno_len);
-
-- bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) {
-+ bool lostEvents(uint32_t lastIteration, uint32_t lastSize) {
- // If still logging in the same iteration, there are no lost events.
- if (lastIteration == iteration_) {
-- MOZ_ASSERT(lastEntryId <= events.lastEntryId());
-+ MOZ_ASSERT(lastSize <= events.size());
- return false;
- }
-
-- // When proceeded to the next iteration and lastEntryId points to
-- // the maximum capacity there are no logs that are lost.
-- if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity())
-+ // If we are in a consecutive iteration we are only sure we didn't lose any events,
-+ // when the lastSize equals the maximum size 'events' can get.
-+ if (lastIteration == iteration_ - 1 && lastSize == events.maxSize())
- return false;
-
- return true;
-@@ -268,6 +277,7 @@ class TraceLoggerThread
- void stopEvent(uint32_t id);
- private:
- void stopEvent();
-+ void log(uint32_t id);
-
- public:
- static unsigned offsetOfEnabled() {
-diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp
-index d1b7f2e..a4eb273 100644
---- a/js/src/vm/TraceLoggingGraph.cpp
-+++ b/js/src/vm/TraceLoggingGraph.cpp
-@@ -276,7 +276,7 @@ TraceLoggerGraph::flush()
- if (bytesWritten < tree.size())
- return false;
-
-- treeOffset += tree.lastEntryId();
-+ treeOffset += tree.size();
- tree.clear();
- }
-
-@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp)
-
- if (parent.lastChildId() == 0) {
- MOZ_ASSERT(!entry.hasChildren());
-- MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset);
-+ MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1);
-
- if (!updateHasChildren(parent.treeId()))
- return false;
-diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h
-index f1c9d0c..10b76d6 100644
---- a/js/src/vm/TraceLoggingTypes.h
-+++ b/js/src/vm/TraceLoggingTypes.h
-@@ -21,7 +21,6 @@
- _(Internal) \
- _(Interpreter) \
- _(InlinedScripts) \
-- _(Invalidation) \
- _(IonCompilation) \
- _(IonCompilationPaused) \
- _(IonLinking) \
-@@ -60,6 +59,7 @@
-
- #define TRACELOGGER_LOG_ITEMS(_) \
- _(Bailout) \
-+ _(Invalidation) \
- _(Disable) \
- _(Enable) \
- _(Stop)
-@@ -130,6 +130,9 @@ class ContinuousSpace {
- uint32_t size_;
- uint32_t capacity_;
-
-+ // The maximum amount of ram memory a continuous space structure can take (in bytes).
-+ static const uint32_t LIMIT = 200 * 1024 * 1024;
-+
- public:
- ContinuousSpace ()
- : data_(nullptr)
-@@ -151,6 +154,10 @@ class ContinuousSpace {
- data_ = nullptr;
- }
-
-+ static uint32_t maxSize() {
-+ return LIMIT / sizeof(T);
-+ }
-+
- T* data() {
- return data_;
- }
-@@ -187,11 +194,14 @@ class ContinuousSpace {
- if (hasSpaceForAdd(count))
- return true;
-
-+ // Limit the size of a continuous buffer.
-+ if (size_ + count > maxSize())
-+ return false;
-+
- uint32_t nCapacity = capacity_ * 2;
-- if (size_ + count > nCapacity)
-- nCapacity = size_ + count;
-- T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
-+ nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize();
-
-+ T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
- if (!entries)
- return false;
-
diff --git a/gnu/packages/patches/mozjs38-version-detection.patch b/gnu/packages/patches/mozjs38-version-detection.patch
deleted file mode 100644
index ec2d264ccc..0000000000
--- a/gnu/packages/patches/mozjs38-version-detection.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-Taken from
-https://trac.wildfiregames.com/export/18656/ps/trunk/libraries/source/spidermonkey/FixVersionDetectionConfigure.diff.
-
-Fixes a version detection issue in 0ad. See
-https://lists.gnu.org/archive/html/guix-devel/2017-01/msg00625.html.
-
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -1662,70 +1662,6 @@ esac
-
- fi
-
--MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir`
--MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion`
--MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion`
--
--cat >> confdefs.pytmp <<EOF
-- (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_VERSION "$MOZILLA_VERSION"
--EOF
--
--cat >> confdefs.pytmp <<EOF
-- (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_VERSION_U $MOZILLA_VERSION
--EOF
--
--cat >> confdefs.pytmp <<EOF
-- (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION"
--EOF
--
--
--
--# Separate version into components for use in shared object naming etc
--
--MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"`
--MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
--MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
--IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
--
--JS_SHELL_NAME=js
--JS_CONFIG_NAME=js-config
--
--
--if test -n "$IS_ALPHA"; then
--
-- MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"`
--
--fi
--cat >> confdefs.pytmp <<EOF
-- (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION
--EOF
--
--cat >> confdefs.pytmp <<EOF
-- (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION
--EOF
--
--
--
--
--
--
--
--
-
- AR_FLAGS='crs $@'
-
-@@ -5731,6 +5565,71 @@ XCFLAGS="$X_CFLAGS"
-
- fi # COMPILE_ENVIRONMENT
-
-+MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir`
-+MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion`
-+MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion`
-+
-+cat >> confdefs.pytmp <<EOF
-+ (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_VERSION "$MOZILLA_VERSION"
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+ (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_VERSION_U $MOZILLA_VERSION
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+ (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION"
-+EOF
-+
-+
-+
-+# Separate version into components for use in shared object naming etc
-+
-+MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"`
-+MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
-+MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
-+IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
-+
-+JS_SHELL_NAME=js
-+JS_CONFIG_NAME=js-config
-+
-+
-+if test -n "$IS_ALPHA"; then
-+
-+ MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"`
-+
-+fi
-+cat >> confdefs.pytmp <<EOF
-+ (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+ (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION
-+EOF
-+
-+
-+
-+
-+
-+
-+
-+
-+
- AS_BIN=$AS
- AR_LIST='$(AR) t'
- AR_EXTRACT='$(AR) x'
-@@ -16003,13 +15908,6 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF
- (''' ANDROID_NDK ''', r''' $ANDROID_NDK ''')
- (''' ANDROID_TOOLCHAIN ''', r''' $ANDROID_TOOLCHAIN ''')
- (''' ANDROID_PLATFORM ''', r''' $ANDROID_PLATFORM ''')
-- (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''')
-- (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''')
-- (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''')
-- (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
-- (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
-- (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''')
-- (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''')
- (''' HOST_CC ''', r''' $HOST_CC ''')
- (''' HOST_CXX ''', r''' $HOST_CXX ''')
- (''' HOST_RANLIB ''', r''' $HOST_RANLIB ''')
-@@ -16061,6 +15959,13 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF
- (''' X_PRE_LIBS ''', r''' $X_PRE_LIBS ''')
- (''' X_LIBS ''', r''' $X_LIBS ''')
- (''' X_EXTRA_LIBS ''', r''' $X_EXTRA_LIBS ''')
-+ (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''')
-+ (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''')
-+ (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''')
-+ (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
-+ (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
-+ (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''')
-+ (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''')
- (''' SOLARIS_SUNPRO_CC ''', r''' $SOLARIS_SUNPRO_CC ''')
- (''' SOLARIS_SUNPRO_CXX ''', r''' $SOLARIS_SUNPRO_CXX ''')
- (''' MOZ_THUMB2 ''', r''' $MOZ_THUMB2 ''')
diff --git a/gnu/packages/patches/mozjs60-riscv64-support.patch b/gnu/packages/patches/mozjs60-riscv64-support.patch
deleted file mode 100644
index c9fa2ba9b3..0000000000
--- a/gnu/packages/patches/mozjs60-riscv64-support.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-This is a combination of several upstream patches which weren't accepted.
-They were proposed by Fedora for spidermonkey 52 and were ultimately
-accepted years later after some changes for a later version. It was
-adapted slightly from both sets of patches to apply cleanly to mozjs-60.
-
-https://bugzilla.mozilla.org/show_bug.cgi?id=1318905
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812602
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812603
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812604
-https://phabricator.services.mozilla.com/D78623
-https://phabricator.services.mozilla.com/D78624
-https://phabricator.services.mozilla.com/D78625
-
-
-diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
-index 83b8d705..59131525 100644
---- a/build/moz.configure/init.configure
-+++ b/build/moz.configure/init.configure
-@@ -676,6 +676,9 @@ def split_triplet(triplet, allow_unknown=False):
- elif cpu == 'sh4':
- canonical_cpu = 'sh4'
- endianness = 'little'
-+ elif cpu.startswith('riscv64'):
-+ canonical_cpu = 'riscv64'
-+ endianness = 'little'
- elif allow_unknown:
- canonical_cpu = cpu
- endianness = 'unknown'
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
-index a8970b0d..6b947a3f 100644
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -375,7 +375,7 @@ AtomicOperations::isLockfreeJS(int32_t size)
- # endif
- #elif defined(__ppc__) || defined(__PPC__)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
--#elif defined(__sparc__)
-+#elif defined(__sparc__) || defined(__riscv)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
- #elif defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
-diff --git a/js/src/jit/none/AtomicOperations-feeling-lucky.h b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-index da572284..6ce40c89 100644
---- a/js/src/jit/none/AtomicOperations-feeling-lucky.h
-+++ b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-@@ -49,6 +49,12 @@
- # define GNUC_COMPATIBLE
- #endif
-
-+#if defined(__riscv) && __riscv_xlen == 64
-+# define HAS_64BIT_ATOMICS
-+# define HAS_64BIT_LOCKFREE
-+# define GNUC_COMPATIBLE
-+#endif
-+
- #ifdef __sparc__
- # define GNUC_COMPATIBLE
- # ifdef __LP64__
-diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h
-index 80143dc8..b430fedb 100644
---- a/js/src/jit/none/MacroAssembler-none.h
-+++ b/js/src/jit/none/MacroAssembler-none.h
-@@ -402,6 +402,10 @@ class MacroAssemblerNone : public Assembler
- #endif
- };
-
-+ struct AutoPrepareForPatching {
-+ explicit AutoPrepareForPatching(MacroAssemblerNone&) {}
-+ };
-+
- typedef MacroAssemblerNone MacroAssemblerSpecific;
-
- class ABIArgGenerator
-diff --git a/mfbt/tests/TestPoisonArea.cpp b/mfbt/tests/TestPoisonArea.cpp
-index 06c24ed0..c3fed0df 100644
---- a/mfbt/tests/TestPoisonArea.cpp
-+++ b/mfbt/tests/TestPoisonArea.cpp
-@@ -160,6 +160,9 @@
- #elif defined __aarch64__
- #define RETURN_INSTR 0xd65f03c0 /* ret */
-
-+#elif defined __riscv
-+#define RETURN_INSTR 0x80828082 /* ret; ret */
-+
- #elif defined __ia64
- struct ia64_instr { uint32_t mI[4]; };
- static const ia64_instr _return_instr =
-diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
-index 33ae5a45..11a01d3b 100644
---- a/python/mozbuild/mozbuild/configure/constants.py
-+++ b/python/mozbuild/mozbuild/configure/constants.py
-@@ -50,6 +50,7 @@ CPU_bitness = {
- 'mips64': 64,
- 'ppc': 32,
- 'ppc64': 64,
-+ 'riscv64': 64,
- 's390': 32,
- 's390x': 64,
- 'sh4': 32,
-@@ -82,6 +84,7 @@ CPU_preprocessor_checks = OrderedDict((
- ('s390', '__s390__'),
- ('ppc64', '__powerpc64__'),
- ('ppc', '__powerpc__'),
-+ ('riscv64', '__riscv && __riscv_xlen == 64'),
- ('Alpha', '__alpha__'),
- ('hppa', '__hppa__'),
- ('sparc64', '__sparc__ && __arch64__'),
-diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-index cb7ff709..9da41adf 100755
---- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-+++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-@@ -1165,6 +1165,10 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest):
- 'sh4-unknown-linux-gnu': little_endian + {
- '__sh__': 1,
- },
-+ 'riscv64-unknown-linux-gnu': little_endian + {
-+ '__riscv': 1,
-+ '__riscv_xlen': 64,
-+ },
- }
-
- PLATFORMS['powerpc64le-unknown-linux-gnu'] = \
diff --git a/gnu/packages/patches/openbox-python3.patch b/gnu/packages/patches/openbox-python3.patch
new file mode 100644
index 0000000000..782524d8a7
--- /dev/null
+++ b/gnu/packages/patches/openbox-python3.patch
@@ -0,0 +1,165 @@
+Retrieved from the openbox Debian package.
+
+From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
+From: Troy Curtis Jr <troycurtisjr@gmail.com>
+Date: Wed, 13 Sep 2017 21:59:48 -0500
+Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
+
+Updated syntax in openbox-xdg-autostart to support both python2 and
+python3.
+
+Added a configure substitution to set the chosen python at build time.
+
+https://bugzilla.icculus.org/show_bug.cgi?id=6444
+---
+ .gitignore | 1 +
+ configure.ac | 3 +
+ ...xdg-autostart => openbox-xdg-autostart.in} | 70 +++++++++----------
+ 3 files changed, 38 insertions(+), 36 deletions(-)
+ rename data/autostart/{openbox-xdg-autostart => openbox-xdg-autostart.in} (77%)
+
+diff --git a/configure.ac b/configure.ac
+index ca1602670..9a31e9845 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,6 +103,8 @@ AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
+ AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
+ AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
+
++AM_PATH_PYTHON([2],,)
++
+ AC_PATH_PROG([SED], [sed], [no])
+ if test "$SED" = "no"; then
+ AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
+@@ -259,6 +261,7 @@ AC_CONFIG_FILES([
+ obrender/version.h
+ obt/version.h
+ version.h
++ data/autostart/openbox-xdg-autostart
+ ])
+ AC_CONFIG_COMMANDS([doc],
+ [test -d doc || mkdir doc])
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart.in
+similarity index 77%
+rename from data/autostart/openbox-xdg-autostart
+rename to data/autostart/openbox-xdg-autostart.in
+index 04a17a199..3c365b112 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!@PYTHON@
+
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008 Dana Jansens
+@@ -28,9 +28,7 @@ try:
+ from xdg.DesktopEntry import DesktopEntry
+ from xdg.Exceptions import ParsingError
+ except ImportError:
+- print
+- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+- print
++ sys.stderr.write("\nERROR: %s requires PyXDG to be installed\n" % ME)
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +49,7 @@ def main(argv=sys.argv):
+ try:
+ autofile = AutostartFile(path)
+ except ParsingError:
+- print "Invalid .desktop file: " + path
++ print("Invalid .desktop file: " + path)
+ else:
+ if not autofile in files:
+ files.append(autofile)
+@@ -99,9 +97,9 @@ class AutostartFile:
+
+ def _alert(self, str, info=False):
+ if info:
+- print "\t ", str
++ print("\t ", str)
+ else:
+- print "\t*", str
++ print("\t*", str)
+
+ def _showInEnvironment(self, envs, verbose=False):
+ default = not self.de.getOnlyShowIn()
+@@ -146,14 +144,14 @@ class AutostartFile:
+
+ def display(self, envs):
+ if self._shouldRun(envs):
+- print "[*] " + self.de.getName()
++ print("[*] " + self.de.getName())
+ else:
+- print "[ ] " + self.de.getName()
++ print("[ ] " + self.de.getName())
+ self._alert("File: " + self.path, info=True)
+ if self.de.getExec():
+ self._alert("Executes: " + self.de.getExec(), info=True)
+ self._shouldRun(envs, True)
+- print
++ print()
+
+ def run(self, envs):
+ here = os.getcwd()
+@@ -165,34 +163,34 @@ class AutostartFile:
+ os.chdir(here)
+
+ def show_help():
+- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+- print
+- print "This tool will run xdg autostart .desktop files"
+- print
+- print "OPTIONS"
+- print " --list Show a list of the files which would be run"
+- print " Files which would be run are marked with an asterix"
+- print " symbol [*]. For files which would not be run,"
+- print " information is given for why they are excluded"
+- print " --help Show this help and exit"
+- print " --version Show version and copyright information"
+- print
+- print "ENVIRONMENT specifies a list of environments for which to run autostart"
+- print "applications. If none are specified, only applications which do not "
+- print "limit themselves to certain environments will be run."
+- print
+- print "ENVIRONMENT can be one or more of:"
+- print " GNOME Gnome Desktop"
+- print " KDE KDE Desktop"
+- print " ROX ROX Desktop"
+- print " XFCE XFCE Desktop"
+- print " Old Legacy systems"
+- print
++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++ print()
++ print("This tool will run xdg autostart .desktop files")
++ print()
++ print("OPTIONS")
++ print(" --list Show a list of the files which would be run")
++ print(" Files which would be run are marked with an asterix")
++ print(" symbol [*]. For files which would not be run,")
++ print(" information is given for why they are excluded")
++ print(" --help Show this help and exit")
++ print(" --version Show version and copyright information")
++ print()
++ print("ENVIRONMENT specifies a list of environments for which to run autostart")
++ print("applications. If none are specified, only applications which do not ")
++ print("limit themselves to certain environments will be run.")
++ print()
++ print("ENVIRONMENT can be one or more of:")
++ print(" GNOME Gnome Desktop")
++ print(" KDE KDE Desktop")
++ print(" ROX ROX Desktop")
++ print(" XFCE XFCE Desktop")
++ print(" Old Legacy systems")
++ print()
+
+ def show_version():
+- print ME, VERSION
+- print "Copyright (c) 2008 Dana Jansens"
+- print
++ print(ME, VERSION)
++ print("Copyright (c) 2008 Dana Jansens")
++ print()
+
+ if __name__ == "__main__":
+ sys.exit(main())
diff --git a/gnu/packages/patches/python2-parameterized-docstring-test.patch b/gnu/packages/patches/python2-parameterized-docstring-test.patch
deleted file mode 100644
index 14691e1904..0000000000
--- a/gnu/packages/patches/python2-parameterized-docstring-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Skip unicode docstring test, required when running on Python 2.
-
-See <https://github.com/wolever/parameterized/issues/44>.
-
---- a/parameterized/test.py
-+++ b/parameterized/test.py
-@@ -284,11 +284,6 @@
- " More" %(foo, )
- )
-
-- @parameterized.expand([param("foo")])
-- def test_unicode_docstring(self, foo):
-- u"""Döcumentation."""
-- self._assert_docstring(u"Döcumentation [with foo=%r]." %(foo, ))
--
- @parameterized.expand([param("foo", )])
- def test_default_values_get_correct_value(self, foo, bar=12):
- """Documentation"""
diff --git a/gnu/packages/patches/python2-pygobject-2-deprecation.patch b/gnu/packages/patches/python2-pygobject-2-deprecation.patch
deleted file mode 100644
index 6a08e56351..0000000000
--- a/gnu/packages/patches/python2-pygobject-2-deprecation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e5df32ffbf37481dbb6a70c4d4e7b7b9778c5549 Mon Sep 17 00:00:00 2001
-From: "John (J5) Palmieri" <johnp@redhat.com>
-Date: Sat, 13 Aug 2011 04:13:28 -0400
-Subject: remove references to deprecated GI_INFO_TYPE_ERROR_DOMAIN
-
-
-diff --git a/gi/pygi-info.c b/gi/pygi-info.c
-index 8729e25..007b609 100644
---- a/gi/pygi-info.c
-+++ b/gi/pygi-info.c
-@@ -165,9 +165,6 @@ _pygi_info_new (GIBaseInfo *info)
- case GI_INFO_TYPE_CONSTANT:
- type = &PyGIConstantInfo_Type;
- break;
-- case GI_INFO_TYPE_ERROR_DOMAIN:
-- type = &PyGIErrorDomainInfo_Type;
-- break;
- case GI_INFO_TYPE_UNION:
- type = &PyGIUnionInfo_Type;
- break;
-@@ -484,7 +481,6 @@ _pygi_g_type_info_size (GITypeInfo *type_info)
- case GI_INFO_TYPE_INVALID:
- case GI_INFO_TYPE_FUNCTION:
- case GI_INFO_TYPE_CONSTANT:
-- case GI_INFO_TYPE_ERROR_DOMAIN:
- case GI_INFO_TYPE_VALUE:
- case GI_INFO_TYPE_SIGNAL:
- case GI_INFO_TYPE_PROPERTY:
-@@ -863,7 +859,6 @@ pygi_g_struct_info_is_simple (GIStructInfo *struct_info)
- case GI_INFO_TYPE_INVALID:
- case GI_INFO_TYPE_FUNCTION:
- case GI_INFO_TYPE_CONSTANT:
-- case GI_INFO_TYPE_ERROR_DOMAIN:
- case GI_INFO_TYPE_VALUE:
- case GI_INFO_TYPE_SIGNAL:
- case GI_INFO_TYPE_PROPERTY:
---
-cgit v0.10.1
-
diff --git a/gnu/packages/patches/python2-subprocess32-disable-input-test.patch b/gnu/packages/patches/python2-subprocess32-disable-input-test.patch
deleted file mode 100644
index 05b4eef1ba..0000000000
--- a/gnu/packages/patches/python2-subprocess32-disable-input-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-This test tries to send a KeyboardInterrupt, which does
-not work in the build environment.
-
---- a/test_subprocess32.py 2017-03-06 22:21:49.334045485 +0100
-+++ b/test_subprocess32.py 2017-03-06 22:22:02.490439949 +0100
-@@ -1299,12 +1299,6 @@
- getattr(p, method)(*args)
- return p
-
-- def test_send_signal(self):
-- p = self._kill_process('send_signal', signal.SIGINT)
-- _, stderr = p.communicate()
-- self.assertIn('KeyboardInterrupt', stderr)
-- self.assertNotEqual(p.wait(), 0)
--
- def test_kill(self):
- p = self._kill_process('kill')
- _, stderr = p.communicate()
diff --git a/gnu/packages/patches/rapicorn-isnan.patch b/gnu/packages/patches/rapicorn-isnan.patch
deleted file mode 100644
index b0e7819e64..0000000000
--- a/gnu/packages/patches/rapicorn-isnan.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From e0c8341b3e4e13778bcde00d477e461ea8e94306 Mon Sep 17 00:00:00 2001
-From: Stefan Westerfeld <stefan@space.twc.de>
-Date: Fri, 22 Apr 2016 18:03:37 +0200
-Subject: [PATCH 031/176] RCORE: compile fixes for KUbuntu 16.04/gcc
- 5.3.1-14ubuntu2
-
-Rapicorn uses isnan(...) and isinf(...) from cmath.h, however on KUbuntu 16.04
-it should use std::isnan(...) and std::isinf(...) instead. Patch below.
-
-Acked-by: Tim Janik <timj@gnu.org>
----
- rcore/strings.cc | 10 +++++-----
- rcore/tests/benchrcore.cc | 4 ++--
- rcore/tests/strings.cc | 4 ++--
- 3 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/rcore/strings.cc b/rcore/strings.cc
-index d5b0216..8b3bc3f 100644
---- a/rcore/strings.cc
-+++ b/rcore/strings.cc
-@@ -437,7 +437,7 @@ static long double
- libc_strtold (const char *nptr, char **endptr)
- {
- const long double result = strtold (nptr, endptr);
-- if (isnan (result) && std::signbit (result) == 0)
-+ if (std::isnan (result) && std::signbit (result) == 0)
- {
- const char *p = nptr;
- while (isspace (*p))
-@@ -500,9 +500,9 @@ string_to_double (const char *dblstring, const char **endptr)
- String
- string_from_float (float value)
- {
-- if (isnan (value))
-+ if (std::isnan (value))
- return std::signbit (value) ? "-NaN" : "+NaN";
-- if (isinf (value))
-+ if (std::isinf (value))
- return std::signbit (value) ? "-Infinity" : "+Infinity";
- return string_format ("%.7g", value);
- }
-@@ -511,9 +511,9 @@ string_from_float (float value)
- String
- string_from_double (double value)
- {
-- if (isnan (value))
-+ if (std::isnan (value))
- return std::signbit (value) ? "-NaN" : "+NaN";
-- if (isinf (value))
-+ if (std::isinf (value))
- return std::signbit (value) ? "-Infinity" : "+Infinity";
- return string_format ("%.17g", value);
- }
-diff --git a/rcore/tests/benchrcore.cc b/rcore/tests/benchrcore.cc
-index 3899a08..12fde16 100644
---- a/rcore/tests/benchrcore.cc
-+++ b/rcore/tests/benchrcore.cc
-@@ -188,8 +188,8 @@ test_random_numbers()
- const double rf = random_frange (989617512, 9876547656);
- TASSERT (rf >= 989617512 && rf < 9876547656);
- }
-- TASSERT (isnan (random_frange (NAN, 1)));
-- TASSERT (isnan (random_frange (0, NAN)));
-+ TASSERT (std::isnan (random_frange (NAN, 1)));
-+ TASSERT (std::isnan (random_frange (0, NAN)));
- #if 0 // example penalty paid in random_int64()
- size_t i, j = 0;
- for (i = 0; i < 100; i++)
-diff --git a/rcore/tests/strings.cc b/rcore/tests/strings.cc
-index 468a6e6..dae3e3d 100644
---- a/rcore/tests/strings.cc
-+++ b/rcore/tests/strings.cc
-@@ -311,9 +311,9 @@ string_conversions (void)
- TCMP (string_to_double ("-0.5"), ==, -0.5);
- double tfloat;
- tfloat = string_to_double ("+NAN");
-- assert (isnan (tfloat) && std::signbit (tfloat) == 0);
-+ assert (std::isnan (tfloat) && std::signbit (tfloat) == 0);
- tfloat = string_to_double ("-NAN");
-- assert (isnan (tfloat) && std::signbit (tfloat) == 1);
-+ assert (std::isnan (tfloat) && std::signbit (tfloat) == 1);
- TCMP (string_capitalize ("fOO bar"), ==, "Foo Bar");
- TCMP (string_capitalize ("foo BAR BAZ", 2), ==, "Foo Bar BAZ");
- }
---
-2.9.1
-
diff --git a/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch b/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch
new file mode 100644
index 0000000000..17413c71ae
--- /dev/null
+++ b/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch
@@ -0,0 +1,117 @@
+This patch disables build targets that contain pre-built Java archives that
+would be copied to the build's output.
+
+Patch by Roel Janssen <roel@gnu.org>
+*** a-virtuoso-opensource-7.2.7/binsrc/Makefile.am 1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/binsrc/Makefile.am 2022-05-27 12:20:52.909135774 +0200
+***************
+*** 19,25 ****
+ #
+ #
+
+! SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel fct tutorial conductor samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena jena2 jena3 jena4 sesame sesame2 sesame3 sesame4 redland hibernate dbpedia rdb2rdf rdf4j
+
+
+ # ----------------------------------------------------------------------
+--- 19,25 ----
+ #
+ #
+
+! SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel fct tutorial conductor samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql redland dbpedia rdb2rdf
+
+
+ # ----------------------------------------------------------------------
+*** a-virtuoso-opensource-7.2.7/configure.ac 1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/configure.ac 2022-05-27 12:27:51.879208018 +0200
+***************
+*** 57,64 ****
+ dnl AM_INIT_AUTOMAKE([1.8])
+ dnl AM_INIT_AUTOMAKE([1.9 tar-ustar])
+ dnl
+! AM_INIT_AUTOMAKE([1.9 tar-ustar])
+!
+ AM_MAINTAINER_MODE
+
+
+--- 57,63 ----
+ dnl AM_INIT_AUTOMAKE([1.8])
+ dnl AM_INIT_AUTOMAKE([1.9 tar-ustar])
+ dnl
+! AM_INIT_AUTOMAKE([1.9 tar-ustar subdir-objects])
+ AM_MAINTAINER_MODE
+
+
+***************
+*** 3157,3163 ****
+ binsrc/dbpedia/Makefile
+ binsrc/driver/Makefile
+ binsrc/fct/Makefile
+- binsrc/hibernate/Makefile
+ binsrc/hosting/Makefile
+ binsrc/hosting/mono/Makefile
+ binsrc/hosting/mono/tests/Makefile
+--- 3156,3161 ----
+***************
+*** 3169,3184 ****
+ binsrc/hosting/ruby/Makefile
+ binsrc/hosting/shapefileio/Makefile
+ binsrc/isparql/Makefile
+- binsrc/jena/Makefile
+- binsrc/jena2/Makefile
+- binsrc/jena3/Makefile
+- binsrc/jena4/Makefile
+ binsrc/maildrop/Makefile
+ binsrc/mono/Makefile
+ binsrc/oat/Makefile
+ binsrc/rdf_mappers/Makefile
+ binsrc/rdb2rdf/Makefile
+- binsrc/rdf4j/Makefile
+ binsrc/redland/Makefile
+ binsrc/samples/demo/Makefile
+ binsrc/samples/hslookup/Makefile
+--- 3167,3177 ----
+***************
+*** 3191,3200 ****
+ binsrc/samples/webapp/Makefile
+ binsrc/samples/xpath/Makefile
+ binsrc/samples/xquery/Makefile
+- binsrc/sesame/Makefile
+- binsrc/sesame2/Makefile
+- binsrc/sesame3/Makefile
+- binsrc/sesame4/Makefile
+ binsrc/sqldoc/Makefile
+ binsrc/sync/Makefile
+ binsrc/tests/biftest/Makefile
+--- 3184,3189 ----
+***************
+*** 3236,3245 ****
+ docsrc/stylesheets/Makefile
+ docsrc/xmlsource/Makefile
+ libsrc/Dk/Makefile
+- libsrc/JDBCDriverType4/Makefile
+- libsrc/JDBCDriverType4/testsuite_4.0/Makefile
+- libsrc/JDBCDriverType4/virtuoso/jdbc/Makefile
+- libsrc/JDBCDriverType4/virtuoso/Makefile
+ libsrc/langfunc/Makefile
+ libsrc/odbcsdk/Makefile
+ libsrc/plugin/Makefile
+--- 3225,3230 ----
+*** a-virtuoso-opensource-7.2.7/libsrc/Makefile.am 1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/libsrc/Makefile.am 2022-05-27 12:30:12.658593011 +0200
+***************
+*** 19,25 ****
+ #
+ #
+
+! SUBDIRS = util zlib odbcsdk Dk Thread langfunc Wi plugin Tidy Xml.new JDBCDriverType4
+
+ noinst_HEADERS = Dk.h libutil.h
+
+--- 19,25 ----
+ #
+ #
+
+! SUBDIRS = util zlib odbcsdk Dk Thread langfunc Wi plugin Tidy Xml.new
+
+ noinst_HEADERS = Dk.h libutil.h
+
diff --git a/gnu/packages/patches/vtk-7-gcc-10-compat.patch b/gnu/packages/patches/vtk-7-gcc-10-compat.patch
new file mode 100644
index 0000000000..50f9f6cca3
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-gcc-10-compat.patch
@@ -0,0 +1,14 @@
+Retrieved from
+https://sources.debian.org/src/vtk7/7.1.1%2Bdfsg2-10.1/debian/patches/.
+
+--- a/CMake/VTKGenerateExportHeader.cmake
++++ b/CMake/VTKGenerateExportHeader.cmake
+@@ -174,7 +174,7 @@
+ execute_process(COMMAND ${CMAKE_C_COMPILER} --version
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
+- string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
++ string(REGEX MATCH "[0-9]*\\.[0-9]\\.[0-9]*"
+ _gcc_version "${_gcc_version_info}")
+ # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
+ # patch level, handle this here:
diff --git a/gnu/packages/patches/vtk-7-hdf5-compat.patch b/gnu/packages/patches/vtk-7-hdf5-compat.patch
new file mode 100644
index 0000000000..1f3c0c7be4
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-hdf5-compat.patch
@@ -0,0 +1,38 @@
+Description: The H5FD_class_t struct gained an extra member in 1.10
+Bug-Debian: https://bugs.debian.org/846372
+Author: Iain Lane <iain.lane@canonical.com>
+--- a/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfH5Driver.cxx
++++ b/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfH5Driver.cxx
+@@ -139,7 +139,11 @@
+ #if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
+ static haddr_t H5FD_dsm_get_eoa(const H5FD_t *_file, H5FD_mem_t type);
+ static herr_t H5FD_dsm_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr);
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=10))
++static haddr_t H5FD_dsm_get_eof(const H5FD_t *_file, H5FD_mem_t type);
++#else
+ static haddr_t H5FD_dsm_get_eof(const H5FD_t *_file);
++#endif
+ #else
+ static haddr_t H5FD_dsm_get_eoa(H5FD_t *_file);
+ static herr_t H5FD_dsm_set_eoa(H5FD_t *_file, haddr_t addr);
+@@ -155,6 +159,9 @@
+ "dsm", /*name */
+ MAXADDR, /*maxaddr */
+ H5F_CLOSE_WEAK, /*fc_degree */
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
++ NULL, /* terminate */
++#endif
+ NULL, /*sb_size */
+ NULL, /*sb_encode */
+ NULL, /*sb_decode */
+@@ -687,7 +694,9 @@
+ *-------------------------------------------------------------------------
+ */
+ static haddr_t
+-#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=10))
++H5FD_dsm_get_eof(const H5FD_t *_file, H5FD_mem_t type)
++#elif (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
+ H5FD_dsm_get_eof(const H5FD_t *_file)
+ #else
+ H5FD_dsm_get_eof(H5FD_t *_file)
diff --git a/gnu/packages/patches/vtk-7-python-compat.patch b/gnu/packages/patches/vtk-7-python-compat.patch
new file mode 100644
index 0000000000..375624e4e2
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-python-compat.patch
@@ -0,0 +1,16 @@
+Author: Gert Wollny <gewo@debian.org>
+Description: Work around compile bug with python 3.7.1
+Debian-Bug: https://bugs.debian.org/914347
+diff --git a/Wrapping/PythonCore/vtkPythonArgs.cxx b/Wrapping/PythonCore/vtkPythonArgs.cxx
+index 1b1e4b9..682f8b8 100644
+--- a/Wrapping/PythonCore/vtkPythonArgs.cxx
++++ b/Wrapping/PythonCore/vtkPythonArgs.cxx
+@@ -102,7 +102,7 @@ bool vtkPythonGetStringValue(PyObject *o, T *&a, const char *exctext)
+ else if (PyUnicode_Check(o))
+ {
+ #if PY_VERSION_HEX >= 0x03030000
+- a = PyUnicode_AsUTF8(o);
++ a = const_cast<char*>(PyUnicode_AsUTF8(o));
+ return true;
+ #else
+ PyObject *s = _PyUnicode_AsDefaultEncodedString(o, NULL);
diff --git a/gnu/packages/patches/wicd-bitrate-none-fix.patch b/gnu/packages/patches/wicd-bitrate-none-fix.patch
deleted file mode 100644
index 1809b7217d..0000000000
--- a/gnu/packages/patches/wicd-bitrate-none-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix copied from https://bugs.launchpad.net/wicd/+bug/1432423/comments/1
-
---- wicd-1.7.3/curses/netentry_curses.py 1969-12-31 19:00:00.000000000 -0500
-+++ wicd-1.7.3/curses/netentry_curses.py 2015-08-11 23:26:19.999999649 -0400
-@@ -538,11 +538,16 @@
- self.bitrates = wireless.GetAvailableBitrates()
- self.bitrates.append('auto')
- self.bitrate_combo.set_list(self.bitrates)
-+
-+ # bitrate property is sometimes None
-+ chosen_bitrate = wireless.GetWirelessProperty(networkID, 'bitrate')
-+ if chosen_bitrate not in self.bitrates:
-+ chosen_bitrate = 'auto'
-+
- self.bitrate_combo.set_focus(
-- self.bitrates.index(
-- wireless.GetWirelessProperty(networkID, 'bitrate')
-- )
-+ self.bitrates.index(chosen_bitrate)
- )
-+
- self.allow_lower_bitrates_chkbox.set_state(
- to_bool(self.format_entry(networkID, 'allow_lower_bitrates'))
- )
diff --git a/gnu/packages/patches/wicd-get-selected-profile-fix.patch b/gnu/packages/patches/wicd-get-selected-profile-fix.patch
deleted file mode 100644
index 3042a87308..0000000000
--- a/gnu/packages/patches/wicd-get-selected-profile-fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix copied from https://bugs.launchpad.net/wicd/+bug/1421918/comments/2
-
---- wicd-1.7.3/curses/wicd-curses.py 2014-12-21 16:57:33 +0000
-+++ wicd-1.7.3/curses/wicd-curses.py 2015-02-24 23:41:01 +0000
-@@ -532,7 +532,10 @@
- def get_selected_profile(self):
- """Get the selected wired profile"""
- loc = self.get_focus()[1]
-- return self.theList[loc]
-+ if len(self.theList) > loc:
-+ return self.theList[loc]
-+ else:
-+ return self.theList[-1]
-
-
- class AdHocDialog(Dialog2):
diff --git a/gnu/packages/patches/wicd-urwid-1.3.patch b/gnu/packages/patches/wicd-urwid-1.3.patch
deleted file mode 100644
index 1dc47f869b..0000000000
--- a/gnu/packages/patches/wicd-urwid-1.3.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Update the wicd-curses client to work with urwid-1.3. Based on a patch from:
-http://technik.blogbasis.net/wicd-curses-fix-fuer-attributeerror-screen-object-no-attribute-get_input_nonblocking-04-12-2014
-
---- wicd-1.7.3/curses/wicd-curses.py.orig 2014-12-21 14:40:46.000000000 -0500
-+++ wicd-1.7.3/curses/wicd-curses.py 2015-02-05 23:41:17.530901204 -0500
-@@ -1153,9 +1153,10 @@
- if not ui._started:
- return False
-
-- input_data = ui.get_input_nonblocking()
-+ ui.set_input_timeouts(max_wait=0)
-+ input_data = ui.get_input()
- # Resolve any "alarms" in the waiting
-- self.handle_keys(input_data[1])
-+ self.handle_keys(input_data)
-
- # Update the screen
- canvas = self.frame.render((self.size), True)
diff --git a/gnu/packages/patches/wicd-wpa2-ttls.patch b/gnu/packages/patches/wicd-wpa2-ttls.patch
deleted file mode 100644
index 9d80ee7ed2..0000000000
--- a/gnu/packages/patches/wicd-wpa2-ttls.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Add a template for WPA2-TTLS, which is notably used by Eduroam.
-
---- a/encryption/templates/active
-+++ b/encryption/templates/active
-@@ -4,6 +4,7 @@ wpa-psk
- wpa-psk-hex
- wpa2-leap
- wpa2-peap
-+wpa2-ttls
- wep-hex
- wep-passphrase
- wep-shared
-diff --git a/encryption/templates/wpa2-ttls b/encryption/templates/wpa2-ttls
-new file mode 100644
-index 0000000..4f66a1e
---- /dev/null
-+++ b/encryption/templates/wpa2-ttls
-@@ -0,0 +1,20 @@
-+name = WPA2-TTLS (used notably by Eduroam)
-+author = various contributors
-+version = 1
-+require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
-+protected password *Password
-+-----
-+ctrl_interface=/var/run/wpa_supplicant
-+network={
-+ ssid="$_ESSID"
-+ scan_ssid=$_SCAN
-+ proto=WPA2
-+ key_mgmt=WPA-EAP
-+ group=CCMP TKIP
-+ eap=TTLS
-+ identity="$_IDENTITY"
-+ password="$_PASSWORD"
-+ anonymous_identity="$_ANONYMOUS_IDENTITY"
-+ ca_cert="$_CA_CERT"
-+ phase2="auth=PAP"
-+}