summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2019-12-02 19:11:23 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-05 11:40:01 +0100
commiteb8eba95dab5005c16895648b8f7c4838290d26b (patch)
tree02323a6d8f75e611324ec28bfb907b8d26586b41
parentde340bd1f2b43b7a1c04ab5c4d555ce9ab8f7881 (diff)
bootstrap: Add %bootstrap-guile+guild.
* gnu/packages/commencement.scm (%bootstrap-guile+guild): New variable.
-rw-r--r--gnu/packages/commencement.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 14ecf246d4..34584fbde5 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -84,6 +84,57 @@
;;;
;;; Code:
+(define %bootstrap-guile+guild
+ ;; This package combines %bootstrap-guile with guild, which is not included
+ ;; in %bootstrap-guile. Guild is needed to build gash-boot and
+ ;; gash-core-utils-boot because it is dependency of the Guile build system.
+ (package
+ (name "guile-bootstrap+guild")
+ (version "2.0")
+ (source (bootstrap-origin (package-source guile-2.0)))
+ (native-inputs `(("bash" ,(bootstrap-executable "bash" (%current-system)))
+ ("tar" ,(bootstrap-executable "tar" (%current-system)))
+ ("xz" ,(bootstrap-executable "xz" (%current-system)))
+ ("guile" ,%bootstrap-guile)))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let ((guile-source (assoc-ref %build-inputs "source"))
+ (bin (string-append (getcwd) "/bin"))
+ (tar (assoc-ref %build-inputs "tar"))
+ (xz (assoc-ref %build-inputs "xz")))
+ (mkdir-p bin)
+ (setenv "PATH" bin)
+ (with-directory-excursion bin
+ (copy-file tar "tar")
+ (copy-file xz "xz")
+ (setenv "PATH" bin))
+ (let* ((out (assoc-ref %outputs "out"))
+ (out-bin (string-append out "/bin"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (bash (assoc-ref %build-inputs "bash")))
+ (mkdir-p out-bin)
+ (with-directory-excursion out-bin
+ (symlink (string-append guile "/bin/guile")
+ "guile")
+ (invoke "tar" "--strip-components=2"
+ "-xvf" guile-source
+ (string-append "guile-"
+ ,(package-version guile-2.0)
+ "/meta/guild.in"))
+ (copy-file "guild.in" "guild")
+ (substitute* "guild"
+ (("#!/bin/sh") (string-append "#! " bash))
+ (("@installed_guile@") (string-append out-bin "/guile")))
+ (chmod "guild" #o555)))))))
+ (synopsis "Bootstrap Guile plus Guild")
+ (description "Bootstrap Guile with added Guild")
+ (home-page #f)
+ (license (package-license guile-2.0))))
+
(define mes-boot
(package
(inherit mes)