diff options
Diffstat (limited to 'gnu/packages/bootstrap.scm')
-rw-r--r-- | gnu/packages/bootstrap.scm | 74 |
1 files changed, 53 insertions, 21 deletions
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index dd922c3ae4..61f1f1ab3f 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,8 @@ #:use-module ((guix store) #:select (add-to-store add-text-to-store)) #:use-module ((guix derivations) #:select (derivation)) #:use-module ((guix utils) #:select (gnu-triplet->nix-system)) - #:use-module (guix combinators) + #:use-module ((guix build utils) #:select (elf-file?)) + #:use-module (guix memoization) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) @@ -131,30 +133,29 @@ successful, or false to signal an error." (license gpl3+))) (define package-with-bootstrap-guile - (memoize - (lambda (p) + (mlambda (p) "Return a variant of P such that all its origins are fetched with %BOOTSTRAP-GUILE." (define rewritten-input (match-lambda - ((name (? origin? o)) - `(,name ,(bootstrap-origin o))) - ((name (? package? p) sub-drvs ...) - `(,name ,(package-with-bootstrap-guile p) ,@sub-drvs)) - (x x))) + ((name (? origin? o)) + `(,name ,(bootstrap-origin o))) + ((name (? package? p) sub-drvs ...) + `(,name ,(package-with-bootstrap-guile p) ,@sub-drvs)) + (x x))) (package (inherit p) - (source (match (package-source p) - ((? origin? o) (bootstrap-origin o)) - (s s))) - (inputs (map rewritten-input - (package-inputs p))) - (native-inputs (map rewritten-input - (package-native-inputs p))) - (propagated-inputs (map rewritten-input - (package-propagated-inputs p))) - (replacement (and=> (package-replacement p) - package-with-bootstrap-guile)))))) + (source (match (package-source p) + ((? origin? o) (bootstrap-origin o)) + (s s))) + (inputs (map rewritten-input + (package-inputs p))) + (native-inputs (map rewritten-input + (package-native-inputs p))) + (propagated-inputs (map rewritten-input + (package-propagated-inputs p))) + (replacement (and=> (package-replacement p) + package-with-bootstrap-guile))))) (define* (glibc-dynamic-linker #:optional (system (or (and=> (%current-target-system) @@ -168,6 +169,7 @@ successful, or false to signal an error." ((string=? system "i586-gnu") "/lib/ld.so.1") ((string=? system "i686-gnu") "/lib/ld.so.1") ((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1") + ((string=? system "powerpc-linux") "/lib/ld.so.1") ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. @@ -202,6 +204,8 @@ successful, or false to signal an error." (guile (->store (match system ("armhf-linux" "guile-2.0.11.tar.xz") + ("aarch64-linux" + "guile-2.0.14.tar.xz") (_ "guile-2.0.9.tar.xz")))) ;; The following code, run by the bootstrap guile after it is @@ -290,7 +294,8 @@ $out/bin/guile --version~%" ;; This is where the initial binaries come from. '("ftp://alpha.gnu.org/gnu/guix/bootstrap" "http://alpha.gnu.org/gnu/guix/bootstrap" - "http://www.fdn.fr/~lcourtes/software/guix/packages")) + "http://www.fdn.fr/~lcourtes/software/guix/packages" + "http://flashner.co.il/guix/bootstrap")) (define %bootstrap-coreutils&co (package-from-tarball "bootstrap-binaries" @@ -301,6 +306,8 @@ $out/bin/guile --version~%" (match system ("armhf-linux" "/20150101/static-binaries.tar.xz") + ("aarch64-linux" + "/20170217/static-binaries.tar.xz") (_ "/20131110/static-binaries.tar.xz"))) %bootstrap-base-urls)) @@ -315,6 +322,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")) + ("aarch64-linux" + (base32 + "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")) ("mips64el-linux" (base32 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753")))))) @@ -325,6 +335,13 @@ $out/bin/guile --version~%" (chmod "bin" #o755) (patch-shebang "bin/egrep" path) (patch-shebang "bin/fgrep" path) + ;; Starting with grep@2.25 'egrep' and 'fgrep' are shell files + ;; that call 'grep'. If the bootstrap 'egrep' and 'fgrep' + ;; are not binaries then patch them to execute 'grep' via its + ;; absolute file name instead of searching for it in $PATH. + (if (not (elf-file? "bin/egrep")) + (substitute* '("bin/egrep" "bin/fgrep") + (("^exec grep") (string-append (getcwd) "/bin/grep")))) (chmod "bin" #o555) #t))) @@ -337,6 +354,8 @@ $out/bin/guile --version~%" (match system ("armhf-linux" "/20150101/binutils-2.25.tar.xz") + ("aarch64-linux" + "/20170217/binutils-2.27.tar.xz") (_ "/20131110/binutils-2.23.2.tar.xz"))) %bootstrap-base-urls)) @@ -351,6 +370,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")) + ("aarch64-linux" + (base32 + "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")) ("mips64el-linux" (base32 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7")))))) @@ -398,6 +420,8 @@ $out/bin/guile --version~%" (match (%current-system) ("armhf-linux" "/20150101/glibc-2.20.tar.xz") + ("aarch64-linux" + "/20170217/glibc-2.25.tar.xz") (_ "/20131110/glibc-2.18.tar.xz"))) %bootstrap-base-urls)) @@ -412,6 +436,9 @@ $out/bin/guile --version~%" ("armhf-linux" (base32 "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")) + ("aarch64-linux" + (base32 + "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")) ("mips64el-linux" (base32 "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))) @@ -476,6 +503,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (match (%current-system) ("armhf-linux" "/20150101/gcc-4.8.4.tar.xz") + ("aarch64-linux" + "/20170217/gcc-5.4.0.tar.xz") (_ "/20131110/gcc-4.8.2.tar.xz"))) %bootstrap-base-urls)) @@ -490,6 +519,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ ("armhf-linux" (base32 "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")) + ("aarch64-linux" + (base32 + "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")) ("mips64el-linux" (base32 "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))) |