From ed050b1cf51941046466d07ba7e94bd9fba02e00 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 22 Jul 2019 10:07:41 +0200 Subject: bootstrap: Add mes-minimal-stripped-tarball. * gnu/packages/make-bootstrap.scm (%mes-minimal, %mes-minimal-stripped, %mes-bootstrap-tarball): New variable. Modified-By: Mark H Weaver --- gnu/packages/make-bootstrap.scm | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 5d80f584a4..cf9f8b4633 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -49,6 +49,7 @@ (define-module (gnu packages make-bootstrap) %gcc-bootstrap-tarball %guile-bootstrap-tarball %mescc-tools-bootstrap-tarball + %mes-bootstrap-tarball %bootstrap-tarballs %guile-static-stripped)) @@ -598,6 +599,93 @@ (define %mescc-tools-static-stripped '( "M1" "blood-elf" "hex2")) #t)))) (inputs `(("mescc-tools" ,%mescc-tools-static))))) + +;; (define-public %mes-minimal-stripped +;; ;; A minimal Mes without documentation dependencies, for bootstrap. +;; (let ((triplet "i686-unknown-linux-gnu")) +;; (package +;; (inherit mes) +;; (name "mes-minimal-stripped") +;; (native-inputs +;; `(("guile" ,guile-2.2))) +;; (arguments +;; `(#:system "i686-linux" +;; #:strip-binaries? #f +;; #:configure-flags '("--mes") +;; #:phases +;; (modify-phases %standard-phases +;; (delete 'patch-shebangs) +;; (add-after 'install 'strip-install +;; (lambda _ +;; (let* ((out (assoc-ref %outputs "out")) +;; (share (string-append out "/share"))) +;; (delete-file-recursively (string-append out "/lib/guile")) +;; (delete-file-recursively (string-append share "/guile")) +;; (delete-file-recursively (string-append share "/mes/scaffold")) + +;; (for-each delete-file +;; (find-files +;; (string-append share "/mes/lib") "\\.(h|c)")) + +;; (for-each (lambda (dir) +;; (for-each remove-store-references +;; (find-files (string-append out "/" dir) +;; ".*"))) +;; '("bin" "share/mes"))))))))))) + +;; Two packages: first build static, bare minimum content. +(define-public %mes-minimal + ;; A minimal Mes without documentation. + (let ((triplet "i686-unknown-linux-gnu")) + (package + (inherit mes) + (name "mes-minimal") + (native-inputs + `(("guile" ,guile-2.2))) + (arguments + `(#:system "i686-linux" + #:strip-binaries? #f + #:configure-flags '("--mes") + #:phases + (modify-phases %standard-phases + (delete 'patch-shebangs) + (add-after 'install 'strip-install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (share (string-append out "/share"))) + (delete-file-recursively (string-append out "/lib/guile")) + (delete-file-recursively (string-append share "/guile")) + (delete-file-recursively (string-append share "/mes/scaffold")) + + (for-each delete-file + (find-files + (string-append share "/mes/lib") + "\\.(h|c)"))))))))))) + +;; next remove store references. +(define %mes-minimal-stripped + ;; A minimal Mes with store references removed, for bootstrap. + (package + (inherit %mes-minimal) + (name (string-append (package-name %mes-minimal) "-stripped")) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((in (assoc-ref %build-inputs "mes")) + (out (assoc-ref %outputs "out"))) + + (copy-recursively in out) + (for-each (lambda (dir) + (for-each remove-store-references + (find-files (string-append out "/" dir) + ".*"))) + '("bin" "share/mes")) + #t)))) + (inputs `(("mes" ,%mes-minimal))))) + (define %guile-static ;; A statically-linked Guile that is relocatable--i.e., it can search ;; .scm and .go files relative to its installation directory, rather @@ -769,6 +857,10 @@ (define %mescc-tools-bootstrap-tarball ;; A tarball with statically-linked MesCC binary seed. (tarball-package %mescc-tools-static-stripped)) +(define %mes-bootstrap-tarball + ;; A tarball with Mes binary seed. + (tarball-package %mes-minimal-stripped)) + (define %bootstrap-tarballs ;; A single derivation containing all the bootstrap tarballs, for ;; convenience. -- cgit v1.2.3