me
/
guix
Archived
1
0
Fork 0

gnu: commencement: Remove many old utilities.

* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
master
Timothy Sample 2021-04-09 16:03:55 -04:00
parent 1594aaecd5
commit f0136b36ae
No known key found for this signature in database
GPG Key ID: 2AC6A5EC1C357C59
1 changed files with 107 additions and 492 deletions

View File

@ -662,104 +662,6 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
("tcc" ,tcc-boot0)
,@(%boot-gash-inputs)))
(define bash-mesboot0
;; The initial Bash
(package
(inherit static-bash)
(name "bash-mesboot0")
(version "2.05b")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/bash/bash-"
version ".tar.gz"))
(sha256
(base32
"1r1z2qdw3rz668nxrzwa14vk2zcn00hw7mpjn384picck49d80xs"))))
(inputs '())
(propagated-inputs '())
(native-inputs (%boot-tcc0-inputs))
(outputs '("out"))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:parallel-build? #f
#:strip-binaries? #f ; no strip yet
#:configure-flags
(list "--build=i686-unknown-linux-gnu"
"--host=i686-unknown-linux-gnu"
"--without-bash-malloc"
"--disable-readline"
"--disable-history"
"--disable-help-builtin"
"--disable-progcomp"
"--disable-net-redirections"
"--disable-nls"
;; Pretend 'dlopen' is missing so we don't build loadable
;; modules and related code.
"ac_cv_func_dlopen=no")
#:make-flags '("bash")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda _
(let* ((gash (assoc-ref %build-inputs "bash"))
(shell (string-append gash "/bin/gash")))
(setenv "CONFIG_SHELL" shell)
(setenv "SHELL" shell)
(setenv "CC" "tcc")
(setenv "LD" "tcc")
(setenv "AR" "tcc -ar")
(setenv "CFLAGS" "-D _POSIX_VERSION=1"))))
(add-after 'unpack 'scripted-patch
(lambda _
(substitute* "Makefile.in"
(("mksyntax\\.c\n") "mksyntax.c -lgetopt\n")
(("buildversion[.]o\n") "buildversion.o -lgetopt\n")
;; No size in Gash
(("\tsize ") "#\tsize"))
(substitute* "lib/sh/oslib.c"
(("int name, namelen;") "char *name; int namelen;"))
(substitute* "lib/sh/snprintf.c"
(("^#if (defined [(]HAVE_LOCALE_H[)])" all define) (string-append "#if 0 //" define)))
(substitute* "configure"
((" egrep") " grep"))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let ((configure-flags (filter (lambda (x)
(and (not (string-prefix? "CONFIG_SHELL=" x))
(not (string-prefix? "SHELL=" x))))
configure-flags)))
(format (current-error-port)
"running ./configure ~a\n" (string-join configure-flags)))
(apply invoke (cons "./configure" configure-flags))))
(add-after 'configure 'configure-fixups
(lambda _
(substitute* "config.h"
(("#define GETCWD_BROKEN 1") "#undef GETCWD_BROKEN"))
(let ((config.h (open-file "config.h" "a")))
(display "
// tcc: error: undefined symbol 'enable_hostname_completion'
#define enable_hostname_completion(on_or_off) 0
// /gnu/store/-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice
#define HAVE_POSIX_SIGNALS 1
#define endpwent(x) 0
"
config.h)
(close config.h))))
(replace 'check
(lambda _
(invoke "./bash" "--version")))
(replace 'install
(lambda _
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(copy-file "bash" (string-append bin "/bash"))
(copy-file "bash" (string-append bin "/sh"))))))))))
(define tcc-boot
;; The final tcc.
(package
@ -882,8 +784,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(delete 'compress-documentation))))))
(define (%boot-tcc-inputs)
`(("bash" ,bash-mesboot0)
("gzip" ,gzip-mesboot)
`(("gzip" ,gzip-mesboot)
("patch" ,patch-mesboot)
("tcc" ,tcc-boot)
,@(alist-delete "tcc" (%boot-tcc0-inputs))))
@ -1056,7 +957,6 @@ ac_cv_c_float_format='IEEE (little-endian)'
(define (%boot-mesboot-core-inputs)
`(("binutils" ,binutils-mesboot0)
("gawk" ,gawk-mesboot0)
("gcc" ,gcc-core-mesboot0)
,@(alist-delete "tcc" (%boot-tcc-inputs))))
@ -1087,72 +987,6 @@ ac_cv_c_float_format='IEEE (little-endian)'
(copy-recursively "include" out)
(copy-recursively headers out)))))))))
(define gawk-mesboot0
;; The initial Gawk.
(package
(inherit gawk)
(name "gawk-mesboot0")
(version "3.0.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-"
version ".tar.gz"))
(sha256
(base32
"087s7vpc8zawn3l7bwv9f44bf59rc398hvaiid63klw6fkbvabr3"))))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(native-inputs (%boot-tcc-inputs))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:configure-flags '("--build=i686-unknown-linux-gnu"
"--host=i686-unknown-linux-gnu"
"--disable-nls")
#:make-flags '("gawk")
#:parallel-build? #f
#:parallel-tests? #f
#:strip-binaries? #f ; no strip yet
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'scripted-patch
(lambda _
(substitute* "Makefile.in"
(("date ") "echo today ")
((" autoheader") "true")
((" -lm ") " "))
(substitute* "test/Makefile.in"
(("^bigtest:.*") "bigtest: basic\n")
(("( |\t)(childin|convfmt|fflush|longwrds|math|negexp)" all sep) sep))))
(add-before 'configure 'setenv
(lambda _
(let* ((out (assoc-ref %outputs "out"))
(bash (assoc-ref %build-inputs "bash"))
(shell (string-append bash "/bin/bash")))
(setenv "CONFIG_SHELL" shell)
(setenv "SHELL" shell)
(setenv "CC" "tcc")
(setenv "CPP" "tcc -E")
(setenv "LD" "tcc")
(setenv "ac_cv_func_getpgrp_void" "yes")
(setenv "ac_cv_func_tzset" "yes"))))
(replace 'configure ; needs classic invocation of configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out"))
(configure-flags
`(,@configure-flags
,(string-append "--prefix=" out))))
(format (current-error-port) "running ./configure ~a\n" (string-join configure-flags))
(system* "touch" "configure") ; aclocal.m4 is newer than configure
(apply invoke (cons "./configure" configure-flags)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "gawk" bin)
(symlink "gawk" (string-append bin "/awk"))))))))))
(define glibc-mesboot0
;; GNU C Library 2.2.5 is the most recent glibc that we managed to build
;; using gcc-2.95.3. Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer
@ -1297,97 +1131,6 @@ ac_cv_c_float_format='IEEE (little-endian)'
("libc" ,glibc-mesboot0)
,@(alist-delete "gcc" (%boot-mesboot-core-inputs))))
(define tar-mesboot
;; Initial tar with support for xz compression.
(package
(inherit tar)
(name "tar-mesboot")
(version "1.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/tar/tar-"
version ".tar.gz"))
(sha256
(base32
"19nvix64y95n5v6rr5g9g3fn08zz85cb5anzd7csfv4a4sz9lw4y"))))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(native-inputs (%boot-mesboot0-inputs))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:parallel-build? #f
#:tests? #f ; check is naive, also checks non-built PROGRAMS
#:strip-binaries? #f ; no strip yet
#:configure-flags '("--build=i686-unknown-linux-gnu"
"--host=i686-unknown-linux-gnu"
"--disable-nls")
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out"))
(bash (assoc-ref %build-inputs "bash"))
(shell (string-append bash "/bin/bash")))
(setenv "CONFIG_SHELL" shell)
(setenv "SHELL" shell)
(setenv "LIBS" "-lc -lnss_files -lnss_dns -lresolv")
(setenv "gl_cv_func_rename_dest_works" "yes")
(format (current-error-port)
"running ./configure ~a\n" (string-join configure-flags))
(apply invoke (cons "./configure" configure-flags)))))
(add-after 'unpack 'scripted-patch
(lambda _
(let* ((bash (assoc-ref %build-inputs "bash"))
(shell (string-append bash "/bin/bash")))
(substitute* "configure"
((" /bin/sh") shell)))
(substitute* "Makefile.in"
(("^SUBDIRS = doc") "SUBDIRS ="))))
(replace 'install
(lambda _
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(install-file "src/tar" bin)))))))))
(define grep-mesboot
;; The initial grep.
(package
(inherit grep)
(name "grep-mesboot")
(version "2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.gz"))
(sha256
(base32
"1w862l80lgc5mxvpiy4cfwk761d6xxavn0m3xd2l7xs2kmzvp6lq"))))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(native-inputs (%boot-mesboot0-inputs))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:parallel-build? #f
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-configure
(lambda _
(let* ((bash (assoc-ref %build-inputs "bash"))
(shell (string-append bash "/bin/bash")))
(substitute* "configure"
((" [|][|] ./config.status") " || sh ./config.status")))))
(replace 'install
(lambda _
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(install-file "grep" bin)
(symlink "grep" (string-append bin "/egrep"))
(symlink "grep" (string-append bin "/fgrep"))))))))))
(define binutils-mesboot1
(package
(inherit binutils-mesboot0)
@ -1405,37 +1148,6 @@ ac_cv_c_float_format='IEEE (little-endian)'
"--with-sysroot=/"
,(string-append "--prefix=" out))))))))
(define coreutils-mesboot0
(package
(inherit coreutils)
(name "coreutils-mesboot0")
;; The latest .gz release of Coreutils is 8.13; which does not build with gcc-2.95.3:
;; randperm.c: In function `sparse_swap':
;; randperm.c:117: invalid lvalue in unary `&'
(version "5.0") ; 2003-04
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.gz"))
(sha256
(base32
"10wq6k66i8adr4k08p0xmg87ff4ypiazvwzlmi7myib27xgffz62"))))
(native-inputs (%boot-mesboot0-inputs))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(arguments
`(#:implicit-inputs? #f
#:tests? #f ; WARNING: `perl' is needed, ...
#:parallel-build? #f
#:strip-binaries? #f ; strip: unrecognized option `--only-keep-debug'
#:guile ,%bootstrap-guile
#:configure-flags
'("--disable-doc"
"LIBS=-lc -lnss_files -lnss_dns -lresolv"
"ac_cv_func_gethostbyname=no"
"gl_cv_func_rename_dest_works=yes")))))
(define gnu-make-mesboot
(package
(inherit gnu-make)
@ -1468,150 +1180,11 @@ ac_cv_c_float_format='IEEE (little-endian)'
(bin (string-append out "/bin")))
(install-file "make" bin)))))))))
(define gawk-mesboot
(package
(inherit gawk)
(name "gawk-mesboot")
(version "3.1.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-"
version ".tar.gz"))
(sha256
(base32
"03d5y7jabq7p2s7ys9alay9446mm7i5g2wvy8nlicardgb6b6ii1"))))
(native-inputs `(,@(%boot-mesboot0-inputs)
("mesboot-headers" ,mesboot-headers)))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(arguments
`(#:implicit-inputs? #f
#:parallel-build? #f
#:guile ,%bootstrap-guile
#:configure-flags '("ac_cv_func_connect=no")
#:make-flags '("gawk")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./gawk" "--version")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "gawk" bin)
(symlink "gawk" (string-append bin "/awk"))))))))))
(define sed-mesboot
(package
(inherit sed)
(name "sed-mesboot")
(version "4.0.6") ; 2003-04
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/sed/sed-"
version ".tar.gz"))
(sha256
(base32
"0861ij94cqc4vaaki6r2wlapwcmhpx4ggp4r70f46mb21a8fkvf1"))))
(native-inputs (%boot-mesboot0-inputs))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(arguments
`(#:implicit-inputs? #f
#:parallel-build? #f
#:guile ,%bootstrap-guile
#:tests? #f ; 8to7 fails
#:phases
(modify-phases %standard-phases
(add-after 'unpack '/bin/sh
(lambda _
(let* ((bash (assoc-ref %build-inputs "bash"))
(shell (string-append bash "/bin/bash")))
(substitute* "testsuite/Makefile.tests"
(("^SHELL = /bin/sh")
(string-append "SHELL = " shell)))))))))))
(define bash-mesboot
(package
(inherit bash-mesboot0)
(version "4.4")
(name "bash-mesboot")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/bash/bash-"
version ".tar.gz"))
(sha256
(base32
"1jyz6snd63xjn6skk7za6psgidsd53k05cr3lksqybi0q6936syq"))))
(inputs '())
(propagated-inputs '())
(native-inputs (%boot-mesboot0-inputs))
(outputs '("out"))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:parallel-build? #f
#:configure-flags
'("--build=i686-unknown-linux-gnu"
"--host=i686-unknown-linux-gnu"
"--without-bash-malloc"
"--disable-readline"
"--disable-history"
"--disable-help-builtin"
"--disable-progcomp"
"--disable-net-redirections"
"--disable-nls"
;; Pretend 'dlopen' is missing so we don't build loadable
;; modules and related code.
"ac_cv_func_dlopen=no")
#:make-flags '("bash")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'scripted-patch
(lambda _
(substitute* "shell.c"
((";;") ";"))))
(add-before 'configure 'setenv
(lambda _
(setenv "AWK" "gawk")
(setenv "LIBS" "-lc -lnss_files -lnss_dns -lresolv")
(setenv "gl_cv_func_rename_dest_works" "yes")))
(add-after 'configure 'configure-fixups
(lambda _
(let ((config.h (open-file "config.h" "a")))
(display (string-append "
#define enable_hostname_completion(on_or_off) 0
")
config.h)
(close config.h))))
(replace 'check
(lambda _
(invoke "./bash" "--version")))
(replace 'install
(lambda _
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(copy-file "bash" (string-append bin "/bash"))
(copy-file "bash" (string-append bin "/sh"))))))))))
(define (%boot-mesboot1-inputs)
`(("bash" ,bash-mesboot)
("binutils" ,binutils-mesboot1)
("coreutils" ,coreutils-mesboot0)
("gawk" ,gawk-mesboot)
("grep" ,grep-mesboot)
`(("binutils" ,binutils-mesboot1)
("make" ,gnu-make-mesboot)
("sed" ,sed-mesboot)
("tar" ,tar-mesboot)
,@(fold alist-delete (%boot-mesboot0-inputs)
'("bash" "binutils" "bootar" "coreutils" "gash"
"gawk" "grep" "guile" "make" "sed" "tar"))))
'("binutils" "make"))))
(define gmp-boot
(let ((version "4.3.2"))
@ -1805,52 +1378,6 @@ ac_cv_c_float_format='IEEE (little-endian)'
`(("gcc" ,gcc-mesboot1)
,@(alist-delete "gcc" (%boot-mesboot1-inputs))))
(define xz-mesboot
;; Finally, we can build xz.
(package
(inherit xz)
(name "xz-mesboot")
(version "5.0.0")
(source (bootstrap-origin
(origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
".tar.gz")
(string-append "http://multiprecision.org/guix/xz-"
version ".tar.gz")))
(sha256
(base32
"0kf40ggbs1vaaj5s9k4csycahzqcf65n20pa6lngqhm6j0cj3agb")))))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(outputs '("out"))
(propagated-inputs '())
(native-inputs (%boot-mesboot2-inputs))
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:parallel-build? #f
#:configure-flags
`("--disable-assembler"
"--disable-shared"
"--enable-small"
"--disable-threads"
"--disable-xzdec"
"--disable-lzmadec"
"--disable-lzmainfo"
"--disable-lzma-links"
"--disable-scripts"
"--disable-doc"
"--disable-nls"
"--disable-symbol-versions"
;; configure disqualifies BASH, CPP, GCC and GREP
;; all of which seem fine for the build
"ac_cv_prog_cc_c99=-std=gnu9x"
"ac_cv_path_GREP=grep"
"gl_cv_posix_shell=bash"
"ac_cv_have_decl_optreset=no"
"CPPFLAGS=-D__GNUC__=1")))))
(define hello-mesboot
;; Check for Scheme-only bootstrap. Note that newer versions of Hello
;; break due to the way that newer versions of Gnulib handle
@ -1888,12 +1415,49 @@ ac_cv_c_float_format='IEEE (little-endian)'
(package
(inherit binutils-mesboot1)
(name "binutils-mesboot")
(native-inputs `(("xz" ,xz-mesboot)
,@(%boot-mesboot2-inputs)))))
(native-inputs (%boot-mesboot2-inputs))))
;; Sadly we have to introduce Gawk here. The "versions.awk" script of
;; glibc 2.16.0 is too complicated for Gash-Utils. This is the version
;; of Gawk used previously during bootstrap. It's possible that a newer
;; version would work, too, but this one was already ready to go.
(define gawk-mesboot
(package
(inherit gawk)
(name "gawk-mesboot")
(version "3.1.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-"
version ".tar.gz"))
(sha256
(base32
"03d5y7jabq7p2s7ys9alay9446mm7i5g2wvy8nlicardgb6b6ii1"))))
(native-inputs (%boot-mesboot2-inputs))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(arguments
`(#:implicit-inputs? #f
#:parallel-build? #f
#:guile ,%bootstrap-guile
#:configure-flags '("ac_cv_func_connect=no")
#:make-flags '("gawk")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./gawk" "--version")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "gawk" bin)
(symlink "gawk" (string-append bin "/awk"))))))))))
(define (%boot-mesboot3-inputs)
`(("binutils" ,binutils-mesboot)
("xz" ,xz-mesboot)
("gawk" ,gawk-mesboot)
,@(alist-delete "binutils" (%boot-mesboot2-inputs))))
(define glibc-headers-mesboot
@ -1970,6 +1534,11 @@ ac_cv_c_float_format='IEEE (little-endian)'
(out (assoc-ref outputs "out")))
(apply invoke "make" make-flags)
(copy-recursively kernel-headers out))))
(add-before 'configure 'remove-bashism
(lambda _
(substitute* "sysdeps/unix/make-syscalls.sh"
(("\\$[{]vdso_symver//\\./_[}]")
"$(echo $vdso_symver | sed -e 's/\\./_/g')"))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format (current-error-port) "running ../configure ~a\n"
@ -2015,6 +1584,17 @@ SHELL := " shell "
(list (string-append "SHELL=" bash "/bin/sh"))))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'simplify-intl-tests
(lambda _
;; The bootstrap Guile (2.0.9) crashes trying to
;; perform a regex on non-ASCII text. This gets
;; triggered by 'intl/po2test.sed' running over
;; 'po/de.po'. If we ever remove the bootstrap
;; Guile or add pure-Scheme regex to Gash, this can
;; be removed.
(substitute* '("catgets/Makefile"
"intl/Makefile")
(("de\\.po") "en_GB.po"))))
(replace 'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let* ((kernel-headers (assoc-ref %build-inputs "kernel-headers"))
@ -2036,8 +1616,8 @@ SHELL := " shell "
(name "gcc-mesboot1-wrapper")
(source #f)
(inputs '())
(native-inputs `(("bash" ,bash-mesboot)
("coreutils" ,coreutils-mesboot0)
(native-inputs `(("bash" ,gash-boot)
("coreutils" ,gash-utils-boot)
("libc" ,glibc-mesboot)
("gcc" ,gcc-mesboot1)))
(arguments
@ -2175,8 +1755,8 @@ exec " gcc "/bin/" program
(version (package-version gcc-mesboot))
(source #f)
(inputs '())
(native-inputs `(("bash" ,bash-mesboot)
("coreutils" ,coreutils-mesboot0)
(native-inputs `(("bash" ,gash-boot)
("coreutils" ,gash-utils-boot)
("libc" ,glibc-mesboot)
("gcc" ,gcc-mesboot)))))
@ -2185,24 +1765,59 @@ exec " gcc "/bin/" program
("gcc" ,gcc-mesboot)
,@(fold alist-delete (%boot-mesboot4-inputs) '("gcc" "gcc-wrapper"))))
(define coreutils-mesboot
(define (mesboot-package name pkg)
(package
(inherit coreutils)
(name "coreutils-mesboot")
(source (bootstrap-origin (package-source coreutils)))
(inherit pkg)
(name name)
(source (bootstrap-origin (package-source pkg)))
(native-inputs (%boot-mesboot5-inputs))
(supported-systems '("i686-linux" "x86_64-linux"))
(inputs '())
(propagated-inputs '())
(arguments
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:tests? #f))))
(ensure-keyword-arguments (package-arguments pkg)
`(#:implicit-inputs? #f
#:guile ,%bootstrap-guile
#:tests? #f)))))
;; These packages are needed to complete the rest of the bootstrap.
;; In the future, Gash et al. could handle it directly, but it's not
;; ready yet.
(define bash-mesboot (mesboot-package "bash-mesboot" static-bash))
(define coreutils-mesboot (mesboot-package "coreutils-mesboot" coreutils))
(define grep-mesboot (mesboot-package "grep-mesboot" grep))
(define sed-mesboot (mesboot-package "sed-mesboot" sed))
;; The XZ implementation in Bootar cannot decompress 'tar'.
(define xz-mesboot
(let ((pkg (mesboot-package "xz-mesboot" xz)))
(package
(inherit pkg)
(arguments
(ensure-keyword-arguments (package-arguments pkg)
;; XXX: This fails even though the
;; actual runpaths seem fine.
`(#:validate-runpath? #f))))))
;; We don't strictly need Tar here, but it allows us to get rid of
;; Bootar and Gash-Utils and continue with the standard GNU tools.
(define tar-mesboot
(let ((pkg (mesboot-package "tar-mesboot" tar)))
(package
(inherit pkg)
(native-inputs
`(("xz" ,xz-mesboot)
,@(package-native-inputs pkg))))))
(define (%boot-mesboot6-inputs)
`(("coreutils" ,coreutils-mesboot)
`(("bash" ,bash-mesboot)
("coreutils" ,coreutils-mesboot)
("grep" ,grep-mesboot)
("sed" ,sed-mesboot)
("tar" ,tar-mesboot)
("xz" ,xz-mesboot)
,@(fold alist-delete (%boot-mesboot5-inputs)
'("coreutils" "kernel-headers"))))
'("bash" "coreutils" "bootar" "kernel-headers"))))
(define (%bootstrap-inputs+toolchain)
;; The traditional bootstrap-inputs. For the i686-linux, x86_64-linux