Files
hammer/recipes/nu.toml
T
sergioandClaude Opus 4.8 3ebee950ab Etapa G: nu/nushell al corpus (153→154) — el giant más duro, sellado
nushell 0.104.1: uno de los paquetes más duros del ecosistema (openssl-sys + libgit2-sys +
libssh2-sys + libsqlite3-sys + mimalloc, todos sus C vendoreados). Fix clave: convertir la
receta del estilo abuild (fase compile custom, que NO monta el wrapper .hammer-zig-cc) al
build POR DEFECTO (flags=['--bin','nu']) ⇒ el wrapper traduce el target alpine→musl que zig
no conoce, y los -sys compilan. Dropea system-deps.patch (vendor todo). mise diferido
(.deferred: su build.rs busca git/archivo en build-time).

HALLAZGO GENERAL: recetas import-Alpine con fase abuild + C-deps fallan porque la fase custom
no monta el wrapper zig-cc. Fix = usar el build por defecto (sin fase compile).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 15:19:43 -04:00

30 lines
1.4 KiB
TOML

# 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.
name = "nushell"
version = "0.104.1"
[source]
tarball = "https://github.com/nushell/nushell/archive/0.104.1.tar.gz"
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
# sha512 = "963efb959385d28839a1505111a3841c08cad7c1941c7c5a3dfc941d34cbd0d2a46d1602cd72f8b5920d86a03b2c157da9893f8ea2b25bbab81c12651a2e91c9"
sha256 = "3dafca8bf892f5a2afaac1122a88a7eb7f22a0b62ef901f550173a11d5cbdf6e"
# system-deps.patch dropeado: forzaba libs del SISTEMA (libgit2/libssh2/sqlite) que no tenemos.
# Sin él, los crates -sys vendorean su propio C (libgit2-sys/libssh2-sys/libsqlite3-sys/mimalloc).
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# --bin nu: solo el shell (no los plugins del workspace, que multiplican el build). SIN fase compile
# custom ⇒ usa el build por defecto del lab, que MONTA el wrapper .hammer-zig-cc (traduce el target
# alpine→musl que zig no conoce). La fase abuild-style NO lo montaba ⇒ openssl-sys llamaba a zig con
# el triple alpine y abortaba (UnknownOperatingSystem).
flags = ["--bin", "nu"]
[build.phases]
install = "mkdir -p /out/usr/bin && cp target/release/nu /out/usr/bin/nu"
[deps]
build = ["openssl"]