guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

31/31: DRAFT gnu: bootstrap: Add support for the Hurd.


From: guix-commits
Subject: 31/31: DRAFT gnu: bootstrap: Add support for the Hurd.
Date: Thu, 12 Mar 2020 02:59:11 -0400 (EDT)

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

commit 26973d51c37e6921454a4500fb95bcda11ea4ec8
Author: Efraim Flashner <address@hidden>
AuthorDate: Fri Jan 31 16:28:23 2020 +0200

    DRAFT gnu: bootstrap: Add support for the Hurd.
    
    XXX TODO: this was rewritten; update final hashes and commit
    XXX TODO: serve binaries from gnu.org
    XXX TODO: allow overriding of bootstrap-executable-url?
    XXX TODO: more glibc hurd patches?
    
    On 65183dcbdc680f026f83e0b49ae0cf7c500e04c9 gnu: hurd: Fix hurd-target?
    
    Run
        ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs 
--verbosity=1
    
    Producing
    
         /gnu/store/f2d9x60n23j9g5cbnd8ymqxgamwi2c18-bootstrap-tarballs-0
    
    * gnu/packages/bootstrap.scm (%bootstrap-executables): Add entries for the
    Hurd.
    (bootstrap-executable-url): XXX Use lilypond url for the Hurd.
    (bootstrap-guile-url-path): Likewise.
    (bootstrap-guile-hash): Add entry for the Hurd.
    (%bootstrap-coreutils&co): Likewise.
    (%bootstrap-binutils): Likewise.
    (%bootstrap-glibc): Likewise.
    (%bootstrap-gcc): Likewise.
    * guix/packages.scm (%supported-systems): Add i586-gnu.
---
 gnu/packages/bootstrap.scm | 84 +++++++++++++++++++++++++++++++++++++++-------
 guix/packages.scm          |  4 +--
 2 files changed, 74 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 0fbe8ef..1da86de 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -1,8 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès 
<address@hidden>
 ;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <address@hidden>
-;;; Copyright © 2017 Efraim Flashner <address@hidden>
-;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <address@hidden>
+;;; Copyright © 2017, 2020 Efraim Flashner <address@hidden>
+;;; Copyright © 2018, 2020 Jan (janneke) Nieuwenhuizen <address@hidden>
 ;;; Copyright © 2019 Carl Dong <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -104,6 +104,15 @@
       ,(base32 "07830bx29ad5i0l1ykj0g0b1jayjdblf01sr3ww9wbnwdbzinqms"))
      ("xz"
       ,(base32 "0i9kxdi17bm5gxfi2xzm0y73p3ii0cqxli1sbljm6rh2fjgyn90k")))
+    ("i586-gnu"
+     ("bash"
+      ,(base32 "1as8649aqaibahhhrvkj10ci8shpi4hq5n7gnik8rhhy0dc1jarg"))
+     ("mkdir"
+      ,(base32 "1snqgpfrl00hfn82lm29jqylzjsfb9jd6ha74dp12phwb8fpbmb9"))
+     ("tar"
+      ,(base32 "0nq2c1zb3wv5bf7kd83sziaashydazrn7xgq6kijlk0zj2syzc2m"))
+     ("xz"
+      ,(base32 "033rhpk6zrpxpd6ffjyg5y2zwq9x9cnq0zljb7k8jlncbalsayq5")))
     ("mips64el-linux"
      ("bash"
       ,(base32 "1aw046dhda240k9pb9iaj5aqkm23gkvxa9j82n4k7fk87nbrixw6"))
@@ -116,10 +125,13 @@
 
 (define (bootstrap-executable-url program system)
   "Return the URL where PROGRAM can be found for SYSTEM."
-  (string-append
-   "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/";
-   system "/" program
-   "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
+  (if (equal? (or (%current-target-system) (%current-system)) "i586-gnu")
+      (string-append
+       "http://lilypond.org/janneke/guix/i586-gnu/20200310/"; program)
+      (string-append
+       
"https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/";
+       system "/" program
+       "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e")))
 
 (define bootstrap-executable
   (mlambda (program system)
@@ -312,6 +324,8 @@ or false to signal an error."
                     "/20170217/guile-2.0.14.tar.xz")
                    ("armhf-linux"
                     "/20150101/guile-2.0.11.tar.xz")
+                   ("i586-gnu"
+                    "/20200310/guile-static-stripped-2.2.6-i586-pc-gnu.tar.xz")
                    (_
                     "/20131110/guile-2.0.9.tar.xz"))))
 
