aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2018-01-30 22:38:10 -0500
committerLudovic Courtès <ludo@gnu.org>2018-01-31 23:43:03 +0100
commitd4660a54401fb2c2a882d9ae8fa57393c3be193f (patch)
tree2be13259e0f56c8a75d8eaa37db8f68bb7d02e0a
parent31bd4175c9c999f5ef4f59ee4c707d27883d0cb3 (diff)
downloadguix-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>
-rw-r--r--gnu/packages/guile.scm60
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