M gnu/local.mk => gnu/local.mk +1 -0
@@ 1572,6 1572,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-fibers-libevent-timeout.patch \
%D%/packages/patches/guile-fix-invalid-unicode-handling.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
+ %D%/packages/patches/guile-gi-fix-marshall-tests.patch \
%D%/packages/patches/guile-hurd-posix-spawn.patch \
%D%/packages/patches/guile-lzlib-gcc-14.patch \
%D%/packages/patches/guile-lzlib-hurd64.patch \
M gnu/packages/guile-xyz.scm => gnu/packages/guile-xyz.scm +31 -23
@@ 4476,37 4476,40 @@ list of components. This module takes care of that for you.")
(license license:lgpl3+)))
(define-public guile-gi
+ (let ((commit "388653ac9e95802d1a69c585aef1d60e35e6b71c")
+ (revision "0"))
(package
(name "guile-gi")
- (version "0.3.2")
+ (version (git-version "0.3.2" revision commit))
(source (origin
- (method url-fetch)
- (uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spk121/guile-gi.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "019mbhgyga57k2074kg97mh3qsa8ny9l0kjgqids8cg3c6vbjdby"))))
+ "1ndzqbgy5jbfm2fan6y31xfxdxglzjhgqib4c34b3w5inxzkrm6v"))
+ (patches (search-patches "guile-gi-fix-marshall-tests.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("CFLAGS=-Wno-error=incompatible-pointer-types"
- "--with-gnu-filesystem-hierarchy")
+ "--with-gnu-filesystem-hierarchy"
+ "--enable-hardening")
#:modules ((guix build glib-or-gtk-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim))
- #:disallowed-references ,(list gtk+ webkitgtk-for-gtk3)
+ #:disallowed-references ,(list grilo gtk+)
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'remove-dotted-circle-from-combining-character
- ;; The test/string.scm files contain ◌̀, which is a dotted circle
- ;; (U+25cc) followed by an upper combining character (U+0300). The
- ;; old guile 3.0.2 reader incorrectly ignores the dotted circle,
- ;; and parses it as the combining character alone, but the new
- ;; guile reader does not.
- ;; See https://github.com/spk121/guile-gi/issues/112
- (lambda* _
- (substitute* "test/string.scm"
- (("#\\\\◌̀") "#\\x0300"))))
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "test/value.scm"
+ ;; This test segfaults sometimes. Reported at
+ ;; <https://github.com/spk121/guile-gi/issues/143>.
+ (("\\(test-equal \"inout-closure\"")
+ "#;(test-equal \"inout-closure\""))))
(add-after 'unpack 'patch-references-to-extension
(lambda* (#:key outputs #:allow-other-keys)
(let ((effective (read-line
@@ 4534,20 4537,25 @@ list of components. This module takes care of that for you.")
(setenv "DISPLAY" ":1")
#t)))))
(native-inputs
- (list gettext-minimal
+ (list autoconf
+ automake
+ texinfo
+ gettext-minimal
`(,glib "bin") ; for glib-compile-resources
- libtool pkg-config xorg-server))
+ grilo
+ gtk+
+ libtool
+ pkg-config
+ xorg-server-for-tests))
(propagated-inputs (list gobject-introspection))
- (inputs (list guile-3.0 glib
- ;; For tests, only relevant when compiling natively
- gtk+ webkitgtk-for-gtk3))
+ (inputs (list guile-3.0 glib))
(home-page "https://github.com/spk121/guile-gi")
(synopsis "GObject bindings for Guile")
(description
"Guile-GI is a library for Guile that allows using GObject-based
libraries, such as GTK+3. Its README comes with the disclaimer: This is
pre-alpha code.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public guile2.2-gi
(package
A gnu/packages/patches/guile-gi-fix-marshall-tests.patch => gnu/packages/patches/guile-gi-fix-marshall-tests.patch +27 -0
@@ 0,0 1,27 @@
+From 776c456dc767a261e026865ab5c3a76fe68ff4a2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?No=C3=A9=20Lopez?= <noelopez@free.fr>
+Date: Tue, 12 Aug 2025 12:30:31 +0200
+Subject: [PATCH] Fix marshall tests
+
+See <https://github.com/spk121/guile-gi/pull/142>.
+
+---
+ test/marshall.scm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/marshall.scm b/test/marshall.scm
+index e15b3ee..fd826de 100644
+--- a/test/marshall.scm
++++ b/test/marshall.scm
+@@ -23,7 +23,7 @@
+ (("Marshall" "1.0")
+ #:renamer (protect* '(sizeof short int long size_t)))
+ (("GLib" "2.0")
+- #:renamer (protect* '(test-equal test-assert test-skip))))
++ #:renamer (protect* '(test-equal test-assert test-skip int))))
+
+ (define-syntax-rule (boolarray-input f)
+ (test-assert (symbol->string (quote f))
+--
+2.50.1
+