base-system: bash construye — shell real (GNU bash 5.3 estático)

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).
This commit is contained in:
2026-07-10 22:37:55 -04:00
parent efcf396afb
commit 640079fddd
+13 -15
View File
@@ -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"]