Subject: bug#76377: closed (Re: [bug#76377] gnu: packages: remove g-golf and nomad)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 22 Feb 2025 09:58:02 +0000

Your bug report

#76377: gnu: packages: remove g-golf and nomad

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].

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

Subject: Re: [bug#76377] gnu: packages: remove g-golf and nomad
From: "pelzflorian (Florian Pelz)" <[email-masked]>
To: David Pirotte <[email-masked]>
Cc: [email-masked]
Date: Sat, 22 Feb 2025 10:57:28 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The context of this patch is a naming dispute.

David Pirotte, author of G-Golf, an excellent Guile interface to GTK,
Adwaita and GNOME libraries, insisted that Guix use the package name
g-golf when packaging his G-Golf project.

Guix currently uses the name guile-g-golf in accordance with its
not-written-down naming policy for pure Guile libraries, that should be
applied according to maintainers [1] and analogous to the written-down
policy for Python [2] and CommonLisp [3] and analogous to what its
semi-automatic package importers for other languages from CRAN, OPAM,
etc. do.

People suggested/discussed that David make a patch to just remove G-Golf
from Guix.

Gábor [5] and Maxim [6] proposed making g-golf an alias of guile-g-golf
(currently it is a deprecated alias)); Tobias [7] does not like but
would accept this compromise.  David does not respond to the
suggestions, though, and private mails do not appear as if David intends
to respond.

In private mails, David announced his intention to put G-Golf in an
external Guix channel.

But this is not consensus.  There is opposition to removing in [4].
Also I am myself a user of G-Golf for a tiny zenity-like Kodi launcher
in my Guix Home configuration and would like to keep it without some
third-party channel.

Further, lacking G-Golf in Guix would harm both Guix and G-Golf.  G-Golf
should get more users and Guix should ship desired packages.

G-Golf is really a nicer interface to GTK, because it is in Guile and
well-maintained and has examples that I currently package [7], even
though I still recommend to understand GTK’s documentation for C even
when programming Guile.

Nomad does not build due to incompatibility with current Webkit, but I
still have hope someone might revive it.

Closing without apply.

Regards,
Florian

[1] https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00241.html
[2] https://guix.gnu.org/manual/devel/en/html_node/Python-Modules.html
[3] https://guix.gnu.org/manual/devel/en/html_node/Build-Systems.html#index-asdf_002dbuild_002dsystem_002fsource
[4] https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00321.html
[5] https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00320.html
[6] https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00296.html
[7] https://issues.guix.gnu.org/76246#32

Subject: gnu: packages: remove g-golf and nomad
From: David Pirotte <[email-masked]>
To: [email-masked]
Date: Mon, 17 Feb 2025 19:12:55 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Attached is a patch to remove g-golf and nomad, the only package that
depends on g-golf (nomad was and still is reported to fail to build in
guix for quite a long time now, fwiw).

Please review and apply as soon as possible.

Thanks,
David
From e3b178e305434640ef903f571e8c324a414487bb Mon Sep 17 00:00:00 2001
From: David Pirotte <[email-masked]>
Date: Mon, 17 Feb 2025 19:11:12 -0300
Subject: [PATCH] gnu: packages: remove g-golf and nomad

* gnu/packages/guile-xyz.scm: Remove g-golf. Remove nomad, which depends on
  g-golf (nomad was and still is reported to fail to build in guix for quite a
  long time now, fwiw).
---
 gnu/packages/guile-xyz.scm | 218 -------------------------------------
 1 file changed, 218 deletions(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 295f69d2de..958169359f 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2519,103 +2519,6 @@ (define-public guile-sly
     (home-page "https://dthompson.us/projects/sly.html")
     (license license:gpl3+)))
 
