~ruther/guix-local

06ba3b09f40aeb9b924b0a9ccf9c65e5f682a3f5 — Liliana Marie Prikler 1 year, 9 months ago 2a5ab42
gnu: libsecret: Fix build.

* gnu/packages/patches/libsecret-fix-test-paths.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/gnome.scm (libsecret)[patches]: Use it here.
3 files changed, 39 insertions(+), 0 deletions(-)

M gnu/local.mk
M gnu/packages/gnome.scm
A gnu/packages/patches/libsecret-fix-test-paths.patch
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