>From 2525c59459b7a66fbe6b5f093bdceb97d66c82eb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 30 Jan 2018 22:38:10 -0500 Subject: [PATCH] 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. --- gnu/packages/guile.scm | 60 +++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index a778bbf45..3bc18ffdd 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Maxim Cournoyer ;;; ;;; 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 -- 2.16.0