Subject: [bug#60533] [PATCH] Update guile-g-golf.

From: Preston Firestone <[email-masked]>
Date: Tue, 3 Jan 2023 14:20:27 -0600

* guile-xyz.scm: bump guile-g-golf to version 0.8.0. This release works
under guix, if  a guile program relying on g-golf is run in a guix shell
like so: `guix shell guile-g-golf guile gtk -- [program]`.
---
 gnu/packages/guile-xyz.scm | 155 ++++++++++++++++++-------------------
 1 file changed, 74 insertions(+), 81 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 9c94764ab3..692ef9b50b 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2181,91 +2181,84 @@ (define-public guile-sly
     (license license:gpl3+)))

 (define-public guile-g-golf
-  (let ((commit   "1824633d37da3794f349d6829e9dac2cf89adaa8")
-        (revision "1010"))
-    (package
-      (name "guile-g-golf")
-      (version (git-version "0.1.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.savannah.gnu.org/git/g-golf.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
"0ncpqv6pbsx9fjmdzvzbjljnhqgw9pynqy9vr9aq35nb7rzrhfdf"))))
-      (build-system gnu-build-system)
-      (arguments
-       (list
-        #:configure-flags
-        #~(list "--with-guile-site=no")
-        #:phases
-        #~(modify-phases %standard-phases
-            (add-after 'unpack 'fix-guile-site-directory
-              (lambda _
-                (substitute* "configure.ac"
-                  (("SITEDIR=.*$")
-
"SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\";\n")
-                  (("SITECCACHEDIR=\"\\$libdir/g-golf/")
-                   "SITECCACHEDIR=\"$libdir/"))))
-            (add-before 'configure 'tests-work-arounds
-              (lambda* (#:key inputs #:allow-other-keys)
-                ;; In build environment, There is no /dev/tty
-                (substitute* "test-suite/tests/gobject.scm"
-                  (("/dev/tty") "/dev/null"))))
-            (add-before 'configure 'substitute-libs
-              (lambda* (#:key inputs outputs #:allow-other-keys)
-                (define (get lib)
-                  (search-input-file inputs (string-append "lib/" lib
".so")))
-
-                (let* ((libgi      (get "libgirepository-1.0"))
-                       (libglib    (get "libglib-2.0"))
-                       (libgobject (get "libgobject-2.0"))
-                       (libg-golf (string-append #$output
"/lib/libg-golf")))
-                  (substitute* "g-golf/init.scm"
-                    (("libgirepository-1.0") libgi)
-                    (("libglib-2.0") libglib)
-                    (("libgobject-2.0") libgobject)
-                    (("\\(dynamic-link \"libg-golf\"\\)")
-                     (format #f "~s"
-                             `(catch #t
-                                (lambda ()
-                                  (dynamic-link "libg-golf"))
-                                (lambda _
-                                  (dynamic-link ,libg-golf))))))
-                  (setenv "GUILE_AUTO_COMPILE" "0")
-                  #t)))
-            (add-before 'check 'start-xorg-server
-              (lambda* (#:key inputs #:allow-other-keys)
-                ;; The test suite requires a running X server.
-                (system "Xvfb :1 &")
-                (setenv "DISPLAY" ":1")
-                #t)))))
-      (inputs
-       (list guile-3.0 guile-lib glib))
-      (native-inputs
-       (list autoconf
-             automake
-             texinfo
-             gettext-minimal
-             libtool
-             pkg-config
-             ;; required for tests
-             gtk+
-             clutter
-             xorg-server-for-tests))
-      (propagated-inputs
-       (list gobject-introspection))
-      (home-page "https://www.gnu.org/software/g-golf/")
-      (synopsis "Guile bindings for GObject Introspection")
-      (description
-       "G-Golf (Gnome: (Guile Object Library for)) is a library for
developing
+  (package
+ (name "guile-g-golf")
+ (version "0.8.0")
+ (source (origin
+          (method url-fetch)
+          (uri
+           "
https://git.savannah.gnu.org/cgit/g-golf.git/snapshot/g-golf-0.8.0-a.1.tar.gz
")
+          (sha256
+           "1zqycqss0g9aqwmvrvsz43mmfxzi7dj3waxkb4w8ikdajjm7rd8r")))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+  (list #:configure-flags #~(list "--with-guile-site=no")
+        #:parallel-build? #f
+        #:phases #~(modify-phases %standard-phases
+     (add-after 'unpack 'fix-guile-site-directory
+       (lambda _
+ (substitute* "configure.ac"
+   (("SITEDIR=.*$")
+    "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\";\n")
+   (("SITECCACHEDIR=\"\\$libdir/g-golf/")
+    "SITECCACHEDIR=\"$libdir/"))))
+     (add-before 'configure 'tests-work-arounds
+       (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "test-suite/tests/gobject.scm"
+   (("/dev/tty")
+    "/dev/null"))))
+     (add-before 'configure 'substitute-libs
+       (lambda* (#:key inputs outputs #:allow-other-keys)
+ (define (get lib)
+   (search-input-file inputs
+      (string-append "lib/" lib
+     ".so")))
+ (let* ((libgi (get "libgirepository-1.0"))
+ (libglib (get "libglib-2.0"))
+ (libgobject (get "libgobject-2.0"))
+ (libg-golf (string-append #$output
+  "/lib/libg-golf")))
+   (substitute* "g-golf/init.scm"
+     (("libgirepository-1.0")
+      libgi)
+     (("libglib-2.0")
+      libglib)
+     (("libgobject-2.0")
+      libgobject)
+     (("\\(dynamic-link \"libg-golf\"\\)")
+      (format #f "~s"
+      `(catch #t
+ (lambda ()
+   (dynamic-link "libg-golf"))
+ (lambda _
+   (dynamic-link ,libg-golf))))))
+   (setenv "GUILE_AUTO_COMPILE" "0") #t)))
+     (add-before 'check 'start-xorg-server-for-testing
+       (lambda* (#:key inputs #:allow-other-keys)
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1") #t)))))
+ (inputs (list guile-3.0 guile-lib glib-next))
+ (native-inputs (list autoconf
+                      automake
+                      texinfo
+                      gettext-minimal
+                      libtool
+                      pkg-config
+                      ;; required for tests
+                      gtk+
+                      clutter
+                      xorg-server-for-tests
+      dbus))
+ (propagated-inputs (list gobject-introspection-next))
+ (home-page "https://www.gnu.org/software/g-golf/")
+ (synopsis "Guile bindings for GObject Introspection")
+ (description
+  "G-Golf (Gnome: (Guile Object Library for)) is a library for developing
 modern applications in Guile Scheme.  It comprises a direct binding to the
 GObject Introspection API and higher-level functionality for importing
Gnome
 libraries and making GObject classes (and methods) available in Guile's
 object-oriented programming system, GOOPS.")
-      (license license:lgpl3+))))
+ (license license:lgpl3+)))

 (define-public g-golf
   (deprecated-package "g-golf" guile-g-golf))
-- 
2.38.1