Subject: Re: [PATCH] Update guile-g-golf.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 04 Jan 2023 21:28:04 +0100

Hi Preston,

Am Dienstag, dem 03.01.2023 um 14:20 -0600 schrieb Preston Firestone:
> * guile-xyz.scm: bump guile-g-golf to version 0.8.0. 
Proper ChangeLog would be 
* gnu/packages/guile-xyz.scm (guile-g-golf): Update to 0.8.0-a.1.

See below for my comment about the version.

> 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]`. 
Useless information in the context of a ChangeLog.
More useful would have been the following bits:
[arguments]: Add #:parallel-build? #f.
[inputs]: Replace glib with glib-next.
[propagated-inputs]: Replace gobject-introspection with gobject-
introspection-next.

> ---
>  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")
The actual version appears to be 0.8.0-a.1
> + (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")))
You should probably stay with git-fetch.
> + (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+)))
Do indent your code properly.  Also make sure that your MUA doesn't
complicate `git am'-based workflows.

Attached is a patch in which all of the above have been addressed.

Cheers
From 2d9048e198e9e8fca9303633227fcc60684a6baf Mon Sep 17 00:00:00 2001
From: Preston Firestone <[email-masked]>
Date: Wed, 4 Jan 2023 21:21:53 +0100
Subject: [PATCH] gnu: guile-g-golf: Update to 0.8.0-a.1.

* gnu/packages/guile-xyz.scm (guile-g-golf): Update to 0.8.0-a.1.
[arguments]: Add #:parallel-build? #f.
[inputs]: Replace glib with glib-next.
[propagated-inputs]: Replace gobject-introspection with gobject-introspection-next.

---
 gnu/packages/guile-xyz.scm | 161 ++++++++++++++++++-------------------
 1 file changed, 80 insertions(+), 81 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 9c94764ab3..1468a9c7e4 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2181,91 +2181,90 @@ (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-a.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.savannah.gnu.org/git/g-golf.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lszlssa6k8dhhya5px271gfzas7fyy1iwjqmlxibz5vdirzi565"))))
+    (build-system gnu-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)
+              ;; 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-next))
+    (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-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