diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2018-01-30 22:38:10 -0500 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-01-31 23:43:03 +0100 |
commit | d4660a54401fb2c2a882d9ae8fa57393c3be193f (patch) | |
tree | 2be13259e0f56c8a75d8eaa37db8f68bb7d02e0a /gnu | |
parent | 31bd4175c9c999f5ef4f59ee4c707d27883d0cb3 (diff) | |
download | guix-d4660a54401fb2c2a882d9ae8fa57393c3be193f.tar guix-d4660a54401fb2c2a882d9ae8fa57393c3be193f.tar.gz |
gnu: mcron2: Use Guile 2.2 instead of 2.0.
Motivation: Using Guile 2.2 instead of Guile 2.0 gives us the scripting
abilities of Guile 2.2 when writing mcron jobs, such as HTTPS support.
* gnu/packages/guile.scm (gnu): Use the srfi-1 module for the alist-delete
function.
(mcron2)[inputs]: Replace guile-2.0 with guile-2.2.
[parallel-build?]: Disable to fix manual page generation.
[phases]: Add a "use-guile-2.2" phase so the build system uses Guile 2.2.
Replace `system*' with `invoke' in the "bootstrap" phase.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/guile.scm | 60 |
1 files changed, 37 insertions, 23 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index a778bbf458..3bc18ffdd0 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,7 +73,8 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix utils) - #:use-module (ice-9 match)) + #:use-module (ice-9 match) + #:use-module ((srfi srfi-1) #:prefix srfi-1:)) ;;; Commentary: ;;; @@ -629,31 +631,43 @@ format is also supported.") ("pkg-config" ,pkg-config) ("texinfo" ,texinfo) ("help2man" ,help2man))) + (inputs + `(("guile-2.2" ,guile-2.2) + ,@(srfi-1:alist-delete "guile" (package-inputs mcron)))) (arguments `(#:modules ((ice-9 match) (ice-9 ftw) ,@%gnu-build-system-modules) - - #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi")))) - (add-after 'install 'wrap-mcron - (lambda* (#:key outputs #:allow-other-keys) - ;; Wrap the 'mcron' command to refer to the right - ;; modules. - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (site (string-append - out "/share/guile/site"))) - (match (scandir site) - (("." ".." version) - (let ((modules (string-append site "/" version))) - (wrap-program (string-append bin "/mcron") - `("GUILE_LOAD_PATH" ":" prefix - (,modules)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,modules))) - #t)))))))))))) + ;; When building the targets in parallel, help2man tries to generate + ;; the manpage from ./cron --help before it is built, which fails. + #:parallel-build? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-guile-2.2 + (lambda _ + (substitute* "configure.ac" + (("PKG_CHECK_MODULES\\(\\[GUILE\\],.*$") + "PKG_CHECK_MODULES([GUILE], [guile-2.2])\n")) + #t)) + (add-after 'use-guile-2.2 'bootstrap + (lambda _ + (invoke "autoreconf" "-vfi"))) + (add-after 'install 'wrap-mcron + (lambda* (#:key outputs #:allow-other-keys) + ;; Wrap the 'mcron' command to refer to the right + ;; modules. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (site (string-append + out "/share/guile/site"))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" version))) + (wrap-program (string-append bin "/mcron") + `("GUILE_LOAD_PATH" ":" prefix + (,modules)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,modules))) + #t)))))))))))) (define-public guile-ics (package |