From a1eec269a63f78e370d945e5b065bcb8274b1eaa Mon Sep 17 00:00:00 2001 From: Vitaliy Shatrov Date: Wed, 15 Apr 2020 14:02:13 +0700 Subject: [PATCH] gnu: Add g-golf * gnu/packages/guile-xyz.scm (g-golf): New variable --- gnu/packages/guile-xyz.scm | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index e1fcc12229..61dae6be41 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3271,3 +3271,80 @@ Relay Chat} (IRC).") WebSocket protocol as defined by RFC 6455.") (home-page "https://git.dthompson.us/guile-websocket.git") (license license:lgpl3+)))) + + +(define-public g-golf + (let ((commit "4a4edf25e4877df9182c77843bdd98ab59e13ef7")) + (package + (name "g-golf") + (version (git-version "1" "683" 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 + "09p0gf71wbmlm9kri693a8fvr9hl3hhlmlidyadwjdh7853xg0h8")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile-lib) + ("clutter" ,clutter) + ("gtk" ,gtk+) + ("glib" ,glib))) + (propagated-inputs + `(("gobject-introspection" ,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)))))) + (home-page "https://www.gnu.org/software/g-golf/") + (synopsis "G-Golf is a Guile Object Library for GNOME") + (description "G-Golf low level API comprises a binding to - (most of) the +GObject Introspection and (some of) the GObject and Glib libraries, as well as +additional (G-Golf) utilities - used to import GObject libraries and build +their corresponding G-Golf high level API.") + (license license:lgpl3+)))) -- 2.26.0