From dfe277a5ce60d487fe44840506206fea8507bc69 Mon Sep 17 00:00:00 2001 From: Vitaliy Shatrov Date: Wed, 15 Apr 2020 07:15:59 +0000 Subject: [PATCH] gnu: Add g-golf * gnu/packages/guile-xyz.scm (g-golf): New variable. Signed-off-by: Christopher Baines --- gnu/packages/guile-xyz.scm | 78 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 2a60dfd05d..ebd7d89dec 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1651,6 +1651,84 @@ capabilities.") (home-page "https://dthompson.us/projects/sly.html") (license license:gpl3+))) +(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 "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-wrap (package (name "g-wrap")