guix_mirror_bot pushed a commit to branch core-packages-team
in repository guix.

commit 491d29ea4788122c46aa99e3cfed11851057a336
Author: Nicolas Graves <[email protected]>
AuthorDate: Sun Oct 19 22:18:47 2025 +0200

    gnu: bootstrap-packages: Drop input labels.
    
    * gnu/packages/bootstrap.scm
    (bootstrap-executable): Prefix the store file name with "bootstrap-".
    (package-from-tarball, %bootstrap-binutils, %bootstrap-glibc, 
%bootstrap-gcc)
    [arguments]: Use gexps. Enforce a new standard to get the input from
    its file name (rather than its label).
    [inputs]: Improve style, drop label use.
    
    Change-Id: I61dd30f2bffc86167f84c613b4aebe43bf3becbc
    Signed-off-by: Ludovic Courtès <[email protected]>
---
 gnu/packages/bootstrap.scm | 586 +++++++++++++++++++++------------------------
 1 file changed, 277 insertions(+), 309 deletions(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 2fc70210635..3302e8f53b1 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -44,7 +44,7 @@
                 #:select (raw-derivation derivation-input 
derivation->output-path))
   #:use-module (guix utils)
   #:use-module ((guix build utils) #:select (elf-file?))
-  #:use-module ((guix gexp) #:select (lower-object local-file))
+  #:use-module (guix gexp)
   #:use-module (guix monads)
   #:use-module (guix memoization)
   #:use-module (guix i18n)
@@ -203,10 +203,7 @@ for system '~a'")
            (uri (map (cute string-append <>
                            (bootstrap-executable-file-name system program))
                      %bootstrap-executable-base-urls))
-           ;; XXX: In the long term, migrate all boostrap executables to
-           ;; (string-append "bootstrap-" program), and drop the additional
-           ;; file-name argument.
-           (file-name file-name)
+           (file-name (string-append "bootstrap-" program))
            (hash (content-hash bv sha256))))))))
 
 (define* (bootstrap-executable program system #:optional file-name)
@@ -266,32 +263,33 @@ or false to signal an error."
     (version "0")
     (build-system trivial-build-system)
     (arguments
-     `(#:guile ,%bootstrap-guile
-       #:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-
-         (let ((out     (assoc-ref %outputs "out"))
-              (tar     (assoc-ref %build-inputs "tar"))
-              (xz      (assoc-ref %build-inputs "xz"))
-              (tarball (assoc-ref %build-inputs "tarball")))
-
-          (mkdir out)
-          (copy-file tarball "binaries.tar.xz")
-          (invoke xz "-d" "binaries.tar.xz")
-          (let ((builddir (getcwd)))
-            (with-directory-excursion out
-              (invoke tar "xvf"
-                      (string-append builddir "/binaries.tar"))
-              ,@(if snippet (list snippet) '())
-              (or (not ,program-to-test)
-                  (invoke (string-append "bin/" ,program-to-test)
-                          "--version"))))))))
+     (list
+      #:guile %bootstrap-guile
+      #:modules '((guix build utils))
+      #:builder
+      #~(begin
+          (use-modules (guix build utils))
+
+          (let ((tar     (assoc-ref %build-inputs "bootstrap-tar"))
+                (xz      (assoc-ref %build-inputs "bootstrap-xz"))
+                (tarball (assoc-ref %build-inputs
+                                    #$(string-append name ".tar.xz"))))
+
+            (mkdir #$output)
+            (copy-file tarball "binaries.tar.xz")
+            (invoke xz "-d" "binaries.tar.xz")
+            (let ((builddir (getcwd)))
+              (with-directory-excursion #$output
+                (invoke tar "xvf"
+                        (string-append builddir "/binaries.tar"))
+                #$@(if snippet (list snippet) '())
+                (or (not #$program-to-test)
+                    (invoke (string-append "bin/" #$program-to-test)
+                            "--version"))))))))
     (inputs
-     `(("tar" ,(bootstrap-executable "tar" (%current-system)))
-       ("xz"  ,(bootstrap-executable "xz" (%current-system)))
-       ("tarball" ,(bootstrap-origin (source (%current-system))))))
+     (list (bootstrap-executable "tar" (%current-system))
+           (bootstrap-executable "xz" (%current-system))
+           (bootstrap-origin (source (%current-system)))))
     (source #f)
     (synopsis description)
     (description description)
@@ -634,37 +632,29 @@ $out/bin/guile --version~%"
                                             (_
                                              
"/20131110/static-binaries.tar.xz")))
                                      %bootstrap-base-urls))
