summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>2020-04-04 18:41:38 +0700
committerGuix Patches Tester <>2020-04-04 13:00:10 +0100
commita545d0f2df83d4356984fb2ba8c9632efe4989e6 (patch)
treecc93b41a581529c190d01870e2f43904ed18c6a6
parenta5a2d79b91b07c231622a92f9322ea7ebf5d9c77 (diff)
downloadguix-patches-a545d0f2df83d4356984fb2ba8c9632efe4989e6.tar
guix-patches-a545d0f2df83d4356984fb2ba8c9632efe4989e6.tar.gz
gnu: Add g-golf
* gnu/packages/guile-xyz.scm (g-golf): New variable
-rw-r--r--gnu/packages/guile-xyz.scm79
1 files changed, 79 insertions, 0 deletions
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+))))