@@ -327,7 +341,9 @@ or false to signal an error."
     ("armhf-linux"
      (base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
     ("aarch64-linux"
-     (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))
+     (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
+    ("i586-gnu"
+     (base32 "1y02yvr4h91w1ykw39fm0d0mfaqdiwvig2wwv7c4336dz69al1a3"))))
 
 (define (bootstrap-guile-origin system)
   "Return an <origin> object for the Guile tarball of SYSTEM."
@@ -364,7 +380,7 @@ or false to signal an error."
          ;; This replaces the previous non-portable method based on
          ;; reading the /proc/self/exe symlink.
          (make-guile-wrapper
-          '(begin
+          `(begin
              (use-modules (ice-9 match))
              (match (command-line)
                ((_ out bash)
@@ -378,18 +394,40 @@ or false to signal an error."
                   (rename-file guile guile-real)
                   (call-with-output-file guile
                     (lambda (p)
-                      (format p "\
+                      (format p ,(if (equal? (or (%current-target-system)
+                                                 (%current-system)) 
"i586-gnu") "\
+#!~a
+export GUILE_SYSTEM_PATH=~a/share/guile/2.2
+export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.2/ccache
+exec -a \"~a0\" ~a \"~a@\"\n"
+                                     "\
 #!~a
 export GUILE_SYSTEM_PATH=~a/share/guile/2.0
 export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache
 exec -a \"~a0\" ~a \"~a@\"\n"
+
+)
                               bash out out dollar guile-real dollar)))
                   (chmod guile   #o555)
                   (chmod bin-dir #o555))))))
          (builder
           (add-text-to-store store
                              "build-bootstrap-guile.sh"
-                             (format #f "
+                             (format #f (if (equal? (or 
(%current-target-system)
+                                                        (%current-system)) 
"i586-gnu") "
+echo \"unpacking bootstrap Guile to '$out'...\"
+~a $out
+cd $out
+~a -dc < $GUILE_TARBALL | ~a xv
+
+# Use the bootstrap guile to create its own wrapper to set the load path.
+GUILE_SYSTEM_PATH=$out/share/guile/2.2 \
+GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.2/ccache \
+$out/bin/guile -c ~s $out ~a
+
+# Sanity check.
+$out/bin/guile --version~%"
+                                             "
 echo \"unpacking bootstrap Guile to '$out'...\"
 ~a $out
 cd $out
@@ -401,7 +439,7 @@ GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
 $out/bin/guile -c ~s $out ~a
 
 # Sanity check.
-$out/bin/guile --version~%"
+$out/bin/guile --version~%")
                                      (derivation->output-path mkdir)
                                      (derivation->output-path xz)
                                      (derivation->output-path tar)
@@ -438,7 +476,9 @@ $out/bin/guile --version~%"
                (lower make-raw-bag))))
    (package
      (name "guile-bootstrap")
-     (version "2.0")
+     (version (if (equal? (or (%current-target-system)
+                              (%current-system)) "i586-gnu") "2.2"
+                  "2.0"))
      (source #f)
      (build-system raw)
      (synopsis "Bootstrap Guile")
@@ -457,6 +497,8 @@ $out/bin/guile --version~%"
                                              
"/20150101/static-binaries.tar.xz")
                                             ("aarch64-linux"
                                              
"/20170217/static-binaries.tar.xz")
+                                            ("i586-gnu"
+                                             
"/20200310/static-binaries-0-i586-pc-gnu.tar.xz")
                                             (_
                                              
"/20131110/static-binaries.tar.xz")))
                                      %bootstrap-base-urls))
@@ -474,6 +516,9 @@ $out/bin/guile --version~%"
                               ("aarch64-linux"
                                (base32
                                 
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
+                              ("i586-gnu"
+                               (base32
+                                
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
                               ("mips64el-linux"
                                (base32
                                 
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -520,6 +565,8 @@ $out/bin/guile --version~%"
                                              "/20150101/binutils-2.25.tar.xz")
                                             ("aarch64-linux"
                                              "/20170217/binutils-2.27.tar.xz")
+                                            ("i586-gnu"
+                                             
"/20200310/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
                                             (_
                                              
"/20131110/binutils-2.23.2.tar.xz")))
                                      %bootstrap-base-urls))
@@ -537,6 +584,9 @@ $out/bin/guile --version~%"
                               ("aarch64-linux"
                                (base32
                                 
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
+                              ("i586-gnu"
+                               (base32
+                                
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
                               ("mips64el-linux"
                                (base32
                                 
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
@@ -590,6 +640,8 @@ $out/bin/guile --version~%"
                                        "/20150101/glibc-2.20.tar.xz")
                                       ("aarch64-linux"
                                        "/20170217/glibc-2.25.tar.xz")
+                                      ("i586-gnu"
+                                       
"/20200310/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
                                       (_
                                        "/20131110/glibc-2.18.tar.xz")))
                                %bootstrap-base-urls))
@@ -607,6 +659,9 @@ $out/bin/guile --version~%"
                         ("aarch64-linux"
                          (base32
                           
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
+                        ("i586-gnu"
+                         (base32
+                          
"0mi9syfzrrvhikl0qws1s4149rmspfwfq4p2vqz3ghfb92vqvq3l"))
                         ("mips64el-linux"
                          (base32
                           
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
@@ -676,6 +731,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                                         "/20150101/gcc-4.8.4.tar.xz")
                                        ("aarch64-linux"
                                         "/20170217/gcc-5.4.0.tar.xz")
+                                       ("i586-gnu"
+                                        
"/20200310/gcc-stripped-7.5.0-i586-pc-gnu.tar.xz")
                                        (_
                                         "/20131110/gcc-4.8.2.tar.xz")))
                                 %bootstrap-base-urls))
@@ -693,6 +750,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                          ("aarch64-linux"
                           (base32
                            
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
+                         ("i586-gnu"
+                          (base32
+                           
"06i60rwgli0cikyfx4ca8a1q6maw5h72m6v9p565wh1s44795h3d"))
                          ("mips64el-linux"
                           (base32
                            
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
diff --git a/guix/packages.scm b/guix/packages.scm
index d925e75..f24e0b2 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <address@hidden>
 ;;; Copyright © 2015 Eric Bavier <address@hidden>
 ;;; Copyright © 2016 Alex Kost <address@hidden>
-;;; Copyright © 2017, 2019 Efraim Flashner <address@hidden>
+;;; Copyright © 2017, 2019, 2020 Efraim Flashner <address@hidden>
 ;;; Copyright © 2019 Marius Bakke <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -232,7 +232,7 @@ name of its URI."
 (define %supported-systems
   ;; This is the list of system types that are supported.  By default, we
   ;; expect all packages to build successfully here.
-  '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" 
"mips64el-linux"))
+  '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" 
"i586-gnu"))
 
 (define %hurd-systems
   ;; The GNU/Hurd systems for which support is being developed.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]