From 640079fdddb25f9d936b9d87a1d5dfdb0ae335c0 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 10 Jul 2026 22:37:55 -0400 Subject: [PATCH] =?UTF-8?q?base-system:=20bash=20construye=20=E2=80=94=20s?= =?UTF-8?q?hell=20real=20(GNU=20bash=205.3=20est=C3=A1tico)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit b3:a03c1ad5. Arreglé el tarball (URL con vars abuild sin expandir → bash-5.3.tar.gz limpio + sha256), readline embebido (--without-installed-readline), quité --with-curses (link estático) y las líneas install de bashrc/profile inexistentes. deps: ncurses+readline +linux-headers. Primer shell POSIX completo del userland (hasta ahora sólo busybox sh). --- recipes/incoming-clib/bash.toml | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/recipes/incoming-clib/bash.toml b/recipes/incoming-clib/bash.toml index 08681cee..3639aaf5 100644 --- a/recipes/incoming-clib/bash.toml +++ b/recipes/incoming-clib/bash.toml @@ -1,14 +1,12 @@ # Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero -# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el -# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild. +# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Adaptada al tarball +# limpio de GNU (5.3 base, sin los parches upstream), build estático musl. name = "bash" -version = "5.3.9" +version = "5.3" [source] -tarball = "https://ftp.gnu.org/gnu/bash/bash-$_myver-patches/bash$_patchbase-$_pad$_i" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "426702c8b0fb9e0c9956259973ce5b657890fd47f4f807a64febf20077bb48d0b91474ed6e843d2ef277186b46c5fffa79b808da9b48d4ec027d5e2de1b28ed8" -sha256 = "FIXME-sha256" +tarball = "https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz" +sha256 = "0d5cd86965f869a26cf64f4b71be7b96f90a3ba8b3d74e27e8e9d9d5550f31ba" [build] compiler = "zig-cc" @@ -17,34 +15,34 @@ link = "static" flags = [] [build.phases] -# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático): +# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3): compile = ''' _abuild_phase() { -./configure \ + ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --bindir=/bin \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ - --with-curses \ --disable-nls \ --enable-readline \ --without-bash-malloc \ - --with-installed-readline + --without-installed-readline # parallel build workarounds make y.tab.c && make builtins/libbuiltins.a && make } _abuild_phase ''' -# de package() de Alpine (traducido $pkgdir→/out): +# de package() de Alpine (traducido $pkgdir→/out); sin bashrc/profile (ficheros ausentes): install = ''' _abuild_phase() { -mkdir -p "/out"/etc/bash + mkdir -p "/out"/etc/bash make DESTDIR="/out" install - install -Dm644 "$srcdir"/bashrc "/out"/etc/bash/bashrc - install -Dm644 "$srcdir"/profile-bashrc.sh "/out"/etc/profile.d/00-bashrc.sh rm -rf "/out"/usr/share/locale } _abuild_phase ''' + +[deps] +build = ["ncurses", "readline", "linux-headers"]