summary refs log tree commit diff
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)
downloadguix-3d297a0017210f1dd135592efb10846840a8af88.tar.gz
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);
  }