janneke pushed a commit to branch wip-bootstrap
in repository guix.

commit 9282a4491382ffd6ea41a814551d6393ff128c84
Author: Jan Nieuwenhuizen <jann...@gnu.org>
Date:   Sun Nov 19 11:35:59 2017 +0100

    gnu: Add mescc-tools-boot.
    
    * gnu/packages/mes.scm (mescc-tools-boot): New variable.
---
 gnu/packages/mes.scm | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 1e3631a..46b81b0 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -106,6 +106,107 @@ with a Knight VM that runs Forth and Lisp.")
     (home-page "https://savannah.nongnu.org/projects/stage0/";)
     (license gpl3+))))
 
+(define-public mescc-tools-boot
+ (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
+              (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-seed";
+                               "/repository/archive.tar.gz?ref="
+                               "b0f8fd0e31c41cb91aefd17047da1f5743370e4b"))
+           (file-name (string-append name "-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="
+                               "7ed68e26db72884dc287852e021858c28ce1c557"))
+           (file-name (string-append "mes-seed-0.11" ".tar.xz"))
+           (sha256
+            (base32
+             "1pknfxdynn8gv1xnwfwqbpgqmi0j80yvj2n20y2lq3rhmmyhz81b"))))))
+    (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
+bootstrapping process.  Currently consists of the M1 macro assembler and the
+hex2 linker.")
+    (home-page "https://github.com/oriansj/mescc-tools";)
+    (license gpl3+))))
+
+
 (define-public nyacc
   (package
     (name "nyacc")

Reply via email to