summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-15 10:20:32 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-15 10:20:32 -0400
commit3d297a0017210f1dd135592efb10846840a8af88 (patch)
tree8868c35a558a6288b5097d65bee42dda291178e4 /gnu/packages/patches
parent279349209e44aaae6ca2aba328fe2a4d2da99f12 (diff)
parent6737d8d3248301e65bc24291b1a776e4aa8c3648 (diff)
Merge branch 'master' into staging
With resolved conflicts in: gnu/local.mk gnu/packages/freedesktop.scm gnu/packages/gnuzilla.scm
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/cmake-curl-certificates-3.24.patch21
-rw-r--r--gnu/packages/patches/cmh-support-fplll.patch27
-rw-r--r--gnu/packages/patches/emacs-kv-fix-tests.patch30
-rw-r--r--gnu/packages/patches/emacs-yasnippet-fix-tests.patch30
-rw-r--r--gnu/packages/patches/eog-update-libportal-usage.patch40
-rw-r--r--gnu/packages/patches/gdm-default-session.patch65
-rw-r--r--gnu/packages/patches/gdm-elogind-support.patch21
-rw-r--r--gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch13
-rw-r--r--gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch36
-rw-r--r--gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch13
-rw-r--r--gnu/packages/patches/geoclue-config.patch28
-rw-r--r--gnu/packages/patches/gnome-boxes-add-guix-logo.patch32
-rw-r--r--gnu/packages/patches/gnome-builder-update-libportal.patch93
-rw-r--r--gnu/packages/patches/gnome-screenshot-meson-0.60.patch39
-rw-r--r--gnu/packages/patches/gnome-shell-polkit-autocleanup.patch50
-rw-r--r--gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch173
-rw-r--r--gnu/packages/patches/gobject-introspection-cc-1.72.patch15
-rw-r--r--gnu/packages/patches/gpaste-fix-paths.patch29
-rw-r--r--gnu/packages/patches/gspell-dash-test.patch22
-rw-r--r--gnu/packages/patches/hedgewars-network-bsd.patch150
-rw-r--r--gnu/packages/patches/libgda-cve-2021-39359.patch33
-rw-r--r--gnu/packages/patches/libgda-fix-build.patch131
-rw-r--r--gnu/packages/patches/libgda-fix-missing-initialization.patch26
-rw-r--r--gnu/packages/patches/libgda-skip-postgresql-tests.patch91
-rw-r--r--gnu/packages/patches/nautilus-add-libportal-gtk3.patch61
-rw-r--r--gnu/packages/patches/network-manager-plugin-path.patch38
26 files changed, 676 insertions, 631 deletions
diff --git a/gnu/packages/patches/cmake-curl-certificates-3.24.patch b/gnu/packages/patches/cmake-curl-certificates-3.24.patch
new file mode 100644
index 0000000000..ca29c9001e
--- /dev/null
+++ b/gnu/packages/patches/cmake-curl-certificates-3.24.patch
@@ -0,0 +1,21 @@
+Submitted upstream at https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7670.
+
+diff --git a/Source/cmCurl.cxx b/Source/cmCurl.cxx
+index 28ee24dfe9..fc5405213a 100644
+--- a/Source/cmCurl.cxx
++++ b/Source/cmCurl.cxx
+@@ -38,6 +38,14 @@ std::string cmCurlSetCAInfo(::CURL* curl, const std::string& cafile)
+ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, cafile.c_str());
+ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
+ }
++ /* Honor the user-configurable OpenSSL environment variables. */
++ else if (cmSystemTools::GetEnv("SSL_CERT_FILE", e)) {
++ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, e.c_str());
++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
++ } else if (cmSystemTools::GetEnv("SSL_CERT_DIR", e)) {
++ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAPATH, e.c_str());
++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
++ }
+ #ifdef CMAKE_FIND_CAFILE
+ # define CMAKE_CAFILE_FEDORA "/etc/pki/tls/certs/ca-bundle.crt"
+ else if (cmSystemTools::FileExists(CMAKE_CAFILE_FEDORA, true)) {
diff --git a/gnu/packages/patches/cmh-support-fplll.patch b/gnu/packages/patches/cmh-support-fplll.patch
deleted file mode 100644
index fae04f456b..0000000000
--- a/gnu/packages/patches/cmh-support-fplll.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Patch from the CMH git, after the 1.1.0 release.
-
-From 2328c819317dda2171217002268f57c74cedc476 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Emmanuel=20Thom=C3=A9?= <Emmanuel.Thome@inria.fr>
-Date: Tue, 7 Jun 2022 12:17:05 -0700
-Subject: [PATCH] patch suggested by @x-YVicto
-
----
- src/lll.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lll.cpp b/src/lll.cpp
-index 83dab07..f005931 100644
---- a/src/lll.cpp
-+++ b/src/lll.cpp
-@@ -37,7 +37,7 @@
- #ifdef HAVE_FPLLL
- static void lll_fplll (mpz_t *v, mpz_t **M, const int m, const int n)
- {
-- ZZ_mat <mpz_t> Mp (m, n);
-+ fplll::ZZ_mat <mpz_t> Mp (m, n);
- int i, j;
-
- for (i = 0; i < m; i++)
---
-2.36.1
-
diff --git a/gnu/packages/patches/emacs-kv-fix-tests.patch b/gnu/packages/patches/emacs-kv-fix-tests.patch
new file mode 100644
index 0000000000..35a6bf004c
--- /dev/null
+++ b/gnu/packages/patches/emacs-kv-fix-tests.patch
@@ -0,0 +1,30 @@
+From 4702849bfe7462fb6c6303786dac1b670c8f0f8f Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Wed, 14 Sep 2022 09:17:31 +0300
+Subject: [PATCH] remove copypasted kvaq test
+
+---
+ kv-tests.el | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/kv-tests.el b/kv-tests.el
+index 1713e5e..abd6a24 100644
+--- a/kv-tests.el
++++ b/kv-tests.el
+@@ -105,13 +105,6 @@
+ (should-not (equal "b" (kvaq "a" '((:a . :b)("a" . "b")))))
+ (should-not (kvaq "b" '((:a . :b)("a" . "b")))))
+
+-(ert-deftest kvaq ()
+- "Test the simple assq."
+- (should (equal :b (kvaq :a '((:a . :b)("a" . "b")))))
+- (should (equal 2 (kvaq 1 '((1 . 2)("a" . "b")))))
+- (should-not (equal "b" (kvaq "a" '((:a . :b)("a" . "b")))))
+- (should-not (kvaq "b" '((:a . :b)("a" . "b")))))
+-
+ (ert-deftest kvaqc ()
+ "Test the simple assq."
+ (should (equal :b (kvaqc :a '((:a . :b)("a" . "b")))))
+--
+2.37.3
+
diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
index 475352d8db..c70cc75d92 100644
--- a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
+++ b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
@@ -9,12 +9,13 @@ Content-Transfer-Encoding: 8bit
- Emacs 28 has a new mode ‘lisp-data-mode’ for Lisp data.
- A test that was temporarily broken passes again.
- The default for ‘org-adapt-indentation’ has changed.
+- buffer-list may be called with arguments when native-comp is enabled.
---
- yasnippet-tests.el | 41 ++++++++++++++++++++++++++---------------
- 1 file changed, 26 insertions(+), 15 deletions(-)
+ yasnippet-tests.el | 45 ++++++++++++++++++++++++++++-----------------
+ 1 file changed, 28 insertions(+), 17 deletions(-)
diff --git a/yasnippet-tests.el b/yasnippet-tests.el
-index b8a7980f..9fadf00c 100644
+index f7ca2bb..7618ab7 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -1,6 +1,6 @@
@@ -55,7 +56,21 @@ index b8a7980f..9fadf00c 100644
;; Some org-mode versions leave trailing whitespace, some don't.
(delete-trailing-whitespace)
(should (equal expected (buffer-string))))))
-@@ -1390,7 +1393,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
+@@ -1195,11 +1198,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
+ (let ((saved-sym (make-symbol "yas--buffer-list")))
+ `(let ((,saved-sym (symbol-function 'buffer-list)))
+ (cl-letf (((symbol-function 'buffer-list)
+- (lambda ()
++ (lambda (&rest args)
+ (cl-remove-if (lambda (buf)
+ (with-current-buffer buf
+ (eq major-mode 'lisp-interaction-mode)))
+- (funcall ,saved-sym)))))
++ (funcall ,saved-sym args)))))
+ ,@body))))
+
+
+@@ -1356,7 +1359,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
,@(if (fboundp 'prog-mode)
'(prog-mode))
emacs-lisp-mode
@@ -66,7 +81,7 @@ index b8a7980f..9fadf00c 100644
(observed (yas--modes-to-activate)))
(should (equal major-mode (car observed)))
(should (equal (sort expected #'string<) (sort observed #'string<))))))))
-@@ -1418,7 +1423,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
+@@ -1384,7 +1389,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
'(prog-mode))
emacs-lisp-mode
and-also-this-one
@@ -79,7 +94,7 @@ index b8a7980f..9fadf00c 100644
(observed (yas--modes-to-activate)))
(should (equal expected-first
(cl-subseq observed 0 (length expected-first))))
-@@ -1691,9 +1700,11 @@ TODO: be meaner"
+@@ -1657,9 +1666,11 @@ TODO: be meaner"
"Test expansion of snippets in org source blocks."
;; org 9+ no longer runs fontification for text-mode, so our hacks
;; don't work. Note that old ert doesn't have skipping, so we have
@@ -93,3 +108,6 @@ index b8a7980f..9fadf00c 100644
:passed :failed)
(let ((text-mode-hook #'yas-minor-mode))
(do-yas-org-native-tab-in-source-block "text")))
+--
+2.37.2
+
diff --git a/gnu/packages/patches/eog-update-libportal-usage.patch b/gnu/packages/patches/eog-update-libportal-usage.patch
deleted file mode 100644
index 220a16ddc4..0000000000
--- a/gnu/packages/patches/eog-update-libportal-usage.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Fix eog to work with libportal-0.5
-
-This patch is extracted from upstream, see here
-https://gitlab.gnome.org/GNOME/eog/-/commit/a06e6325907e136678b0bbe7058c25d688034afd
-
-diff --git a/meson.build b/meson.build
-index 9a32e4bb..9d49aa45 100644
---- a/meson.build
-+++ b/meson.build
-@@ -165,10 +165,14 @@ config_h.set('HAVE_EXEMPI', enable_xmp)
- # xdg-desktop-portal support with libportal (optional)
- enable_libportal = get_option('libportal')
- if enable_libportal
-- libportal_dep = dependency('libportal', version: '>= 0.3', required: false)
-+ libportal_dep = dependency('libportal', version: '>= 0.5', required: false)
- assert(libportal_dep.found() and cc.has_header('libportal/portal.h', dependencies: libportal_dep),
- 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
-
-- common_deps += libportal_dep
-+ libportal_gtk3_dep = dependency('libportal-gtk3', version: '>= 0.5', required: false)
-+ assert(libportal_gtk3_dep.found() and cc.has_header('libportal-gtk3/portal-gtk3.h', dependencies: libportal_gtk3_dep),
-+ 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
-+
-+ common_deps += [libportal_dep, libportal_gtk3_dep]
- endif
- config_h.set('HAVE_LIBPORTAL', enable_libportal)
-
-diff --git a/src/eog-util.c b/src/eog-util.c
-index 90b9768e..56d23472 100644
---- a/src/eog-util.c
-+++ b/src/eog-util.c
-@@ -45,7 +45,7 @@
- #include <glib/gi18n.h>
- #ifdef HAVE_LIBPORTAL
- #include <libportal/portal.h>
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
- #endif
-
- void
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
index 8325b6102b..27f7035bfb 100644
--- a/gnu/packages/patches/gdm-default-session.patch
+++ b/gnu/packages/patches/gdm-default-session.patch
@@ -4,12 +4,14 @@ and not in the directories listed in $XDG_DATA_DIRS. The latter includes
/run/current-system/profile, and only then.
Fixes <https://bugs.gnu.org/37831>.
---- a/daemon/gdm-session.c 2021-07-23 15:16:15.164201000 +0000
-+++ b/daemon/gdm-session.c 2021-09-26 08:18:58.730134555 +0000
-@@ -354,25 +354,19 @@
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 4b709731..3b83fcd3 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -362,16 +362,15 @@ get_system_session_dirs (GdmSession *self,
GArray *search_array = NULL;
char **search_dirs;
- int i;
+ int i, j;
- const gchar * const *system_data_dirs = g_get_system_data_dirs ();
static const char *x_search_dirs[] = {
@@ -25,43 +27,44 @@ Fixes <https://bugs.gnu.org/37831>.
search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- if (type == NULL || g_str_equal (type, "x11")) {
-- for (i = 0; system_data_dirs[i]; i++) {
-- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
-- g_array_append_val (search_array, dir);
-- }
--
- g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
- }
+@@ -380,11 +379,6 @@ get_system_session_dirs (GdmSession *self,
-@@ -382,16 +376,7 @@
- #ifdef ENABLE_USER_DISPLAY_SERVER
- g_array_prepend_val (search_array, wayland_search_dir);
+ if (g_str_equal (supported_type, "x11") &&
+ (type == NULL || g_str_equal (type, supported_type))) {
+- for (i = 0; system_data_dirs[i]; i++) {
+- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
+- g_array_append_val (search_array, dir);
+- }
+-
+ g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
+ }
-- for (i = 0; system_data_dirs[i]; i++) {
-- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
-- g_array_insert_val (search_array, i, dir);
-- }
- #else
-- for (i = 0; system_data_dirs[i]; i++) {
-- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
-- g_array_append_val (search_array, dir);
-- }
+@@ -392,11 +386,6 @@ get_system_session_dirs (GdmSession *self,
+ #ifdef ENABLE_WAYLAND_SUPPORT
+ if (g_str_equal (supported_type, "wayland") &&
+ (type == NULL || g_str_equal (type, supported_type))) {
+- for (i = 0; system_data_dirs[i]; i++) {
+- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
+- g_array_append_val (search_array, dir);
+- }
-
- g_array_append_val (search_array, wayland_search_dir);
+ g_array_append_val (search_array, wayland_search_dir);
+ }
#endif
- }
-diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
---- a/libgdm/gdm-sessions.c 2019-10-07 04:53:35.000000000 -0400
-+++ b/libgdm/gdm-sessions.c 2020-04-18 18:31:42.491348691 -0400
-@@ -245,35 +245,23 @@
+diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
+index d8b4d5cd..7ed8de91 100644
+--- a/libgdm/gdm-sessions.c
++++ b/libgdm/gdm-sessions.c
+@@ -275,7 +275,7 @@ collect_sessions (void)
"/etc/X11/sessions/",
DMCONFDIR "/Sessions/",
DATADIR "/gdm/BuiltInSessions/",
- DATADIR "/xsessions/",
+ "/run/current-system/profile/share/xsessions/"
};
-
+ const gchar *supported_session_types_env = NULL;
+ g_auto (GStrv) supported_session_types = NULL;
+@@ -288,29 +288,17 @@ collect_sessions (void)
names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
xorg_search_array = g_ptr_array_new_with_free_func (g_free);
diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch
index 39cd12dd22..5c8e3bd610 100644
--- a/gnu/packages/patches/gdm-elogind-support.patch
+++ b/gnu/packages/patches/gdm-elogind-support.patch
@@ -19,7 +19,7 @@ system and user units.
6 files changed, 66 insertions(+), 42 deletions(-)
diff --git a/common/meson.build b/common/meson.build
-index 074dd92e1..bca58f7c4 100644
+index 074dd92e..bca58f7c 100644
--- a/common/meson.build
+++ b/common/meson.build
@@ -11,7 +11,7 @@ libgdmcommon_src = files(
@@ -32,10 +32,10 @@ index 074dd92e1..bca58f7c4 100644
gio_dep,
gio_unix_dep,
diff --git a/data/meson.build b/data/meson.build
-index 7c5222eaf..403336c31 100644
+index 2dec4c23..c3452e1c 100644
--- a/data/meson.build
+++ b/data/meson.build
-@@ -168,41 +168,53 @@ else
+@@ -164,41 +164,53 @@ else
service_config.set('PLYMOUTH_QUIT_SERVICE', '')
endif
@@ -115,7 +115,7 @@ index 7c5222eaf..403336c31 100644
# XSession
if get_option('gdm-xsession')
diff --git a/libgdm/meson.build b/libgdm/meson.build
-index 3f8cafbb7..83e95151b 100644
+index 3f8cafbb..83e95151 100644
--- a/libgdm/meson.build
+++ b/libgdm/meson.build
@@ -56,7 +56,7 @@ libgdm_deps = [
@@ -128,12 +128,12 @@ index 3f8cafbb7..83e95151b 100644
]
diff --git a/meson.build b/meson.build
-index e6fcf4b8b..a86a486b7 100644
+index 845f673e..d0ca41ef 100644
--- a/meson.build
+++ b/meson.build
-@@ -92,21 +92,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
+@@ -96,21 +96,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
if xdmcp_dep.found() and get_option('tcp-wrappers')
- libwrap_dep = cc.find_library('libwrap')
+ libwrap_dep = cc.find_library('wrap')
endif
-# systemd
-systemd_dep = dependency('systemd')
@@ -175,7 +175,7 @@ index e6fcf4b8b..a86a486b7 100644
# Plymouth
plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth'))
# Check for Solaris auditing API (ADT)
-@@ -313,6 +322,7 @@ summary({
+@@ -319,6 +328,7 @@ summary({
'PAM Syslog': have_pam_syslog,
'Supports PAM Extensions': pam_extensions_supported,
'SeLinux': libselinux_dep.found(),
@@ -184,7 +184,7 @@ index e6fcf4b8b..a86a486b7 100644
'Use UserDisplayServer': get_option('user-display-server'),
'Use SystemdJournal': get_option('systemd-journal'),
diff --git a/meson_options.txt b/meson_options.txt
-index 14e0b908b..5135d7d66 100644
+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
@@ -206,6 +206,3 @@ index 14e0b908b..5135d7d66 100644
option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.')
option('udev-dir', type: 'string', value: '', description: 'Directory for udev rules file.')
option('user', type: 'string', value: 'gdm', description: 'GDM\'s username.')
---
-GitLab
-
diff --git a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
index 4341e3fc30..2c095c8003 100644
--- a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
+++ b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
@@ -1,17 +1,11 @@
-From 444250fce55f916af993bc855930c6809686e4bd Mon Sep 17 00:00:00 2001
From: Josselin Poiret <dev@jpoiret.xyz>
Date: Tue, 23 Nov 2021 18:39:39 +0000
Subject: [PATCH] Make GDM pass GDK_PIXBUF_MODULE_FILE to sessions
-
----
- daemon/gdm-launch-environment.c | 1 +
- 1 file changed, 1 insertion(+)
-
diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
-index 14ecfac2..3e618321 100644
+index 932c3e8a..a50dcc8c 100644
--- a/daemon/gdm-launch-environment.c
+++ b/daemon/gdm-launch-environment.c
-@@ -158,6 +158,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
+@@ -157,6 +157,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
"WINDOWPATH",
"XCURSOR_PATH",
"XDG_CONFIG_DIRS",
@@ -19,6 +13,3 @@ index 14ecfac2..3e618321 100644
NULL
};
char *system_data_dirs;
---
-2.33.1
-
diff --git a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
index 366fb91668..83d56ddf69 100644
--- a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
+++ b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
@@ -1,22 +1,28 @@
Remove check for hardcoded Xwayland path in gdm.
----
- daemon/gdm-local-display-factory.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
-index da1093bb..37355c06 100644
+index 7de7b99c..065325f4 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
-@@ -203,7 +203,7 @@ gdm_local_display_factory_use_wayland (void)
+@@ -245,9 +245,9 @@ struct GdmDisplayServerConfiguration {
+ const char *session_type;
+ } display_server_configuration[] = {
#ifdef ENABLE_WAYLAND_SUPPORT
- gboolean wayland_enabled = FALSE;
- if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
-- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-+ if (wayland_enabled)
- return TRUE;
- }
+- { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" },
++ { "wayland", GDM_KEY_WAYLAND_ENABLE, "", "wayland" },
#endif
---
-2.33.0
-
+- { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" },
++ { "xorg", GDM_KEY_XORG_ENABLE, "", "x11" },
+ { NULL, NULL, NULL },
+ };
+
+@@ -269,9 +269,6 @@ display_server_enabled (GdmLocalDisplayFactory *factory,
+ if (!gdm_settings_direct_get_boolean (key, &enabled) || !enabled)
+ return FALSE;
+
+- if (!g_file_test (binary, G_FILE_TEST_IS_EXECUTABLE))
+- return FALSE;
+-
+ return TRUE;
+ }
+
diff --git a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
index 44ab6a9471..6ea0daf6a7 100644
--- a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
+++ b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
@@ -1,14 +1,10 @@
Get wayland-session wrapper from environment.
----
- daemon/gdm-session.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index 4e303e70..1deca4e9 100644
+index 3b83fcd3..e60e6a57 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
-@@ -2888,8 +2888,9 @@ gdm_session_start_session (GdmSession *self,
+@@ -2933,8 +2933,9 @@ gdm_session_start_session (GdmSession *self,
allow_remote_connections? "--allow-remote-connections " : "",
command);
} else {
@@ -19,7 +15,7 @@ index 4e303e70..1deca4e9 100644
command);
}
} else if (run_xsession_script) {
-@@ -2942,8 +2942,9 @@
+@@ -2965,8 +2966,9 @@ gdm_session_start_session (GdmSession *self,
register_session ? "--register-session " : "",
self->selected_program);
} else {
@@ -30,6 +26,3 @@ index 4e303e70..1deca4e9 100644
self->selected_program);
}
} else {
---
-2.33.0
-
diff --git a/gnu/packages/patches/geoclue-config.patch b/gnu/packages/patches/geoclue-config.patch
index dd35b90be5..e4ef6f2d33 100644
--- a/gnu/packages/patches/geoclue-config.patch
+++ b/gnu/packages/patches/geoclue-config.patch
@@ -1,25 +1,27 @@
Allow the configuration file to be specified via an environment variable.
---- geoclue-2.1.10/src/gclue-config.c 2015-04-07 09:50:07.721074380 +0200
-+++ geoclue-2.1.10/src/gclue-config.c 2015-04-07 10:27:26.613171960 +0200
-@@ -235,6 +235,11 @@
+diff --git a/src/gclue-config.c b/src/gclue-config.c
+index 7ab2a67..e41f3df 100644
+--- a/src/gclue-config.c
++++ b/src/gclue-config.c
+@@ -332,6 +332,11 @@ static void
gclue_config_init (GClueConfig *config)
{
GError *error = NULL;
+ const char *config_file_path;
+
+ config_file_path = g_getenv ("GEOCLUE_CONFIG_FILE");
-+ if (config_file_path == NULL)
-+ config_file_path = CONFIG_FILE_PATH;
++ if (!config_file_path)
++ config_file_path = CONFIG_FILE_PATH;
- config->priv =
- G_TYPE_INSTANCE_GET_PRIVATE (config,
-@@ -242,7 +247,7 @@
- GClueConfigPrivate);
+ config->priv = gclue_config_get_instance_private(config);
config->priv->key_file = g_key_file_new ();
- g_key_file_load_from_file (config->priv->key_file,
-- CONFIG_FILE_PATH,
-+ config_file_path,
- 0,
+@@ -341,7 +346,7 @@ gclue_config_init (GClueConfig *config)
&error);
if (error != NULL) {
+ g_critical ("Failed to load configuration file '%s': %s",
+- CONFIG_FILE_PATH, error->message);
++ config_file_path, error->message);
+ g_error_free (error);
+
+ return;
diff --git a/gnu/packages/patches/gnome-boxes-add-guix-logo.patch b/gnu/packages/patches/gnome-boxes-add-guix-logo.patch
deleted file mode 100644
index e570675083..0000000000
--- a/gnu/packages/patches/gnome-boxes-add-guix-logo.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Taken from upstream commit: 9091c6849652fa083297bc12645d8c57a962874a.
-
-diff --git a/data/osinfo/guix-1.3.xml b/data/osinfo/guix-1.3.xml
-new file mode 100644
-index 00000000..d4e1c167
---- /dev/null
-+++ b/data/osinfo/guix-1.3.xml
-@@ -0,0 +1,9 @@
-+<libosinfo version="0.0.1">
-+
-+ <!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
-+
-+ <os id="http://guix.gnu.org/guix/1.3">
-+ <logo>https://gitlab.gnome.org/GNOME/gnome-boxes-logos/-/raw/master/logos/guix.svg</logo>
-+ </os>
-+
-+</libosinfo>
-diff --git a/data/osinfo/meson.build b/data/osinfo/meson.build
-index 46ff1570..d5531e60 100644
---- a/data/osinfo/meson.build
-+++ b/data/osinfo/meson.build
-@@ -7,6 +7,7 @@ osinfo_db = [
- ['freedos-1.2.xml', 'gnome-boxes/osinfo/os/freedos.org'],
- ['gnome-nightly.xml', 'gnome-boxes/osinfo/os/gnome.org'],
- ['gnome-3.38.xml', 'gnome-boxes/osinfo/os/gnome.org'],
-+ ['guix-1.3.xml', 'gnome-boxes/osinfo/os/guix.gnu.org'],
- ['manjaro-19.0.xml', 'gnome-boxes/osinfo/os/manjaro.org'],
- ['nixos-20.03.xml', 'gnome-boxes/osinfo/os/nixos.org'],
- ['opensuse-10.2.xml', 'gnome-boxes/osinfo/os/opensuse.org'],
---
-2.34.0
-
diff --git a/gnu/packages/patches/gnome-builder-update-libportal.patch b/gnu/packages/patches/gnome-builder-update-libportal.patch
deleted file mode 100644
index 1cf7f32132..0000000000
--- a/gnu/packages/patches/gnome-builder-update-libportal.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From b3bfa0df53a3749c3b73cb6c4bad5cab3fa549a1 Mon Sep 17 00:00:00 2001
-From: Abderrahim Kitouni <akitouni@gnome.org>
-Date: Sat, 25 Dec 2021 16:25:43 +0100
-Subject: [PATCH] build: use libportal 0.5
-
-This partly reverts 2aea4bd7d0ced77a7d0778517b4505af5dea2dac
----
- build-aux/flatpak/org.gnome.Builder.json | 7 ++++---
- meson.build | 2 +-
- src/gstyle/gstyle-color-panel.c | 2 +-
- src/plugins/devhelp/gbp-devhelp-page.c | 2 +-
- src/plugins/open-with-external/gbp-owe-workbench-addin.c | 2 +-
- 5 files changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/build-aux/flatpak/org.gnome.Builder.json b/build-aux/flatpak/org.gnome.Builder.json
-index 02ac31ede..a32d29b92 100644
---- a/build-aux/flatpak/org.gnome.Builder.json
-+++ b/build-aux/flatpak/org.gnome.Builder.json
-@@ -601,15 +601,16 @@
- "name" : "libportal",
- "config-opts" : [
- "--libdir=/app/lib",
-- "--buildtype=debugoptimized"
-+ "--buildtype=debugoptimized",
-+ "-Dbackends=gtk3"
- ],
- "buildsystem" : "meson",
- "builddir" : true,
- "sources" : [
- {
- "type" : "archive",
-- "url" : "https://github.com/flatpak/libportal/releases/download/0.4/libportal-0.4.tar.xz",
-- "sha256" : "3cd5f50907831cf236b40aa14c5a14ccbbf08828cecb3286efa82ce03cacef28"
-+ "url" : "https://github.com/flatpak/libportal/releases/download/0.5/libportal-0.5.tar.xz",
-+ "sha256" : "d8c8cb18a34e5eeb26a39c94044c955995b01de0e139caac5e18c076cf821b3b"
- }
- ]
- },
-diff --git a/meson.build b/meson.build
-index 01737034b..494e0d752 100644
---- a/meson.build
-+++ b/meson.build
-@@ -284,7 +284,7 @@ libjsonrpc_glib_dep = dependency('jsonrpc-glib-1.0', version: '>= 3.41.0')
- libm_dep = cc.find_library('m', required: false)
- libpangoft2_dep = dependency('pangoft2', version: '>= 1.38.0')
- libpeas_dep = dependency('libpeas-1.0', version: '>= 1.22.0')
--libportal_dep = dependency('libportal', version: '>= 0.3', required: false)
-+libportal_dep = dependency('libportal-gtk3', required: false)
- libtemplate_glib_dep = dependency('template-glib-1.0', version: '>= 3.28.0')
- libvte_dep = dependency('vte-2.91', version: '>= 0.65.0')
- libwebkit_dep = dependency('webkit2gtk-4.0', version: '>= 2.26', required: false)
-diff --git a/src/gstyle/gstyle-color-panel.c b/src/gstyle/gstyle-color-panel.c
-index 15742a7be..a6295c168 100644
---- a/src/gstyle/gstyle-color-panel.c
-+++ b/src/gstyle/gstyle-color-panel.c
-@@ -30,7 +30,7 @@
- #include "gstyle-color.h"
-
- #include <libportal/portal.h>
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
-
- #define HSV_TO_SCALE_FACTOR (1.0 / 256.0)
- #define CIELAB_L_TO_SCALE_FACTOR (100.0 / 256.0)
-diff --git a/src/plugins/devhelp/gbp-devhelp-page.c b/src/plugins/devhelp/gbp-devhelp-page.c
-index 5d5c52b0d..2ac788414 100644
---- a/src/plugins/devhelp/gbp-devhelp-page.c
-+++ b/src/plugins/devhelp/gbp-devhelp-page.c
-@@ -25,7 +25,7 @@
- #include <webkit2/webkit2.h>
-
- #include <libportal/portal.h>
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
-
- #include "gbp-devhelp-page.h"
- #include "gbp-devhelp-search.h"
-diff --git a/src/plugins/open-with-external/gbp-owe-workbench-addin.c b/src/plugins/open-with-external/gbp-owe-workbench-addin.c
-index 51d2da844..816fe643f 100644
---- a/src/plugins/open-with-external/gbp-owe-workbench-addin.c
-+++ b/src/plugins/open-with-external/gbp-owe-workbench-addin.c
-@@ -23,7 +23,7 @@
- #include "gbp-owe-workbench-addin.h"
-
- #include <libportal/portal.h>
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
-
- struct _GbpOweWorkbenchAddin
- {
---
-GitLab
-
diff --git a/gnu/packages/patches/gnome-screenshot-meson-0.60.patch b/gnu/packages/patches/gnome-screenshot-meson-0.60.patch
deleted file mode 100644
index c80ce9d6a3..0000000000
--- a/gnu/packages/patches/gnome-screenshot-meson-0.60.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Fixes build issue with Meson 0.60.0. Taken from upstream
-https://gitlab.gnome.org/GNOME/gnome-screenshot/-/merge_requests/57
-
-From b60dad3c2536c17bd201f74ad8e40eb74385ed9f Mon Sep 17 00:00:00 2001
-From: Jack Hill <jackhill@jackhill.us>
-Date: Thu, 18 Nov 2021 00:46:58 -0500
-Subject: [PATCH] meson: remove extraneous positional argument
-
-* data/meson.build (desktop_file)
- (metainfo_file): Remove extraneous positional argument.
-
-Closes #186
----
- data/meson.build | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index fd570b3..4e2e2e8 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -1,7 +1,6 @@
- gnome = import('gnome')
-
- desktop_file = i18n.merge_file(
-- 'desktop',
- type: 'desktop',
- input: 'org.gnome.Screenshot.desktop.in',
- output: 'org.gnome.Screenshot.desktop',
-@@ -23,7 +22,6 @@ if desktop_file_validate.found()
- endif
-
- metainfo_file = i18n.merge_file(
-- 'appdata',
- input: 'org.gnome.Screenshot.metainfo.xml.in',
- output: 'org.gnome.Screenshot.metainfo.xml',
- po_dir: join_paths(meson.current_source_dir(), '../po'),
---
-2.33.1
-
diff --git a/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch b/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch
deleted file mode 100644
index 08968b83a1..0000000000
--- a/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Don't redefine G_DEFINE_AUTOPTR_CLEANUP_FUNC when available in polkit.
-
-Taken from upstream:
-
- https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/1d0a08b5e25fea7b0e792ec9798e68a7c5606a75
-
-diff --git a/config.h.meson b/config.h.meson
-index b93fda8727..ff355d3062 100644
---- a/config.h.meson
-+++ b/config.h.meson
-@@ -33,3 +33,6 @@
-
- /* Define if fdwalk is available in libc */
- #mesondefine HAVE_FDWALK
-+
-+/* Define if polkit defines autocleanup functions */
-+#mesondefine HAVE_POLKIT_AUTOCLEANUP
-diff --git a/meson.build b/meson.build
-index 42ec01c566..778a34c6ef 100644
---- a/meson.build
-+++ b/meson.build
-@@ -169,6 +169,13 @@ cdata.set('HAVE_FDWALK',
- cc.has_function('fdwalk')
- )
-
-+polkit_has_autocleanup = cc.compiles(
-+ '#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
-+ #include <polkitagent/polkitagent.h>
-+ void main(void) { g_autoptr(PolkitAgentListener) agent = NULL; }',
-+ dependencies: polkit_dep)
-+cdata.set('HAVE_POLKIT_AUTOCLEANUP', polkit_has_autocleanup)
-+
- buildtype = get_option('buildtype')
- if buildtype != 'plain'
- all_warnings = [
-diff --git a/src/shell-polkit-authentication-agent.h b/src/shell-polkit-authentication-agent.h
-index 55b46af110..4f14749563 100644
---- a/src/shell-polkit-authentication-agent.h
-+++ b/src/shell-polkit-authentication-agent.h
-@@ -14,8 +14,10 @@
-
- G_BEGIN_DECLS
-
-+#ifndef HAVE_POLKIT_AUTOCLEANUP
- /* Polkit doesn't have g_autoptr support, thus we have to manually set the autoptr function here */
- G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitAgentListener, g_object_unref)
-+#endif
-
- #define SHELL_TYPE_POLKIT_AUTHENTICATION_AGENT (shell_polkit_authentication_agent_get_type())
-
diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch
new file mode 100644
index 0000000000..8bb86467c0
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch
@@ -0,0 +1,173 @@
+Names of libraries included in typelib files are opened by dlopen.
+Here we add the full path.
+
+This patch was provided by Luca Bruno <lucabru@src.gnome.org>,
+for 'gobject-introspection' 1.40.0 in Nix.
+
+It has since been updated to work with newer versions of
+gobject-introspection.
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index 1d39ab84..e12ed24e 100644
+--- a/giscanner/scannermain.py
++++ b/giscanner/scannermain.py
+@@ -95,6 +95,39 @@ def get_windows_option_group(parser):
+ return group
+
+
++def _get_default_fallback_libpath():
++ # Newer multiple-output-optimized stdenv has an environment variable
++ # $outputLib which in turn specifies another variable which then is used as
++ # the destination for the library contents (${!outputLib}/lib).
++ store_path = os.environ.get(os.environ.get("outputLib")) if "outputLib" in os.environ else None
++ if store_path is None:
++ outputs = os.environ.get("outputs", "out").split()
++ if "lib" in outputs:
++ # For multiple output derivations let's try whether there is a $lib
++ # environment variable and use that as the base store path.
++ store_path = os.environ.get("lib")
++ elif "out" in outputs:
++ # Otherwise we have a single output derivation, so the libraries
++ # most certainly will end up in "$out/lib".
++ store_path = os.environ.get("out")
++
++ if store_path is not None:
++ # Even if we have a $lib as output, there still should be a $lib/lib
++ # directory.
++ return os.path.join(store_path, 'lib')
++ else:
++ # If we haven't found a possible scenario, let's return an empty string
++ # so that the shared library won't be prepended with a path.
++ #
++ # Note that this doesn't mean that all hope is lost, because after all
++ # we can still use --fallback-library-path to set one.
++ #
++ # Also, we're not returning None, because that would make it very
++ # difficult to disable adding fallback paths altogether using something
++ # like: --fallback-library-path=""
++ return ""
++
++
+ def _get_option_parser():
+ parser = optparse.OptionParser('%prog [options] sources',
+ version='%prog ' + giscanner.__version__)
+@@ -220,6 +253,10 @@ match the namespace prefix.""")
+ parser.add_option("", "--compiler",
+ action="store", dest="compiler", default=None,
+ help="the C compiler to use internally")
++ parser.add_option("", "--fallback-library-path",
++ action="store", dest="fallback_libpath",
++ default=_get_default_fallback_libpath(),
++ help="Path to prepend to unknown shared libraries")
+
+ group = get_preprocessor_option_group(parser)
+ parser.add_option_group(group)
+diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
+index 9f8ab5df..8aa37c99 100644
+--- a/giscanner/shlibs.py
++++ b/giscanner/shlibs.py
+@@ -57,6 +57,14 @@ def _ldd_library_pattern(library_name):
+ $""" % re.escape(library_name), re.VERBOSE)
+
+
++def _ldd_library_guix_pattern(library_name):
++ store_dir = re.escape(
++ os.environ.get("NIX_STORE", default="/gnu/store")
++ )
++ pattern = r'(%s(?:/[^/]*)+lib%s[^A-Za-z0-9_-][^\s\(\)]*)'
++ return re.compile(pattern % (store_dir, re.escape(library_name)))
++
++
+ # This is a what we do for non-la files. We assume that we are on an
+ # ELF-like system where ldd exists and the soname extracted with ldd is
+ # a filename that can be opened with dlopen().
+@@ -108,7 +116,8 @@ def _resolve_non_libtool(options, binary, libraries):
+ output = output.decode("utf-8", "replace")
+
+ shlibs = resolve_from_ldd_output(libraries, output)
+- return list(map(sanitize_shlib_path, shlibs))
++ fallback_libpath = options.fallback_libpath or "";
++ return list(map(lambda p: os.path.join(fallback_libpath, p), map(sanitize_shlib_path, shlibs)))
+
+
+ def sanitize_shlib_path(lib):
+@@ -117,19 +126,18 @@ def sanitize_shlib_path(lib):
+ # In case we get relative paths on macOS (like @rpath) then we fall
+ # back to the basename as well:
+ # https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222
+- if sys.platform == "darwin":
+- if not os.path.isabs(lib):
+- return os.path.basename(lib)
+- return lib
+- else:
++
++ # Always use absolute paths if available
++ if not os.path.isabs(lib):
+ return os.path.basename(lib)
++ return lib
+
+
+ def resolve_from_ldd_output(libraries, output):
+ patterns = {}
+ for library in libraries:
+ if not os.path.isfile(library):
+- patterns[library] = _ldd_library_pattern(library)
++ patterns[library] = (_ldd_library_pattern(library), _ldd_library_guix_pattern(library))
+ if len(patterns) == 0:
+ return []
+
+@@ -141,8 +149,12 @@ def resolve_from_ldd_output(libraries, output):
+ if line.endswith(':'):
+ continue
+ for word in line.split():
+- for library, pattern in patterns.items():
+- m = pattern.match(word)
++ for library, (pattern, guix_pattern) in patterns.items():
++ store_dir = os.environ.get("NIX_STORE", default="/gnu/store")
++ if line.find(store_dir) != -1:
++ m = guix_pattern.match(word)
++ else:
++ m = pattern.match(word)
+ if m:
+ del patterns[library]
+ shlibs.append(m.group())
+diff --git a/giscanner/utils.py b/giscanner/utils.py
+index 31c7ea48..630002a8 100644
+--- a/giscanner/utils.py
++++ b/giscanner/utils.py
+@@ -114,16 +114,11 @@ def extract_libtool_shlib(la_file):
+ if dlname is None:
+ return None
+
+- # Darwin uses absolute paths where possible; since the libtool files never
+- # contain absolute paths, use the libdir field
+- if platform.system() == 'Darwin':
+- dlbasename = os.path.basename(dlname)
+- libdir = _extract_libdir_field(la_file)
+- if libdir is None:
+- return dlbasename
+- return libdir + '/' + dlbasename
+- # Older libtools had a path rather than the raw dlname
+- return os.path.basename(dlname)
++ dlbasename = os.path.basename(dlname)
++ libdir = _extract_libdir_field(la_file)
++ if libdir is None:
++ return dlbasename
++ return libdir + '/' + dlbasename
+
+
+ # Returns arguments for invoking libtool, if applicable, otherwise None
+diff --git a/tests/scanner/test_shlibs.py b/tests/scanner/test_shlibs.py
+index a8337c60..7f123103 100644
+--- a/tests/scanner/test_shlibs.py
++++ b/tests/scanner/test_shlibs.py
+@@ -40,7 +40,8 @@ class TestLddParser(unittest.TestCase):
+
+ self.assertEqual(
+ sanitize_shlib_path('/foo/bar'),
+- '/foo/bar' if sys.platform == 'darwin' else 'bar')
++ # Always use an absolute filename for Guix
++ '/foo/bar')
+
+ def test_unresolved_library(self):
+ output = ''
diff --git a/gnu/packages/patches/gobject-introspection-cc-1.72.patch b/gnu/packages/patches/gobject-introspection-cc-1.72.patch
new file mode 100644
index 0000000000..d3b1df82af
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-cc-1.72.patch
@@ -0,0 +1,15 @@
+Use gcc as the default C compiler if CC is not set.
+
+diff --git a/giscanner/__init__.py b/giscanner/__init__.py
+index 7c2f365a..607fe341 100644
+--- a/giscanner/__init__.py
++++ b/giscanner/__init__.py
+@@ -21,6 +21,8 @@ import os
+ builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR')
+ if builddir is not None:
+ __path__.append(os.path.join(builddir, 'giscanner')) # type: ignore # mypy issue #1422
++if not 'CC' in os.environ:
++ os.environ['CC'] = 'gcc'
+ try:
+ from ._version import __version__
+ except ImportError:
diff --git a/gnu/packages/patches/gpaste-fix-paths.patch b/gnu/packages/patches/gpaste-fix-paths.patch
index be63878fe6..bacecd61a9 100644
--- a/gnu/packages/patches/gpaste-fix-paths.patch
+++ b/gnu/packages/patches/gpaste-fix-paths.patch
@@ -1,5 +1,7 @@
This is copied from NixOS, which is under MIT licence.
https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/
+diff --git a/src/gnome-shell/extension.js b/src/gnome-shell/extension.js
+index c8773fd6..9efbed67 100644
--- a/src/gnome-shell/extension.js
+++ b/src/gnome-shell/extension.js
@@ -6,6 +6,8 @@
@@ -10,15 +12,34 @@ https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/
+
imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
imports.gi.versions.GLib = '2.0';
- imports.gi.versions.GPaste = '1.0';
+ imports.gi.versions.GPaste = '2';
+diff --git a/src/gnome-shell/prefs.js b/src/gnome-shell/prefs.js
+index 32244ab2..74b85572 100644
--- a/src/gnome-shell/prefs.js
+++ b/src/gnome-shell/prefs.js
@@ -6,6 +6,8 @@
- const Gettext = imports.gettext;
+ imports.gi.versions.GPasteGtk = '4';
+imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
+
- //const { GPaste } = imports.gi;
-
const ExtensionUtils = imports.misc.extensionUtils;
+
+ const { GPasteGtk } = imports.gi;
+diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpaste-settings.c
+index 7e53eb64..57c399fc 100644
+--- a/src/libgpaste/gpaste/gpaste-settings.c
++++ b/src/libgpaste/gpaste/gpaste-settings.c
+@@ -1013,7 +1013,11 @@ create_g_settings (void)
+ }
+ else
+ {
+- return g_settings_new (G_PASTE_SETTINGS_NAME);
++ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library
++ GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL);
++ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE);
++ g_settings_schema_source_unref (schema_source);
++ return g_settings_new_full (schema, NULL, NULL);
+ }
+ }
+
diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch
deleted file mode 100644
index 1c9d77cfba..0000000000
--- a/gnu/packages/patches/gspell-dash-test.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider
-this a valid spelling. Skip it.
-
-TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed.
-See https://bugzilla.gnome.org/show_bug.cgi?id=772406.
---- a/testsuite/test-checker.c 2017-03-24 09:50:50.000000000 -0400
-+++ b/testsuite/test-checker.c 2017-06-15 21:47:07.116173895 -0400
-@@ -105,10 +105,11 @@
- * be considered deprecated, it is better to use hunspell, so WONTFIX.
- * For more details, see:
- * https://bugzilla.gnome.org/show_bug.cgi?id=772406
-+ *
-+ * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
-+ * g_assert_no_error (error);
-+ * g_assert (correctly_spelled);
- */
-- correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
-- g_assert_no_error (error);
-- g_assert (correctly_spelled);
-
- correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error);
- g_assert_no_error (error);
diff --git a/gnu/packages/patches/hedgewars-network-bsd.patch b/gnu/packages/patches/hedgewars-network-bsd.patch
deleted file mode 100644
index 311ce8bf09..0000000000
--- a/gnu/packages/patches/hedgewars-network-bsd.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From f813f3d5b63bb5be1b5e0b44930e77656c547aad Mon Sep 17 00:00:00 2001
-From: Jens Petersen <none@none>
-Date: Wed, 8 Jul 2020 17:02:45 +0300
-Subject: [PATCH] update server network
-
----
- gameServer/Actions.hs | 2 +-
- gameServer/CMakeLists.txt | 3 ++-
- gameServer/ClientIO.hs | 4 ++--
- gameServer/CoreTypes.hs | 2 +-
- gameServer/OfficialServer/checker.hs | 5 ++---
- gameServer/Utils.hs | 6 +-----
- gameServer/hedgewars-server.cabal | 3 ++-
- gameServer/hedgewars-server.hs | 5 +++--
- 8 files changed, 14 insertions(+), 16 deletions(-)
-
-diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs
-index 125d6ea832..c42d17b9a9 100644
---- a/gameServer/Actions.hs
-+++ b/gameServer/Actions.hs
-@@ -709,7 +709,7 @@ processAction RestartServer = do
- args <- gets (runArgs . serverInfo)
- io $ do
- noticeM "Core" "Closing listening socket"
-- sClose sock
-+ close sock
- noticeM "Core" "Spawning new server"
- _ <- createProcess (proc "./hedgewars-server" args)
- return ()
-diff --git a/gameServer/CMakeLists.txt b/gameServer/CMakeLists.txt
-index 5f2c882563..e71650c70c 100644
---- a/gameServer/CMakeLists.txt
-+++ b/gameServer/CMakeLists.txt
-@@ -9,7 +9,8 @@ check_haskell_package_exists(base "Control.Exception" mask 1)
- check_haskell_package_exists(containers "Data.Map" size 1)
- check_haskell_package_exists(vector "Data.Vector" length 1)
- check_haskell_package_exists(bytestring "Data.ByteString" pack 1)
--check_haskell_package_exists(network "Network.BSD" getHostName 0)
-+check_haskell_package_exists(network "Network.Socket" defaultHints 0)
-+check_haskell_package_exists(network-bsd "Network.BSD" getHostName 0)
- check_haskell_package_exists(time "Data.Time" getCurrentTime 0)
- check_haskell_package_exists(mtl "Control.Monad.State" fix 1)
- check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1)
-diff --git a/gameServer/ClientIO.hs b/gameServer/ClientIO.hs
-index 46dd40ed9f..0c97bde932 100644
---- a/gameServer/ClientIO.hs
-+++ b/gameServer/ClientIO.hs
-@@ -23,7 +23,7 @@ import qualified Control.Exception as Exception
- import Control.Monad.State
- import Control.Concurrent.Chan
- import Control.Concurrent
--import Network
-+import Network.Socket hiding (recv)
- import Network.Socket.ByteString
- import qualified Data.ByteString.Char8 as B
- ----------------
-@@ -90,7 +90,7 @@ clientSendLoop s tId chan ci = do
- sendAll s $ B.unlines answer `B.snoc` '\n'
-
- if isQuit answer then
-- sClose s
-+ close s
- else
- clientSendLoop s tId chan ci
-
-diff --git a/gameServer/CoreTypes.hs b/gameServer/CoreTypes.hs
-index f547df483a..72f35807e3 100644
---- a/gameServer/CoreTypes.hs
-+++ b/gameServer/CoreTypes.hs
-@@ -23,7 +23,7 @@ import Control.Concurrent
- import Data.Word
- import qualified Data.Map as Map
- import Data.Time
--import Network
-+import Network.Socket
- import Data.Function
- import Data.ByteString.Char8 as B
- import Data.Unique
-diff --git a/gameServer/OfficialServer/checker.hs b/gameServer/OfficialServer/checker.hs
-index 37df3208b9..b4ecb8fc57 100644
---- a/gameServer/OfficialServer/checker.hs
-+++ b/gameServer/OfficialServer/checker.hs
-@@ -28,8 +28,7 @@ import System.Directory
- import Control.Monad.State
- import Control.Concurrent.Chan
- import Control.Concurrent
--import Network
--import Network.BSD
-+import Network.BSD hiding (recv)
- import Network.Socket hiding (recv, sClose)
- import Network.Socket.ByteString
- import qualified Data.ByteString.Char8 as B
-@@ -207,7 +206,7 @@ main = withSocketsDo . forever $ do
-
- Exception.bracket
- setupConnection
-- (\s -> noticeM "Core" "Shutting down" >> sClose s)
-+ (\s -> noticeM "Core" "Shutting down" >> close s)
- (session login password (d ++ "/.hedgewars") exeFullname dataPrefix)
- where
- setupConnection = do
-diff --git a/gameServer/Utils.hs b/gameServer/Utils.hs
-index 3d81b7f7c6..9fd80c01ba 100644
---- a/gameServer/Utils.hs
-+++ b/gameServer/Utils.hs
-@@ -41,11 +41,7 @@ import CoreTypes
-
-
- sockAddr2String :: SockAddr -> IO B.ByteString
--sockAddr2String (SockAddrInet _ hostAddr) = liftM B.pack $ inet_ntoa hostAddr
--sockAddr2String (SockAddrInet6 _ _ (a, b, c, d) _) =
-- return $ B.pack $ (foldr1 (.)
-- $ List.intersperse (':':)
-- $ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n 65536) [a, b, c, d]) []
-+sockAddr2String = liftM (B.pack . fromJust . fst) . getNameInfo [] True False
-
- maybeRead :: Read a => String -> Maybe a
- maybeRead s = case reads s of
-diff --git a/gameServer/hedgewars-server.cabal b/gameServer/hedgewars-server.cabal
-index 3c7f2418c9..9f764fd997 100644
---- a/gameServer/hedgewars-server.cabal
-+++ b/gameServer/hedgewars-server.cabal
-@@ -57,7 +57,8 @@ Executable checker
- containers,
- vector,
- bytestring,
-- network >= 2.3 && < 3.0,
-+ network >= 2.3,
-+ network-bsd,
- mtl >= 2,
- sandi,
- hslogger,
-diff --git a/gameServer/hedgewars-server.hs b/gameServer/hedgewars-server.hs
-index e47ae2891d..7e6ab8fa38 100644
---- a/gameServer/hedgewars-server.hs
-+++ b/gameServer/hedgewars-server.hs
-@@ -50,10 +50,11 @@ server si = do
- proto <- getProtocolNumber "tcp"
- E.bracket
- (socket AF_INET Stream proto)
-- sClose
-+ close
- (\sock -> do
- setSocketOption sock ReuseAddr 1
-- bindSocket sock (SockAddrInet (listenPort si) iNADDR_ANY)
-+ iNADDR_ANY <- addrAddress . head <$> getAddrInfo Nothing (Just "0") (Just (show (listenPort si)))
-+ bind sock iNADDR_ANY
- listen sock maxListenQueue
- startServer si{serverSocket = Just sock}
- )
diff --git a/gnu/packages/patches/libgda-cve-2021-39359.patch b/gnu/packages/patches/libgda-cve-2021-39359.patch
new file mode 100644
index 0000000000..5e14e79393
--- /dev/null
+++ b/gnu/packages/patches/libgda-cve-2021-39359.patch
@@ -0,0 +1,33 @@
+From bebdffb4de586fb43fd07ac549121f4b22f6812d Mon Sep 17 00:00:00 2001
+From: "Douglas R. Reno" <renodr@linuxfromscratch.org>
+Date: Mon, 18 Oct 2021 13:18:01 -0500
+Subject: [PATCH] Fix CVE-2021-39359 by forcing TLS certificate validation
+
+This was done by adding "ssl-use-system-ca-file", TRUE to the options
+for each soup_session_new_with_options() call that was made.
+
+Tested on Linux From Scratch 11.0 and Debian 11.
+
+Fixes #249
+---
+ providers/web/gda-web-provider.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/providers/web/gda-web-provider.c b/providers/web/gda-web-provider.c
+index cf8d14dc3..cc818895f 100644
+--- a/providers/web/gda-web-provider.c
++++ b/providers/web/gda-web-provider.c
+@@ -355,8 +355,8 @@ gda_web_provider_open_connection (GdaServerProvider *provider, GdaConnection *cn
+ g_rec_mutex_init (& (cdata->mutex));
+ cdata->server_id = NULL;
+ cdata->forced_closing = FALSE;
+- cdata->worker_session = soup_session_new ();
+- cdata->front_session = soup_session_new_with_options ("max-conns-per-host", 1, NULL);
++ cdata->worker_session = soup_session_new_with_options ("ssl-use-system-ca-file", TRUE, NULL);
++ cdata->front_session = soup_session_new_with_options ("max-conns-per-host", 1, "ssl-use-system-ca-file", TRUE, NULL);
+ if (use_ssl) {
+ server_url = g_string_new ("https://");
+ g_print ("USING SSL\n");
+--
+GitLab
+
diff --git a/gnu/packages/patches/libgda-fix-build.patch b/gnu/packages/patches/libgda-fix-build.patch
new file mode 100644
index 0000000000..35f5b9694b
--- /dev/null
+++ b/gnu/packages/patches/libgda-fix-build.patch
@@ -0,0 +1,131 @@
+Taken from upstream.
+
+From 4c2369083c5941ffada100e4a7e4702e681585e3 Mon Sep 17 00:00:00 2001
+From: taozuhong <taozuhong@gmail.com>
+Date: Tue, 11 Jan 2022 15:03:28 +0800
+Subject: [PATCH] fixed compile error
+
+---
+ libgda/Gda-6.0-custom.vala | 3 +++
+ libgda/sql-parser/lemon.c | 39 +++++++++++++++++++-------------------
+ 2 files changed, 22 insertions(+), 20 deletions(-)
+
+diff --git a/libgda/Gda-6.0-custom.vala b/libgda/Gda-6.0-custom.vala
+index d046c5c24..4d1408648 100644
+--- a/libgda/Gda-6.0-custom.vala
++++ b/libgda/Gda-6.0-custom.vala
+@@ -92,7 +92,10 @@ namespace Gda {
+ [CCode (cheader_filename = "libgda.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gda_sql_statement_get_type ()")]
+ [Compact]
+ public class SqlStatement {
++ #if VALA_0_50
++ #else
+ public static Gda.SqlStatementContentsInfo get_contents_infos (Gda.SqlStatementType type);
++ #endif
+ }
+
+ }
+diff --git a/libgda/sql-parser/lemon.c b/libgda/sql-parser/lemon.c
+index a6fe75bb9..a3c727777 100644
+--- a/libgda/sql-parser/lemon.c
++++ b/libgda/sql-parser/lemon.c
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <assert.h>
+ #include <gio/gio.h>
+
+@@ -40,7 +41,7 @@ static const char **made_files = NULL;
+ static int made_files_count = 0;
+ static int successful_exit = 0;
+
+-static char *msort(char*,char**,int(*)(const char*,const char*));
++static uintptr_t msort(uintptr_t, uintptr_t*, int(*)(const uintptr_t, const uintptr_t));
+
+ /*
+ ** Compilers are getting increasingly pedantic about type conversions
+@@ -396,8 +397,7 @@ static int actioncmp(
+ static struct action *Action_sort(
+ struct action *ap
+ ){
+- ap = (struct action *)msort((char *)ap,(char **)&ap->next,
+- (int(*)(const char*,const char*))actioncmp);
++ ap = (struct action *)msort(ap, &ap->next, actioncmp);
+ return ap;
+ }
+
+@@ -1277,14 +1277,14 @@ void Configlist_closure(struct lemon *lemp)
+
+ /* Sort the configuration list */
+ void Configlist_sort(){
+- current = (struct config *)msort((char *)current,(char **)&(current->next),Configcmp);
++ current = (struct config *)msort(current, &(current->next), Configcmp);
+ currentend = 0;
+ return;
+ }
+
+ /* Sort the basis configuration list */
+ void Configlist_sortbasis(){
+- basis = (struct config *)msort((char *)current,(char **)&(current->bp),Configcmp);
++ basis = (struct config *)msort(current, &(current->bp), Configcmp);
+ basisend = 0;
+ return;
+ }
+@@ -1577,7 +1577,7 @@ int main(G_GNUC_UNUSED int argc, char **argv)
+ /*
+ ** Return a pointer to the next structure in the linked list.
+ */
+-#define NEXT(A) (*(char**)(((unsigned long)A)+offset))
++#define NEXT(A) (*(uintptr_t *)(((uintptr_t)A)+offset))
+
+ /*
+ ** Inputs:
+@@ -1594,13 +1594,13 @@ int main(G_GNUC_UNUSED int argc, char **argv)
+ ** The "next" pointers for elements in the lists a and b are
+ ** changed.
+ */
+-static char *merge(
+- char *a,
+- char *b,
+- int (*cmp)(const char*,const char*),
+- int offset
++static uintptr_t merge(
++ uintptr_t a,
++ uintptr_t b,
++ int (*cmp)(const uintptr_t, const uintptr_t),
++ uintptr_t offset
+ ){
+- char *ptr, *head;
++ uintptr_t ptr, *head;
+
+ if( a==0 ){
+ head = b;
+@@ -1646,16 +1646,15 @@ static char *merge(
+ ** The "next" pointers for elements in list are changed.
+ */
+ #define LISTSIZE 30
+-static char *msort(
+- char *list,
+- char **next,
+- int (*cmp)(const char*,const char*)
++static uintptr_t msort(
++ uintptr_t list,
++ uintptr_t *next,
++ int (*cmp)(const uintptr_t, const uintptr_t)
+ ){
+- unsigned long offset;
+- char *ep;
+- char *set[LISTSIZE];
++ uintptr_t ep;
++ uintptr_t set[LISTSIZE];
+ int i;
+- offset = (unsigned long)next - (unsigned long)list;
++ uintptr_t offset = (uintptr_t)next - (uintptr_t)list;
+ for(i=0; i<LISTSIZE; i++) set[i] = 0;
+ while( list ){
+ ep = list;
+--
+GitLab
+
diff --git a/gnu/packages/patches/libgda-fix-missing-initialization.patch b/gnu/packages/patches/libgda-fix-missing-initialization.patch
new file mode 100644
index 0000000000..59c4a21e28
--- /dev/null
+++ b/gnu/packages/patches/libgda-fix-missing-initialization.patch
@@ -0,0 +1,26 @@
+Taken from upstream.
+
+From a4a3930ecfc4dc815b7a18dbb7338c165ea08f4e Mon Sep 17 00:00:00 2001
+From: Pavlo Solntsev <p.sun.fun@gmail.com>
+Date: Sun, 19 Sep 2021 22:54:33 -0500
+Subject: [PATCH] Test: Fixing missing initialization
+
+---
+ libgda/thread-wrapper/test-itsignaler.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libgda/thread-wrapper/test-itsignaler.c b/libgda/thread-wrapper/test-itsignaler.c
+index d0c15ae17..7ac4e958a 100644
+--- a/libgda/thread-wrapper/test-itsignaler.c
++++ b/libgda/thread-wrapper/test-itsignaler.c
+@@ -203,6 +203,7 @@ test2 (void)
+ CbData cbdata;
+ cbdata.counter = 0;
+ cbdata.loop = loop;
++ cbdata.its = its;
+ itsignaler_add (its, NULL, (ITSignalerFunc) source_callback, &cbdata, NULL);
+ itsignaler_unref (its);
+ g_mutex_unlock (&mutex);
+--
+GitLab
+
diff --git a/gnu/packages/patches/libgda-skip-postgresql-tests.patch b/gnu/packages/patches/libgda-skip-postgresql-tests.patch
new file mode 100644
index 0000000000..28fef585ac
--- /dev/null
+++ b/gnu/packages/patches/libgda-skip-postgresql-tests.patch
@@ -0,0 +1,91 @@
+Taken from upstream.
+
+From b0cd77e588620465b78f7c017d3f240e13936aa3 Mon Sep 17 00:00:00 2001
+From: Pavlo Solntsev <p.sun.fun@gmail.com>
+Date: Sun, 19 Sep 2021 22:51:38 -0500
+Subject: [PATCH] Test: Skip test if no server available
+
+Two variables will be checked. If they set
+and provide all needed information the test
+will be executed. If they are not set, the test
+will return TRUE and will terminate with
+termination status EXIT_SUCCESS.
+---
+ tests/db/check-db-catalog-postgresql.c | 16 ++++++++++++++++
+ tests/test-server-operation-postgresql.c | 16 ++++++++++++++++
+ 2 files changed, 32 insertions(+)
+
+diff --git a/tests/db/check-db-catalog-postgresql.c b/tests/db/check-db-catalog-postgresql.c
+index 5b8e9395c..bf9a8942c 100644
+--- a/tests/db/check-db-catalog-postgresql.c
++++ b/tests/db/check-db-catalog-postgresql.c
+@@ -25,6 +25,9 @@
+ #include <libgda/libgda.h>
+ #include "../test-cnc-utils.h"
+
++#define PROVIDER_DB_CREATE_PARAMS "POSTGRESQL_DBCREATE_PARAMS"
++#define PROVIDER_CNC_PARAMS "POSTGRESQL_CNC_PARAMS"
++
+ typedef struct {
+ GdaDbCatalog *catalog;
+ GdaConnection *cnc;
+@@ -359,6 +362,19 @@ main (gint argc,
+ {
+ setlocale (LC_ALL,"");
+
++ const gchar *db_create_str;
++ const gchar *cnc_params;
++
++ db_create_str = g_getenv (PROVIDER_DB_CREATE_PARAMS);
++ cnc_params = g_getenv (PROVIDER_CNC_PARAMS);
++
++ if (!db_create_str || !cnc_params) {
++ g_print ("Please set POSTGRESQL_DBCREATE_PARAMS and POSTGRESQL_CNC_PARAMS variable"
++ "with dbname, host, user and port (usually 5432)\n");
++ g_print ("Test will not be performed\n");
++ return EXIT_SUCCESS;
++ }
++
+ g_test_init (&argc,&argv,NULL);
+
+ g_test_add ("/test-db-postgresql/meta-tables",
+diff --git a/tests/test-server-operation-postgresql.c b/tests/test-server-operation-postgresql.c
+index 37796c4be..860f41a18 100644
+--- a/tests/test-server-operation-postgresql.c
++++ b/tests/test-server-operation-postgresql.c
+@@ -38,9 +38,12 @@
+ #include <glib/gi18n.h>
+ #include <locale.h>
+ #include <libgda/libgda.h>
++/*#include <stdlib.h>*/
+ #include "test-cnc-utils.h"
+
+ #define PROVIDER_NAME "PostgreSQL"
++#define PROVIDER_DB_CREATE_PARAMS "POSTGRESQL_DBCREATE_PARAMS"
++#define PROVIDER_CNC_PARAMS "POSTGRESQL_CNC_PARAMS"
+
+ #define GDA_PGSQL_ERROR_HANDLE(e) (g_print("Error: %s: %s\n", G_STRLOC, e && e->message ? e->message : "No default"));
+
+@@ -1335,6 +1338,19 @@ main(gint argc, gchar *argv[])
+ {
+ setlocale (LC_ALL,"");
+
++ const gchar *db_create_str;
++ const gchar *cnc_params;
++
++ db_create_str = g_getenv (PROVIDER_DB_CREATE_PARAMS);
++ cnc_params = g_getenv (PROVIDER_CNC_PARAMS);
++
++ if (!db_create_str || !cnc_params) {
++ g_print ("Please set POSTGRESQL_DBCREATE_PARAMS and POSTGRESQL_CNC_PARAMS variable"
++ "with dbname, host, user and port (usually 5432)\n");
++ g_print ("Test will not be performed\n");
++ return EXIT_SUCCESS;
++ }
++
+ g_test_init (&argc,&argv,NULL);
+
+ g_test_add ("/test-server-operation-sqlite/old-so-module",
+--
+GitLab
+
diff --git a/gnu/packages/patches/nautilus-add-libportal-gtk3.patch b/gnu/packages/patches/nautilus-add-libportal-gtk3.patch
deleted file mode 100644
index cefa47cc64..0000000000
--- a/gnu/packages/patches/nautilus-add-libportal-gtk3.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 55cfd66ccca391fc144f5863ff6bfc1f3b137e2d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= <antoniojpfernandes@gmail.com>
-Date: Tue, 21 Dec 2021 17:42:27 +0000
-Subject: [PATCH] general: Add libportal-gtk3 dependency
-
-The portal-gtk3.h header has been moved into a separate library which
-binds gtk3 explicitly.
-
-https://github.com/flatpak/libportal/pull/53
----
- build-aux/flatpak/org.gnome.Nautilus.json | 5 +++-- ;; Changes removed in Guix
- build-aux/flatpak/org.gnome.Nautilus.yml | 3 ++- ;; Changes removed in Guix
- meson.build | 4 +++-
- src/meson.build | 1 +
- src/nautilus-files-view.c | 2 +-
- 5 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 927216636..4626fa0bb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -122,8 +122,10 @@ gnome_desktop = dependency('gnome-desktop-3.0', version: '>= 3.0.0')
- gtk = dependency('gtk+-3.0', version: '>= 3.22.27')
- libhandy = dependency('libhandy-1', version: '>= 1.1.90')
- libportal = []
-+libportal_gtk3 = []
- if get_option('libportal')
-- libportal = dependency('libportal', version: '>= 0.3')
-+ libportal = dependency('libportal', version: '>= 0.5')
-+ libportal_gtk3 = dependency('libportal-gtk3', version: '>= 0.5')
- endif
- selinux = []
- if get_option('selinux')
-diff --git a/src/meson.build b/src/meson.build
-index 682d6f3a3..d7fb76d53 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -285,6 +285,7 @@ nautilus_deps = [
- libgd_dep,
- libhandy,
- libportal,
-+ libportal_gtk3,
- nautilus_extension,
- selinux,
- tracker_sparql,
-diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
-index dfb7fb26c..a24005a11 100644
---- a/src/nautilus-files-view.c
-+++ b/src/nautilus-files-view.c
-@@ -93,7 +93,7 @@
-
- #ifdef HAVE_LIBPORTAL
- #include <libportal/portal.h>
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
- #endif
-
- /* Minimum starting update inverval */
---
-GitLab
-
diff --git a/gnu/packages/patches/network-manager-plugin-path.patch b/gnu/packages/patches/network-manager-plugin-path.patch
index ec6767aaac..cd2447cf03 100644
--- a/gnu/packages/patches/network-manager-plugin-path.patch
+++ b/gnu/packages/patches/network-manager-plugin-path.patch
@@ -3,39 +3,47 @@ From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@gnu.org>
Date: Wed, 3 Jul 2019 13:31:54 +0200
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
---- a/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:20:01.062917840 -0400
-+++ b/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:26:46.094397018 -0400
-@@ -211,6 +211,7 @@
- GSList * infos, *info;
- const char * conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
- const char * conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
-+ const char * conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
+Rebased by Maxim Cournoyer on 2022/08/23.
+
+diff --git a/src/core/vpn/nm-vpn-manager.c b/src/core/vpn/nm-vpn-manager.c
+index 6bf8edaee5..9bd960ba86 100644
+--- a/src/core/vpn/nm-vpn-manager.c
++++ b/src/core/vpn/nm-vpn-manager.c
+@@ -209,8 +209,9 @@ nm_vpn_manager_init(NMVpnManager *self)
+ NMVpnManagerPrivate *priv = NM_VPN_MANAGER_GET_PRIVATE(self);
+ GFile *file;
+ GSList *infos, *info;
+- const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
+- const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
++ const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
++ const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
++ const char *conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user();
/* Watch the VPN directory for changes */
file = g_file_new_for_path(conf_dir_lib);
-@@ -229,6 +230,14 @@
+@@ -229,6 +230,14 @@ nm_vpn_manager_init(NMVpnManager *self)
g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
}
-+ file = g_file_new_for_path (conf_dir_user);
-+ priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
-+ g_object_unref (file);
++ file = g_file_new_for_path(conf_dir_user);
++ priv->monitor_etc = g_file_monitor_directory(file, G_FILE_MONITOR_NONE, NULL, NULL);
++ g_object_unref(file);
+ if (priv->monitor_etc) {
+ priv->monitor_id_etc =
-+ g_signal_connect (priv->monitor_etc, "changed", G_CALLBACK (vpn_dir_changed), self);
++ g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
+ }
+
/* first read conf_dir_lib. The name files are not really user configuration, but
* plugin configuration. Hence we expect ~newer~ plugins to install their files
* in /usr/lib/NetworkManager. We want to prefer those files.
-@@ -243,6 +252,11 @@
+@@ -243,6 +252,11 @@ nm_vpn_manager_init(NMVpnManager *self)
try_add_plugin(self, info->data);
g_slist_free_full(infos, g_object_unref);
+ infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL);
+ for (info = infos; info; info = info->next)
-+ try_add_plugin (self, info->data);
-+ g_slist_free_full (infos, g_object_unref);
++ try_add_plugin(self, info->data);
++ g_slist_free_full(infos, g_object_unref);
+
priv->active_services = g_hash_table_new_full(nm_str_hash, g_str_equal, g_free, NULL);
}