From d5a29a7d6d61c9b0c2b9e548cd726062a3078407 Mon Sep 17 00:00:00 2001 From: Vitaliy Shatrov Date: Sat, 4 Apr 2020 18:41:38 +0700 Subject: [PATCH] gnu: Add g-golf * gnu/packages/guile-xyz.scm (g-golf): New variable --- gnu/packages/guile-xyz.scm | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 62ebb8294f..f9251f0d2a 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3283,3 +3283,82 @@ 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 + `(#:tests? #t + #: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 "Guile bindings for GObject Introspection") + (description + "G-Golf (Gnome: (Guile Object Library for)) is a library for developing +applications in Guile Scheme. It comprises a direct binding to the low level +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+)))) -- 2.25.1