janneke pushed a commit to branch wip-bootstrap in repository guix. commit 89713ad0f22d717d83d2534b8275a2032bd1c862 Author: Jan Nieuwenhuizen <jann...@gnu.org> Date: Sun Nov 26 20:36:32 2017 +0100
gnu: mescc-tools-boot: Use bootstrap Guile and simplify. * gnu/packages/mes.scm (mescc-tools-boot): Simplify; package-with-bootstrap-guile. --- gnu/packages/mes.scm | 172 ++++++++++++++++++++++++--------------------------- 1 file changed, 82 insertions(+), 90 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 40f2d04..30776e4 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -108,104 +108,96 @@ with a Knight VM that runs Forth and Lisp.") (license gpl3+)))) (define-public mescc-tools-boot - (let ((version "0.2") + (let ((version "0.2") (revision "0") (commit "3882f30b62b73c7005408fc2dccc82280e79b659")) - (package - (name "mescc-tools-boot") - (version (string-append version "-" revision "." (string-take commit 7))) - (synopsis "Tools for the full source bootstrapping process") - (source (origin + (package-with-bootstrap-guile + (package + (name "mescc-tools-boot") + (version (string-append version "-" revision "." (string-take commit 7))) + (synopsis "Tools for the full source bootstrapping process") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/mescc-tools" + "/repository/archive.tar.gz?ref=" + commit)) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "0hrc18dshwp9bbimckj9inx04zxnw4a2m5hq3vkyw8hab8jyd2gw")))) + (native-inputs + `(("static-bash" ,@(assoc-ref %bootstrap-inputs "bash")) + ("bash" ,(search-bootstrap-binary "bash" (%current-system))) + ("tar" ,(search-bootstrap-binary "tar" (%current-system))) + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) + ("stage0" ,stage0-boot) + ("mescc-tools-seed" + ,(origin (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/mescc-tools" + (uri (string-append "https://gitlab.com/janneke/mescc-tools-seed" "/repository/archive.tar.gz?ref=" - commit)) - (file-name (string-append name "-" version ".tar.xz")) + "b0f8fd0e31c41cb91aefd17047da1f5743370e4b")) + (file-name (string-append "mescc-tools-seed" "-" version ".tar.xz")) (sha256 (base32 - "0hrc18dshwp9bbimckj9inx04zxnw4a2m5hq3vkyw8hab8jyd2gw")))) - (native-inputs - `(("static-bash" ,@(assoc-ref %bootstrap-inputs "bash")) - ("bash" ,(search-bootstrap-binary "bash" (%current-system))) - ("tar" ,(search-bootstrap-binary "tar" (%current-system))) - ("xz" ,(search-bootstrap-binary "xz" (%current-system))) - ("stage0" ,stage0-boot) - ("mescc-tools-seed" - ,(origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/mescc-tools-seed" - "/repository/archive.tar.gz?ref=" - "b0f8fd0e31c41cb91aefd17047da1f5743370e4b")) - (file-name (string-append "mescc-tools-seed" "-" version ".tar.xz")) - (sha256 - (base32 - "065nmxpp73hnynqil0f1d3cgldkfpx64zach1i31iz05f9xy3yzn")))) - ("mes-source" ,(package-source mes-boot)) - ("mes-seed" - ,(origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/mes-seed" - "/repository/archive.tar.gz?ref=" - "fe64ff3a855d20bc90a5f28237e9832d33731b91")) - (file-name (string-append "mes-seed-0.11" ".tar.xz")) - (sha256 - (base32 - "0ggc7r5mla44ilaxxj4x1z0k757i9h5ymd54l7wvjw7883z3ag5j")))))) - (supported-systems '("i686-linux" "x86_64-linux")) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((bash (assoc-ref %build-inputs "static-bash")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (source (assoc-ref %build-inputs "source")) - (mescc-tools-seed (assoc-ref %build-inputs "mescc-tools-seed")) - (mes-seed (assoc-ref %build-inputs "mes-seed")) - (mes-source (assoc-ref %build-inputs "mes-source")) - (out (assoc-ref %outputs "out")) - (out/bin (string-append out "/bin"))) - (setenv "PATH" (string-append bash "/bin:" - "../mescc-tools-seed:" - tar "/bin:" - xz "/bin")) - (format (current-error-port) "PATH=~s\n" (getenv "PATH")) - (mkdir-p "source") - (system* "tar" "--strip=1" "-C" "source" "-xvf" source) - (mkdir-p "mescc-tools-seed") - (system* "tar" "--strip=1" "-C" "mescc-tools-seed" "-xvf" mescc-tools-seed) - (mkdir-p "mes-source") - (system* "tar" "--strip=1" "-C" "mes-source" "-xvf" mes-source) - (mkdir-p "mes-seed") - (system* "tar" "--strip=1" "-C" "mes-seed" "-xvf" mes-seed) - (chdir "source") - (zero? (system (string-append -"set -ex;" - -"export PREFIX=" out ";" - -;; build -"export MES_PREFIX=../mes-source;" -"export MESCC_TOOLS_SEED=../mescc-tools-seed;" -"export MES_SEED=../mes-seed;" -"sh build.sh;" - -;; TODO: check -;;"sh check.sh;" -;; install -"sh install.sh;" - -;; FIXME: MORTAL SIN HERE -;; M1 cannot be bootstrapped yet -"cp ../mescc-tools-seed/M1 " out/bin "/M1;"))))))) - (description - "Mescc-tools is a collection of tools for use in a full source + "065nmxpp73hnynqil0f1d3cgldkfpx64zach1i31iz05f9xy3yzn")))) + ("mes-source" ,(package-source mes-boot)) + ("mes-seed" + ,(origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/mes-seed" + "/repository/archive.tar.gz?ref=" + "fe64ff3a855d20bc90a5f28237e9832d33731b91")) + (file-name (string-append "mes-seed-0.11" ".tar.xz")) + (sha256 + (base32 + "0ggc7r5mla44ilaxxj4x1z0k757i9h5ymd54l7wvjw7883z3ag5j")))))) + (supported-systems '("i686-linux" "x86_64-linux")) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "static-bash")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (source (assoc-ref %build-inputs "source")) + (mescc-tools-seed (assoc-ref %build-inputs "mescc-tools-seed")) + (mes-seed (assoc-ref %build-inputs "mes-seed")) + (mes-source (assoc-ref %build-inputs "mes-source")) + (out (assoc-ref %outputs "out")) + (out/bin (string-append out "/bin"))) + (setenv "PATH" (string-append bash "/bin:" + "../mescc-tools-seed:" + tar "/bin:" + xz "/bin")) + (format (current-error-port) "PATH=~s\n" (getenv "PATH")) + (mkdir-p "source") + (system* "tar" "--strip=1" "-C" "source" "-xvf" source) + (mkdir-p "mescc-tools-seed") + (system* "tar" "--strip=1" "-C" "mescc-tools-seed" "-xvf" mescc-tools-seed) + (mkdir-p "mes-source") + (system* "tar" "--strip=1" "-C" "mes-source" "-xvf" mes-source) + (mkdir-p "mes-seed") + (system* "tar" "--strip=1" "-C" "mes-seed" "-xvf" mes-seed) + (chdir "source") + (setenv "PREFIX" out) + (setenv "MES_PREFIX" "../mes-source") + (setenv "MESCC_TOOLS_SEED" "../mescc-tools-seed") + (setenv "MES_SEED" "../mes-seed") + (and (zero? (system* "sh" "build.sh")) + (zero? (system* "sh" "check.sh")) + (zero? (system* "sh" "install.sh")) + ;; FIXME: MORTAL SIN HERE + ;; M1 cannot be bootstrapped yet + (copy-file "../mescc-tools-seed/M1" (string-append out "/bin/M1"))))))) + (description + "Mescc-tools is a collection of tools for use in a full source bootstrapping process. Currently consists of the M1 macro assembler and the hex2 linker.") - (home-page "https://github.com/oriansj/mescc-tools") - (license gpl3+)))) + (home-page "https://github.com/oriansj/mescc-tools") + (license gpl3+))))) (define-public mes-boot (let ((version "0.11")