tandas/cli-rust-7.txt (24 nombres, yield 6/24: yazi/topgrade/kalker/git-absorb/jless/tuc;
el path nix dio 0 por el gotcha de sandbox, solo Alpine). Cola incoming=21 para drenar.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Los 5 fixes de la pasada anterior validados al construir: gitoxide (max-pure mató
openssl-sys), sccache (--no-default-features), taplo y typos (eran víctimas del disco lleno,
no fallos reales) construyen+sellan y se promueven. jless DIFERIDO: la crate clipboard 0.5
es X11-only (libxcb) y removerla exige cirugía del Cargo.lock bajo --locked (clipboard-win lo
comparte rustyline) — no vale para un visor JSON teniendo jq/jaq.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Triage de los fallos de la 1ra pasada, adaptados por su causa raíz:
- gitoxide: feature `max-pure` (rustls+zlib-rs) en vez de `max` → mata openssl-sys
- sccache: --no-default-features (default=all arrastra backends cloud→reqwest→openssl)
- hck: gueto gcc (libdeflate-sys rompe en intrínsecos AVX512/evex512 bajo zig-cc)
- helix: de-Alpinizado `cargo auditable`→`cargo build` (auditable no está en el lab)
- jless: patch de-X11 que stubea la crate `clipboard` (arrastra libxcb, sin X11 headless)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
La granja revelo una clase entera de fallos Rust: crates con dep-C cuyo build-script
(cc-rs) compila C con zig-cc, que lo RECHAZA/miscompila (delta=libgit2-sys,
gitui=openssl-sys, jless=libc-stdhandle). Mismo frente que file/jq en C puro -> misma
solucion: el GUETO gcc.
FIX (hammer-build/lib.rs, camino Cargo nativo): cuando la receta declara compiler="gcc",
cc-rs usa CC=gcc (el Alpine musl gcc del sandbox, probado en C) para compilar el C de
las deps; el LINKER sigue siendo el wrapper zig-cc. Los .o/.a de gcc-musl y el Rust
zig-musl son ABI-compatibles (ambos musl, mismo ELF x86-64). ADITIVO: una receta Rust
sin compiler= queda en ZigCc -> baseline (ripgrep/fd/...) intacto. 2 tests nuevos.
PROBADO END-TO-END: delta 0.19.2 construye+corre ELF estatico (libgit2-sys vendorea y
compila libgit2 desde decenas de .c con gcc; + dep zlib para -lz que libgit2/libz-sys
enlazan). Publicado al repo firmado (83 paquetes). Corpus 82->83.
LEVERAGE: libgit2-sys/openssl-sys/onig_sys/libc-stdhandle aparecen en CIENTOS de crates
-> el gueto gcc (+ resolver libs externas via deps.build) destraba esa clase entera, no
solo delta. jless queda staged (su feature de clipboard pide libxcb/X11, fuera de
alcance, NO toolchain). gitui (openssl-src vendoreado) deberia construir con el mismo
patron (compiler=gcc), pendiente de correr.
Respuesta a "asi de a poquitos no cubrimos miles": el grueso va por LOTE, no a mano.
import-batch sobre tandas/cli-rust-2.txt (30 CLIs) -> yield import 29/30 en ~2 min
(nix=27, alpine=2; solo rargs fallo). pin-recipes anclo 26 tag->SHA. A esta tasa,
1000 paquetes ~ 1-2h de import desatendido.
ESTRUCTURA: recipes/incoming/ = COLA DE STAGING (el import vuelca en masa); recipes/
= corpus VALIDADO (construye+corre) del que build-repo.sh arma el repo firmado. La
granja/CI promueve incoming->recipes a medida que cada uno construye. Asi el corpus
mantiene su invariante sin frenar la importacion masiva.
27 recetas staged (todas parsean): eza lsd zellij starship just delta difftastic
gitui broot choose dog gping grex jless miniserve navi onefetch pastel pueue tealdeer
watchexec xsv bandwhich fclones mcfly viu ouch.
Build-yield (muestra en curso): eza OK, lsd OK (static-musl ELF). El resto se ancla
progresivamente. Las recetas a mano de las tandas previas (libs/gueto/lib+bin) fueron
para endurecer el importador en los casos duros; el largo tail navega por este lote.