From 3ebee950ab2b1f5277e0f9cbd20622d00e34e5c7 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 23 Jun 2026 15:19:43 -0400 Subject: [PATCH] =?UTF-8?q?Etapa=20G:=20nu/nushell=20al=20corpus=20(153?= =?UTF-8?q?=E2=86=92154)=20=E2=80=94=20el=20giant=20m=C3=A1s=20duro,=20sel?= =?UTF-8?q?lado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- recipes/incoming/{ => .deferred}/mise.toml | 0 recipes/{incoming => }/nu.toml | 29 +++++----------------- 2 files changed, 6 insertions(+), 23 deletions(-) rename recipes/incoming/{ => .deferred}/mise.toml (100%) rename recipes/{incoming => }/nu.toml (65%) diff --git a/recipes/incoming/mise.toml b/recipes/incoming/.deferred/mise.toml similarity index 100% rename from recipes/incoming/mise.toml rename to recipes/incoming/.deferred/mise.toml diff --git a/recipes/incoming/nu.toml b/recipes/nu.toml similarity index 65% rename from recipes/incoming/nu.toml rename to recipes/nu.toml index 5d96fb7f..13c42633 100644 --- a/recipes/incoming/nu.toml +++ b/recipes/nu.toml @@ -16,31 +16,14 @@ sha256 = "3dafca8bf892f5a2afaac1122a88a7eb7f22a0b62ef901f550173a11d5cbdf6e" compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" -flags = [] +# --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] -# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático): -compile = ''' -_abuild_phase() { -cargo build --release --frozen --bin nu -} -_abuild_phase -''' -# de package() de Alpine (traducido $pkgdir→/out): -install = ''' -_abuild_phase() { -find target/release \ - -maxdepth 1 \ - -executable \ - -type f \ - -name "nu*" \ - -exec install -Dm755 '{}' -t "/out"/usr/bin/ \; - - install -Dm644 LICENSE \ - -t "/out"/usr/share/licenses/nushell/ -} -_abuild_phase -''' +install = "mkdir -p /out/usr/bin && cp target/release/nu /out/usr/bin/nu" [deps] build = ["openssl"]