+                           (file-name "bootstrap-binaries.tar.xz")
                            (sha256
-                            (match system
-                              ("x86_64-linux"
-                               (base32
-                                
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
-                              ("i686-linux"
-                               (base32
-                                
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
-                              ("armhf-linux"
-                               (base32
-                                
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
-                              ("aarch64-linux"
-                               (base32
-                                
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
-                              ("powerpc64le-linux"
-                               (base32
-                                
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
-                              ("i586-gnu"
-                               (base32
-                                
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
-                              ("x86_64-gnu"
-                               (base32
-                                
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
-                              ("powerpc-linux"
-                               (base32
-                                
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
-                              ("riscv64-linux"
-                               (base32
-                                
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
-                              ("mips64el-linux"
-                               (base32
+                            (base32
+                             (match system
+                               ("x86_64-linux"
+                                
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
+                               ("i686-linux"
+                                
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
+                               ("armhf-linux"
+                                
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
+                               ("aarch64-linux"
+                                
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
+                               ("powerpc64le-linux"
+                                
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
+                               ("i586-gnu"
+                                
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
+                               ("x86_64-gnu"
+                                
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v")
+                               ("powerpc-linux"
+                                
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
+                               ("riscv64-linux"
+                                
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
+                               ("mips64el-linux"
                                 
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
                         "fgrep"                    ; the program to test
                         "Bootstrap binaries of Coreutils, Awk, etc."
@@ -692,6 +682,7 @@ $out/bin/guile --version~%"
                        "/i686-linux/20190815/"
                        
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
                  %bootstrap-base-urls))
+       (file-name "linux-libre-headers-bootstrap.tar.xz")
        (sha256
         (base32
          "0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
@@ -699,63 +690,56 @@ $out/bin/guile --version~%"
    "Bootstrap linux-libre-headers"))
 
 (define %bootstrap-binutils
-  (package-from-tarball "binutils-bootstrap"
-                        (lambda (system)
-                          (origin
-                           (method url-fetch)
-                           (uri (map (cut string-append <> "/" system
-                                          (match system
-                                            ("armhf-linux"
-                                             "/20150101/binutils-2.25.tar.xz")
-                                            ("aarch64-linux"
-                                             "/20170217/binutils-2.27.tar.xz")
-                                            ("powerpc64le-linux"
-                                             
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
-                                            ("i586-gnu"
-                                             
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
-                                            ("x86_64-gnu"
-                                             
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
-                                            ("powerpc-linux"
-                                             
"/20200923/binutils-2.35.1.tar.xz")
-                                            ("riscv64-linux"
-                                             "/20210725/binutils-2.34.tar.xz")
-                                            (_
-                                             
"/20131110/binutils-2.23.2.tar.xz")))
-                                     %bootstrap-base-urls))
-                           (sha256
-                            (match system
-                              ("x86_64-linux"
-                               (base32
-                                
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
-                              ("i686-linux"
-                               (base32
-                                
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
-                              ("armhf-linux"
-                               (base32
-                                
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
-                              ("aarch64-linux"
-                               (base32
-                                
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
-                              ("powerpc64le-linux"
-                               (base32
-                                
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
-                              ("riscv64-linux"
-                               (base32
-                                
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
-                              ("i586-gnu"
-                               (base32
-                                
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
-                              ("x86_64-gnu"
-                               (base32
-                                
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04"))
-                              ("powerpc-linux"
-                               (base32
-                                
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
-                              ("mips64el-linux"
-                               (base32
-                                
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
-                        "ld"                      ; the program to test
-                        "Bootstrap binaries of the GNU Binutils"))
+  (package-from-tarball
+   "binutils-bootstrap"
+   (lambda (system)
+     (origin
+       (method url-fetch)
+       (uri (map (cut string-append <> "/" system
+                      (match system
+                        ("armhf-linux"
+                         "/20150101/binutils-2.25.tar.xz")
+                        ("aarch64-linux"
+                         "/20170217/binutils-2.27.tar.xz")
+                        ("powerpc64le-linux"
+                         
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
+                        ("i586-gnu"
+                         
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
+                        ("x86_64-gnu"
+                         
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
+                        ("powerpc-linux"
+                         "/20200923/binutils-2.35.1.tar.xz")
+                        ("riscv64-linux"
+                         "/20210725/binutils-2.34.tar.xz")
+                        (_
+                         "/20131110/binutils-2.23.2.tar.xz")))
+                 %bootstrap-base-urls))
+       (file-name "binutils-bootstrap.tar.xz")
+       (sha256
+        (base32
+         (match system
+           ("x86_64-linux"
+            "1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
+           ("i686-linux"
+            "14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
+           ("armhf-linux"
+            "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
+           ("aarch64-linux"
+            "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
+           ("powerpc64le-linux"
+            "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
+           ("riscv64-linux"
+            "0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
+           ("i586-gnu"
+            "11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
+           ("x86_64-gnu"
+            "033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04")
+           ("powerpc-linux"
+            "0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
+           ("mips64el-linux"
+            "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
+   "ld"                      ; the program to test
+   "Bootstrap binaries of the GNU Binutils"))
 
 (define %bootstrap-glibc
   ;; The initial libc.
@@ -765,99 +749,91 @@ $out/bin/guile --version~%"
     (source #f)
     (build-system trivial-build-system)
     (arguments
-     `(#:guile ,%bootstrap-guile
-       #:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-
-         (let ((out     (assoc-ref %outputs "out"))
-              (tar     (assoc-ref %build-inputs "tar"))
-              (xz      (assoc-ref %build-inputs "xz"))
-              (tarball (assoc-ref %build-inputs "tarball")))
-
-          (mkdir out)
-          (copy-file tarball "binaries.tar.xz")
-          (invoke xz "-d" "binaries.tar.xz")
-          (let ((builddir (getcwd)))
-            (with-directory-excursion out
-              (invoke tar "xvf"
-                      (string-append builddir
-                                     "/binaries.tar"))
-              (chmod "lib" #o755)
-
-              ;; Patch linker scripts so they refer to the right file-names.
-              (substitute* ,(cond ((target-hurd64?)
-                                   ''("lib/libc.so" "lib/libm.so"))
-                                  ((and (not (target-hurd?))
-                                        (or (target-x86?)
-                                            (target-arm?)))
-                                   ''("lib/libc.so" "lib/libpthread.so"))
-                                  (else
-                                   ''("lib/libc.so")))
-                (("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
-                 (string-append out "/lib/" prefix)))
-              ,@(if (target-arm32?)
-                    `((substitute* "lib/libpthread.so"
-                        (("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
-                    `())))))))
+     (list
+      #:guile %bootstrap-guile
+      #:modules '((guix build utils))
+      #:builder
+      #~(begin
+          (use-modules (guix build utils))
+
+          (let ((tar     (assoc-ref %build-inputs "bootstrap-tar"))
+                (xz      (assoc-ref %build-inputs "bootstrap-xz"))
+                (tarball (assoc-ref %build-inputs "glibc.tar.xz")))
+
+            (mkdir #$output)
+            (copy-file tarball "binaries.tar.xz")
+            (invoke xz "-d" "binaries.tar.xz")
+            (let ((builddir (getcwd)))
+              (with-directory-excursion #$output
+                (invoke tar "xvf"
+                        (string-append builddir
+                                       "/binaries.tar"))
+                (chmod "lib" #o755)
+
+                ;; Patch linker scripts so they refer to the right file-names.
+                (substitute* #$(cond ((target-hurd64?)
+                                      ''("lib/libc.so" "lib/libm.so"))
+                                     ((and (not (target-hurd?))
+                                           (or (target-x86?)
+                                               (target-arm?)))
+                                      ''("lib/libc.so" "lib/libpthread.so"))
+                                     (else
+                                      ''("lib/libc.so")))
+                  (("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
+                   (string-append #$output "/lib/" prefix)))
+                #$@(if (target-arm32?)
+                       #~((substitute* "lib/libpthread.so"
+                            (("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
+                       #~())))))))
     (inputs
-     `(("tar" ,(bootstrap-executable "tar" (%current-system)))
-       ("xz"  ,(bootstrap-executable "xz" (%current-system)))
-       ("tarball" ,(bootstrap-origin
-                    (origin
-                     (method url-fetch)
-                     (uri (map (cut string-append <> "/" (%current-system)
-                                    (match (%current-system)
-                                      ("armhf-linux"
-                                       "/20150101/glibc-2.20.tar.xz")
-                                      ("aarch64-linux"
-                                       "/20170217/glibc-2.25.tar.xz")
-                                      ("powerpc64le-linux"
-                                       
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
-                                      ("i586-gnu"
-                                       
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
-                                      ("x86_64-gnu"
-                                       
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
-                                      ("powerpc-linux"
-                                       "/20200923/glibc-2.32.tar.xz")
-                                      ("riscv64-linux"
-                                       "/20210725/glibc-2.31.tar.xz")
-                                      (_
-                                       "/20131110/glibc-2.18.tar.xz")))
-                               %bootstrap-base-urls))
-                     (sha256
-                      (match (%current-system)
-                        ("x86_64-linux"
-                         (base32
-                          
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
-                        ("i686-linux"
-                         (base32
-                          
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
-                        ("armhf-linux"
-                         (base32
-                          
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
-                        ("aarch64-linux"
-                         (base32
-                          
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
-                        ("powerpc64le-linux"
-                         (base32
-                          
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
-                        ("riscv64-linux"
-                         (base32
-                          
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
-                        ("i586-gnu"
-                         (base32
-                          
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2"))
-                        ("x86_64-gnu"
-                         (base32
-                          
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
-                        ("powerpc-linux"
-                         (base32
-                          
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
-                        ("mips64el-linux"
-                         (base32
-                          
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
+     (list (bootstrap-executable "tar" (%current-system))
+           (bootstrap-executable "xz" (%current-system))
+           (bootstrap-origin
+            (origin
+              (method url-fetch)
+              (uri (map (cut string-append <> "/" (%current-system)
+                             (match (%current-system)
+                               ("armhf-linux"
+                                "/20150101/glibc-2.20.tar.xz")
+                               ("aarch64-linux"
+                                "/20170217/glibc-2.25.tar.xz")
+                               ("powerpc64le-linux"
+                                
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
+                               ("i586-gnu"
+                                
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
+                               ("x86_64-gnu"
+                                
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
+                               ("powerpc-linux"
+                                "/20200923/glibc-2.32.tar.xz")
+                               ("riscv64-linux"
+                                "/20210725/glibc-2.31.tar.xz")
+                               (_
+                                "/20131110/glibc-2.18.tar.xz")))
+                        %bootstrap-base-urls))
+              (file-name "glibc.tar.xz")
+              (sha256
+               (base32
+                (match (%current-system)
+                  ("x86_64-linux"
+                   "0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
+                  ("i686-linux"
+                   "1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
+                  ("armhf-linux"
+                   "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
+                  ("aarch64-linux"
+                   "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
+                  ("powerpc64le-linux"
+                   "1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
+                  ("riscv64-linux"
+                   "0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
+                  ("i586-gnu"
+                   "0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
+                  ("x86_64-gnu"
+                   "1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy")
+                  ("powerpc-linux"
+                   "0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
+                  ("mips64el-linux"
+                   
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
     (synopsis "Bootstrap binaries and headers of the GNU C Library")
     (description synopsis)
     (home-page #f)
@@ -872,110 +848,102 @@ $out/bin/guile --version~%"
     (source #f)
     (build-system trivial-build-system)
     (arguments
-     `(#:guile ,%bootstrap-guile
-       #:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils)
-                      (ice-9 popen))
-
-         (let ((out     (assoc-ref %outputs "out"))
-               (tar     (assoc-ref %build-inputs "tar"))
-               (xz      (assoc-ref %build-inputs "xz"))
-               (bash    (assoc-ref %build-inputs "bash"))
-               (libc    (assoc-ref %build-inputs "libc"))
-               (tarball (assoc-ref %build-inputs "tarball")))
-
-           (mkdir out)
-           (copy-file tarball "binaries.tar.xz") ;avoid: more than one hard 
link
-           (invoke xz "-d" "binaries.tar.xz")
-           (let ((builddir (getcwd))
-                 (bindir   (string-append out "/bin")))
-
-             (define (wrap-program program)
-               (let ((wrapped (format #f ".~a-wrapped" program)))
-                 (rename-file program wrapped)
-                 (call-with-output-file program
-                   (lambda (p)
-                     (format p "#!~a
+     (list
+      #:guile %bootstrap-guile
+      #:modules '((guix build utils))
+      #:builder
+      #~(begin
+          (use-modules (guix build utils)
+                       (ice-9 popen))
+
+          (let ((tar     (assoc-ref %build-inputs "bootstrap-tar"))
+                (xz      (assoc-ref %build-inputs "bootstrap-xz"))
+                (bash    (assoc-ref %build-inputs "bootstrap-bash"))
+                (libc    (assoc-ref %build-inputs "glibc-bootstrap"))
+                (tarball (assoc-ref %build-inputs "gcc.tar.xz")))
+
+            (mkdir #$output)
+            (copy-file tarball "binaries.tar.xz") ;avoid: more than one hard 
link
+            (invoke xz "-d" "binaries.tar.xz")
+            (let ((builddir (getcwd))
+                  (bindir   (string-append #$output "/bin")))
+
+              (define (wrap-program program)
+                (let ((wrapped (format #f ".~a-wrapped" program)))
+                  (rename-file program wrapped)
+                  (call-with-output-file program
+                    (lambda (p)
+                      (format p "#!~a
 exec ~a/bin/~a -B~a/lib \
      -Wl,-rpath -Wl,~a/lib \
      -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
-                             bash
-                             out wrapped
-                             libc libc libc
-                             ,(glibc-dynamic-linker)))))
-               (chmod program #o555))
-
-             (with-directory-excursion out
-               (invoke tar "xvf"
-                       (string-append builddir "/binaries.tar")))
-
-             (with-directory-excursion bindir
-               (chmod "." #o755)
-               (for-each wrap-program
-                         ,(if (target-hurd64?)
-                              ''("gcc" "g++")
-                              ''("gcc")))))))))
+                              bash
+                              #$output wrapped
+                              libc libc libc
+                              #$(glibc-dynamic-linker)))))
+                (chmod program #o555))
+
+              (with-directory-excursion #$output
+                (invoke tar "xvf"
+                        (string-append builddir "/binaries.tar")))
+
+              (with-directory-excursion bindir
+                (chmod "." #o755)
+                (for-each wrap-program
+                          #$(if (target-hurd64?)
+                                ''("gcc" "g++")
+                                ''("gcc")))))))))
     (inputs
-     `(("tar" ,(bootstrap-executable "tar" (%current-system)))
-       ("xz"  ,(bootstrap-executable "xz" (%current-system)))
-       ("bash" ,(bootstrap-executable "bash" (%current-system)))
-       ("libc" ,%bootstrap-glibc)
-       ("tarball" ,(bootstrap-origin
-                    (origin
-                      (method url-fetch)
-                      (uri (map (cut string-append <> "/" (%current-system)
-                                     (match (%current-system)
-                                       ("armhf-linux"
-                                        "/20150101/gcc-4.8.4.tar.xz")
-                                       ("aarch64-linux"
-                                        "/20170217/gcc-5.4.0.tar.xz")
-                                       ("powerpc64le-linux"
-                                        
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
-                                       ("i586-gnu"
-                                        
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
-                                       ("x86_64-gnu"
-                                        
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
-                                       ("powerpc-linux"
-                                        "/20200923/gcc-5.5.0.tar.xz")
-                                       ("riscv64-linux"
-                                        "/20210725/gcc-7.5.0.tar.xz")
-                                       (_
-                                        "/20131110/gcc-4.8.2.tar.xz")))
-                                %bootstrap-base-urls))
-                      (sha256
-                       (match (%current-system)
-                         ("x86_64-linux"
-                          (base32
-                           
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
-                         ("i686-linux"
-                          (base32
-                           
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
-                         ("armhf-linux"
-                          (base32
-                           
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
-                         ("aarch64-linux"
-                          (base32
-                           
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
-                         ("powerpc64le-linux"
-                          (base32
-                           
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
-                         ("riscv64-linux"
-                          (base32
-                           
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
-                         ("i586-gnu"
-                          (base32
-                           
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
-                         ("x86_64-gnu"
-                          (base32
-                           
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
-                         ("powerpc-linux"
-                          (base32
-                           
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
-                         ("mips64el-linux"
-                          (base32
-                           
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
+     (list (bootstrap-executable "tar" (%current-system))
+           (bootstrap-executable "xz" (%current-system))
+           (bootstrap-executable "bash" (%current-system))
+           %bootstrap-glibc
+           (bootstrap-origin
+            (origin
+              (method url-fetch)
+              (uri (map (cut string-append <> "/" (%current-system)
+                             (match (%current-system)
+                               ("armhf-linux"
+                                "/20150101/gcc-4.8.4.tar.xz")
+                               ("aarch64-linux"
+                                "/20170217/gcc-5.4.0.tar.xz")
+                               ("powerpc64le-linux"
+                                
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
+                               ("i586-gnu"
+                                
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
+                               ("x86_64-gnu"
+                                
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
+                               ("powerpc-linux"
+                                "/20200923/gcc-5.5.0.tar.xz")
+                               ("riscv64-linux"
+                                "/20210725/gcc-7.5.0.tar.xz")
+                               (_
+                                "/20131110/gcc-4.8.2.tar.xz")))
+                        %bootstrap-base-urls))
+              (file-name "gcc.tar.xz")
+              (sha256
+               (base32
+                (match (%current-system)
+                  ("x86_64-linux"
+                   "17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
+                  ("i686-linux"
+                   "150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
+                  ("armhf-linux"
+                   "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
+                  ("aarch64-linux"
+                   "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
+                  ("powerpc64le-linux"
+                   "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
+                  ("riscv64-linux"
+                   "1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
+                  ("i586-gnu"
+                   "1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
+                  ("x86_64-gnu"
+                   "1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz")
+                  ("powerpc-linux"
+                   "1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
+                  ("mips64el-linux"
+                   
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
     (native-search-paths
      (list (search-path-specification
             (variable "C_INCLUDE_PATH")

Reply via email to