summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/appstream-force-reload-stemmer.patch89
-rw-r--r--gnu/packages/patches/ark-skip-xar-test.patch54
-rw-r--r--gnu/packages/patches/capstone-fix-python-constants.patch84
-rw-r--r--gnu/packages/patches/chez-scheme-backport-signal.patch87
-rw-r--r--gnu/packages/patches/clasp-hide-event-ids.patch41
-rw-r--r--gnu/packages/patches/freeimage-libraw-0.21-compat.patch15
-rw-r--r--gnu/packages/patches/ghc-unique-support-newer-hashable.patch110
-rw-r--r--gnu/packages/patches/gwenview-kimageannotator.patch29
-rw-r--r--gnu/packages/patches/kdiagram-Fix-missing-link-libraries.patch4
-rw-r--r--gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch3
-rw-r--r--gnu/packages/patches/libksysguard-qdiriterator-follow-symlinks.patch24
-rw-r--r--gnu/packages/patches/mingw-w64-6.0.0-gcc.patch65
-rw-r--r--gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch26
-rw-r--r--gnu/packages/patches/mingw-w64-reproducible-gendef.patch33
-rw-r--r--gnu/packages/patches/python-angr-addition-type-error.patch18
-rw-r--r--gnu/packages/patches/python-angr-check-exec-deps.patch93
-rw-r--r--gnu/packages/patches/python-pysmt-fix-pow-return-type.patch258
-rw-r--r--gnu/packages/patches/python-pysmt-fix-smtlib-serialization-test.patch86
-rw-r--r--gnu/packages/patches/python-pyvex-remove-angr-dependency.patch80
-rw-r--r--gnu/packages/patches/python-waitress-fix-tests.patch29
-rw-r--r--gnu/packages/patches/python-xmp-toolkit-add-missing-error-codes.patch51
-rw-r--r--gnu/packages/patches/racket-backport-8.12-chez-configure.patch423
-rw-r--r--gnu/packages/patches/rust-poem-1-fewer-deps.patch229
-rw-r--r--gnu/packages/patches/virt-manager-fix-gtk-cursor-theme-backtace.patch40
-rw-r--r--gnu/packages/patches/zathura-use-struct-initializers.patch68
25 files changed, 1218 insertions, 821 deletions
diff --git a/gnu/packages/patches/appstream-force-reload-stemmer.patch b/gnu/packages/patches/appstream-force-reload-stemmer.patch
deleted file mode 100644
index a2cf84c8b1..0000000000
--- a/gnu/packages/patches/appstream-force-reload-stemmer.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 32182d7a7a67d0d204cd0a37bd211bfd0177bc27 Mon Sep 17 00:00:00 2001
-Message-ID: <32182d7a7a67d0d204cd0a37bd211bfd0177bc27.1700093066.git.vivien@planete-kraus.eu>
-From: Matthias Klumpp <matthias@tenstral.net>
-Date: Thu, 16 Nov 2023 00:59:15 +0100
-Subject: [PATCH] stemmer: Resolve potential issue where stemmer may never be
- initialized
-
-If the initial locale was equal to the current stemming language, we may
-never have initialized the stemmer (which could lead to crashes or
-stemming being disabled).
-
-So we force the reload to always happen on initialization.
-CC: #558
----
- src/as-stemmer.c | 33 +++++++++++++++++++++------------
- 1 file changed, 21 insertions(+), 12 deletions(-)
-
-diff --git a/src/as-stemmer.c b/src/as-stemmer.c
-index 63d45267..16ebd09b 100644
---- a/src/as-stemmer.c
-+++ b/src/as-stemmer.c
-@@ -47,6 +47,8 @@ G_DEFINE_TYPE (AsStemmer, as_stemmer, G_TYPE_OBJECT)
-
- static gpointer as_stemmer_object = NULL;
-
-+static void as_stemmer_reload_internal (AsStemmer *stemmer, const gchar *locale, gboolean force);
-+
- /**
- * as_stemmer_finalize:
- **/
-@@ -76,21 +78,14 @@ as_stemmer_init (AsStemmer *stemmer)
-
- /* we don't use the locale in XML, so it can be POSIX */
- locale = as_get_current_locale_posix ();
-- stemmer->current_lang = as_utils_locale_to_language (locale);
-
-- as_stemmer_reload (stemmer, stemmer->current_lang);
-+ /* force a reload for initialization */
-+ as_stemmer_reload_internal (stemmer, locale, TRUE);
- #endif
- }
-
--/**
-- * as_stemmer_reload:
-- * @stemmer: A #AsStemmer
-- * @locale: The stemming language as POSIX locale.
-- *
-- * Allows realoading the #AsStemmer with a different language.
-- */
--void
--as_stemmer_reload (AsStemmer *stemmer, const gchar *locale)
-+static void
-+as_stemmer_reload_internal (AsStemmer *stemmer, const gchar *locale, gboolean force)
- {
- #ifdef HAVE_STEMMING
- g_autofree gchar *lang = NULL;
-@@ -99,7 +94,7 @@ as_stemmer_reload (AsStemmer *stemmer, const gchar *locale)
- /* check if we need to reload */
- lang = as_utils_locale_to_language (locale);
- locker = g_mutex_locker_new (&stemmer->mutex);
-- if (as_str_equal0 (lang, stemmer->current_lang)) {
-+ if (!force && as_str_equal0 (lang, stemmer->current_lang)) {
- g_mutex_locker_free (locker);
- return;
- }
-@@ -119,6 +114,20 @@ as_stemmer_reload (AsStemmer *stemmer, const gchar *locale)
- #endif
- }
-
-+/**
-+ * as_stemmer_reload:
-+ * @stemmer: A #AsStemmer
-+ * @locale: The stemming language as POSIX locale.
-+ *
-+ * Allows realoading the #AsStemmer with a different language.
-+ * Does nothing if the stemmer is already using the selected language.
-+ */
-+void
-+as_stemmer_reload (AsStemmer *stemmer, const gchar *locale)
-+{
-+ as_stemmer_reload_internal (stemmer, locale, FALSE);
-+}
-+
- /**
- * as_stemmer_stem:
- * @stemmer: A #AsStemmer
---
-2.41.0
-
diff --git a/gnu/packages/patches/ark-skip-xar-test.patch b/gnu/packages/patches/ark-skip-xar-test.patch
index 525201997b..be891ad139 100644
--- a/gnu/packages/patches/ark-skip-xar-test.patch
+++ b/gnu/packages/patches/ark-skip-xar-test.patch
@@ -1,44 +1,36 @@
Guix libarchive no support xar.
---- ark-20.04.1.orig/autotests/kerfuffle/loadtest.cpp 2020-12-23 08:46:15.780782601 +0800
-+++ ark-20.04.1/autotests/kerfuffle/loadtest.cpp 2020-12-23 11:13:17.101724042 +0800
-@@ -181,13 +181,6 @@
+--- ark-24.05.2.orig/autotests/kerfuffle/loadtest.cpp 2024-07-08 11:19:30.347366493 +0800
++++ ark-24.05.2/autotests/kerfuffle/loadtest.cpp 2024-07-08 11:19:47.495641516 +0800
+@@ -125,8 +125,6 @@
qDebug() << "lz4 executable not found in path. Skipping lz4 test.";
}
-- QTest::newRow("xar archive")
-- << QFINDTESTDATA("data/simplearchive.xar")
-- << QStringLiteral("simplearchive")
-- << true << false << false << false << false << 0 << Archive::Unencrypted
-- << QStringLiteral("simplearchive")
-- << QString();
--
- QTest::newRow("mimetype child of application/zip")
- << QFINDTESTDATA("data/test.odt")
- << QStringLiteral("test")
---- ark-20.04.1.orig/autotests/kerfuffle/extracttest.cpp 2020-12-23 08:46:15.780782601 +0800
-+++ ark-20.04.1/autotests/kerfuffle/extracttest.cpp 2020-12-23 11:14:02.801809620 +0800
-@@ -350,23 +350,6 @@
+- QTest::newRow("xar archive") << QFINDTESTDATA("data/simplearchive.xar") << QStringLiteral("simplearchive") << true << false << false << false << false << 0
+- << Archive::Unencrypted << 6 << QStringLiteral("simplearchive") << QString();
+
+ QTest::newRow("mimetype child of application/zip") << QFINDTESTDATA("data/test.odt") << QStringLiteral("test") << false << true << false << false << false
+ << 0 << Archive::Unencrypted << 17 << QStringLiteral("test") << QString();
+
+
+--- ark-24.05.2.orig/autotests/kerfuffle/extracttest.cpp 2024-07-08 11:21:25.849219202 +0800
++++ ark-24.05.2/autotests/kerfuffle/extracttest.cpp 2024-07-08 11:22:01.413789814 +0800
+@@ -329,18 +329,5 @@
qDebug() << "lz4 executable not found in path. Skipping lz4 test.";
}
- archivePath = QFINDTESTDATA("data/simplearchive.xar");
-- QTest::newRow("extract selected entries from a xar archive without path")
-- << archivePath
-- << QVector<Archive::Entry*> {
-- new Archive::Entry(this, QStringLiteral("dir1/file11.txt"), QString()),
-- new Archive::Entry(this, QStringLiteral("file4.txt"), QString())
-- }
-- << optionsNoPaths
-- << 2;
+- setupRow("extract selected entries from a xar archive without path",
+- archivePath,
+- QList<Archive::Entry *>{
+- new Archive::Entry(this, QStringLiteral("dir1/file11.txt"), QString()),
+- new Archive::Entry(this, QStringLiteral("file4.txt"), QString()),
+- },
+- optionsNoPaths,
+- 2);
-
- archivePath = QFINDTESTDATA("data/simplearchive.xar");
-- QTest::newRow("extract all entries from a xar archive with path")
-- << archivePath
-- << QVector<Archive::Entry*>()
-- << optionsPreservePaths
-- << 6;
+- setupRow("extract all entries from a xar archive with path", archivePath, QList<Archive::Entry *>(), optionsPreservePaths, 6);
-
archivePath = QFINDTESTDATA("data/hello-1.0-x86_64.AppImage");
- QTest::newRow("extract all entries from an AppImage with path")
- << archivePath
+ setupRow("extract all entries from an AppImage with path", archivePath, QList<Archive::Entry *>(), optionsPreservePaths, 7);
diff --git a/gnu/packages/patches/capstone-fix-python-constants.patch b/gnu/packages/patches/capstone-fix-python-constants.patch
new file mode 100644
index 0000000000..75100c6652
--- /dev/null
+++ b/gnu/packages/patches/capstone-fix-python-constants.patch
@@ -0,0 +1,84 @@
+Backport upstream patch fixing various constants in the Python bindings.
+
+Taken from: https://github.com/capstone-engine/capstone/commit/f180e176de3efb060db62820ff981d0291ea8525
+
+diff --git a/bindings/python/capstone/__init__.py b/bindings/python/capstone/__init__.py
+index bda2fdb6..52353c28 100755
+--- a/bindings/python/capstone/__init__.py
++++ b/bindings/python/capstone/__init__.py
+@@ -113,7 +113,6 @@ __all__ = [
+ 'CS_OPT_SYNTAX_NOREGNAME',
+ 'CS_OPT_SYNTAX_MASM',
+ 'CS_OPT_SYNTAX_MOTOROLA',
+- 'CS_OPT_SYNTAX_CS_REG_ALIAS',
+
+ 'CS_OPT_DETAIL',
+ 'CS_OPT_MODE',
+@@ -152,19 +151,6 @@ __all__ = [
+ 'CS_OP_REG',
+ 'CS_OP_IMM',
+ 'CS_OP_FP',
+- 'CS_OP_PRED',
+- 'CS_OP_RESERVED_5',
+- 'CS_OP_RESERVED_6',
+- 'CS_OP_RESERVED_7',
+- 'CS_OP_RESERVED_8',
+- 'CS_OP_RESERVED_9',
+- 'CS_OP_RESERVED_10',
+- 'CS_OP_RESERVED_11',
+- 'CS_OP_RESERVED_12',
+- 'CS_OP_RESERVED_13',
+- 'CS_OP_RESERVED_14',
+- 'CS_OP_RESERVED_15',
+- 'CS_OP_SPECIAL',
+ 'CS_OP_MEM',
+
+ 'CS_GRP_INVALID',
+@@ -298,26 +284,13 @@ CS_OPT_NO_BRANCH_OFFSET = 9 # ARM, prints branch immediates without offset.
+
+ # Capstone option value
+ CS_OPT_OFF = 0 # Turn OFF an option - default option of CS_OPT_DETAIL
+-CS_OPT_ON = 1 << 0 # Turn ON an option (CS_OPT_DETAIL)
++CS_OPT_ON = 3 # Turn ON an option (CS_OPT_DETAIL)
+
+ # Common instruction operand types - to be consistent across all architectures.
+ CS_OP_INVALID = 0 # uninitialized/invalid operand.
+ CS_OP_REG = 1 # Register operand.
+ CS_OP_IMM = 2 # Immediate operand.
+ CS_OP_FP = 3 # Floating-Point operand.
+-CS_OP_PRED = 4 # Predicate operand.
+-CS_OP_RESERVED_5 = 5
+-CS_OP_RESERVED_6 = 6
+-CS_OP_RESERVED_7 = 7
+-CS_OP_RESERVED_8 = 8
+-CS_OP_RESERVED_9 = 9
+-CS_OP_RESERVED_10 = 10
+-CS_OP_RESERVED_11 = 11
+-CS_OP_RESERVED_12 = 12
+-CS_OP_RESERVED_13 = 13
+-CS_OP_RESERVED_14 = 14
+-CS_OP_RESERVED_15 = 15
+-CS_OP_SPECIAL = 0x10 # Special operands from archs
+ CS_OP_MEM = 0x80 # Memory operand. Can be ORed with another operand type.
+
+ # Common instruction groups - to be consistent across all architectures.
+@@ -336,13 +309,12 @@ CS_AC_READ = (1 << 0) # Operand that is read from.
+ CS_AC_WRITE = (1 << 1) # Operand that is written to.
+
+ # Capstone syntax value
+-CS_OPT_SYNTAX_DEFAULT = 1 << 1 # Default assembly syntax of all platforms (CS_OPT_SYNTAX)
+-CS_OPT_SYNTAX_INTEL = 1 << 2 # Intel X86 asm syntax - default syntax on X86 (CS_OPT_SYNTAX, CS_ARCH_X86)
+-CS_OPT_SYNTAX_ATT = 1 << 3 # ATT asm syntax (CS_OPT_SYNTAX, CS_ARCH_X86)
+-CS_OPT_SYNTAX_NOREGNAME = 1 << 4 # Asm syntax prints register name with only number - (CS_OPT_SYNTAX, CS_ARCH_PPC, CS_ARCH_ARM)
+-CS_OPT_SYNTAX_MASM = 1 << 5 # MASM syntax (CS_OPT_SYNTAX, CS_ARCH_X86)
+-CS_OPT_SYNTAX_MOTOROLA = 1 << 6 # MOS65XX use $ as hex prefix
+-CS_OPT_SYNTAX_CS_REG_ALIAS = 1 << 7 # Prints common register alias which are not defined in LLVM (ARM: r9 = sb etc.)
++CS_OPT_SYNTAX_DEFAULT = 0 # Default assembly syntax of all platforms (CS_OPT_SYNTAX)
++CS_OPT_SYNTAX_INTEL = 1 # Intel X86 asm syntax - default syntax on X86 (CS_OPT_SYNTAX, CS_ARCH_X86)
++CS_OPT_SYNTAX_ATT = 2 # ATT asm syntax (CS_OPT_SYNTAX, CS_ARCH_X86)
++CS_OPT_SYNTAX_NOREGNAME = 3 # Asm syntax prints register name with only number - (CS_OPT_SYNTAX, CS_ARCH_PPC, CS_ARCH_ARM)
++CS_OPT_SYNTAX_MASM = 4 # MASM syntax (CS_OPT_SYNTAX, CS_ARCH_X86)
++CS_OPT_SYNTAX_MOTOROLA = 5 # MOS65XX use $ as hex prefix
+
+ # Capstone error type
+ CS_ERR_OK = 0 # No error: everything was fine
diff --git a/gnu/packages/patches/chez-scheme-backport-signal.patch b/gnu/packages/patches/chez-scheme-backport-signal.patch
new file mode 100644
index 0000000000..1fee32b167
--- /dev/null
+++ b/gnu/packages/patches/chez-scheme-backport-signal.patch
@@ -0,0 +1,87 @@
+From e416651d8b53fa2eca6edde764a9131d128cd166 Mon Sep 17 00:00:00 2001
+From: Matthew Flatt <mflatt@racket-lang.org>
+Date: Sat, 2 Mar 2024 07:18:41 -0700
+Subject: [PATCH] constrain signal delivery to Scheme to the main thread (#813)
+
+The intent is to avoid crashes when a signal gets delimited to a
+thread that might not even be a Scheme thread. Also, we don't try to
+queue the event directly in the main thread's context, because then
+we'd need more of a lock (while signal handling is otherwise an
+implicit lock).
+
+(cherry picked from commit fc081fc447a786dd53286e5d7314b7217631cb68)
+---
+
+Notes:
+ This should fix intermittent test failures experienced by Guix:
+ see <https://github.com/cisco/ChezScheme/issues/809>.
+
+ c/globals.h | 1 +
+ c/schsig.c | 10 ++++++++++
+ c/thread.c | 1 +
+ csug/system.stex | 2 ++
+ 4 files changed, 14 insertions(+)
+
+diff --git a/c/globals.h b/c/globals.h
+index d2a08299..eb2965c5 100644
+--- a/c/globals.h
++++ b/c/globals.h
+@@ -49,6 +49,7 @@ EXTERN int S_num_preserve_ownership_threads;
+ # ifdef IMPLICIT_ATOMIC_AS_EXPLICIT
+ EXTERN s_thread_mutex_t S_implicit_mutex;
+ # endif
++EXTERN s_thread_t S_main_thread_id;
+ #endif
+
+ /* segment.c */
+diff --git a/c/schsig.c b/c/schsig.c
+index a89ab62a..04677730 100644
+--- a/c/schsig.c
++++ b/c/schsig.c
+@@ -666,6 +666,16 @@ ptr S_dequeue_scheme_signals(ptr tc) {
+ static void forward_signal_to_scheme(INT sig) {
+ ptr tc = get_thread_context();
+
++#ifdef PTHREADS
++ /* deliver signals to the main thread, only; depending
++ on the threads that are running, `tc` might even be NULL */
++ if (tc != TO_PTR(&S_G.thread_context)) {
++ pthread_kill(S_main_thread_id, sig);
++ RESET_SIGNAL
++ return;
++ }
++#endif
++
+ if (enqueue_scheme_signal(tc, sig)) {
+ SIGNALINTERRUPTPENDING(tc) = Strue;
+ SOMETHINGPENDING(tc) = Strue;
+diff --git a/c/thread.c b/c/thread.c
+index 9a341b22..f130f44d 100644
+--- a/c/thread.c
++++ b/c/thread.c
+@@ -40,6 +40,7 @@ void S_thread_init(void) {
+ s_thread_cond_init(&S_terminated_cond);
+ S_alloc_mutex.owner = 0;
+ S_alloc_mutex.count = 0;
++ S_main_thread_id = s_thread_self();
+
+ # ifdef IMPLICIT_ATOMIC_AS_EXPLICIT
+ s_thread_mutex_init(&S_implicit_mutex);
+diff --git a/csug/system.stex b/csug/system.stex
+index d4f2bcbb..bb89f419 100644
+--- a/csug/system.stex
++++ b/csug/system.stex
+@@ -547,6 +547,8 @@ After a signal handler for a given signal has been registered, receipt
+ of the specified signal results in a call to the handler.
+ The handler is passed the signal number, allowing the same handler to
+ be used for different signals while differentiating among them.
++In a threaded version of the system, signals are always delivered to
++the main thread.
+
+ Signals handled in this fashion are treated like keyboard interrupts in
+ that the handler is not called immediately when the signal is delivered
+
+base-commit: 253230f7dfbb4fe777277d6bbf93f39f9567f086
+--
+2.41.0
+
diff --git a/gnu/packages/patches/clasp-hide-event-ids.patch b/gnu/packages/patches/clasp-hide-event-ids.patch
new file mode 100644
index 0000000000..9587f9ff3f
--- /dev/null
+++ b/gnu/packages/patches/clasp-hide-event-ids.patch
@@ -0,0 +1,41 @@
+From a4c4e4f3c410834c3e56f644841f5bcbb084225c Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>
+Date: Fri, 28 Jun 2024 11:15:16 +0200
+Subject: [PATCH] clasp: Hide Event_t<T>::id_s.
+
+This patch helps build clingo with non-local clasp while keeping the
+event system working as intended.
+---
+ clasp/util/misc_types.h | 2 ++
+ src/CMakeLists.txt | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/clasp/util/misc_types.h b/clasp/util/misc_types.h
+index 3677873..09c2075 100644
+--- a/clasp/util/misc_types.h
++++ b/clasp/util/misc_types.h
+@@ -432,7 +432,9 @@ struct Event_t : Event {
+ Event_t(Subsystem sys, Verbosity verb) : Event(sys, id_s, verb) {}
+ static const uint32 id_s;
+ };
++#if _BUILDING_CLASP_
+ template <class T> const uint32 Event_t<T>::id_s = Event::nextId();
++#endif
+
+ template <class ToType, class EvType> const ToType* event_cast(const EvType& ev) { return ev.id == ToType::id_s ? static_cast<const ToType*>(&ev) : 0; }
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 8439d12..4f55990 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -123,6 +123,7 @@ source_group("${ide_header}\\mt" FILES ${header_mt})
+ endif()
+
+ add_library(libclasp ${header} ${header_util} ${header_cli} ${header_mt} ${src})
++target_compile_definitions(libclasp PRIVATE _BUILDING_CLASP_)
+ if (CLASP_BUILD_WITH_THREADS)
+ target_link_libraries(libclasp PUBLIC Threads::Threads)
+ target_compile_options(libclasp PRIVATE
+--
+2.45.1
+
diff --git a/gnu/packages/patches/freeimage-libraw-0.21-compat.patch b/gnu/packages/patches/freeimage-libraw-0.21-compat.patch
new file mode 100644
index 0000000000..b7eb7a4035
--- /dev/null
+++ b/gnu/packages/patches/freeimage-libraw-0.21-compat.patch
@@ -0,0 +1,15 @@
+from https://gitlab.archlinux.org/archlinux/packaging/packages/freeimage/-/blob/69548d01896b32f30937a71220a9133055d84705/freeimage-libraw-0.21.patch
+
+diff -ru FreeImage.orig/Source/FreeImage/PluginRAW.cpp FreeImage/Source/FreeImage/PluginRAW.cpp
+--- FreeImage.orig/Source/FreeImage/PluginRAW.cpp 2022-12-18 21:57:11.447801357 +0100
++++ FreeImage/Source/FreeImage/PluginRAW.cpp 2022-12-18 21:58:05.103433138 +0100
+@@ -687,7 +687,7 @@
+ // --------------------------------------------
+
+ // (-s [0..N-1]) Select one raw image from input file
+- RawProcessor->imgdata.params.shot_select = 0;
++ RawProcessor->imgdata.rawparams.shot_select = 0;
+ // (-w) Use camera white balance, if possible (otherwise, fallback to auto_wb)
+ RawProcessor->imgdata.params.use_camera_wb = 1;
+ // (-M) Use any color matrix from the camera metadata. This option only affects Olympus, Leaf, and Phase One cameras.
+
diff --git a/gnu/packages/patches/ghc-unique-support-newer-hashable.patch b/gnu/packages/patches/ghc-unique-support-newer-hashable.patch
new file mode 100644
index 0000000000..279a00716d
--- /dev/null
+++ b/gnu/packages/patches/ghc-unique-support-newer-hashable.patch
@@ -0,0 +1,110 @@
+From b5e9f017bab8fad05cac47f2ac75841dc37c7f34 Mon Sep 17 00:00:00 2001
+From: Yura Lazarev <Unisay@users.noreply.github.com>
+Date: Wed, 14 Sep 2022 07:04:41 +0000
+Subject: [PATCH] Support hashable >=^ 1.4, improve unit tests.
+
+---
+ Unique.cabal | 2 +-
+ tests/UniqueStrict/RepeatedBy.hs | 4 ++--
+ tests/UniqueUnsorted/RemoveDuplicates.hs | 6 +++---
+ tests/UniqueUnsorted/RepeatedBy.hs | 8 ++++----
+ 4 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/Unique.cabal b/Unique.cabal
+index 1c03188..45dbbed 100644
+--- a/Unique.cabal
++++ b/Unique.cabal
+@@ -29,7 +29,7 @@ library
+ base >=4.0 && < 5,
+ containers >=0.5.0.0 && <=0.7,
+ extra >=1.6.2 && <=1.8,
+- hashable >= 1.2.6 && <=1.4,
++ hashable >= 1.2.6 && < 1.5,
+ unordered-containers >= 0.2.8 && <=0.3
+
+ test-suite HspecTest
+diff --git a/tests/UniqueStrict/RepeatedBy.hs b/tests/UniqueStrict/RepeatedBy.hs
+index 11eb180..04d8706 100644
+--- a/tests/UniqueStrict/RepeatedBy.hs
++++ b/tests/UniqueStrict/RepeatedBy.hs
+@@ -15,7 +15,7 @@ repeatedByTests =
+ repeatedBy (>100) ( [] :: [Int] ) `shouldBe` []
+
+ it "repeatedBy: simple test" $ do
+- repeatedBy (>2) "This is the test line" `shouldBe` " eist"
++ sort (repeatedBy (>2) "This is the test line") `shouldBe` " eist"
+
+ it "repeatedBy: returns [] when predicate (=< negative) " $
+ property $
+@@ -39,7 +39,7 @@ repeatedByTests =
+ it "repeatedBy: resulted elements should occur only once" $
+ property $
+ \ x xs -> x > 0
+- ==> all (==1) . map length . group $ repeatedBy (> x) ( xs :: String )
++ ==> all ((==1) . length) . group $ repeatedBy (> x) ( xs :: String )
+
+ it "unique: simple test" $ do
+ unique "foo bar" `shouldBe` " abfr"
+diff --git a/tests/UniqueUnsorted/RemoveDuplicates.hs b/tests/UniqueUnsorted/RemoveDuplicates.hs
+index 19b4e5f..93861c5 100644
+--- a/tests/UniqueUnsorted/RemoveDuplicates.hs
++++ b/tests/UniqueUnsorted/RemoveDuplicates.hs
+@@ -4,7 +4,7 @@ import Test.Hspec
+ import Test.QuickCheck
+
+ import Data.List.UniqueUnsorted
+-import Data.List (group)
++import Data.List (group, sort)
+
+
+ removeDuplicatesTests :: SpecWith ()
+@@ -15,7 +15,7 @@ removeDuplicatesTests =
+ removeDuplicates ( [] :: [Int] ) `shouldBe` []
+
+ it "removeDuplicates: simple test" $ do
+- removeDuplicates "foo bar" `shouldBe` " abrfo"
++ sort (removeDuplicates "foo bar") `shouldBe` " abfor"
+
+ it "removeDuplicates: multiple execution should return the same result" $
+ property $
+@@ -27,4 +27,4 @@ removeDuplicatesTests =
+
+ it "removeDuplicates: elements should occur only once #2" $
+ property $
+- \ xs -> all (==1) . map length . group $ removeDuplicates ( xs :: [Integer] )
++ \ xs -> all ((==1) . length) . group $ removeDuplicates ( xs :: [Integer] )
+diff --git a/tests/UniqueUnsorted/RepeatedBy.hs b/tests/UniqueUnsorted/RepeatedBy.hs
+index 54e3930..5550489 100644
+--- a/tests/UniqueUnsorted/RepeatedBy.hs
++++ b/tests/UniqueUnsorted/RepeatedBy.hs
+@@ -4,7 +4,7 @@ import Test.Hspec
+ import Test.QuickCheck
+
+ import Data.List.UniqueUnsorted
+-import Data.List (group)
++import Data.List (group, sort)
+
+
+ repeatedByTests :: SpecWith ()
+@@ -15,7 +15,7 @@ repeatedByTests =
+ repeatedBy (>100) ( [] :: [Int] ) `shouldBe` []
+
+ it "repeatedBy: simple test" $ do
+- repeatedBy (>2) "This is the test line" `shouldBe` " stei"
++ sort (repeatedBy (>2) "This is the test line") `shouldBe` " eist"
+
+ it "repeatedBy: returns [] when predicate (=< negative) " $
+ property $
+@@ -29,10 +29,10 @@ repeatedByTests =
+ it "repeatedBy: resulted elements should occur only once" $
+ property $
+ \ x xs -> x > 0
+- ==> all (==1) . map length . group $ repeatedBy (> x) ( xs :: String )
++ ==> all ((==1) . length) . group $ repeatedBy (> x) ( xs :: String )
+
+ it "unique: simple test" $ do
+- unique "foo bar" `shouldBe` " abrf"
++ sort (unique "foo bar") `shouldBe` " abfr"
+
+ it "repeated: simple test" $ do
+ repeated "foo bar" `shouldBe` "o"
diff --git a/gnu/packages/patches/gwenview-kimageannotator.patch b/gnu/packages/patches/gwenview-kimageannotator.patch
deleted file mode 100644
index 92b994a0b5..0000000000
--- a/gnu/packages/patches/gwenview-kimageannotator.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
-Date: 2024-02-26
-Initial Package Version: 23.08.5
-Upstream Status: Rejected (Qt6 port is primary now)
-Origin: Self
-Description: Fixes building Gwenview with recent kImageAnnotator
- and kColorPicker versions by adjusting their paths
- and FOUND variables so that the correct libraries are
- selected.
-
---- gwenview-23.08.5.orig/CMakeLists.txt 2024-02-26 15:02:29.702754535 -0600
-+++ gwenview-23.08.5/CMakeLists.txt 2024-02-26 15:09:48.012866877 -0600
-@@ -166,11 +166,11 @@ if(NOT WITHOUT_X11)
- endif()
-
- if (QT_MAJOR_VERSION STREQUAL "5")
-- find_package(kImageAnnotator)
-- set_package_properties(kImageAnnotator PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
-- if(kImageAnnotator_FOUND)
-- set(KIMAGEANNOTATOR_FOUND 1)
-- find_package(kColorPicker REQUIRED)
-+ find_package(kImageAnnotator-Qt5)
-+ set_package_properties(kImageAnnotator-Qt5 PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
-+ if(kImageAnnotator-Qt5_FOUND)
-+ set(kImageAnnotator_FOUND 1)
-+ find_package(kColorPicker-Qt5 REQUIRED)
- if(NOT kImageAnnotator_VERSION VERSION_LESS 0.5.0)
- set(KIMAGEANNOTATOR_CAN_LOAD_TRANSLATIONS 1)
- endif()
diff --git a/gnu/packages/patches/kdiagram-Fix-missing-link-libraries.patch b/gnu/packages/patches/kdiagram-Fix-missing-link-libraries.patch
index cdfb608d9b..11116fe51a 100644
--- a/gnu/packages/patches/kdiagram-Fix-missing-link-libraries.patch
+++ b/gnu/packages/patches/kdiagram-Fix-missing-link-libraries.patch
@@ -16,8 +16,8 @@ index be2a6fc..b13befb 100644
@@ -1,3 +1,3 @@
add_executable(BarsSimple main.cpp)
--target_link_libraries(BarsSimple KChart Qt5::Widgets)
-+target_link_libraries(BarsSimple KChart Qt5::Widgets Qt5::Svg)
+-target_link_libraries(BarsSimple KChart6 Qt::Widgets)
++target_link_libraries(BarsSimple KChart6 Qt::Widgets Qt::Svg)
--
2.21.1
diff --git a/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
index 8f67553138..6256ff24e3 100644
--- a/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
+++ b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
@@ -14,12 +14,11 @@ new file mode 100644
index 0000000..726065d
--- /dev/null
+++ b/src/guix_utils.h
-@@ -0,0 +1,24 @@
+@@ -0,0 +1,23 @@
+#ifndef GUIX_UTILS_H
+#define GUIX_UTILS_H
+
+// kwin
-+#include <kwinglobals.h>
+
+namespace KWin
+{
diff --git a/gnu/packages/patches/libksysguard-qdiriterator-follow-symlinks.patch b/gnu/packages/patches/libksysguard-qdiriterator-follow-symlinks.patch
deleted file mode 100644
index ec4a34037d..0000000000
--- a/gnu/packages/patches/libksysguard-qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 46164a50de4102d02ae9d1d480acdd4b12303db8 Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Wed, 14 Oct 2015 07:07:22 -0500
-Subject: [PATCH] qdiriterator follow symlinks
-
----
- processui/scripting.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/processui/scripting.cpp b/processui/scripting.cpp
-index efed8ff..841761a 100644
---- a/processui/scripting.cpp
-+++ b/processui/scripting.cpp
-@@ -293,7 +293,7 @@ void Scripting::loadContextMenu()
- const QStringList dirs =
- QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("ksysguard/scripts/"), QStandardPaths::LocateDirectory);
- for (const QString &dir : dirs) {
-- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
-+ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
- while (it.hasNext()) {
- scripts.append(it.next());
- }
---
-2.5.2
diff --git a/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch b/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
deleted file mode 100644
index 036cf79f91..0000000000
--- a/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-This patch includes
-
- * mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
- * mingw-w64-headers/crt/math.h: Likewise
- * mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
- symbols.
- * mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
- Add symbols.
- (lstat): Add function.
- * mingw-w64-headers/crt/_mingw_stat64.h: Likewise
- * mingw-w64-headers/crt/stdlib.h (realpath): Add function.
-
-Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
-
-Upstream status: not yet presented upstream.
-
-diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
-index 5874f4e..bdf4ead 100644
---- a/mingw-w64-headers/crt/float.h
-+++ b/mingw-w64-headers/crt/float.h
-@@ -22,6 +22,15 @@
- #if (__GNUC__ < 4)
- #error Corrupt install of gcc-s internal headers, or search order was changed.
- #else
-+
-+ /* From gcc-4.9.3 float.h. */
-+ #undef FLT_EPSILON
-+ #undef DBL_EPSILON
-+ #undef LDBL_EPSILON
-+ #define FLT_EPSILON __FLT_EPSILON__
-+ #define DBL_EPSILON __DBL_EPSILON__
-+ #define LDBL_EPSILON __LDBL_EPSILON__
-+
- /* #include_next <float_ginclude.h> */
-
- /* Number of decimal digits, q, such that any floating-point number with q
-diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
-index 1e970f4..99a332f 100644
---- a/mingw-w64-headers/crt/math.h
-+++ b/mingw-w64-headers/crt/math.h
-@@ -216,6 +216,7 @@ extern "C" {
- #endif
- }
-
-+#if 0
- __CRT_INLINE long double __cdecl fabsl (long double x)
- {
- #ifdef __arm__
-@@ -226,6 +227,7 @@ extern "C" {
- return res;
- #endif
- }
-+#endif
-
- __CRT_INLINE double __cdecl fabs (double x)
- {
-@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
- /* 7.12.7.3 */
- extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
- extern float __cdecl hypotf (float x, float y);
--#ifndef __CRT__NO_INLINE
-+#if 0 //ndef __CRT__NO_INLINE
- __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
- #endif
- extern long double __cdecl hypotl (long double, long double);
diff --git a/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch
deleted file mode 100644
index 432cafc162..0000000000
--- a/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-This following patch was originally found at the debian mingw-w64 team's
-mingw-w64 repo located here:
-https://salsa.debian.org/mingw-w64-team/mingw-w64.git
-
-Invoke the following in the aforementioned repo to see the original patch:
-
- $ git show 4974e2c:debian/patches/dlltool-temp-prefix.patch
-
-Description: Specify dlltool's temp prefix
-Author: Stephen Kitt <steve@sk2.org>
-
-By default dlltool uses its pid for the object files it generates.
-Enforcing its temp prefix allows the files it generates to be
-reproducible.
-
---- a/mingw-w64-crt/Makefile.am
-+++ b/mingw-w64-crt/Makefile.am
-@@ -36,7 +36,7 @@
- DTDEF32=$(GENLIB) $(DLLTOOLFLAGS32) $(AM_DLLTOOLFLAGS)
- DTDEF64=$(GENLIB) $(DLLTOOLFLAGS64) $(AM_DLLTOOLFLAGS)
- else
-- AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@
-+ AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ --temp-prefix $$(basename $@ .a)
- DLLTOOLFLAGSARM32=-m arm
- DLLTOOLFLAGSARM64=-m arm64
- DLLTOOLFLAGS32=--as-flags=--32 -m i386
diff --git a/gnu/packages/patches/mingw-w64-reproducible-gendef.patch b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch
deleted file mode 100644
index 8dbea54ce9..0000000000
--- a/gnu/packages/patches/mingw-w64-reproducible-gendef.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-This following patch was originally found at the debian mingw-w64 team's
-mingw-w64 repo located here:
-https://salsa.debian.org/mingw-w64-team/mingw-w64.git
-
-Invoke the following in the aforementioned repo to see the original patch:
-
- $ git show 9a33f50:debian/patches/reproducible-build.patch
-
-Description: Drop __DATE__ from gendef and genlib
-Author: Stephen Kitt <skitt@debian.org>
-
-This allows gendef and genlib to be built reproducibly.
-
---- a/mingw-w64-tools/gendef/src/gendef.c
-+++ b/mingw-w64-tools/gendef/src/gendef.c
-@@ -196,7 +196,6 @@
- " By default, the output files are named after their DLL counterparts\n"
- " gendef MYDLL.DLL Produces MYDLL.def\n"
- " gendef - MYDLL.DLL Prints the exports to stdout\n");
-- fprintf (stderr, "\nBuilt on %s\n", __DATE__);
- fprintf (stderr, "\nReport bugs to <mingw-w64-public@lists.sourceforge.net>\n");
- exit (0);
- }
---- a/mingw-w64-tools/genlib/src/genlib.c
-+++ b/mingw-w64-tools/genlib/src/genlib.c
-@@ -123,7 +123,6 @@
- "Usage example:\n"
- " By default, the output file is named after the DLL counterpart\n"
- " genlib mydef.def Produces libmydll.a\n"
--"\nBuilt on " __DATE__ "\n"
- "\nReport bugs to <martellmalone@gmail.com>\n"
- ;
-
diff --git a/gnu/packages/patches/python-angr-addition-type-error.patch b/gnu/packages/patches/python-angr-addition-type-error.patch
new file mode 100644
index 0000000000..7301d8b505
--- /dev/null
+++ b/gnu/packages/patches/python-angr-addition-type-error.patch
@@ -0,0 +1,18 @@
+This fixes failures of the test_ln_gcc_O2 and other related tests
+in the angr test suite. The patch has been proposed upstream.
+
+Taken form: https://github.com/angr/angr/pull/4443
+
+diff --git a/angr/analyses/reassembler.py b/angr/analyses/reassembler.py
+index 7a2399a60..b09b3a8cb 100644
+--- a/angr/analyses/reassembler.py
++++ b/angr/analyses/reassembler.py
+@@ -730,7 +730,7 @@ class Instruction:
+ elif operand.type == capstone.CS_OP_MEM:
+ operand_offsets.append(capstone_instr.disp_offset)
+ else:
+- operand_offsets.append(None)
++ operand_offsets.append(0)
+
+ if self.addr is not None:
+ self._initialize(capstone_instr.operands, operand_offsets)
diff --git a/gnu/packages/patches/python-angr-check-exec-deps.patch b/gnu/packages/patches/python-angr-check-exec-deps.patch
new file mode 100644
index 0000000000..438f8ef183
--- /dev/null
+++ b/gnu/packages/patches/python-angr-check-exec-deps.patch
@@ -0,0 +1,93 @@
+The angr test suite performs analysis on several pre-compiled binaries
+to ensure its binary analysis capabilities are working as intended.
+Some of these binaries are also executed as part of the test suite to
+test if the simulation engine provided by angr results in the same
+output as native execution of the binary.
+
+For Guix, this files as the glibc shared objects cannot be found.
+Additionally, we don't really want to execute pre-compiled binaries
+on Guix, hence we disable those tests.
+
+diff --git a/tests/test_ctype_locale.py b/tests/test_ctype_locale.py
+index 08cb89836..2b9233558 100644
+--- a/tests/test_ctype_locale.py
++++ b/tests/test_ctype_locale.py
+@@ -14,7 +14,7 @@ test_location = os.path.dirname(os.path.abspath(__file__))
+
+
+ class TestCtypeLocale(unittest.TestCase):
+- @skip_if_not_linux
++ @unittest.skip("test executes pre-compiled binaries")
+ def test_ctype_b_loc(self):
+ """
+ test_ctype_locale.test_ctype_b_loc
+@@ -60,7 +60,7 @@ class TestCtypeLocale(unittest.TestCase):
+ output = subprocess.check_output(bin_path, shell=True)
+ assert result == output
+
+- @skip_if_not_linux
++ @unittest.skip("test executes pre-compiled binaries")
+ def test_ctype_tolower_loc(self):
+ """
+ test_ctype_locale.test_ctype_tolower_loc
+@@ -109,7 +109,7 @@ class TestCtypeLocale(unittest.TestCase):
+ output = subprocess.check_output(bin_path, shell=True)
+ assert result == output
+
+- @skip_if_not_linux
++ @unittest.skip("test executes pre-compiled binaries")
+ def test_ctype_toupper_loc(self):
+ """
+ test_ctype_locale.test_ctype_toupper_loc
+diff --git a/tests/test_signed_div.py b/tests/test_signed_div.py
+index 59cb9b8d1..994ed9c65 100644
+--- a/tests/test_signed_div.py
++++ b/tests/test_signed_div.py
+@@ -1,6 +1,7 @@
+ import angr
+ import subprocess
+ import sys
++import pytest
+
+ import logging
+
+@@ -13,7 +14,7 @@ import os
+ test_location = os.path.dirname(os.path.realpath(__file__))
+
+
+-@skipUnless(sys.platform.startswith("linux"), "linux only")
++@pytest.mark.skip(reason="test executes pre-compiled binaries")
+ def test_signed_div():
+ test_bin = os.path.join(test_location, "..", "..", "binaries", "tests", "x86_64", "test_signed_div")
+ b = angr.Project(test_bin, auto_load_libs=False)
+diff --git a/tests/test_sscanf.py b/tests/test_sscanf.py
+index 29d2c8403..ea799b310 100644
+--- a/tests/test_sscanf.py
++++ b/tests/test_sscanf.py
+@@ -1,3 +1,4 @@
++import pytest
+ import angr
+ import subprocess
+ import sys
+@@ -14,7 +15,7 @@ test_location = os.path.dirname(os.path.realpath(__file__))
+
+
+ class TestSscanf(unittest.TestCase):
+- @unittest.skipUnless(sys.platform.startswith("linux"), "linux only")
++ @unittest.skip("test executes pre-compiled binaries")
+ def test_sscanf(self):
+ test_bin = os.path.join(test_location, "..", "..", "binaries", "tests", "x86_64", "sscanf_test")
+ b = angr.Project(test_bin, auto_load_libs=False)
+diff --git a/tests/test_strtol.py b/tests/test_strtol.py
+index 6c29cab22..f36181407 100644
+--- a/tests/test_strtol.py
++++ b/tests/test_strtol.py
+@@ -11,7 +11,7 @@ class TestStrtol(unittest.TestCase):
+ # pylint: disable=no-self-use
+
+ @slow_test
+- @unittest.skipUnless(sys.platform.startswith("linux"), "linux-only")
++ @unittest.skip("test executes pre-compiled binaries")
+ def test_strtol(self, threads=None):
+ test_bin = os.path.join(bin_location, "tests", "x86_64", "strtol_test")
+ # disabling auto_load_libs increases the execution time of the test case.
diff --git a/gnu/packages/patches/python-pysmt-fix-pow-return-type.patch b/gnu/packages/patches/python-pysmt-fix-pow-return-type.patch
new file mode 100644
index 0000000000..0ec2d41b3c
--- /dev/null
+++ b/gnu/packages/patches/python-pysmt-fix-pow-return-type.patch
@@ -0,0 +1,258 @@
+Backport of an upstream patch which fixes a test failure with our
+packaged version of the Z3 SMT solver.
+
+Taken from: https://github.com/pysmt/pysmt/commit/f522e8cd8f3e75ff85f5eae29b427e18a6701859
+
+diff --git a/pysmt/formula.py b/pysmt/formula.py
+index ea4b46c..6cb9cbf 100644
+--- a/pysmt/formula.py
++++ b/pysmt/formula.py
+@@ -252,11 +252,7 @@ class FormulaManager(object):
+
+ if base.is_constant():
+ val = base.constant_value() ** exponent.constant_value()
+- if base.is_constant(types.REAL):
+- return self.Real(val)
+- else:
+- assert base.is_constant(types.INT)
+- return self.Int(val)
++ return self.Real(val)
+ return self.create_node(node_type=op.POW, args=(base, exponent))
+
+ def Div(self, left, right):
+diff --git a/pysmt/logics.py b/pysmt/logics.py
+index ef88dd6..9dc45b1 100644
+--- a/pysmt/logics.py
++++ b/pysmt/logics.py
+@@ -495,6 +495,12 @@ QF_NRA = Logic(name="QF_NRA",
+ real_arithmetic=True,
+ linear=False)
+
++QF_NIRA = Logic(name="QF_NIRA",
++ description="""Quantifier-free integer and real arithmetic.""",
++ quantifier_free=True,
++ integer_arithmetic=True,
++ real_arithmetic=True,
++ linear=False)
+
+ QF_RDL = Logic(name="QF_RDL",
+ description=\
+@@ -619,41 +625,41 @@ QF_AUFBVLIRA = Logic(name="QF_AUFBVLIRA",
+ AUTO = Logic(name="Auto",
+ description="Special logic used to indicate that the logic to be used depends on the formula.")
+
+-SMTLIB2_LOGICS = frozenset([ AUFLIA,
+- AUFLIRA,
+- AUFNIRA,
+- ALIA,
+- LRA,
+- LIA,
+- NIA,
+- NRA,
+- UFLRA,
+- UFNIA,
+- UFLIRA,
+- QF_ABV,
+- QF_AUFBV,
+- QF_AUFLIA,
+- QF_ALIA,
+- QF_AX,
+- QF_BV,
+- QF_IDL,
+- QF_LIA,
+- QF_LRA,
+- QF_NIA,
+- QF_NRA,
+- QF_RDL,
+- QF_UF,
+- QF_UFBV ,
+- QF_UFIDL,
+- QF_UFLIA,
+- QF_UFLRA,
+- QF_UFNRA,
+- QF_UFNIA,
+- QF_UFLIRA,
+- QF_SLIA
+- ])
+-
+-LOGICS = SMTLIB2_LOGICS | frozenset([ QF_BOOL, BOOL, QF_AUFBVLIRA])
++SMTLIB2_LOGICS = frozenset([AUFLIA,
++ AUFLIRA,
++ AUFNIRA,
++ ALIA,
++ LRA,
++ LIA,
++ NIA,
++ NRA,
++ UFLRA,
++ UFNIA,
++ UFLIRA,
++ QF_ABV,
++ QF_AUFBV,
++ QF_AUFLIA,
++ QF_ALIA,
++ QF_AX,
++ QF_BV,
++ QF_IDL,
++ QF_LIA,
++ QF_LRA,
++ QF_NIA,
++ QF_NRA,
++ QF_RDL,
++ QF_UF,
++ QF_UFBV,
++ QF_UFIDL,
++ QF_UFLIA,
++ QF_UFLRA,
++ QF_UFNRA,
++ QF_UFNIA,
++ QF_UFLIRA,
++ QF_SLIA
++ ])
++
++LOGICS = SMTLIB2_LOGICS | frozenset([QF_BOOL, BOOL, QF_AUFBVLIRA, QF_NIRA])
+
+ QF_LOGICS = frozenset(_l for _l in LOGICS if _l.quantifier_free)
+
+@@ -668,8 +674,8 @@ PYSMT_LOGICS = frozenset([QF_BOOL, QF_IDL, QF_LIA, QF_LRA, QF_RDL, QF_UF, QF_UFI
+ QF_BV, QF_UFBV,
+ QF_ABV, QF_AUFBV, QF_AUFLIA, QF_ALIA, QF_AX,
+ QF_AUFBVLIRA,
+- QF_NRA, QF_NIA, UFBV, BV,
+- ])
++ QF_NRA, QF_NIA, QF_NIRA, UFBV, BV,
++ ])
+
+ # PySMT Logics includes additional features:
+ # - constant arrays: QF_AUFBV becomes QF_AUFBV*
+@@ -697,7 +703,6 @@ for l in PYSMT_LOGICS:
+ ext_logics.add(nl)
+
+
+-
+ LOGICS = LOGICS | frozenset(ext_logics)
+ PYSMT_LOGICS = PYSMT_LOGICS | frozenset(ext_logics)
+
+diff --git a/pysmt/solvers/z3.py b/pysmt/solvers/z3.py
+index 3fb42b9..210b771 100644
+--- a/pysmt/solvers/z3.py
++++ b/pysmt/solvers/z3.py
+@@ -595,6 +595,8 @@ class Z3Converter(Converter, DagWalker):
+ None, None,
+ 0, None,
+ expr.ast)
++ print("Z3: SMTLIB")
++ print(s)
+ stream_in = StringIO(s)
+ r = parser.get_script(stream_in).get_last_formula(self.mgr)
+ key = (askey(expr), None)
+diff --git a/pysmt/test/examples.py b/pysmt/test/examples.py
+index 73455ee..b653185 100644
+--- a/pysmt/test/examples.py
++++ b/pysmt/test/examples.py
+@@ -898,12 +898,12 @@ def get_full_example_formulae(environment=None):
+ logic=pysmt.logics.QF_NRA
+ ),
+
+- Example(hr="((p ^ 2) = 0)",
+- expr=Equals(Pow(p, Int(2)), Int(0)),
++ Example(hr="((p ^ 2) = 0.0)",
++ expr=Equals(Pow(p, Int(2)), Real(0)),
+ is_valid=False,
+ is_sat=True,
+- logic=pysmt.logics.QF_NIA
+- ),
++ logic=pysmt.logics.QF_NIRA
++ ),
+
+ Example(hr="((r ^ 2.0) = 0.0)",
+ expr=Equals(Pow(r, Real(2)), Real(0)),
+diff --git a/pysmt/test/test_back.py b/pysmt/test/test_back.py
+index bceb45b..7a0ad63 100644
+--- a/pysmt/test/test_back.py
++++ b/pysmt/test/test_back.py
+@@ -55,10 +55,10 @@ class TestBasic(TestCase):
+ res = msat.converter.back(term)
+ self.assertFalse(f == res)
+
+- def do_back(self, solver_name, z3_string_buffer=False):
++ def do_back(self, solver_name, via_smtlib=False):
+ for formula, _, _, logic in get_example_formulae():
+ if logic.quantifier_free:
+- if logic.theory.custom_type and z3_string_buffer:
++ if logic.theory.custom_type and via_smtlib:
+ # Printing of declare-sort from Z3 is not conformant
+ # with the SMT-LIB. We might consider extending our
+ # parser.
+@@ -67,7 +67,7 @@ class TestBasic(TestCase):
+ s = Solver(name=solver_name, logic=logic)
+ term = s.converter.convert(formula)
+ if solver_name == "z3":
+- if z3_string_buffer:
++ if via_smtlib:
+ res = s.converter.back_via_smtlib(term)
+ else:
+ res = s.converter.back(term)
+@@ -84,8 +84,8 @@ class TestBasic(TestCase):
+
+ @skipIfSolverNotAvailable("z3")
+ def test_z3_back_formulae(self):
+- self.do_back("z3", z3_string_buffer=False)
+- self.do_back("z3", z3_string_buffer=True)
++ self.do_back("z3", via_smtlib=True)
++ self.do_back("z3", via_smtlib=False)
+
+
+ if __name__ == '__main__':
+diff --git a/pysmt/type_checker.py b/pysmt/type_checker.py
+index b700fcf..7ce05aa 100644
+--- a/pysmt/type_checker.py
++++ b/pysmt/type_checker.py
+@@ -33,6 +33,8 @@ class SimpleTypeChecker(walkers.DagWalker):
+
+ def __init__(self, env=None):
+ walkers.DagWalker.__init__(self, env=env)
++ # Return None if the type cannot be computed rather than
++ # raising an exception.
+ self.be_nice = False
+
+ def _get_key(self, formula, **kwargs):
+@@ -42,7 +44,7 @@ class SimpleTypeChecker(walkers.DagWalker):
+ """ Returns the pysmt.types type of the formula """
+ res = self.walk(formula)
+ if not self.be_nice and res is None:
+- raise PysmtTypeError("The formula '%s' is not well-formed" \
++ raise PysmtTypeError("The formula '%s' is not well-formed"
+ % str(formula))
+ return res
+
+@@ -114,7 +116,7 @@ class SimpleTypeChecker(walkers.DagWalker):
+
+ def walk_bv_comp(self, formula, args, **kwargs):
+ # We check that all children are BV and the same size
+- a,b = args
++ a, b = args
+ if a != b or (not a.is_bv_type()):
+ return None
+ return BVType(1)
+@@ -187,7 +189,7 @@ class SimpleTypeChecker(walkers.DagWalker):
+ if args[0].is_bool_type():
+ raise PysmtTypeError("The formula '%s' is not well-formed."
+ "Equality operator is not supported for Boolean"
+- " terms. Use Iff instead." \
++ " terms. Use Iff instead."
+ % str(formula))
+ elif args[0].is_bv_type():
+ return self.walk_bv_to_bool(formula, args)
+@@ -324,10 +326,7 @@ class SimpleTypeChecker(walkers.DagWalker):
+ def walk_pow(self, formula, args, **kwargs):
+ if args[0] != args[1]:
+ return None
+- # Exponent must be positive for INT
+- if args[0].is_int_type() and formula.arg(1).constant_value() < 0 :
+- return None
+- return args[0]
++ return REAL
+
+ # EOC SimpleTypeChecker
+
diff --git a/gnu/packages/patches/python-pysmt-fix-smtlib-serialization-test.patch b/gnu/packages/patches/python-pysmt-fix-smtlib-serialization-test.patch
new file mode 100644
index 0000000000..eee555f807
--- /dev/null
+++ b/gnu/packages/patches/python-pysmt-fix-smtlib-serialization-test.patch
@@ -0,0 +1,86 @@
+Backport of an upstream patch fixing a test suite failure.
+
+Taken from: https://github.com/pysmt/pysmt/commit/a246669a487aff69f5da34570ef867841d18508a
+
+diff --git a/pysmt/test/smtlib/test_parser_examples.py b/pysmt/test/smtlib/test_parser_examples.py
+index cca4194..c0852be 100644
+--- a/pysmt/test/smtlib/test_parser_examples.py
++++ b/pysmt/test/smtlib/test_parser_examples.py
+@@ -29,6 +29,7 @@ from pysmt.shortcuts import Iff
+ from pysmt.shortcuts import read_smtlib, write_smtlib, get_env
+ from pysmt.exceptions import PysmtSyntaxError
+
++
+ class TestSMTParseExamples(TestCase):
+
+ def test_parse_examples(self):
+@@ -41,7 +42,6 @@ class TestSMTParseExamples(TestCase):
+ buf = StringIO()
+ script_out = smtlibscript_from_formula(f_out)
+ script_out.serialize(outstream=buf)
+- #print(buf)
+
+ buf.seek(0)
+ parser = SmtLibParser()
+@@ -49,7 +49,6 @@ class TestSMTParseExamples(TestCase):
+ f_in = script_in.get_last_formula()
+ self.assertEqual(f_in.simplify(), f_out.simplify())
+
+-
+ @skipIfNoSolverForLogic(logics.QF_BV)
+ def test_parse_examples_bv(self):
+ """For BV we represent a superset of the operators defined in SMT-LIB.
+@@ -108,7 +107,18 @@ class TestSMTParseExamples(TestCase):
+ self.assertValid(Iff(f_in, f_out), f_in.serialize())
+
+ def test_dumped_logic(self):
+- # Dumped logic matches the logic in the example
++ # Dumped logic matches the logic in the example.
++ #
++ # There are a few cases where we use a logic
++ # that does not exist in SMT-LIB, and the SMT-LIB
++ # serialization logic will find a logic that
++ # is more expressive. We need to adjust the test
++ # for those cases (see rewrite dict below).
++ rewrite = {
++ logics.QF_BOOL: logics.QF_UF,
++ logics.BOOL: logics.LRA,
++ logics.QF_NIRA: logics.AUFNIRA,
++ }
+ fs = get_example_formulae()
+
+ for (f_out, _, _, logic) in fs:
+@@ -121,14 +131,9 @@ class TestSMTParseExamples(TestCase):
+ for cmd in script_in:
+ if cmd.name == "set-logic":
+ logic_in = cmd.args[0]
+- if logic == logics.QF_BOOL:
+- self.assertEqual(logic_in, logics.QF_UF)
+- elif logic == logics.BOOL:
+- self.assertEqual(logic_in, logics.LRA)
+- else:
+- self.assertEqual(logic_in, logic, script_in)
++ self.assertEqual(logic_in, rewrite.get(logic, logic))
+ break
+- else: # Loops exited normally
++ else: # Loops exited normally
+ print("-"*40)
+ print(script_in)
+
+@@ -136,7 +141,7 @@ class TestSMTParseExamples(TestCase):
+ fs = get_example_formulae()
+
+ fdi, tmp_fname = mkstemp()
+- os.close(fdi) # Close initial file descriptor
++ os.close(fdi) # Close initial file descriptor
+ for (f_out, _, _, _) in fs:
+ write_smtlib(f_out, tmp_fname)
+ # with open(tmp_fname) as fin:
+@@ -197,7 +202,6 @@ class TestSMTParseExamples(TestCase):
+ f_in = script.get_last_formula()
+ self.assertSat(f_in)
+
+-
+ def test_int_promotion_define_fun(self):
+ script = """
+ (define-fun x () Int 8)
diff --git a/gnu/packages/patches/python-pyvex-remove-angr-dependency.patch b/gnu/packages/patches/python-pyvex-remove-angr-dependency.patch
new file mode 100644
index 0000000000..dccf22bbc6
--- /dev/null
+++ b/gnu/packages/patches/python-pyvex-remove-angr-dependency.patch
@@ -0,0 +1,80 @@
+This patch removes the angr dependency from the pyvex these, thus
+resolving a circular dependency (as angr depends on pyvex). This
+patch has been taken from upstream.
+
+This patch is a squashed version of the following upstream patches:
+
+* https://github.com/angr/pyvex/commit/61fb26f223a8d8a276b702d2448a12e02c5c9c6b
+* https://github.com/angr/pyvex/commit/a1fb2a4d0826b0e43bd8bbdd00b6db032643ec95
+
+diff --git a/tests/test_spotter.py b/tests/test_spotter.py
+index 9271ccd..bed7dd4 100644
+--- a/tests/test_spotter.py
++++ b/tests/test_spotter.py
+@@ -1,6 +1,5 @@
+ import os
+
+-import angr
+ import archinfo
+
+ import pyvex
+@@ -98,53 +97,28 @@ class CortexSpotter(GymratLifter):
+ register(CortexSpotter, "ARMEL")
+
+
+-def test_full_binary():
+- p = angr.Project(
+- os.path.join(test_location, "armel", "RTOSDemo.axf.issue_685"),
+- arch="ARMEL",
+- auto_load_libs=False,
+- )
+- st = p.factory.call_state(0x000013CE + 1)
+- b = st.block().vex
+- simgr = p.factory.simulation_manager(st)
+- simgr.step()
+- assert b.jumpkind == "Ijk_Sys_syscall"
+- assert simgr.active[0].regs.ip_at_syscall.args[0] == 0x13FB
+-
+-
+ def test_tmrs():
+- test_location = str(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../binaries/tests"))
+- p = angr.Project(
+- os.path.join(test_location, "armel", "helloworld"),
+- arch="ARMEL",
+- auto_load_libs=False,
+- )
++ arch = archinfo.arch_from_id("ARMEL")
+ ins = b"\xef\xf3\x08\x82"
+- b = pyvex.block.IRSB(ins, 1, p.arch)
++ b = pyvex.block.IRSB(ins, 1, arch)
+ assert b.jumpkind == "Ijk_Boring"
+ assert type(b.statements[1].data) == pyvex.expr.Get
+- assert p.arch.register_names.get(b.statements[1].data.offset, "") == "sp"
++ assert arch.register_names.get(b.statements[1].data.offset, "") == "sp"
+ assert type(b.statements[2]) == pyvex.stmt.Put
+
+
+ def test_tmsr():
+- test_location = str(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../binaries/tests"))
+- p = angr.Project(
+- os.path.join(test_location, "armel", "helloworld"),
+- arch="ARMEL",
+- auto_load_libs=False,
+- )
++ arch = archinfo.arch_from_id("ARMEL")
+ inss = b"\x82\xf3\x08\x88"
+- b = pyvex.block.IRSB(inss, 1, p.arch, opt_level=3)
++ b = pyvex.block.IRSB(inss, 1, arch, opt_level=3)
+ assert b.jumpkind == "Ijk_Boring"
+ assert type(b.statements[1].data) == pyvex.expr.Get
+- assert p.arch.register_names.get(b.statements[1].data.offset, "") == "r2"
++ assert arch.register_names.get(b.statements[1].data.offset, "") == "r2"
+ assert type(b.statements[2]) == pyvex.stmt.Put
+
+
+ if __name__ == "__main__":
+ test_basic()
+ test_embedded()
+- test_full_binary()
+ test_tmrs()
+ test_tmsr()
diff --git a/gnu/packages/patches/python-waitress-fix-tests.patch b/gnu/packages/patches/python-waitress-fix-tests.patch
deleted file mode 100644
index 110492a604..0000000000
--- a/gnu/packages/patches/python-waitress-fix-tests.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Skip test that requires getaddrinfo(), which is not available in the build
-environment. This package uses a regexp for finding tests (see runner.py),
-so using @unittest.skip does not work.
-
---- a/waitress/tests/test_adjustments.py
-+++ b/waitress/tests/test_adjustments.py
-@@ -185,22 +185,6 @@
- def test_bad_port(self):
- self.assertRaises(ValueError, self._makeOne, listen='127.0.0.1:test')
-
-- def test_service_port(self):
-- if WIN and PY2: # pragma: no cover
-- # On Windows and Python 2 this is broken, so we raise a ValueError
-- self.assertRaises(
-- ValueError,
-- self._makeOne,
-- listen='127.0.0.1:http',
-- )
-- return
--
-- inst = self._makeOne(listen='127.0.0.1:http 0.0.0.0:https')
--
-- bind_pairs = [sockaddr[:2] for (_, _, _, sockaddr) in inst.listen]
--
-- self.assertEqual(bind_pairs, [('127.0.0.1', 80), ('0.0.0.0', 443)])
--
- def test_dont_mix_host_port_listen(self):
- self.assertRaises(
- ValueError,
diff --git a/gnu/packages/patches/python-xmp-toolkit-add-missing-error-codes.patch b/gnu/packages/patches/python-xmp-toolkit-add-missing-error-codes.patch
new file mode 100644
index 0000000000..17bdae188f
--- /dev/null
+++ b/gnu/packages/patches/python-xmp-toolkit-add-missing-error-codes.patch
@@ -0,0 +1,51 @@
+From fd9e887a1853d9b4bc3fce20d414d648fb5abbfc Mon Sep 17 00:00:00 2001
+From: Asher Glick <asher.glick@gmail.com>
+Date: Mon, 1 Mar 2021 14:35:46 -0600
+Subject: [PATCH] Add missing error codes and graceful handling of possible
+ future missing codes.
+
+---
+ libxmp/exempi.py | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/libxmp/exempi.py b/libxmp/exempi.py
+index 683e240..f58003c 100644
+--- a/libxmp/exempi.py
++++ b/libxmp/exempi.py
+@@ -85,6 +85,7 @@ ERROR_MESSAGE = { 0: "unknown error",
+ -13: "std exception",
+ -14: "unknown exception",
+ -15: "no memory",
++ -16: "progress abort",
+ -101: "bad schema",
+ -102: "bad XPath",
+ -103: "bad options",
+@@ -95,6 +96,14 @@ ERROR_MESSAGE = { 0: "unknown error",
+ -108: "bad file format",
+ -109: "no file handler",
+ -110: "too large for JPEG",
++ -111: "no file",
++ -112: "file permission error",
++ -113: "disk space",
++ -114: "read error",
++ -115: "write error",
++ -116: "bad block format",
++ -117: "file path not a file",
++ -118: "rejected file extension",
+ -201: "bad XML",
+ -202: "bad RDF",
+ -203: "bad XMP",
+@@ -1697,6 +1706,9 @@ def check_error(success):
+ # so we supplement it by explicitly checking the error code.
+ ecode = EXEMPI.xmp_get_error()
+ if not success or ecode != 0:
+- error_msg = ERROR_MESSAGE[ecode]
++ if ecode in ERROR_MESSAGE:
++ error_msg = ERROR_MESSAGE[ecode]
++ else:
++ error_msg = "Unexpected error code " + str(ecode)
+ msg = 'Exempi function failure ("{0}").'.format(error_msg)
+ raise XMPError(msg)
+--
+2.30.2
+
diff --git a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch
deleted file mode 100644
index 483948fec9..0000000000
--- a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch
+++ /dev/null
@@ -1,423 +0,0 @@
-From 82157f5b3fb9f71ad7fc978c428d423d06a4a0df Mon Sep 17 00:00:00 2001
-From: Philip McGrath <philip@philipmcgrath.com>
-Date: Wed, 28 Feb 2024 19:41:22 -0500
-Subject: [PATCH 1/2] Chez Scheme: Repairs and improvements for building with
- external dependencies
-
-* configure: support `ZUO=<zuo>`
-
-Supplying `ZUO=<zuo>` skips the submodule check in `configure`
-and configures the generated makefile not to build or remove Zuo.
-
-* configure: support `STEXLIB=<stex>`
-
-For compatibility with older scripts, when not explicitly configured,
-continue to honor the `STEXLIB` environment variable at build time.
-
-(cherry picked from commit 694fbd47a125c7fde10a328c6fda199dac19f802)
----
- racket/src/ChezScheme/BUILDING | 5 ++--
- racket/src/ChezScheme/build.zuo | 13 +++++++---
- racket/src/ChezScheme/configure | 27 ++++++++++++++++++++-
- racket/src/ChezScheme/makefiles/Makefile.in | 6 ++---
- 4 files changed, 40 insertions(+), 11 deletions(-)
-
-diff --git a/racket/src/ChezScheme/BUILDING b/racket/src/ChezScheme/BUILDING
-index 50fde27771..2df29b5bd8 100644
---- a/racket/src/ChezScheme/BUILDING
-+++ b/racket/src/ChezScheme/BUILDING
-@@ -155,7 +155,8 @@ information on the supported options.
- The generated makefile mostly just ensures that a `zuo` executable is
- built in a `bin` directory, and then it defers the actual build work
- to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed,
--you can use `zuo` directly instead of `make`. In general, instead of
-+you can use `zuo` directly instead of `make`: in that case, you may
-+wish to use `./configure ZUO=<zuo>`. In general, instead of
- the command `make X` to build target `X` as described below, you can
- use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built).
-
-@@ -339,7 +340,7 @@ The makefile supports several targets:
- * `make clean`
-
- Removes all built elements from the workarea, and then removes
-- `bin/zuo`.
-+ `bin/zuo` (unless configured with `ZUO=<zuo>`).
-
-
- WINDOWS VIA COMMAND PROMPT
-diff --git a/racket/src/ChezScheme/build.zuo b/racket/src/ChezScheme/build.zuo
-index a211632a89..432cc6e5a1 100644
---- a/racket/src/ChezScheme/build.zuo
-+++ b/racket/src/ChezScheme/build.zuo
-@@ -218,10 +218,15 @@
- token))
-
- (define stexlib
-- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env))))
-- (if found
-- (cdr found)
-- (at-source "stex"))))
-+ (let ([configured (hash-ref config 'STEXLIB "")]
-+ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))])
-+ (cond
-+ [(not (equal? "" configured))
-+ configured]
-+ [env
-+ (cdr env)]
-+ [else
-+ (at-source "stex")])))
- (define stex-sources
- (source-tree stexlib))
-
-diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure
-index 721d1d1335..f88c6f7625 100755
---- a/racket/src/ChezScheme/configure
-+++ b/racket/src/ChezScheme/configure
-@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough"
- CFLAGS_ADD=
- zlibLib=
- LZ4Lib=
-+STEXLIB=
- Kernel=KernelLib
- buildKernelOnly=no
- enableFrompb=yes
-@@ -102,6 +103,7 @@ empetite=no
- moreBootFiles=
- preloadBootFiles=
- alwaysUseBootFile=
-+zuoExternal=
-
- CONFIG_UNAME=`uname`
-
-@@ -442,6 +444,12 @@ while [ $# != 0 ] ; do
- LZ4=*)
- LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'`
- ;;
-+ STEXLIB=*)
-+ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'`
-+ ;;
-+ ZUO=*)
-+ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'`
-+ ;;
- *)
- echo "option '$1' unrecognized or missing an argument; try $0 --help"
- exit 1
-@@ -667,6 +675,8 @@ if [ "$help" = "yes" ]; then
- echo " STRIP=<strip> executable stripper"
- echo " ZLIB=<lib> link to <lib> instead of own zlib"
- echo " LZ4=<lib> link to <lib> instead of own LZ4"
-+ echo " STEXLIB=<stex> build docs with <stex> instead of own stex"
-+ echo " ZUO=<zuo> build with <zuo> instead of own Zuo"
- echo ""
- echo "Available machine types: $machs"
- echo ""
-@@ -869,6 +879,16 @@ if [ "$addflags" = "yes" ] ; then
- fi
- fi
-
-+if [ "${zuoExternal}" = "" ] ; then
-+ ZUO="bin/zuo"
-+ RM_ZUO="rm -f bin/zuo"
-+ ZUO_TARGET="bin/zuo"
-+else
-+ ZUO="${zuoExternal}"
-+ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
-+ ZUO_TARGET="DoNotBuildZuo"
-+fi
-+
- # more compile and link flags for c/Mf-unix and mats/Mf-unix
- mdinclude=
- mdcppflags=
-@@ -1039,7 +1059,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo
- # Some idea, but in the workarea, so it refers to "workarea.zuo" here:
- cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo
-
--# The content of "$w/Makefile" records configuration decisions,
-+# The content of "$w/Mf-config" records configuration decisions,
- # and the Zuo build script takes it from there
- cat > $w/Mf-config << END
- srcdir=$srcdir
-@@ -1075,6 +1095,7 @@ cursesLib=$cursesLib
- ncursesLib=$ncursesLib
- zlibLib=$zlibLib
- LZ4Lib=$LZ4Lib
-+STEXLIB=$STEXLIB
- warningFlags=$warningFlags
- Kernel=$Kernel
- installscriptname=$installscriptname
-@@ -1086,6 +1107,10 @@ preloadBootFiles=$preloadBootFiles
- alwaysUseBootFile=$alwaysUseBootFile
- relativeBootFiles=$relativeBootFiles
-
-+ZUO=$ZUO
-+RM_ZUO=$RM_ZUO
-+ZUO_TARGET=$ZUO_TARGET
-+
- InstallBin=$installbin
- InstallLib=$installlib
- InstallMan=$installman/man1
-diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in
-index cfdd0230a3..4865bf2e2f 100644
---- a/racket/src/ChezScheme/makefiles/Makefile.in
-+++ b/racket/src/ChezScheme/makefiles/Makefile.in
-@@ -3,8 +3,6 @@ workarea=$(w)
-
- include $(workarea)/Mf-config
-
--ZUO=bin/zuo
--
- .PHONY: build
- build: $(ZUO)
- + $(ZUO) $(workarea) MAKE="$(MAKE)"
-@@ -140,9 +138,9 @@ pkg: $(ZUO)
- .PHONY: clean
- clean: $(ZUO)
- + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
-- rm -f bin/zuo
-+ $(RM_ZUO)
-
- # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make`
--$(ZUO): $(srcdir)/../zuo/zuo.c
-+$(ZUO_TARGET): $(srcdir)/../zuo/zuo.c
- + mkdir -p bin
- + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/../zuo/lib"'"' -o $(ZUO) $(srcdir)/../zuo/zuo.c
-
-base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368
---
-2.41.0
-
-
-From e2bc69c5ce7437dd9a1b30ac1b12b3a56872c491 Mon Sep 17 00:00:00 2001
-From: Matthew Flatt <mflatt@racket-lang.org>
-Date: Sun, 10 Mar 2024 09:13:40 -0600
-Subject: [PATCH 2/2] Chez Scheme: adjust `configure ZUO=<command>` support
-
-Continuing from 694fbd47a1, adjust the generated makefile so the
-supplied `<command>` is not a makefile dependency. That way, `ZUO=zuo`
-works if `zuo` is installed and the current build directory is not the
-source directory. (The `zuo` executable is a dependency in a real and
-relevant sense, but not in the sense of dependencies that we normally
-track in makefiles.)
-
-Also adapt the makefile for the case that `ZUO=...` is not supplied
-and the build directory is not the source directory, in which case
-`ZUO_LIB_PATH` needs to be relative to the source directory.
-
-Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is
-still built as a dependency. It's possible that some portable makefile
-magic could overcome that limitation, but it doesn't seem important.
-
-(cherry picked from commit 28157ba88d48fe645563f46f6c00d6626b3428fa)
----
- racket/src/ChezScheme/configure | 3 +
- racket/src/ChezScheme/makefiles/Makefile.in | 70 +++++++++++----------
- 2 files changed, 40 insertions(+), 33 deletions(-)
-
-diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure
-index f88c6f7625..201dbe580f 100755
---- a/racket/src/ChezScheme/configure
-+++ b/racket/src/ChezScheme/configure
-@@ -881,10 +881,12 @@ fi
-
- if [ "${zuoExternal}" = "" ] ; then
- ZUO="bin/zuo"
-+ ZUO_DEP="${ZUO}"
- RM_ZUO="rm -f bin/zuo"
- ZUO_TARGET="bin/zuo"
- else
- ZUO="${zuoExternal}"
-+ ZUO_DEP=""
- RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'"
- ZUO_TARGET="DoNotBuildZuo"
- fi
-@@ -1108,6 +1110,7 @@ alwaysUseBootFile=$alwaysUseBootFile
- relativeBootFiles=$relativeBootFiles
-
- ZUO=$ZUO
-+ZUO_DEP=$ZUO_DEP
- RM_ZUO=$RM_ZUO
- ZUO_TARGET=$ZUO_TARGET
-
-diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in
-index 4865bf2e2f..5ce237178e 100644
---- a/racket/src/ChezScheme/makefiles/Makefile.in
-+++ b/racket/src/ChezScheme/makefiles/Makefile.in
-@@ -4,51 +4,55 @@ workarea=$(w)
- include $(workarea)/Mf-config
-
- .PHONY: build
--build: $(ZUO)
-+build: $(ZUO_DEP)
- + $(ZUO) $(workarea) MAKE="$(MAKE)"
-
- .PHONY: run
--run: $(ZUO)
-+run: $(ZUO_DEP)
- + $(ZUO) $(workarea) run
-
- .PHONY: kernel
--kernel: $(ZUO)
-+kernel: $(ZUO_DEP)
- + $(ZUO) $(workarea) kernel MAKE="$(MAKE)"
-
- .PHONY: install
--install: $(ZUO)
-+install: $(ZUO_DEP)
- $(ZUO) $(workarea) install MAKE="$(MAKE)"
-
- .PHONY: uninstall
--uninstall: $(ZUO)
-+uninstall: $(ZUO_DEP)
- + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)"
-
--.PHONY: test
--test: $(ZUO)
-- + $(ZUO) $(workarea) test MAKE="$(MAKE)"
-+.PHONY: test-one
-+test-one: $(ZUO_DEP)
-+ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)"
-
- .PHONY: test-some-fast
--test-some-fast: $(ZUO)
-+test-some-fast: $(ZUO_DEP)
- + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)"
-
- .PHONY: test-some
--test-some: $(ZUO)
-+test-some: $(ZUO_DEP)
- + $(ZUO) $(workarea) test-some MAKE="$(MAKE)"
-
-+.PHONY: test
-+test: $(ZUO_DEP)
-+ + $(ZUO) $(workarea) test MAKE="$(MAKE)"
-+
- .PHONY: test-more
--test-more: $(ZUO)
-+test-more: $(ZUO_DEP)
- + $(ZUO) $(workarea) test-more MAKE="$(MAKE)"
-
- .PHONY: coverage
--coverage: $(ZUO)
-+coverage: $(ZUO_DEP)
- + $(ZUO) $(workarea) coverage MAKE="$(MAKE)"
-
- .PHONY: bootfiles
--bootfiles: $(ZUO)
-+bootfiles: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)"
-
- .PHONY: reset
--reset: $(ZUO)
-+reset: $(ZUO_DEP)
- + $(ZUO) $(workarea) reset MAKE="$(MAKE)"
-
- # Supply XM=<machine> to build boot files for <machine>
-@@ -57,86 +61,86 @@ boot:
- + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)"
-
- # `<machine>.boot` as alias for `boot XM=<machine>`
--%.boot: $(ZUO)
-+%.boot: $(ZUO_DEP)
- + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)"
-
- .PHONY: auto.boot
--auto.boot: $(ZUO)
-+auto.boot: $(ZUO_DEP)
- + $(ZUO) $(workarea) boot MAKE="$(MAKE)"
-
- SCHEME=scheme
-
- .PHONY: cross.boot
--cross.boot: $(ZUO)
-+cross.boot: $(ZUO_DEP)
- + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)"
-
- .PHONY: re.boot
--re.boot: $(ZUO)
-+re.boot: $(ZUO_DEP)
- + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)"
-
- # Supply XM=<machine> to build boot files for <machine>
- # with o=3 d=0 for the cross compiler, and only after
- # building the kernel for the configured machine
- .PHONY: bootquick
--bootquick: $(ZUO)
-+bootquick: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)"
-
- # `<machine>.bootquick` as alias for `boot XM=<machine>`
--%.bootquick: $(ZUO)
-+%.bootquick: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)"
-
--auto.bootquick: $(ZUO)
-+auto.bootquick: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)"
-
- # Supply XM=<machine>-<tag>.bootpbchunk to repackage boot files for
- # <machine> with pbchunk sources, including additional
- # boot files
- .PHONY: bootpbchunk
--bootpbchunk: $(ZUO)
-+bootpbchunk: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)"
-
- # `<machine>.bootpbchunk` as alias for `pbchunk XM=<machine>`
--%.bootpbchunk: $(ZUO)
-+%.bootpbchunk: $(ZUO_DEP)
- + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)"
-
- .PHONY: docs
--docs: build $(ZUO)
-+docs: build $(ZUO_DEP)
- + $(ZUO) $(workarea) docs MAKE="$(MAKE)"
-
- .PHONY: csug
--csug: build $(ZUO)
-+csug: build $(ZUO_DEP)
- + $(ZUO) $(workarea) csug MAKE="$(MAKE)"
-
- .PHONY: release_notes
--release_notes: build $(ZUO)
-+release_notes: build $(ZUO_DEP)
- + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)"
-
- .PHONY: install-docs
--install-docs: build $(ZUO)
-+install-docs: build $(ZUO_DEP)
- + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)"
-
- .PHONY: install-csug
--install-csug: build $(ZUO)
-+install-csug: build $(ZUO_DEP)
- + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)"
-
- .PHONY: install-release_notes
--install-release_notes: build $(ZUO)
-+install-release_notes: build $(ZUO_DEP)
- + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)"
-
- .PHONY: bintar
--bintar: $(ZUO)
-+bintar: $(ZUO_DEP)
- + $(ZUO) $(workarea) bintar MAKE="$(MAKE)"
-
- .PHONY: rpm
--rpm: $(ZUO)
-+rpm: $(ZUO_DEP)
- + $(ZUO) $(workarea) rpm MAKE="$(MAKE)"
-
- .PHONY: pkg
--pkg: $(ZUO)
-+pkg: $(ZUO_DEP)
- + $(ZUO) $(workarea) pkg MAKE="$(MAKE)"
-
- .PHONY: clean
--clean: $(ZUO)
-+clean: $(ZUO_DEP)
- + $(ZUO) $(workarea) clean MAKE="$(MAKE)"
- $(RM_ZUO)
-
---
-2.41.0
-
diff --git a/gnu/packages/patches/rust-poem-1-fewer-deps.patch b/gnu/packages/patches/rust-poem-1-fewer-deps.patch
new file mode 100644
index 0000000000..b98947b407
--- /dev/null
+++ b/gnu/packages/patches/rust-poem-1-fewer-deps.patch
@@ -0,0 +1,229 @@
+diff --git a/Cargo.toml b/Cargo.toml
+index 79b878c..95ec54c 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -71,26 +71,26 @@ features = ["clock"]
+ optional = true
+ default-features = false
+
+-[dependencies.eyre06]
+-version = "0.6"
+-optional = true
+-package = "eyre"
++#[dependencies.eyre06]
++#version = "0.6"
++#optional = true
++#package = "eyre"
+
+-[dependencies.fluent]
+-version = "0.16.0"
+-optional = true
++#[dependencies.fluent]
++#version = "0.16.0"
++#optional = true
+
+-[dependencies.fluent-langneg]
+-version = "0.13.0"
+-optional = true
++#[dependencies.fluent-langneg]
++#version = "0.13.0"
++#optional = true
+
+-[dependencies.fluent-syntax]
+-version = "0.11.0"
+-optional = true
++#[dependencies.fluent-syntax]
++#version = "0.11.0"
++#optional = true
+
+-[dependencies.futures-util]
+-version = "0.3.17"
+-features = ["sink"]
++#[dependencies.futures-util]
++#version = "0.3.17"
++#features = ["sink"]
+
+ [dependencies.headers]
+ version = "0.3.7"
+@@ -125,9 +125,9 @@ features = [
+ optional = true
+ default-features = false
+
+-[dependencies.intl-memoizer]
+-version = "0.5.1"
+-optional = true
++#[dependencies.intl-memoizer]
++#version = "0.5.1"
++#optional = true
+
+ [dependencies.libcookie]
+ version = "0.17"
+@@ -146,16 +146,16 @@ version = "0.4.1"
+ optional = true
+ package = "csrf"
+
+-[dependencies.libopentelemetry]
+-version = "0.21.0"
+-features = ["metrics"]
+-optional = true
+-package = "opentelemetry"
++#[dependencies.libopentelemetry]
++#version = "0.21.0"
++#features = ["metrics"]
++#optional = true
++#package = "opentelemetry"
+
+-[dependencies.libprometheus]
+-version = "0.13.0"
+-optional = true
+-package = "prometheus"
++#[dependencies.libprometheus]
++#version = "0.13.0"
++#optional = true
++#package = "prometheus"
+
+ [dependencies.libtempfile]
+ version = "3.2.0"
+@@ -178,17 +178,17 @@ optional = true
+ version = "0.10.56"
+ optional = true
+
+-[dependencies.opentelemetry-http]
+-version = "0.10.0"
+-optional = true
++#[dependencies.opentelemetry-http]
++#version = "0.10.0"
++#optional = true
+
+-[dependencies.opentelemetry-prometheus]
+-version = "0.14.0"
+-optional = true
++#[dependencies.opentelemetry-prometheus]
++#version = "0.14.0"
++#optional = true
+
+-[dependencies.opentelemetry-semantic-conventions]
+-version = "0.13.0"
+-optional = true
++#[dependencies.opentelemetry-semantic-conventions]
++#version = "0.13.0"
++#optional = true
+
+ [dependencies.parking_lot]
+ version = "0.12.0"
+@@ -219,14 +219,14 @@ optional = true
+ version = "0.11.1"
+ optional = true
+
+-[dependencies.redis]
+-version = "0.23.0"
+-features = [
+- "aio",
+- "tokio-comp",
+- "connection-manager",
+-]
+-optional = true
++#[dependencies.redis]
++#version = "0.23.0"
++#features = [
++# "aio",
++# "tokio-comp",
++# "connection-manager",
++#]
++#optional = true
+
+ [dependencies.regex]
+ version = "1.5.5"
+@@ -263,9 +263,9 @@ optional = true
+ [dependencies.smallvec]
+ version = "1.6.1"
+
+-[dependencies.sse-codec]
+-version = "0.3.2"
+-optional = true
++#[dependencies.sse-codec]
++#version = "0.3.2"
++#optional = true
+
+ [dependencies.thiserror]
+ version = "1.0.30"
+@@ -323,10 +323,10 @@ default-features = false
+ [dependencies.tracing]
+ version = "0.1.36"
+
+-[dependencies.unic-langid]
+-version = "0.9.0"
+-features = ["macros"]
+-optional = true
++#[dependencies.unic-langid]
++#version = "0.9.0"
++#features = ["macros"]
++#optional = true
+
+ [dependencies.wildmatch]
+ version = "2"
+@@ -383,13 +383,13 @@ embed = [
+ "hex",
+ "mime_guess",
+ ]
+-i18n = [
+- "fluent",
+- "fluent-langneg",
+- "fluent-syntax",
+- "unic-langid",
+- "intl-memoizer",
+-]
++#i18n = [
++# "fluent",
++# "fluent-langneg",
++# "fluent-syntax",
++# "unic-langid",
++# "intl-memoizer",
++#]
+ multipart = ["multer"]
+ native-tls = [
+ "server",
+@@ -400,20 +400,20 @@ openssl-tls = [
+ "tokio-openssl",
+ "openssl",
+ ]
+-opentelemetry = [
+- "libopentelemetry",
+- "opentelemetry-http",
+- "opentelemetry-semantic-conventions",
+-]
+-prometheus = [
+- "libopentelemetry",
+- "opentelemetry-prometheus",
+- "libprometheus",
+-]
+-redis-session = [
+- "session",
+- "redis",
+-]
++#opentelemetry = [
++# "libopentelemetry",
++# "opentelemetry-http",
++# "opentelemetry-semantic-conventions",
++#]
++#prometheus = [
++# "libopentelemetry",
++# "opentelemetry-prometheus",
++# "libprometheus",
++#]
++#redis-session = [
++# "session",
++# "redis",
++#]
+ rustls = [
+ "server",
+ "tokio-rustls",
+@@ -445,7 +445,7 @@ tempfile = [
+ ]
+ test = [
+ "sse",
+- "sse-codec",
++# "sse-codec",
+ "tokio-util/compat",
+ ]
+ tower-compat = [
diff --git a/gnu/packages/patches/virt-manager-fix-gtk-cursor-theme-backtace.patch b/gnu/packages/patches/virt-manager-fix-gtk-cursor-theme-backtace.patch
new file mode 100644
index 0000000000..3f7a5e6873
--- /dev/null
+++ b/gnu/packages/patches/virt-manager-fix-gtk-cursor-theme-backtace.patch
@@ -0,0 +1,40 @@
+This patch fixes an issue in virt-manager 4.1.0 where it errors and returns a
+stack trace. Namely, Gdk.Cursor.new_from_name yields a "constructor returned
+NULL" error, which causes a "'NoneType' object has no attribute 'conn'" error
+later.
+
+See the upstream bug report for more information:
+
+https://github.com/virt-manager/virt-manager/issues/479
+
+Patch copied from upstream source repository:
+
+https://github.com/virt-manager/virt-manager/commit/cc4a39ea94f42bc92765eb3bb56e2b7f9198be67
+
+From cc4a39ea94f42bc92765eb3bb56e2b7f9198be67 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso@redhat.com>
+Date: Thu, 19 Jan 2023 11:13:56 -0500
+Subject: [PATCH] asyncjob: Fix backtrace when no cursor theme installed
+
+Fixes: https://github.com/virt-manager/virt-manager/issues/479
+
+Signed-off-by: Cole Robinson <crobinso@redhat.com>
+---
+ virtManager/asyncjob.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/virtManager/asyncjob.py b/virtManager/asyncjob.py
+index 32d9c0a16..46692acea 100644
+--- a/virtManager/asyncjob.py
++++ b/virtManager/asyncjob.py
+@@ -265,9 +265,7 @@ def run(self):
+ self.topwin.present()
+
+ if not self.cancel_cb and self.show_progress:
+- gdk_window = self.topwin.get_window()
+- gdk_window.set_cursor(
+- Gdk.Cursor.new_from_name(gdk_window.get_display(), "progress"))
++ self._set_cursor("progress")
+ self._bg_thread.start()
+
+
diff --git a/gnu/packages/patches/zathura-use-struct-initializers.patch b/gnu/packages/patches/zathura-use-struct-initializers.patch
deleted file mode 100644
index 9a808a4bc3..0000000000
--- a/gnu/packages/patches/zathura-use-struct-initializers.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From c05328185292d6f6a4459024cdb563c63bfad230 Mon Sep 17 00:00:00 2001
-Message-ID: <c05328185292d6f6a4459024cdb563c63bfad230.1710315308.git.vivien@planete-kraus.eu>
-From: Sebastian Ramacher <sebastian@ramacher.at>
-Date: Mon, 29 Jan 2024 21:05:22 +0100
-Subject: [PATCH] Use struct initializers
-
----
- zathura/page-widget.c | 4 ++--
- zathura/shortcuts.c | 12 +++++-------
- 2 files changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/zathura/page-widget.c b/zathura/page-widget.c
-index 216381e..ac85dcf 100644
---- a/zathura/page-widget.c
-+++ b/zathura/page-widget.c
-@@ -1426,8 +1426,8 @@ cb_menu_image_save(GtkMenuItem* item, ZathuraPage* page)
- }
-
- /* set command */
-- char* export_command = g_strdup_printf(":export image-p%d-%d ", page_id, image_id);
-- girara_argument_t argument = { 0, export_command };
-+ char* export_command = g_strdup_printf(":export image-p%d-%d ", page_id, image_id);
-+ girara_argument_t argument = {.n = 0, .data = export_command};
- sc_focus_inputbar(priv->zathura->ui.session, &argument, NULL, 0);
- g_free(export_command);
-
-diff --git a/zathura/shortcuts.c b/zathura/shortcuts.c
-index 8836cd2..35b5990 100644
---- a/zathura/shortcuts.c
-+++ b/zathura/shortcuts.c
-@@ -513,7 +513,7 @@ sc_rotate(girara_session_t* session, girara_argument_t* argument,
- zathura_document_set_rotation(zathura->document, (rotation + angle * t) % 360);
-
- /* update scale */
-- girara_argument_t new_argument = { zathura_document_get_adjust_mode(zathura->document), NULL };
-+ girara_argument_t new_argument = {.n = zathura_document_get_adjust_mode(zathura->document), .data = NULL};
- sc_adjust_window(zathura->ui.session, &new_argument, NULL, 0);
-
- /* render all pages again */
-@@ -1372,7 +1372,7 @@ sc_toggle_presentation(girara_session_t* session, girara_argument_t*
- zathura->shortcut.toggle_presentation_mode.zoom = zathura_document_get_zoom(zathura->document);
-
- /* adjust window */
-- girara_argument_t argument = { ZATHURA_ADJUST_BESTFIT, NULL };
-+ girara_argument_t argument = {.n = ZATHURA_ADJUST_BESTFIT, .data = NULL};
- sc_adjust_window(session, &argument, NULL, 0);
-
- /* hide status and inputbar */
-@@ -1390,13 +1390,11 @@ sc_toggle_presentation(girara_session_t* session, girara_argument_t*
- return false;
- }
-
--bool
--sc_quit(girara_session_t* session, girara_argument_t* UNUSED(argument),
-- girara_event_t* UNUSED(event), unsigned int UNUSED(t))
--{
-+bool sc_quit(girara_session_t* session, girara_argument_t* UNUSED(argument), girara_event_t* UNUSED(event),
-+ unsigned int UNUSED(t)) {
- g_return_val_if_fail(session != NULL, false);
-
-- girara_argument_t arg = { GIRARA_HIDE, NULL };
-+ girara_argument_t arg = {.n = GIRARA_HIDE, .data = NULL};
- girara_isc_completion(session, &arg, NULL, 0);
-
- cb_destroy(NULL, NULL);
---
-2.41.0
-