aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhu Zihao <all_but_last@163.com>2022-02-03 22:27:40 +0800
committerLudovic Courtès <ludo@gnu.org>2022-02-08 13:34:02 +0100
commit35c96e65a9ea638d5c544257e1917e320c2beca1 (patch)
treefe029a6c68257e66a017e3a043fa2810b8ab66a1
parentab7114191d4599e36958c2ec18491618bf0cc6a9 (diff)
downloadguix-35c96e65a9ea638d5c544257e1917e320c2beca1.tar
guix-35c96e65a9ea638d5c544257e1917e320c2beca1.tar.gz
gnu: g-golf: Update to 0.0.1-1010-1824633.
* gnu/packages/guile-xyz.scm (g-golf)[arguments]: Use G-Expression. <phases>: Add phase 'fix-guile-site-directory'. Patch 'configure.ac' before bootstrapping, avoid breaking configure script in accident. In phase 'substitute-libs', use `search-input-file` for searching libraries. In phase 'start-xorg-server', simplify the X server startup script. [inputs]: Remove gtk+ and clutter. Use label-less style. [native-inputs]: Add gtk+ and clutter, they're now only needed in test. Use label-less style. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/guile-xyz.scm124
1 files changed, 63 insertions, 61 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index b61be0acfc..1e8784e18f 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -40,6 +40,7 @@
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2021, 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,6 +119,7 @@
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system cmake)
@@ -1979,8 +1981,8 @@ capabilities.")
(license license:gpl3+)))
(define-public g-golf
- (let ((commit "ef830107b9765bd6a2da848d0cbe45e11374c0b5")
- (revision "839"))
+ (let ((commit "1824633d37da3794f349d6829e9dac2cf89adaa8")
+ (revision "1010"))
(package
(name "g-golf")
(version (git-version "0.1.0" revision commit))
@@ -1992,69 +1994,69 @@ capabilities.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0r472hvmf447kqvkahp1wy4irb5gy8y793hm8r9rc511smdx66cw"))))
+ (base32 "0ncpqv6pbsx9fjmdzvzbjljnhqgw9pynqy9vr9aq35nb7rzrhfdf"))))
(build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo)
- ("gettext" ,gettext-minimal)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("xorg-server" ,xorg-server)))
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "--with-guile-site=no")
+ #: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
- `(("guile" ,guile-2.2)
- ("guile-lib" ,guile2.2-lib)
- ("clutter" ,clutter)
- ("gtk" ,gtk+)
- ("glib" ,glib)))
+ (list guile-3.0 guile-lib glib))
+ (native-inputs
+ (list autoconf
+ automake
+ texinfo
+ gettext-minimal
+ libtool
+ pkg-config
+ ;; required for tests
+ gtk+
+ clutter
+ xorg-server-for-tests))
(propagated-inputs
(list 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)))
- (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)))))
(home-page "https://www.gnu.org/software/g-golf/")
(synopsis "Guile bindings for GObject Introspection")
(description