diff options
author | Zhu Zihao <all_but_last@163.com> | 2022-02-03 22:27:40 +0800 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-02-08 13:34:02 +0100 |
commit | 35c96e65a9ea638d5c544257e1917e320c2beca1 (patch) | |
tree | fe029a6c68257e66a017e3a043fa2810b8ab66a1 /gnu | |
parent | ab7114191d4599e36958c2ec18491618bf0cc6a9 (diff) | |
download | guix-35c96e65a9ea638d5c544257e1917e320c2beca1.tar.gz guix-35c96e65a9ea638d5c544257e1917e320c2beca1.zip |
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>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 124 |
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 |