Etapa G: cosecha de la cola tras el gueto gcc — xsv al corpus, triage final de los 8 staged
Opcion 1 (cosechar lo que el fix ya destraba). De los 9 staged: - xsv ✅ PROMOVIDO (85): receta Cargo limpia + el fix del importador Alpine (filtra el toolchain cargo/cargo-auditable de las deps). Construye+corre estatico. - broot: el gueto gcc SI resolvio su dep-C (libgit2-sys compilo con gcc, paso las 133 deps y llego al crate broot), PERO se cuelga en el LINK final (192s frozen, mismo patron que antes) -> bloqueo ortogonal = DEADLOCK DE LINK de zig-cc (frente opcion 3). - zellij: reescrito limpio (gcc+zlib), openssl compilo, pero MSRV rustc 1.92 > 1.91.1. - ouch (rustc 1.93), watchexec (feature nightly E0658): MSRV/nightly, bloqueo real. - jless: libxcb/X11 (lib faltante, no toolchain). - dog: import del paquete equivocado (un dog.c, no el cliente DNS Rust). - pueue, starship: deadlock de link (como broot). CONCLUSION del triage: el gueto gcc (commit previo) resolvio el frente crate+dep-C por completo (delta/gitui ✅, y broot/zellij pasan su C). Los 8 que quedan staged NO son dep-C: son MSRV>1.91.1 (zellij/ouch/watchexec), DEADLOCK de link de zig-cc en binarios grandes (broot/pueue/starship), lib faltante (jless=X11) o import roto (dog). El proximo leverage real = atacar el deadlock de link (recuperaria broot/pueue/starship + vale para cualquier binario Rust grande).
This commit is contained in:
@@ -9,8 +9,9 @@ version = "1.57.0"
|
||||
repo = "https://github.com/Canop/broot"
|
||||
commit = "b798e9d082b4d575c613e23fb89271b08fb138c3"
|
||||
|
||||
# gueto gcc: broot trae libgit2-sys (compila libgit2 desde C); zig-cc lo rechaza. compiler="gcc".
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = ["--bin", "broot"]
|
||||
@@ -20,3 +21,7 @@ install = "mkdir -p /out/usr/bin && cp target/release/broot /out/usr/bin/broot"
|
||||
|
||||
# buildInputs de nix (NO deps de hammer — cargo vendorea; backend Rust por
|
||||
# defecto). Si algún sys-crate C falla, adaptá per-paquete (patch/feature): libgit2
|
||||
|
||||
# libgit2-sys enlaza -lz; el lab materializa zlib (libz.a) como overlay.
|
||||
[deps]
|
||||
build = ["zlib"]
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# Importada de nixpkgs por `hammer import-nix` (Etapa G). PUNTO DE PARTIDA, no final:
|
||||
# - el build usa el lab de hammer (zig-cc / musl estático), NO el stdenv de nix ⇒ revisá
|
||||
# compiler/link/phases y adaptá hasta que compile.
|
||||
# - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
|
||||
name = "delta"
|
||||
version = "0.19.2"
|
||||
|
||||
[source]
|
||||
repo = "https://github.com/dandavison/delta"
|
||||
commit = "1502986e81c8e3fa27bfb5b84bac6b281a6b1edd"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = ["--bin", "delta"]
|
||||
|
||||
[build.phases]
|
||||
install = "mkdir -p /out/usr/bin && cp target/release/delta /out/usr/bin/delta"
|
||||
|
||||
# buildInputs de nix (NO deps de hammer — cargo vendorea; backend Rust por
|
||||
# defecto). Si algún sys-crate C falla, adaptá per-paquete (patch/feature): git, oniguruma
|
||||
@@ -1,24 +0,0 @@
|
||||
# Importada de nixpkgs por `hammer import-nix` (Etapa G). PUNTO DE PARTIDA, no final:
|
||||
# - el build usa el lab de hammer (zig-cc / musl estático), NO el stdenv de nix ⇒ revisá
|
||||
# compiler/link/phases y adaptá hasta que compile.
|
||||
# - las deps van con su nombre NIX; remapealas a las recetas del corpus si difieren.
|
||||
name = "gitui"
|
||||
version = "0.28.1"
|
||||
|
||||
[source]
|
||||
repo = "https://github.com/gitui-org/gitui"
|
||||
commit = "e24fb45df1584ee8d8ebdc4258531b4a91ca975d"
|
||||
|
||||
# GUETO gcc para build-scripts: gitui trae openssl-src (vendorea+compila openssl 3.4 desde C) +
|
||||
# libgit2-sys; zig-cc los rechaza. compiler="gcc" -> cc-rs usa el Alpine musl gcc; linker zig-cc.
|
||||
[build]
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = ["--bin", "gitui"]
|
||||
|
||||
[build.phases]
|
||||
install = "mkdir -p /out/usr/bin && cp target/release/gitui /out/usr/bin/gitui"
|
||||
|
||||
# buildInputs de nix (NO deps de hammer — cargo vendorea; backend Rust por
|
||||
# defecto). Si algún sys-crate C falla, adaptá per-paquete (patch/feature): cmake, openssl, xclip
|
||||
@@ -1,36 +0,0 @@
|
||||
# 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 = "xsv"
|
||||
version = "0.13.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/BurntSushi/xsv/archive/0.13.0/xsv-0.13.0.tar.gz"
|
||||
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
|
||||
# sha512 = "a0c9b914071514f6dd1fc19759ff88b7d457979385dd169350d27b0ee464fd21e7165bd81e769487d12ac63c46f78e1af684e690a7126ab9a2c336cee4aa6095"
|
||||
sha256 = "2b75309b764c9f2f3fdc1dd31eeea5a74498f7da21ae757b3ffd6fd537ec5345"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = []
|
||||
|
||||
[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 auditable build --frozen --release
|
||||
}
|
||||
_abuild_phase
|
||||
'''
|
||||
# de package() de Alpine (traducido $pkgdir→/out):
|
||||
install = '''
|
||||
_abuild_phase() {
|
||||
install -D -m755 target/release/xsv -t "/out"/usr/bin/
|
||||
}
|
||||
_abuild_phase
|
||||
'''
|
||||
|
||||
[deps]
|
||||
build = ["cargo", "cargo-auditable"]
|
||||
@@ -1,55 +1,25 @@
|
||||
# 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.
|
||||
# zellij 0.44.3 — multiplexor de terminal (workspaces). Etapa G, tier-1 Rust con dep-C.
|
||||
#
|
||||
# Reescrita como receta Cargo LIMPIA: el import de Alpine traía fases `cargo auditable build` +
|
||||
# generación de manpage/completions (mandown) + `[deps] build=["cargo","cargo-auditable","mandown",
|
||||
# "openssl-dev>3"]`. Sin fases ⇒ el lab autodetecta Cargo. Sólo conservo lo esencial:
|
||||
# - compiler="gcc": zellij trae openssl-sys (build-script C); el gueto gcc compila ese C (cc-rs usa
|
||||
# gcc), el linker sigue zig-cc. Mismo patrón que gitui/delta.
|
||||
# - deps.build=["zlib"]: openssl-sys/libgit2 enlazan -lz; el lab materializa libz.a en /usr/lib.
|
||||
# (Sin manpage/completions: requieren mandown/correr el binario en build; el paquete es el binario.)
|
||||
|
||||
name = "zellij"
|
||||
version = "0.44.3"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/zellij-org/zellij/archive/v0.44.3/zellij-0.44.3.tar.gz"
|
||||
# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
|
||||
# sha512 = "5b5f14f8ed6ae9aea962e163b05504b8f999f004ddbf61f7ed789670e234d829b86d000385aec052d73097cbe0dfb23cff6beb191c7291b525b6e9f52f908863"
|
||||
sha256 = "33ae61fc802b59462fed49b424893596d3aa819646bdce53d5602f714c1264fe"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = []
|
||||
|
||||
[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 auditable build --frozen --release
|
||||
|
||||
mandown docs/MANPAGE.md > target/zellij.1
|
||||
|
||||
mkdir -p target/completions
|
||||
for sh in bash fish zsh; do
|
||||
target/release/zellij setup --generate-completion $sh \
|
||||
> target/completions/zellij.$sh
|
||||
done
|
||||
}
|
||||
_abuild_phase
|
||||
'''
|
||||
# de package() de Alpine (traducido $pkgdir→/out):
|
||||
install = '''
|
||||
_abuild_phase() {
|
||||
install -D -m755 target/release/zellij -t "/out"/usr/bin/
|
||||
|
||||
install -D -m644 target/zellij.1 -t "/out"/usr/share/man/man1/
|
||||
|
||||
install -D -m644 target/completions/zellij.bash \
|
||||
"/out"/usr/share/bash-completion/completions/zellij
|
||||
|
||||
install -D -m644 target/completions/zellij.fish \
|
||||
"/out"/usr/share/fish/vendor_completions.d/zellij.fish
|
||||
|
||||
install -D -m644 target/completions/zellij.zsh \
|
||||
"/out"/usr/share/zsh/site-functions/_zellij
|
||||
}
|
||||
_abuild_phase
|
||||
'''
|
||||
flags = ["--bin", "zellij"]
|
||||
|
||||
[deps]
|
||||
build = ["cargo", "cargo-auditable", "mandown", "openssl-dev>3"]
|
||||
build = ["zlib"]
|
||||
|
||||
Reference in New Issue
Block a user