aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/accountsservice-extensions.patch5
-rw-r--r--gnu/packages/patches/appstream-force-reload-stemmer.patch89
-rw-r--r--gnu/packages/patches/calls-disable-application-test.patch72
-rw-r--r--gnu/packages/patches/calls-disable-sip-test.patch44
-rw-r--r--gnu/packages/patches/cogl-fix-double-free.patch32
-rw-r--r--gnu/packages/patches/eudev-rules-directory.patch9
-rw-r--r--gnu/packages/patches/feedbackd-use-system-gmobile.patch42
-rw-r--r--gnu/packages/patches/gdm-elogind-support.patch93
-rw-r--r--gnu/packages/patches/gegl-compatibility-old-librsvg.patch80
-rw-r--r--gnu/packages/patches/gitg-fix-positional-argument.patch36
-rw-r--r--gnu/packages/patches/glib-networking-gnutls-binding.patch21
-rw-r--r--gnu/packages/patches/glib-skip-failing-test.patch3
-rw-r--r--gnu/packages/patches/gmobile-make-it-installable.patch89
-rw-r--r--gnu/packages/patches/gnome-control-center-firmware-security.patch33
-rw-r--r--gnu/packages/patches/gtk2-harden-list-store.patch42
-rw-r--r--gnu/packages/patches/libcall-ui-make-it-installable.patch81
-rw-r--r--gnu/packages/patches/mm-common-reproducible-tarball.patch40
-rw-r--r--gnu/packages/patches/mutter-fix-inverted-test.patch290
-rw-r--r--gnu/packages/patches/nautilus-extension-search-path.patch64
-rw-r--r--gnu/packages/patches/shared-mime-info-xdgmime-path.patch22
20 files changed, 713 insertions, 474 deletions
diff --git a/gnu/packages/patches/accountsservice-extensions.patch b/gnu/packages/patches/accountsservice-extensions.patch
index 2cfab580e3..8027a28a44 100644
--- a/gnu/packages/patches/accountsservice-extensions.patch
+++ b/gnu/packages/patches/accountsservice-extensions.patch
@@ -5,7 +5,7 @@ diff --git a/src/extensions.c b/src/extensions.c
index 038dcb2..830465d 100644
--- a/src/extensions.c
+++ b/src/extensions.c
-@@ -121,16 +121,7 @@ daemon_read_extension_directory (GHashTable *ifaces,
+@@ -122,15 +122,7 @@ daemon_read_extension_directory (GHashTable *ifaces,
continue;
}
@@ -13,8 +13,7 @@ index 038dcb2..830465d 100644
- const gchar * const prefix = "../../dbus-1/interfaces/";
- if (g_str_has_prefix (symlink, prefix) && g_str_equal (symlink + strlen (prefix), name)) {
- daemon_read_extension_file (ifaces, filename);
-- }
-- else {
+- } else {
- g_warning ("Found accounts service vendor extension symlink %s, but it must be exactly "
- "equal to '../../dbus-1/interfaces/%s' for forwards-compatibility reasons.",
- filename, name);
diff --git a/gnu/packages/patches/appstream-force-reload-stemmer.patch b/gnu/packages/patches/appstream-force-reload-stemmer.patch
new file mode 100644
index 0000000000..a2cf84c8b1
--- /dev/null
+++ b/gnu/packages/patches/appstream-force-reload-stemmer.patch
@@ -0,0 +1,89 @@
+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/calls-disable-application-test.patch b/gnu/packages/patches/calls-disable-application-test.patch
new file mode 100644
index 0000000000..f06f747487
--- /dev/null
+++ b/gnu/packages/patches/calls-disable-application-test.patch
@@ -0,0 +1,72 @@
+From e0fdae20840ffe3aeca7190eb8b1bcae70f0c93b Mon Sep 17 00:00:00 2001
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Sun, 29 Oct 2023 21:03:27 +0100
+Subject: [PATCH] Disable the application test.
+
+The application test does not work in a Guix container, because an actual
+sound card is required to run this integration test.
+
+* tests/meson.build: Disable test-application.
+---
+ tests/meson.build | 38 +++++++++++++++++++-------------------
+ 1 file changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index c9bdc3d..65f9b93 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -165,24 +165,24 @@ test('dbus', t, env: test_env)
+
+ dbus_run_session = find_program('dbus-run-session')
+
+-if dbus_run_session.found ()
+- test_sources = [ 'test-application.c' ]
+- t = executable('application', test_sources, calls_resources,
+- c_args : test_cflags,
+- link_args: test_link_args,
+- pie: true,
+- link_with : [calls_vala, libcalls],
+- dependencies: calls_deps,
+- include_directories : [
+- calls_includes,
+- ]
+- )
+- test('application',
+- dbus_run_session,
+- args: t.full_path(),
+- env: test_env,
+- timeout : 300
+- )
+-endif
++# if dbus_run_session.found ()
++# test_sources = [ 'test-application.c' ]
++# t = executable('application', test_sources, calls_resources,
++# c_args : test_cflags,
++# link_args: test_link_args,
++# pie: true,
++# link_with : [calls_vala, libcalls],
++# dependencies: calls_deps,
++# include_directories : [
++# calls_includes,
++# ]
++# )
++# test('application',
++# dbus_run_session,
++# args: t.full_path(),
++# env: test_env,
++# timeout : 300
++# )
++# endif
+
+ endif
+
+base-commit: 936d36287324163b958c6ea0c4297c7a607ee18c
+prerequisite-patch-id: 20f8a81da35ce1797635eb310e1f85ac5ff814f6
+prerequisite-patch-id: 96768617d0a8ee8c66faa00220a1612e0f527292
+prerequisite-patch-id: 444c1ee57c24ba4b8165497b0a5885844110c59b
+prerequisite-patch-id: 9415b848ca9ee277bccbad7c3fff23230d5016f1
+prerequisite-patch-id: 3ca2a45be430041875b21f6c8dfac0bc17916abf
+prerequisite-patch-id: e8302846f4650dba9e0072c18be3459ce903fe2e
+--
+2.41.0
+
diff --git a/gnu/packages/patches/calls-disable-sip-test.patch b/gnu/packages/patches/calls-disable-sip-test.patch
new file mode 100644
index 0000000000..75e9294fc0
--- /dev/null
+++ b/gnu/packages/patches/calls-disable-sip-test.patch
@@ -0,0 +1,44 @@
+From 33b75bfcda3437b12b6155addeeddcea697a4270 Mon Sep 17 00:00:00 2001
+Message-ID: <33b75bfcda3437b12b6155addeeddcea697a4270.1698608762.git.vivien@planete-kraus.eu>
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Sun, 29 Oct 2023 20:45:24 +0100
+Subject: [PATCH] Disable the direct call SIP test.
+
+* plugins/provider/tests/test-sip.c (main): Disable it.
+---
+
+This test passes in a guix shell --container --network but not in
+guix shell --container. The most likely cause is it requires access to the
+network.
+
+ plugins/provider/tests/test-sip.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/provider/tests/test-sip.c b/plugins/provider/tests/test-sip.c
+index 185d372..4e83d40 100644
+--- a/plugins/provider/tests/test-sip.c
++++ b/plugins/provider/tests/test-sip.c
+@@ -442,8 +442,11 @@ main (int argc,
+ g_test_add ("/Calls/SIP/origin_call_lists", SipFixture, NULL,
+ setup_sip_origins, test_sip_origin_call_lists, tear_down_sip_origins);
+
+- g_test_add ("/Calls/SIP/calls_direct_call", SipFixture, NULL,
+- setup_sip_origins, test_sip_call_direct_calls, tear_down_sip_origins);
++ /* The direct call fails in the Guix build environment, possibly
++ * because the network is more restricted. */
++
++ /* g_test_add ("/Calls/SIP/calls_direct_call", SipFixture, NULL,
++ setup_sip_origins, test_sip_call_direct_calls, tear_down_sip_origins); */
+
+ ret = g_test_run ();
+
+
+base-commit: 936d36287324163b958c6ea0c4297c7a607ee18c
+prerequisite-patch-id: 20f8a81da35ce1797635eb310e1f85ac5ff814f6
+prerequisite-patch-id: 96768617d0a8ee8c66faa00220a1612e0f527292
+prerequisite-patch-id: 444c1ee57c24ba4b8165497b0a5885844110c59b
+prerequisite-patch-id: 9415b848ca9ee277bccbad7c3fff23230d5016f1
+prerequisite-patch-id: 3ca2a45be430041875b21f6c8dfac0bc17916abf
+--
+2.41.0
+
diff --git a/gnu/packages/patches/cogl-fix-double-free.patch b/gnu/packages/patches/cogl-fix-double-free.patch
new file mode 100644
index 0000000000..e7a994b33a
--- /dev/null
+++ b/gnu/packages/patches/cogl-fix-double-free.patch
@@ -0,0 +1,32 @@
+From 15d0f7d96cf53263196e26f2eb48ededdff0efeb Mon Sep 17 00:00:00 2001
+Message-ID: <15d0f7d96cf53263196e26f2eb48ededdff0efeb.1694148833.git.vivien@planete-kraus.eu>
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Thu, 7 Sep 2023 22:16:48 +0200
+Subject: [PATCH] Prevent double free on context objects
+
+The display is unrefed in the context destructor, but not refed in the
+constructor.
+
+This targets an archived (read-only) repository.
+---
+ cogl/cogl-context.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cogl/cogl-context.c b/cogl/cogl-context.c
+index a7eed29a..7cdc9fe7 100644
+--- a/cogl/cogl-context.c
++++ b/cogl/cogl-context.c
+@@ -218,7 +218,7 @@ cogl_context_new (CoglDisplay *display,
+ return NULL;
+ }
+
+- context->display = display;
++ context->display = cogl_object_ref (display);
+
+ /* This is duplicated data, but it's much more convenient to have
+ the driver attached to the context and the value is accessed a
+
+base-commit: 61d966c7442d521e38572b7f93ac7b8973a9c65e
+--
+2.41.0
+
diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch
index 54fc01c6d5..c4b1cfae39 100644
--- a/gnu/packages/patches/eudev-rules-directory.patch
+++ b/gnu/packages/patches/eudev-rules-directory.patch
@@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed
the search path to be customized, but eudev no longer has this, hence
this hack.
---- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800
-+++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800
-@@ -47,15 +47,11 @@
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -48,16 +48,11 @@ struct uid_gid {
};
};
@@ -20,11 +20,12 @@ this hack.
- "/lib/udev/rules.d",
- "/usr/lib/udev/rules.d",
-#endif
+- "/usr/local/lib/udev/rules.d",
+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */
NULL};
struct udev_rules {
-@@ -1704,6 +1700,9 @@
+@@ -1718,6 +1713,9 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) {
udev_rules_check_timestamp(rules);
diff --git a/gnu/packages/patches/feedbackd-use-system-gmobile.patch b/gnu/packages/patches/feedbackd-use-system-gmobile.patch
new file mode 100644
index 0000000000..f0a0449472
--- /dev/null
+++ b/gnu/packages/patches/feedbackd-use-system-gmobile.patch
@@ -0,0 +1,42 @@
+From af9e72124b12ca481fd3592f9c8ea2649f7e4c80 Mon Sep 17 00:00:00 2001
+Message-ID: <af9e72124b12ca481fd3592f9c8ea2649f7e4c80.1698775513.git.vivien@planete-kraus.eu>
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Sun, 29 Oct 2023 19:12:27 +0100
+Subject: [PATCH] Look for a system-installed gmobile first.
+
+Meson lets projects use a dependency with fallback to a submodule, in
+case the dependency is not installed.
+
+* meson.build (gmobile_subp): Convert to a dependency with subproject
+fallback.
+---
+I am waiting for Purism to approve my account before I can report this.
+
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 8725e76..e5504be 100644
+--- a/meson.build
++++ b/meson.build
+@@ -14,13 +14,13 @@ gio_unix = dependency('gio-unix-2.0', version: '>=2.50.0')
+ glib = dependency('glib-2.0', version: '>=2.50.0')
+ if get_option('daemon')
+ gobject = dependency('gobject-2.0', version: '>=2.50.0')
+- gmobile_subp = subproject('gmobile',
++ gmobile = dependency('gmobile',
++ fallback: ['gmobile', 'gmobile_dep'],
+ default_options: [
+ 'examples=false',
+ 'gtk_doc=false',
+ 'tests=false',
+ ])
+- gmobile = gmobile_subp.get_variable('gmobile_dep')
+ gsound = dependency('gsound')
+ gudev = dependency('gudev-1.0', version: '>=232')
+ json_glib = dependency('json-glib-1.0')
+
+base-commit: 853bd6d7ea8455efea063ba7c4f29ce8c203285f
+--
+2.41.0
+
diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch
index 5c8e3bd610..b27e000585 100644
--- a/gnu/packages/patches/gdm-elogind-support.patch
+++ b/gnu/packages/patches/gdm-elogind-support.patch
@@ -18,10 +18,10 @@ system and user units.
meson_options.txt | 5 +-
6 files changed, 66 insertions(+), 42 deletions(-)
-diff --git a/common/meson.build b/common/meson.build
-index 074dd92e..bca58f7c 100644
---- a/common/meson.build
-+++ b/common/meson.build
+Index: gdm-44.1/common/meson.build
+===================================================================
+--- gdm-44.1.orig/common/meson.build
++++ gdm-44.1/common/meson.build
@@ -11,7 +11,7 @@ libgdmcommon_src = files(
)
@@ -31,10 +31,10 @@ index 074dd92e..bca58f7c 100644
gobject_dep,
gio_dep,
gio_unix_dep,
-diff --git a/data/meson.build b/data/meson.build
-index 2dec4c23..c3452e1c 100644
---- a/data/meson.build
-+++ b/data/meson.build
+Index: gdm-44.1/data/meson.build
+===================================================================
+--- gdm-44.1.orig/data/meson.build
++++ gdm-44.1/data/meson.build
@@ -164,41 +164,53 @@ else
service_config.set('PLYMOUTH_QUIT_SERVICE', '')
endif
@@ -114,10 +114,10 @@ index 2dec4c23..c3452e1c 100644
# XSession
if get_option('gdm-xsession')
-diff --git a/libgdm/meson.build b/libgdm/meson.build
-index 3f8cafbb..83e95151 100644
---- a/libgdm/meson.build
-+++ b/libgdm/meson.build
+Index: gdm-44.1/libgdm/meson.build
+===================================================================
+--- gdm-44.1.orig/libgdm/meson.build
++++ gdm-44.1/libgdm/meson.build
@@ -56,7 +56,7 @@ libgdm_deps = [
glib_dep,
gio_dep,
@@ -127,55 +127,46 @@ index 3f8cafbb..83e95151 100644
libgdmcommon_dep,
]
-diff --git a/meson.build b/meson.build
-index 845f673e..d0ca41ef 100644
---- a/meson.build
-+++ b/meson.build
-@@ -96,21 +96,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
- if xdmcp_dep.found() and get_option('tcp-wrappers')
+Index: gdm-44.1/meson.build
+===================================================================
+--- gdm-44.1.orig/meson.build
++++ gdm-44.1/meson.build
+@@ -100,16 +100,24 @@ if xdmcp_dep.found() and get_option('tcp
libwrap_dep = cc.find_library('wrap')
endif
--# systemd
+ # systemd
-systemd_dep = dependency('systemd')
-libsystemd_dep = dependency('libsystemd')
--if meson.version().version_compare('>= 0.53')
-- systemd_multiseat_x = find_program('systemd-multi-seat-x',
-- required: false,
-- dirs: [
-- systemd_dep.get_pkgconfig_variable('systemdutildir'),
-- '/lib/systemd',
-- '/usr/lib/systemd',
-- ])
-+
+-systemd_multiseat_x = find_program('systemd-multi-seat-x',
+- required: false,
+- dirs: [
+- systemd_dep.get_pkgconfig_variable('systemdutildir'),
+- '/lib/systemd',
+- '/usr/lib/systemd',
+- ])
+-systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
+logind_provider = get_option('logind-provider')
+systemd_dep = dependency('systemd', required: false)
+if logind_provider == 'systemd'
+ libsystemd_dep = dependency('libsystemd')
+ logind_dep = libsystemd_dep
-+ if meson.version().version_compare('>= 0.53')
-+ systemd_multiseat_x = find_program('systemd-multi-seat-x',
-+ required: false,
-+ dirs: [
-+ systemd_dep.get_pkgconfig_variable('systemdutildir'),
-+ '/lib/systemd',
-+ '/usr/lib/systemd',
-+ ])
-+ else
-+ systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
-+ endif
++ systemd_multiseat_x = find_program('systemd-multi-seat-x',
++ required: false,
++ dirs: [
++ systemd_dep.get_pkgconfig_variable('systemdutildir'),
++ '/lib/systemd',
++ '/usr/lib/systemd',
++ ])
+ systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
- else
-- systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
++else
+ elogind_dep = dependency('libelogind')
+ logind_dep = elogind_dep
+ systemd_x_server = 'disabled'
- endif
--systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
-+
++endif
# Plymouth
plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth'))
# Check for Solaris auditing API (ADT)
-@@ -319,6 +328,7 @@ summary({
+@@ -319,6 +327,7 @@ summary({
'PAM Syslog': have_pam_syslog,
'Supports PAM Extensions': pam_extensions_supported,
'SeLinux': libselinux_dep.found(),
@@ -183,11 +174,11 @@ index 845f673e..d0ca41ef 100644
'Use GDM Xsession': get_option('gdm-xsession'),
'Use UserDisplayServer': get_option('user-display-server'),
'Use SystemdJournal': get_option('systemd-journal'),
-diff --git a/meson_options.txt b/meson_options.txt
-index 14e0b908..5135d7d6 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', value: 1, description: 'Initial virtual te
+Index: gdm-44.1/meson_options.txt
+===================================================================
+--- gdm-44.1.orig/meson_options.txt
++++ gdm-44.1/meson_options.txt
+@@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', va
option('ipv6', type: 'boolean', value: false, description: 'Enables compilation of IPv6 code.')
option('lang-file', type: 'string', value: '', description: 'File containing default language settings.')
option('libaudit', type: 'feature', value: 'auto', description: 'Add Linux audit support.')
@@ -195,7 +186,7 @@ index 14e0b908..5135d7d6 100644
option('log-dir', type: 'string', value: '/var/log/gdm', description: 'Log directory.')
option('pam-mod-dir', type: 'string', value: '', description: 'Directory to install PAM modules in.')
option('pam-prefix', type: 'string', value: '', description: 'Specify where PAM files go.')
-@@ -27,8 +28,8 @@ option('solaris', type: 'boolean', value: false, description: 'Build for Solaris
+@@ -27,8 +28,8 @@ option('solaris', type: 'boolean', value
option('split-authentication', type: 'boolean', value: true, description: 'Enable multiple simultaneous PAM conversations during login.')
option('sysconfsubdir', type: 'string', value: 'gdm', description: 'Directory name used under sysconfdir.')
option('systemd-journal', type: 'boolean', value: true, description: 'Use journald support.')
diff --git a/gnu/packages/patches/gegl-compatibility-old-librsvg.patch b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch
new file mode 100644
index 0000000000..3e5733f9fd
--- /dev/null
+++ b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch
@@ -0,0 +1,80 @@
+From a99a93e5c9013bd4101f5058cdee7d0cf30234fe Mon Sep 17 00:00:00 2001
+Message-ID: <a99a93e5c9013bd4101f5058cdee7d0cf30234fe.1694554961.git.vivien@planete-kraus.eu>
+From: Jehan <jehan@girinstud.io>
+Date: Wed, 5 Jul 2023 21:18:19 +0200
+Subject: [PATCH] Issue #333: continuing to support librsvg 2.40.x (C
+ versions).
+
+Commit 9beeefcbe uses too new functions of librsvg. We could just bump
+the minimum required version but there are issues with Rust not being
+available on every platform yet. So instead, let's add some conditional
+code paths, so that it still builds with librsvg 2.40.x (which was the
+last versions fully in C) while we use newer code and no warnings when
+using newer versions.
+---
+ operations/external/svg-load.c | 25 ++++++++++++++++++++-----
+ 1 file changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/operations/external/svg-load.c b/operations/external/svg-load.c
+index 3312a0c0a..15c0b30b7 100644
+--- a/operations/external/svg-load.c
++++ b/operations/external/svg-load.c
+@@ -76,16 +76,25 @@ query_svg (GeglOperation *operation)
+ {
+ GeglProperties *o = GEGL_PROPERTIES (operation);
+ Priv *p = (Priv*) o->user_data;
++#if LIBRSVG_CHECK_VERSION(2, 52, 0)
+ gdouble out_width, out_height;
++#else
++ RsvgDimensionData dimensions;
++#endif
+
+ g_return_val_if_fail (p->handle != NULL, FALSE);
+
+- rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height);
+-
+ p->format = babl_format ("R'G'B'A u8");
+
++#if LIBRSVG_CHECK_VERSION(2, 52, 0)
++ rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height);
+ p->height = out_height;
+- p->width = out_width;
++ p->width = out_width;
++#else
++ rsvg_handle_get_dimensions (p->handle, &dimensions);
++ p->height = dimensions.height;
++ p->width = dimensions.width;
++#endif
+
+ return TRUE;
+ }
+@@ -98,10 +107,12 @@ load_svg (GeglOperation *operation,
+ {
+ GeglProperties *o = GEGL_PROPERTIES (operation);
+ Priv *p = (Priv*) o->user_data;
+- RsvgRectangle svg_rect = {0.0, 0.0, width, height};
+ cairo_surface_t *surface;
+ cairo_t *cr;
+- GError *error = NULL;
++#if LIBRSVG_CHECK_VERSION(2, 52, 0)
++ GError *error = NULL;
++ RsvgRectangle svg_rect = {0.0, 0.0, width, height};
++#endif
+
+ g_return_val_if_fail (p->handle != NULL, -1);
+
+@@ -115,7 +126,11 @@ load_svg (GeglOperation *operation,
+ (double)height / (double)p->height);
+ }
+
++#if LIBRSVG_CHECK_VERSION(2, 52, 0)
+ rsvg_handle_render_document (p->handle, cr, &svg_rect, &error);
++#else
++ rsvg_handle_render_cairo (p->handle, cr);
++#endif
+
+ cairo_surface_flush (surface);
+
+--
+2.41.0
+
diff --git a/gnu/packages/patches/gitg-fix-positional-argument.patch b/gnu/packages/patches/gitg-fix-positional-argument.patch
deleted file mode 100644
index 1d3513921c..0000000000
--- a/gnu/packages/patches/gitg-fix-positional-argument.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1978973b12848741b08695ec2020bac98584d636 Mon Sep 17 00:00:00 2001
-From: Jan Beich <jbeich@FreeBSD.org>
-Date: Mon, 24 Jan 2022 12:17:52 +0000
-Subject: [PATCH] meson: drop unused argument for i18n.merge_file()
-
-Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.
-
-data/meson.build:8:0: ERROR: Function does not take positional arguments.
-data/meson.build:44:0: ERROR: Function does not take positional arguments.
----
- data/meson.build | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index a8b90fd1..2413531d 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -6,7 +6,6 @@ desktop_config = configuration_data()
- desktop_config.set('icon', application_id)
- desktop_config.set('binary', gitg_name)
- i18n.merge_file(
-- desktop,
- type: 'desktop',
- input: configure_file(
- input: desktop + '.in.in',
-@@ -42,7 +41,6 @@ appdata_config = configuration_data()
- appdata_config.set('app-id', application_id)
- appdata_config.set('gettext', gitg_name)
- i18n.merge_file(
-- appdata,
- type: 'xml',
- input: configure_file(
- input: appdata + '.in.in',
---
-GitLab
-
diff --git a/gnu/packages/patches/glib-networking-gnutls-binding.patch b/gnu/packages/patches/glib-networking-gnutls-binding.patch
deleted file mode 100644
index 91d0743056..0000000000
--- a/gnu/packages/patches/glib-networking-gnutls-binding.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Skip failing test in 'test_connection_binding_match_tls_unique'
-in 'tls/tests/connection.c' when building glib-networking against
-GnuTLS 3.7.2. The failure stems from the fact that
-'gnutls_session_channel_binding' returns GNUTLS_E_INVALID_REQUEST
-is known upstream:
-
- https://gitlab.gnome.org/GNOME/glib-networking/-/issues/164
-
-diff --git a/tls/tests/connection.c b/tls/tests/connection.c
-index 036df04..347c7a4 100644
---- a/tls/tests/connection.c
-+++ b/tls/tests/connection.c
-@@ -3037,8 +3037,6 @@ main (int argc,
- setup_connection, test_connection_missing_server_identity, teardown_connection);
- g_test_add ("/tls/" BACKEND "/connection/peer-certificate-notify", TestConnection, NULL,
- setup_connection, test_peer_certificate_notify, teardown_connection);
-- g_test_add ("/tls/" BACKEND "/connection/binding/match-tls-unique", TestConnection, NULL,
-- setup_connection, test_connection_binding_match_tls_unique, teardown_connection);
- g_test_add ("/tls/" BACKEND "/connection/binding/match-tls-server-end-point", TestConnection, NULL,
- setup_connection, test_connection_binding_match_tls_server_end_point, teardown_connection);
- g_test_add ("/tls/" BACKEND "/connection/binding/match-tls-exporter", TestConnection, NULL,
diff --git a/gnu/packages/patches/glib-skip-failing-test.patch b/gnu/packages/patches/glib-skip-failing-test.patch
index c7706aaa74..3fde5cb1e2 100644
--- a/gnu/packages/patches/glib-skip-failing-test.patch
+++ b/gnu/packages/patches/glib-skip-failing-test.patch
@@ -10,12 +10,13 @@ diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index a926ae0..4fdbe7a 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -317,10 +317,6 @@ if host_machine.system() != 'windows'
+@@ -317,11 +317,6 @@ if host_machine.system() != 'windows'
'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info],
'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'],
},
- 'gdbus-threading' : {
- 'extra_sources' : extra_sources,
+- 'extra_programs': extra_programs,
- 'suite' : ['slow'],
- },
'gmenumodel' : {
diff --git a/gnu/packages/patches/gmobile-make-it-installable.patch b/gnu/packages/patches/gmobile-make-it-installable.patch
new file mode 100644
index 0000000000..9db6554877
--- /dev/null
+++ b/gnu/packages/patches/gmobile-make-it-installable.patch
@@ -0,0 +1,89 @@
+From c1ea43a45f4588f21752b0ad679c43350a9c8905 Mon Sep 17 00:00:00 2001
+Message-ID: <c1ea43a45f4588f21752b0ad679c43350a9c8905.1698604357.git.vivien@planete-kraus.eu>
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Sun, 29 Oct 2023 19:00:44 +0100
+Subject: [PATCH] Install gmobile as a shared library.
+
+Tracked at https://gitlab.gnome.org/guidog/gmobile/-/issues/1
+
+* src/meson.build: Install the header files. Import pkgconfig.
+Generate a pkg-config definition.
+(gm_lib): use "library", not "static_library". Install it.
+(gmobile_gir): Install it.
+* meson.build: Install gm-config.h.
+---
+ meson.build | 1 +
+ src/meson.build | 22 +++++++++++++++++++---
+ 2 files changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index e9f6c62..51ebeac 100644
+--- a/meson.build
++++ b/meson.build
+@@ -83,6 +83,7 @@ root_inc = include_directories('.')
+ configure_file(
+ output: 'gm-config.h',
+ configuration: config_h,
++ install_dir: get_option('includedir')
+ )
+
+ subdir('data')
+diff --git a/src/meson.build b/src/meson.build
+index ee98a39..3dedbe4 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -1,3 +1,5 @@
++pkg = import('pkgconfig')
++
+ gm_deps = [
+ gio_dep,
+ glib_dep,
+@@ -37,18 +39,33 @@ gm_c_args = [
+ '-DG_LOG_DOMAIN="gmobile"',
+ ]
+
+-gm_lib = static_library(
++gm_lib = library(
+ 'gmobile',
+ gm_sources,
+ include_directories: root_inc,
+ c_args: gm_c_args,
+- dependencies: gm_deps)
++ dependencies: gm_deps,
++ install: true)
++
++pkg.generate(gm_lib)
+
+ gmobile_dep = declare_dependency(
+ include_directories: [root_inc, include_directories('.')],
+ dependencies: gm_deps,
+ link_with: gm_lib)
+
++install_headers(
++ 'gmobile.h',
++ 'gm-cutout.h',
++ 'gm-device-info.h',
++ 'gm-device-tree.h',
++ 'gm-display-panel.h',
++ 'gm-error.h',
++ 'gm-main.h',
++ 'gm-rect.h',
++ 'gm-svg-path.h',
++ 'gm-timeout.h')
++
+ if get_option('gtk_doc')
+ gmobile_gir_extra_args = [
+ '--c-include=gmobile.h',
+@@ -66,7 +83,6 @@ if get_option('gtk_doc')
+ identifier_prefix: 'Gm',
+ link_with: gm_lib,
+ includes: ['Gio-2.0'],
+- install: false,
+ extra_args: gmobile_gir_extra_args,
+ )
+ endif
+
+base-commit: 382fc89472176d2f1d435517cad53d969d8b8eff
+--
+2.41.0
+
diff --git a/gnu/packages/patches/gnome-control-center-firmware-security.patch b/gnu/packages/patches/gnome-control-center-firmware-security.patch
new file mode 100644
index 0000000000..fd9d7b8ff4
--- /dev/null
+++ b/gnu/packages/patches/gnome-control-center-firmware-security.patch
@@ -0,0 +1,33 @@
+From: Jeremy Bicha <jeremy.bicha@canonical.com>
+Date: Mon, 22 Aug 2022 08:31:15 -0400
+Subject: firmware-security: Disable
+
+Not yet useful enough to justify its inclusion by default here
+
+You can get the same info by running
+fwupdmgr security
+
+If you drop this patch, add a Depends: fwupd [linux-any]
+
+https://launchpad.net/bugs/1987162
+
+https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1938
+
+[Stolen from the debian package]
+---
+ shell/cc-panel-loader.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
+index 17f9601..1b819a5 100644
+--- a/shell/cc-panel-loader.c
++++ b/shell/cc-panel-loader.c
+@@ -113,7 +113,7 @@ static CcPanelLoaderVtable default_panels[] =
+ PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL),
+ PANEL_TYPE("keyboard", cc_keyboard_panel_get_type, NULL),
+ PANEL_TYPE("location", cc_location_panel_get_type, NULL),
+- PANEL_TYPE("firmware-security",cc_firmware_security_panel_get_type, cc_firmware_security_panel_static_init_func),
++ // PANEL_TYPE("firmware-security",cc_firmware_security_panel_get_type, cc_firmware_security_panel_static_init_func),
+ PANEL_TYPE("microphone", cc_microphone_panel_get_type, NULL),
+ PANEL_TYPE("mouse", cc_mouse_panel_get_type, NULL),
+ PANEL_TYPE("multitasking", cc_multitasking_panel_get_type, NULL),
diff --git a/gnu/packages/patches/gtk2-harden-list-store.patch b/gnu/packages/patches/gtk2-harden-list-store.patch
new file mode 100644
index 0000000000..f49dc3bc77
--- /dev/null
+++ b/gnu/packages/patches/gtk2-harden-list-store.patch
@@ -0,0 +1,42 @@
+Backport the implementation of gtk_list_store_iter_is_valid from gtk+-3.
+
+Index: gtk+-2.24.33/gtk/gtkliststore.c
+===================================================================
+--- gtk+-2.24.33.orig/gtk/gtkliststore.c
++++ gtk+-2.24.33/gtk/gtkliststore.c
+@@ -1195,16 +1195,31 @@ gboolean
+ gtk_list_store_iter_is_valid (GtkListStore *list_store,
+ GtkTreeIter *iter)
+ {
++ GSequenceIter *seq_iter;
++
+ g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE);
+ g_return_val_if_fail (iter != NULL, FALSE);
+
+- if (!VALID_ITER (iter, list_store))
+- return FALSE;
++ /* can't use VALID_ITER() here, because iter might point
++ * to random memory.
++ *
++ * We MUST NOT dereference it.
++ */
+
+- if (g_sequence_iter_get_sequence (iter->user_data) != list_store->seq)
++ if (iter == NULL ||
++ iter->user_data == NULL ||
++ list_store->stamp != iter->stamp)
+ return FALSE;
+
+- return TRUE;
++ for (seq_iter = g_sequence_get_begin_iter (list_store->seq);
++ !g_sequence_iter_is_end (seq_iter);
++ seq_iter = g_sequence_iter_next (seq_iter))
++ {
++ if (seq_iter == iter->user_data)
++ return TRUE;
++ }
++
++ return FALSE;
+ }
+
+ static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source,
diff --git a/gnu/packages/patches/libcall-ui-make-it-installable.patch b/gnu/packages/patches/libcall-ui-make-it-installable.patch
new file mode 100644
index 0000000000..078422913d
--- /dev/null
+++ b/gnu/packages/patches/libcall-ui-make-it-installable.patch
@@ -0,0 +1,81 @@
+From 1a79c18e85232a6f56a58ec99271b92d5b0e6dca Mon Sep 17 00:00:00 2001
+Message-ID: <1a79c18e85232a6f56a58ec99271b92d5b0e6dca.1698606228.git.vivien@planete-kraus.eu>
+From: Vivien Kraus <vivien@planete-kraus.eu>
+Date: Sun, 29 Oct 2023 19:42:55 +0100
+Subject: [PATCH] Install libcall-ui.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Tracked at https://gitlab.gnome.org/World/Phosh/libcall-ui/-/issues/27
+
+* src/meson.build: Require pkgconfig. Install a pkg-config
+definition. Install the headers.
+(call_ui_lib): Install it. Use “library”, not “static_library”.
+* meson.build (config_h): Install the config.h file.
+(call_ui_enum_sources): Install the header file.
+---
+ meson.build | 1 +
+ src/meson.build | 22 +++++++++++++++++++---
+ 2 files changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 6d96178..80514ba 100644
+--- a/meson.build
++++ b/meson.build
+@@ -93,6 +93,7 @@ configure_file(
+ input: 'cui-config.h.in',
+ output: 'cui-config.h',
+ configuration: config_h,
++ install_dir: get_option('includedir')
+ )
+
+ #subdir('data')
+diff --git a/src/meson.build b/src/meson.build
+index bdb347c..2f9fa0c 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -1,7 +1,11 @@
++pkg = import('pkgconfig')
++
+ call_ui_enum_headers = files(['cui-call.h',
+ ])
+ call_ui_enum_sources = gnome.mkenums_simple('cui-enums',
+- sources : call_ui_enum_headers)
++ sources : call_ui_enum_headers,
++ install_header: true,
++ install_dir: get_option('includedir'))
+
+ call_ui_resources = gnome.compile_resources(
+ 'cui-resources',
+@@ -50,11 +54,23 @@ call_ui_c_args = [
+ '-DG_LOG_DOMAIN="Cui"',
+ ]
+
+-call_ui_lib = static_library('call-ui',
++call_ui_lib = library('call-ui',
+ call_ui_sources,
+ c_args: call_ui_c_args,
+ include_directories: [ root_inc, src_inc ],
+- dependencies: call_ui_deps)
++ dependencies: call_ui_deps,
++ install: true)
++
++pkg.generate(call_ui_lib)
++
++install_headers(
++ 'call-ui.h',
++ 'cui-call.h',
++ 'cui-call-display.h',
++ 'cui-main.h',
++ 'cui-dialpad.h',
++ 'cui-keypad.h',
++)
+
+ libcall_ui_dep = declare_dependency(
+ sources: call_ui_enum_sources,
+
+base-commit: 817d770cfa6876d37c4a6d09b00c9bdedfdce8b7
+--
+2.41.0
+
diff --git a/gnu/packages/patches/mm-common-reproducible-tarball.patch b/gnu/packages/patches/mm-common-reproducible-tarball.patch
deleted file mode 100644
index f0890aaf57..0000000000
--- a/gnu/packages/patches/mm-common-reproducible-tarball.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 024c121c844a4ec920133eb3f7e6b6ee8044c0b6 Mon Sep 17 00:00:00 2001
-From: Vagrant Cascadian <vagrant@reproducible-builds.org>
-Date: Sat, 12 Dec 2020 04:05:56 +0000
-Original-Patch: https://bugs.debian.org/977177
-Subject: [PATCH] Set uid, username, gid, and group name on files in
- generated tarball.
-
-The user and group may otherwise vary between builds on different systems.
-
----
- util/meson_aux/skeletonmm-tarball.py | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/util/meson_aux/skeletonmm-tarball.py b/util/meson_aux/skeletonmm-tarball.py
-index db9e650..89049b6 100755
---- a/util/meson_aux/skeletonmm-tarball.py
-+++ b/util/meson_aux/skeletonmm-tarball.py
-@@ -39,10 +39,18 @@ elif output_file.endswith('.gz'):
- else:
- mode = 'w'
-
-+def reproducible(tarinfo):
-+ # Set consistent user and group on files in the tar archive
-+ tarinfo.uid = 0
-+ tarinfo.uname = 'root'
-+ tarinfo.gid = 0
-+ tarinfo.gname = 'root'
-+ return tarinfo
-+
- with tarfile.open(output_file, mode=mode) as tar_file:
- os.chdir(source_dir) # Input filenames are relative to source_dir.
- for file in sys.argv[3:]:
-- tar_file.add(file)
-+ tar_file.add(file, filter=reproducible)
- # Errors raise exceptions. If an exception is raised, Meson+ninja will notice
- # that the command failed, despite exit(0).
- sys.exit(0)
---
-2.29.2
-
diff --git a/gnu/packages/patches/mutter-fix-inverted-test.patch b/gnu/packages/patches/mutter-fix-inverted-test.patch
deleted file mode 100644
index 3676b31def..0000000000
--- a/gnu/packages/patches/mutter-fix-inverted-test.patch
+++ /dev/null
@@ -1,290 +0,0 @@
-From 5a83e8ef8250526a40e8e69c6398f990ab482b2f Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Fri, 2 Jun 2023 14:42:51 +0200
-Subject: [PATCH 1/5] cogl/gl-framebuffer: Fix spurious trailing spaces
-
-Purely cosmetic fix, no functional change.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
----
- cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 12 ++++++------
- cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 12 ++++++------
- 2 files changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-index d6609bb2074..8d76f1578bf 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-@@ -72,32 +72,32 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
- GLenum attachment, pname;
- size_t offset;
- } params[] = {
-- {
-+ {
- .attachment = GL_BACK_LEFT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
- .offset = offsetof (CoglFramebufferBits, red),
- },
-- {
-+ {
- .attachment = GL_BACK_LEFT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
- .offset = offsetof (CoglFramebufferBits, green),
- },
-- {
-+ {
- .attachment = GL_BACK_LEFT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
- .offset = offsetof (CoglFramebufferBits, blue),
- },
-- {
-+ {
- .attachment = GL_BACK_LEFT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
- .offset = offsetof (CoglFramebufferBits, alpha),
- },
-- {
-+ {
- .attachment = GL_DEPTH,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
- .offset = offsetof (CoglFramebufferBits, depth),
- },
-- {
-+ {
- .attachment = GL_STENCIL,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
- .offset = offsetof (CoglFramebufferBits, stencil),
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-index c8db6a23a29..1ffc1d53509 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-@@ -82,32 +82,32 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
- GLenum attachment, pname;
- size_t offset;
- } params[] = {
-- {
-+ {
- .attachment = GL_COLOR_ATTACHMENT0,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
- .offset = offsetof (CoglFramebufferBits, red),
- },
-- {
-+ {
- .attachment = GL_COLOR_ATTACHMENT0,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
- .offset = offsetof (CoglFramebufferBits, green),
- },
-- {
-+ {
- .attachment = GL_COLOR_ATTACHMENT0,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
- .offset = offsetof (CoglFramebufferBits, blue),
- },
-- {
-+ {
- .attachment = GL_COLOR_ATTACHMENT0,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
- .offset = offsetof (CoglFramebufferBits, alpha),
- },
-- {
-+ {
- .attachment = GL_DEPTH_ATTACHMENT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
- .offset = offsetof (CoglFramebufferBits, depth),
- },
-- {
-+ {
- .attachment = GL_STENCIL_ATTACHMENT,
- .pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
- .offset = offsetof (CoglFramebufferBits, stencil),
---
-GitLab
-
-
-From a2203df9f43b9e501a972d23b3d5584005c03ce6 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Fri, 2 Jun 2023 11:54:58 +0200
-Subject: [PATCH 2/5] cogl/gl-framebuffer: Fix inverted test in
- ensure_bits_initialized()
-
-Cogl's feature COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS is required
-to use the GL_FRAMEBUFFER_ATTACHMENT_* queries.
-
-Unfortunately, the test for the availability of the private feature is
-actually inverted in ensure_bits_initialized() which causes that whole
-portion of code to be ignored, falling back to the glGetIntegerv()
-method which isn't supported in core profiles.
-
-As Mesa has recently started to be more strict about these, this causes
-the CI tests to fail in mutter.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
----
- cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-index 1ffc1d53509..75a8b0c1fe2 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-@@ -76,7 +76,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
- COGL_FRAMEBUFFER_STATE_BIND);
-
- #ifdef HAVE_COGL_GL
-- if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
-+ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
- {
- const struct {
- GLenum attachment, pname;
---
-GitLab
-
-
-From fad240f437d6b11f664c9c09aecabe5f5e703eca Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Mon, 5 Jun 2023 10:31:38 +0200
-Subject: [PATCH 3/5] cogl/gl-framebuffer: Match testing features
-
-The function ensure_bits_initialized() in cogl-gl-framebuffer-fbo.c
-checks for COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS whereas the same
-in cogl-gl-framebuffer-back.c simply checks for the driver being
-COGL_DRIVER_GL3.
-
-Change the later to use the COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS
-flag as well.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
----
- cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-index 8d76f1578bf..f6a17e8f070 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-@@ -66,7 +66,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
- COGL_FRAMEBUFFER_STATE_BIND);
-
- #ifdef HAVE_COGL_GL
-- if (ctx->driver == COGL_DRIVER_GL3)
-+ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
- {
- const struct {
- GLenum attachment, pname;
---
-GitLab
-
-
-From c3af4c1b1571b05f67d48b90d9ea7313f3ca6003 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Fri, 2 Jun 2023 14:27:29 +0200
-Subject: [PATCH 4/5] cogl/gl-framebuffer: Fail without QUERY_FRAMEBUFFER_BITS
-
-glGetIntegerv() with GL_RED_BITS/GL_GREEN_BITS/GL_BLUE_BITS/etc. is not
-supported with the GL core context, so there is no point in falling back
-to that without supporting COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS,
-as this will cause an GL error.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
----
- cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 7 +------
- cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 7 +------
- 2 files changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-index f6a17e8f070..0ccd2324077 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-@@ -119,12 +119,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
- else
- #endif /* HAVE_COGL_GL */
- {
-- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red));
-- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green));
-- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue));
-- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha));
-- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth));
-- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil));
-+ return FALSE;
- }
-
- COGL_NOTE (FRAMEBUFFER,
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-index 75a8b0c1fe2..524196207f5 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-@@ -129,12 +129,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
- else
- #endif /* HAVE_COGL_GL */
- {
-- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red));
-- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green));
-- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue));
-- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha));
-- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth));
-- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil));
-+ return FALSE;
- }
-
- if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_ALPHA_TEXTURES) &&
---
-GitLab
-
-
-From d65883e0d7d70987e3888b86222b109c35f5a7a2 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Mon, 5 Jun 2023 10:38:41 +0200
-Subject: [PATCH 5/5] cogl/gl-framebuffer: Remove conditional on HAVE_COGL_GL
-
-By testing the features flag, we can get rid of the conditional build
-on HAVE_COGL_GL entirely.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
----
- cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 --
- cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 --
- 2 files changed, 4 deletions(-)
-
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-index 0ccd2324077..94154d48efb 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
-@@ -65,7 +65,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
- framebuffer,
- COGL_FRAMEBUFFER_STATE_BIND);
-
--#ifdef HAVE_COGL_GL
- if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
- {
- const struct {
-@@ -117,7 +116,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
- }
- }
- else
--#endif /* HAVE_COGL_GL */
- {
- return FALSE;
- }
-diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-index 524196207f5..3ea133d3143 100644
---- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
-@@ -75,7 +75,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
- framebuffer,
- COGL_FRAMEBUFFER_STATE_BIND);
-
--#ifdef HAVE_COGL_GL
- if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
- {
- const struct {
-@@ -127,7 +126,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
- }
- }
- else
--#endif /* HAVE_COGL_GL */
- {
- return FALSE;
- }
---
-GitLab
-
diff --git a/gnu/packages/patches/nautilus-extension-search-path.patch b/gnu/packages/patches/nautilus-extension-search-path.patch
index d5dc35b241..1394956315 100644
--- a/gnu/packages/patches/nautilus-extension-search-path.patch
+++ b/gnu/packages/patches/nautilus-extension-search-path.patch
@@ -1,54 +1,62 @@
Allow Nautilus to search for extensions in the directories listed
in $NAUTILUS_EXTENSION_PATH.
-diff --git a/src/nautilus-module.c b/src/nautilus-module.c
-index bf474bd..42e2a4e 100644
---- a/src/nautilus-module.c
-+++ b/src/nautilus-module.c
-@@ -211,6 +211,10 @@ static void
+Index: nautilus-44.2/src/nautilus-module.c
+===================================================================
+--- nautilus-44.2.orig/src/nautilus-module.c
++++ nautilus-44.2/src/nautilus-module.c
+@@ -220,8 +220,16 @@ static void
load_module_dir (const char *dirname)
{
GDir *dir;
+-
+ static GHashTable *loaded = NULL;
+ g_autoptr (GStrvBuilder) installed_module_name_builder = g_strv_builder_new ();
++
++ if (installed_module_names != NULL)
++ g_strv_builder_addv (installed_module_name_builder,
++ (const gchar **)installed_module_names);
+
+ if (loaded == NULL)
+ loaded = g_hash_table_new (g_str_hash, g_str_equal);
-
++
dir = g_dir_open (dirname, 0, NULL);
-@@ -221,15 +225,22 @@ load_module_dir (const char *dirname)
- while ((name = g_dir_read_name (dir)))
+ if (dir)
+@@ -232,16 +240,24 @@ load_module_dir (const char *dirname)
{
if (g_str_has_suffix (name, "." G_MODULE_SUFFIX))
-- {
+ {
- char *filename;
-
- filename = g_build_filename (dirname,
- name,
- NULL);
-- nautilus_module_load_file (filename);
+- nautilus_module_load_file (filename, installed_module_name_builder);
- g_free (filename);
-- }
-+ {
-+ /* Make sure each module is loaded only twice or this could
-+ lead to a crash. Double loading can occur if DIRNAME
-+ occurs more than once in $NAUTILUS_EXTENSION_PATH. */
-+ if (!g_hash_table_contains (loaded, name))
-+ {
-+ char *filename;
++ /* Make sure each module is loaded only twice or this could
++ lead to a crash. Double loading can occur if DIRNAME
++ occurs more than once in $NAUTILUS_EXTENSION_PATH. */
++ if (!g_hash_table_contains (loaded, name))
++ {
++ char *filename;
+
-+ filename = g_build_filename (dirname,
-+ name,
-+ NULL);
-+ nautilus_module_load_file (filename);
-+ g_hash_table_add (loaded, g_strdup (name));
-+ g_free (filename);
-+ }
-+ }
- }
++ filename = g_build_filename (dirname,
++ name,
++ NULL);
++ nautilus_module_load_file (filename,
++ installed_module_name_builder);
++ g_hash_table_add (loaded, g_strdup (name));
++ g_free (filename);
++ }
+ }
+- }
++ }
g_dir_close (dir);
-@@ -257,10 +268,24 @@ nautilus_module_setup (void)
+ }
+
+@@ -278,10 +294,24 @@ nautilus_module_setup (void)
if (!initialized)
{
diff --git a/gnu/packages/patches/shared-mime-info-xdgmime-path.patch b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch
new file mode 100644
index 0000000000..27c578f3fa
--- /dev/null
+++ b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch
@@ -0,0 +1,22 @@
+Adapted from <https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/182>.
+
+diff --git a/meson.build b/meson.build
+index 3c75424..7058562 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,11 +26,11 @@ xmlto = find_program('xmlto', required: false)
+ ###############################################################################
+ # Find xdgmime
+
+-xdgmime = get_option('xdgmime-path') / 'src'
++xdgmime = get_option('xdgmime-path')
+
+-xdgmime_print_mime_data = find_program(xdgmime/'print-mime-data', required: false)
+-xdgmime_test_mime_data = find_program(xdgmime/'test-mime-data', required: false)
+-xdgmime_test_mime = find_program(xdgmime/'test-mime', required: false)
++xdgmime_print_mime_data = find_program('print-mime-data', xdgmime/'print-mime-data', required: false)
++xdgmime_test_mime_data = find_program('test-mime-data', xdgmime/'test-mime-data', required: false)
++xdgmime_test_mime = find_program('test-mime', xdgmime/'test-mime', required: false)
+ xdgmime_found = (
+ xdgmime_print_mime_data.found() and
+ xdgmime_test_mime_data.found() and