-(define-public guile-g-golf
-  (package
-    (name "guile-g-golf")
-    (version "0.8.0")
-    (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 "14b6pjchra0axqifpm90m7jbxla2sarhd7bfhzqbn7d14b74sv2d"))))
-    (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))
-    (native-inputs
-     (list autoconf
-           automake
-           texinfo
-           gettext-minimal
-           libtool
-           pkg-config
-           ;; required for tests
-           gtk+
-           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
-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+)))
-
-(define-public g-golf
-  (deprecated-package "g-golf" guile-g-golf))
-
-(define-public guile2.2-g-golf
-  (package
-    (inherit guile-g-golf)
-    (name "guile2.2-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")
@@ -4425,127 +4328,6 @@ (define-public guile-png
 processing filters.")
     (license license:gpl3+)))
 
-(define-public nomad
-  (package
-    (name "nomad")
-    (version "0.2.0-alpha-199-g3e7a475")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://git.savannah.gnu.org/git/nomad.git/")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0p0ha6prp7pyadp61clbhc6b55023vxzfwy14j2qygb2mkq7fhic"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bash" ,bash)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)
-       ("guile" ,guile-2.2)
-       ("glib:bin" ,glib "bin")
-       ("texinfo" ,texinfo)
-       ("gettext" ,gettext-minimal)
-       ("perl" ,perl)))
-    (inputs
-     `(("bash" ,bash-minimal) ; for wrap-program
-       ;; Guile
-       ("guile" ,guile-2.2)
-       ("guile-lib" ,guile2.2-lib)
-       ("guile-readline" ,guile2.2-readline)
-       ("guile-gcrypt" ,guile2.2-gcrypt)
-       ("gnutls" ,gnutls)
-       ("g-golf" ,guile2.2-g-golf)
-       ("shroud" ,shroud)
-       ("emacsy" ,emacsy-minimal)
-       ;; Gtk
-       ("glib" ,glib)
-       ("dbus-glib" ,dbus-glib)
-       ("glib-networking" ,glib-networking)
-       ("gtk+" ,gtk+)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("webkitgtk" ,webkitgtk-for-gtk3)
-       ("gtksourceview" ,gtksourceview-4)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("vte" ,vte)
-       ;; Gstreamer
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-ugly" ,gst-plugins-ugly)
-       ;; Util
-       ("xorg-server" ,xorg-server)))
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (ice-9 popen)
-                  (ice-9 rdelim)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-webkitgtk
-           (lambda _
-             ;; Adapt to the version we have in Guix.
-             (substitute* "configure.ac"
-               (("webkit2gtk-4\\.0") "webkit2gtk-4.1")
-               (("webkit2gtk-web-extension-4\\.0")
-                "webkit2gtk-web-extension-4.1"))
-
-             (substitute* "typelib/Makefile.am"
-               (("WebKit2-4\\.0") "WebKit2-4.1"))))
-         (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))
-         (add-after 'install 'wrap-binaries
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out        (assoc-ref outputs "out"))
-                    (effective  (read-line (open-pipe*
-                                            OPEN_READ
-                                            "guile" "-c"
-                                            "(display (effective-version))")))
-                    (gst-plugins (map (lambda (i)
-                                        (string-append (assoc-ref inputs i)
-                                                       "/lib/gstreamer-1.0"))
-                                      `("gstreamer"
-                                        "gst-plugins-base"
-                                        "gst-plugins-good"
-                                        "gst-plugins-bad"
-                                        "gst-plugins-ugly")))
-                    (out-append (lambda (. args)
-                                  (apply string-append out args)))
-                    (gi-path    (out-append "/lib/girepository-1.0"))
-                    (load-path  (out-append "/share/guile/site/" effective))
-                    (comp-path  (out-append "/lib/guile/"
-                                            effective "/site-ccache"))
-                    (ext-path   (out-append "/libexec/nomad")))
-               (wrap-program (string-append out "/bin/nomad")
-                 `("GUILE_LOAD_PATH" ":" prefix
-                   (,load-path
-                    ,(getenv "GUILE_LOAD_PATH")))
-                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                   (,comp-path
-                    ,(getenv "GUILE_LOAD_COMPILED_PATH")))
-                 `("GI_TYPELIB_PATH" ":" prefix
-                   (,gi-path ,(getenv "GI_TYPELIB_PATH")))
-                 `("GIO_EXTRA_MODULES" ":" prefix
-                   (,(getenv "GIO_EXTRA_MODULES")))
-                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix ,gst-plugins)
-                 `("NOMAD_WEB_EXTENSION_DIR" ":" prefix (,ext-path)))
-               #t))))))
-    (home-page "https://savannah.nongnu.org/projects/nomad/")
-    (synopsis "Extensible Web Browser in Guile Scheme")
-    (description "Nomad is a Emacs-like web browser that consists of a modular
-feature-set, fully programmable in Guile Scheme.")
-    (license license:gpl3+)))
-
 (define-public guile-cv
   (package
     (name "guile-cv")
-- 
2.47.2