M gnu/local.mk => gnu/local.mk +1 -0
@@ 1760,6 1760,7 @@ dist_patch_DATA = \
%D%/packages/patches/libphonenumber-reproducible-build.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
+ %D%/packages/patches/libsecret-fix-test-paths.patch \
%D%/packages/patches/libsepol-versioned-docbook.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtar-CVE-2021-33643-CVE-2021-33644.patch \
M gnu/packages/gnome.scm => gnu/packages/gnome.scm +1 -0
@@ 5291,6 5291,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
"mirror://gnome/sources/libsecret/"
(version-major+minor version) "/"
"libsecret-" version ".tar.xz"))
+ (patches (search-patches "libsecret-fix-test-paths.patch"))
(sha256
(base32
"081bj59ws08kb261cd1w1mkdkhfbzsjbbkkrm6wllvdyhgbhhg8n"))))
A gnu/packages/patches/libsecret-fix-test-paths.patch => gnu/packages/patches/libsecret-fix-test-paths.patch +37 -0
@@ 0,0 1,37 @@
+From 208989323211c756dff690115e5cbde5ef7491ce Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Sun, 10 Mar 2024 10:30:48 +0800
+Subject: [PATCH] meson: Use env.prepend() for test environment setup
+
+On NixOS packages are installed in separate prefixes.
+Starting from GLib / gobject-introspection 2.80, GLib introspection data
+is provided by GLib itself instead of gobject-introspection. This causes
+tests failures on NixOS because env.set() resets the environment and GLib
+is missing from GI_TYPELIB_PATH:
+
+gi.RepositoryError: Typelib file for namespace 'Gio', version '2.0' not found
+
+See also:
+https://gitlab.gnome.org/GNOME/gtk/-/commit/29e6cc58088ef37bfde364965cdebd2f7402f315
+---
+ libsecret/meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libsecret/meson.build b/libsecret/meson.build
+index 85ad68f..ea417ba 100644
+--- a/libsecret/meson.build
++++ b/libsecret/meson.build
+@@ -257,8 +257,8 @@ if get_option('introspection')
+ # env to be used in tests that use the typelib,
+ # to make sure they find the one for MockService
+ test_typelib_env = environment()
+- test_typelib_env.set('GI_TYPELIB_PATH', meson.current_build_dir())
+- test_typelib_env.set('LD_LIBRARY_PATH', meson.current_build_dir())
++ test_typelib_env.prepend('GI_TYPELIB_PATH', meson.current_build_dir())
++ test_typelib_env.prepend('LD_LIBRARY_PATH', meson.current_build_dir())
+
+ # Python Tests
+ pytest_names = [
+--
+GitLab
+