Subject: bug#53748: closed (Re: bug#53748: [PATCH]: Update g-golf to 0.0.1-1010-1824633.)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 08 Feb 2022 12:26:02 +0000

Your bug report

#53748: [PATCH]: Update g-golf to 0.0.1-1010-1824633.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
53748: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53748
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#53748: [PATCH]: Update g-golf to 0.0.1-1010-1824633.
From: Ludovic Courtès <[email-masked]>
To: Zhu Zihao <[email-masked]>
Cc: [email-masked]
Date: Tue, 08 Feb 2022 13:25:33 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Zhu Zihao <[email-masked]> skribis:

>>>From 62df1822ea5e58d97ae844c92f7bd30eb6556e57 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <[email-masked]>
> Date: Thu, 3 Feb 2022 22:27:40 +0800
> Subject: [PATCH 1/4] gnu: g-golf: Update to 0.0.1-1010-1824633.
>
> * gnu/packages/guile-xyz.scm (g-golf)[arguments]: Use G-Expression.
>
> <phases>: Add phase 'fix-guile-site-directory'. Patch 'configure.ac' before
> bootstrapping, avoid breaking configure script in accident.
>
> In phase 'substitute-libs', use `search-input-file` for searching libraries.
>
> In phase 'start-xorg-server', simplify the X server startup script.
>
> [inputs]: Remove gtk+ and clutter.
>
> Use label-less style.
>
> [native-inputs]: Add gtk+ and clutter, they're now only needed in test.
>
> Use label-less style.

[...]

>>>From da6dacaeff05b42b188edd48a52e7babab8c5cc6 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <[email-masked]>
> Date: Thu, 3 Feb 2022 22:35:10 +0800
> Subject: [PATCH 2/4] gnu: Deprecate the 'g-golf' variable.
>
> g-golf now supports both Guile 3.0 and 2.2. Assign a new name to identify
> the g-golf for different Guile version.
>
> * gnu/packages/guile-xyz.scm (g-golf): Rename to guile-g-golf.
> (g-golf): Define as deprecated by guile-g-golf.

[...]

>>>From 3021cdb1b5ed4332a1417550246c487ff2742642 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <[email-masked]>
> Date: Thu, 3 Feb 2022 22:38:59 +0800
> Subject: [PATCH 3/4] gnu: Add guile2.2-g-golf.
>
> * gnu/packages/guile-xyz.scm (guile2.2-g-golf): New variable.

Applied, thanks!

Ludo’.

Subject: [PATCH]: Update g-golf to 0.0.1-1010-1824633.
From: Zhu Zihao <[email-masked]>
To: [email-masked]
Date: Thu, 03 Feb 2022 22:45:04 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

This patch series update g-golf to 0.0.1-1010-1824633. Add support for
Guile 3. And deprecate variable 'g-golf' in favour of 'guile-g-golf' and
'guile2.2-g-golf'.

>From e680954ca2b0d0987045c22642e4c1290a6de05b Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 3 Feb 2022 22:27:40 +0800
Subject: [PATCH 1/4] gnu: g-golf: Update to 0.0.1-1010-1824633.

* gnu/packages/guile-xyz.scm (g-golf)[arguments]: Use G-Expression.

<phases>: Add phase 'fix-guile-site-directory'. Patch 'configure.ac' before
bootstrapping, avoid breaking configure script in accident.

In phase 'substitute-libs', use `search-input-file` for searching libraries.

In phase 'start-xorg-server', simplify the X server startup script.

[inputs]: Remove gtk+ and clutter.

Use label-less style.

[native-inputs]: Add gtk+ and clutter, they're now only needed in test.

Use label-less style.
---
 gnu/packages/guile-xyz.scm | 124 +++++++++++++++++++------------------
 1 file changed, 63 insertions(+), 61 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index f35ba43057..7be33c060f 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -39,6 +39,7 @@
 ;;; Copyright © 2021 Zelphir Kaltstahl <[email-masked]>
 ;;; Copyright © 2021 Oleg Pykhalov <[email-masked]>
 ;;; Copyright © 2021, 2022 Artyom V. Poptsov <[email-masked]>
+;;; Copyright © 2022 Zhu Zihao <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages guile-xyz)
   #:use-module (gnu packages xorg)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
   #:use-module (guix build-system cmake)
