From eb8eba95dab5005c16895648b8f7c4838290d26b Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 2 Dec 2019 19:11:23 +0100 Subject: bootstrap: Add %bootstrap-guile+guild. * gnu/packages/commencement.scm (%bootstrap-guile+guild): New variable. --- gnu/packages/commencement.scm | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) 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 @@ (define-module (gnu packages commencement) ;;; ;;; 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) -- cgit v1.2.3