janneke pushed a commit to branch wip-bootstrap in repository guix. commit 586692f3ef4c959b9a25e645136d1aed5325b394 Author: Ricardo Wurmus <rek...@elephly.net> Date: Sun Nov 26 13:19:28 2017 +0100
gnu: tcc-boot: Use bootstrap Guile and simplify. * gnu/packages/mes.scm (tcc-boot): Simplify; use %bootstrap-guile and package-with-bootstrap-guile. --- gnu/packages/mes.scm | 209 +++++++++++++++++++++++++-------------------------- 1 file changed, 102 insertions(+), 107 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 5bb3c34..3c1b96f 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -332,119 +332,114 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((version "0.9.26") (revision "0") (commit "8f495f27423acbf569459f517466a07ed2c96c45")) - (package - (name "tcc-boot") - (version (string-append version "-" revision "." (string-take commit 7))) - (synopsis "Tiny and fast C compiler") - (source (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/tinycc" - - "/repository/archive.tar.gz?ref=" - commit)) - (file-name (string-append name "-" version ".tar.xz")) - (sha256 - (base32 - "15kh9qpc12pph0yz1rz8v646kx9x62a1cqgy0g0y4vbj3sampdsy")))) - (build-system trivial-build-system) - (supported-systems '("i686-linux" "x86_64-linux")) - (native-inputs - `(("static-bash" ,@(assoc-ref %bootstrap-inputs "bash")) - ("bash" ,(search-bootstrap-binary "bash" (%current-system))) - ("guile" ,(origin (method url-fetch) - (uri ((@@ (gnu packages package-management) boot-guile-uri) "x86_64")) - (sha256 - (base32 - "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))) - ;; guile-2.0.9 does not have srfi-43; cherry-pick - ("srfi-43" ,(origin - (method url-fetch) - (uri "http://git.savannah.gnu.org/cgit/guile.git/plain/module/srfi/srfi-43.scm?h=stable-2.0") - (file-name "srfi-43.scm") - (sha256 - (base32 - "0rnkppwdkxbzkgp9s9ccmby9f7p3ijxjlmvj0pzqxwmrmpy7jwmb")))) - ("tar" ,(search-bootstrap-binary "tar" (%current-system))) - ("xz" ,(search-bootstrap-binary "xz" (%current-system))) - ("mes" ,mes-boot) - ("mescc-tools" ,mescc-tools-boot) - ("nyacc-source" ,(package-source nyacc-boot)) - ("tinycc-seed" - ,(origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/tinycc-seed" - "/repository/archive.tar.gz?ref=" - "393a3117a91ec057494986bd75215e1a1786d69d")) - (file-name (string-append name "-seed" "-" version ".tar.xz")) - (sha256 - (base32 - "0ipb59my9hxkaybvj8bss5chqs2ypga3k765l93z374p57cqmllm")))))) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((bash (assoc-ref %build-inputs "static-bash")) - (mes (assoc-ref %build-inputs "mes")) - (guile (assoc-ref %build-inputs "guile")) - (srfi-43 (assoc-ref %build-inputs "srfi-43")) - (mescc-tools (assoc-ref %build-inputs "mescc-tools")) - (tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (source (assoc-ref %build-inputs "source")) - (nyacc-source (assoc-ref %build-inputs "nyacc-source")) - (tinycc-seed (assoc-ref %build-inputs "tinycc-seed")) - (out (assoc-ref %outputs "out")) - (out/bin (string-append out "/bin")) - (interpreter "interpreter") - (dir (getcwd))) - (setenv "PATH" (string-append bash "/bin:" - mes "/bin:" - "../guile/bin:" - mescc-tools "/bin:" - 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 "guile") - (system* "tar" "-C" "guile" "-xvf" guile) - (mkdir-p "nyacc-source") - (system* "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) - (mkdir-p "tinycc-seed") - (system* "tar" "--strip=1" "-C" "tinycc-seed" "-xvf" tinycc-seed) - (mkdir-p "srfi") - (system* "cp" srfi-43 "srfi/srfi-43.scm") - (chdir "source") - (zero? (system (string-append -"set -ex;" + (package-with-bootstrap-guile + (package + (name "tcc-boot") + (version (string-append version "-" revision "." (string-take commit 7))) + (synopsis "Tiny and fast C compiler") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/tinycc" -;; configure -"export PREFIX=" out ";" -"export MESCC=" mes "/bin/mescc.scm;" -"export GUILE_AUTO_COMPILE=1;" -"export GUILE_LOAD_COMPILED_PATH=" dir "/guile/lib/guile/2.0/ccache;" -"export GUILE_LOAD_PATH=" dir - ":" dir "/guile/share/guile/2.0/" - ":" dir "/nyacc-source/module" - ":" mes "/share/mes/guile;" - -"sh configure --prefix=$PREFIX --elfinterp=interpreter --crtprefix=. --tccdir=.;" + "/repository/archive.tar.gz?ref=" + commit)) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "15kh9qpc12pph0yz1rz8v646kx9x62a1cqgy0g0y4vbj3sampdsy")))) + (build-system trivial-build-system) + (supported-systems '("i686-linux" "x86_64-linux")) + (native-inputs + `(("static-bash" ,@(assoc-ref %bootstrap-inputs "bash")) + ("guile" ,%bootstrap-guile) + ;; guile-2.0.9 does not have srfi-43; cherry-pick + ("srfi-43" ,(origin + (method url-fetch) + (uri "http://git.savannah.gnu.org/cgit/guile.git/plain/module/srfi/srfi-43.scm?h=stable-2.0") + (file-name "srfi-43.scm") + (sha256 + (base32 + "0rnkppwdkxbzkgp9s9ccmby9f7p3ijxjlmvj0pzqxwmrmpy7jwmb")))) + ("tar" ,(search-bootstrap-binary "tar" (%current-system))) + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) + ("mes" ,mes-boot) + ("mescc-tools" ,mescc-tools-boot) + ("nyacc-source" ,(package-source nyacc-boot)) + ("tinycc-seed" + ,(origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/tinycc-seed" + "/repository/archive.tar.gz?ref=" + "393a3117a91ec057494986bd75215e1a1786d69d")) + (file-name (string-append name "-seed" "-" version ".tar.xz")) + (sha256 + (base32 + "0ipb59my9hxkaybvj8bss5chqs2ypga3k765l93z374p57cqmllm")))))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "static-bash")) + (mes (assoc-ref %build-inputs "mes")) + (guile (assoc-ref %build-inputs "guile")) + (srfi-43 (assoc-ref %build-inputs "srfi-43")) + (mescc-tools (assoc-ref %build-inputs "mescc-tools")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (source (assoc-ref %build-inputs "source")) + (nyacc-source (assoc-ref %build-inputs "nyacc-source")) + (tinycc-seed (assoc-ref %build-inputs "tinycc-seed")) + (out (assoc-ref %outputs "out")) + (dir (getcwd))) + (setenv "PATH" (string-append bash "/bin:" + mes "/bin:" + guile "/bin:" + mescc-tools "/bin:" + 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 "nyacc-source") + (system* "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) + (mkdir-p "tinycc-seed") + (system* "tar" "--strip=1" "-C" "tinycc-seed" "-xvf" tinycc-seed) + (mkdir-p "srfi") + (system* "cp" srfi-43 "srfi/srfi-43.scm") + (chdir "source") + (setenv "PREFIX" out) + (setenv "MESCC" (string-append mes "/bin/mescc.scm")) + (setenv "GUILE_AUTO_COMPILE" "1") + (setenv "GUILE_LOAD_COMPILED_PATH" + (string-append guile "/lib/guile/2.0/ccache")) + (setenv "GUILE_LOAD_PATH" + (string-append dir + ":" guile "/share/guile/2.0/" + ":" dir "/nyacc-source/module" + ":" mes "/share/mes/guile")) + (and + ;; configure + (zero? (system* "sh" "configure" + "--prefix=$PREFIX" + "--elfinterp=interpreter" + "--crtprefix=." + "--tccdir=.")) -;; build -"sh build.sh;" + ;; build + (zero? (system* "sh" "build.sh")) -;; check: 26/65 tests fail -"sh check.sh || true;" + ;; check: 26/65 tests fail + (or (zero? (system* "sh" "check.sh")) #t) -;; install -"sh install.sh;"))))))) ; [] - (description - "TCC, also referred to as \"TinyCC\", is a small and fast C compiler + ;; install + (zero? (system* "sh" "install.sh"))))))) + (description + "TCC, also referred to as \"TinyCC\", is a small and fast C compiler written in C. It supports ANSI C with GNU and extensions and most of the C99 standard.") - (home-page "http://www.tinycc.org/") - (license lgpl2.1+)))) + (home-page "http://www.tinycc.org/") + (license lgpl2.1+))))) ;; gcc-boot ;; <rain1> what I did was just this [19:11]