@@ -1969,8 +1971,8 @@ (define-public guile-sly
     (license license:gpl3+)))
 
 (define-public g-golf
-  (let ((commit   "ef830107b9765bd6a2da848d0cbe45e11374c0b5")
-        (revision "839"))
+  (let ((commit   "1824633d37da3794f349d6829e9dac2cf89adaa8")
+        (revision "1010"))
     (package
       (name "g-golf")
       (version (git-version "0.1.0" revision commit))
@@ -1982,69 +1984,69 @@ (define-public g-golf
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0r472hvmf447kqvkahp1wy4irb5gy8y793hm8r9rc511smdx66cw"))))
+          (base32 "0ncpqv6pbsx9fjmdzvzbjljnhqgw9pynqy9vr9aq35nb7rzrhfdf"))))
       (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo)
-         ("gettext" ,gettext-minimal)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)
-         ("xorg-server" ,xorg-server)))
+      (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
-       `(("guile" ,guile-2.2)
-         ("guile-lib" ,guile2.2-lib)
-         ("clutter" ,clutter)
-         ("gtk" ,gtk+)
-         ("glib" ,glib)))
+       (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))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (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)
-               (let* ((get (lambda (key lib)
-                             (string-append (assoc-ref inputs key) "/lib/" lib)))
-                      (libgi      (get "gobject-introspection" "libgirepository-1.0"))
-                      (libglib    (get "glib" "libglib-2.0"))
-                      (libgobject (get "glib" "libgobject-2.0"))
-                      (libgdk     (get "gtk" "libgdk-3")))
-                 (substitute* "configure"
-                   (("SITEDIR=\"\\$datadir/g-golf\"")
-                    "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"")
-                   (("SITECCACHEDIR=\"\\$libdir/g-golf/")
-                    "SITECCACHEDIR=\"$libdir/"))
-                 (substitute* "g-golf/init.scm"
-                   (("libgirepository-1.0") libgi)
-                   (("libglib-2.0") libglib)
-                   (("libgdk-3") libgdk)
-                   (("libgobject-2.0") libgobject)
-                   (("\\(dynamic-link \"libg-golf\"\\)")
-                    (format #f "~s"
-                            `(dynamic-link
-                              (format #f "~alibg-golf"
-                                      (if (getenv "GUILE_GGOLF_UNINSTALLED")
-                                          ""
-                                          ,(format #f "~a/lib/"
-                                                   (assoc-ref outputs "out"))))))))
-                 (setenv "GUILE_AUTO_COMPILE" "0")
-                 (setenv "GUILE_GGOLF_UNINSTALLED" "1")
-                 #t)))
-           (add-before 'check 'start-xorg-server
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; The test suite requires a running X server.
-               (system (format #f "~a/bin/Xvfb :1 &"
-                               (assoc-ref inputs "xorg-server")))
-               (setenv "DISPLAY" ":1")
-               #t)))))
       (home-page "https://www.gnu.org/software/g-golf/")
       (synopsis "Guile bindings for GObject Introspection")
       (description
-- 
2.34.0

>From 567b8f456aae2f5af4714ba96af304bfbcdb4538 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 3 Feb 2022 22:35:10 +0800
Subject: [PATCH 2/4] gnu: Deprecate the 'g-golf' variable.

g-golf now supports both Guile 3.0 and 2.2. Assign a new name to identify
the g-golf for different Guile version.

* gnu/packages/guile-xyz.scm (g-golf): Rename to guile-g-golf.
(g-golf): Define as deprecated by guile-g-golf.
---
 gnu/packages/guile-xyz.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 7be33c060f..5364e65a58 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1970,11 +1970,11 @@ (define-public guile-sly
     (home-page "https://dthompson.us/projects/sly.html")
     (license license:gpl3+)))
 
-(define-public g-golf
+(define-public guile-g-golf
   (let ((commit   "1824633d37da3794f349d6829e9dac2cf89adaa8")
         (revision "1010"))
     (package
-      (name "g-golf")
+      (name "guile-g-golf")
       (version (git-version "0.1.0" revision commit))
       (source
        (origin
@@ -2057,6 +2057,9 @@ (define (get lib)
 object-oriented programming system, GOOPS.")
       (license license:lgpl3+))))
 
+(define-public g-golf
+  (deprecated-package "g-golf" guile-g-golf))
+
 (define-public g-wrap
   (package
     (name "g-wrap")
-- 
2.34.0

>From 56622a18f2b6c9b820b6564367f6ccdb5d8bb5ec Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 3 Feb 2022 22:38:59 +0800
Subject: [PATCH 3/4] gnu: Add guile2.2-g-golf.

* gnu/packages/guile-xyz.scm (guile2.2-g-golf): New variable.
---
 gnu/packages/guile-xyz.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 5364e65a58..3fe3c2c690 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2060,6 +2060,14 @@ (define (get lib)
 (define-public g-golf
   (deprecated-package "g-golf" guile-g-golf))
 
+(define-public guile2.2-g-golf
+  (package
+    (inherit guile-g-golf)
+    (inputs
+     (modify-inputs (package-inputs guile-g-golf)
+       (replace "guile" guile-2.2)
+       (replace "guile-lib" guile2.2-lib)))))
+
 (define-public g-wrap
   (package
     (name "g-wrap")
-- 
2.34.0

>From af47535974bf92dc2ba6b20b4d5eeaf7ce1e6928 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <[email-masked]>
Date: Thu, 3 Feb 2022 22:39:54 +0800
Subject: [PATCH 4/4] gnu: nomad: Depends on proper version of g-golf.

* gnu/packages/guile-xyz.scm (nomad)[inputs]: Replace 'g-golf' with 'guile2.2-g-golf'.
---
 gnu/packages/guile-xyz.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 3fe3c2c690..b7922b89f8 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3456,7 +3456,7 @@ (define-public nomad
        ("guile-readline" ,guile2.2-readline)
        ("guile-gcrypt" ,guile2.2-gcrypt)
        ("gnutls" ,gnutls)
-       ("g-golf" ,g-golf)
+       ("g-golf" ,guile2.2-g-golf)
        ("shroud" ,shroud)
        ("emacsy" ,emacsy-minimal)
        ;; Gtk
-- 
2.34.0

-- 
Retrieve my PGP public key:

  gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F

Zihao