From 0aec90392a7ea7417ff7f28140bb73dd2b0be85c Mon Sep 17 00:00:00 2001 From: sergio Date: Mon, 22 Jun 2026 10:09:31 -0400 Subject: [PATCH] Etapa G: fixes de recetas para la 2da pasada de la granja (5 frentes) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- recipes/incoming/gitoxide.toml | 4 +- recipes/incoming/hck.toml | 4 +- recipes/incoming/helix.toml | 3 +- recipes/incoming/jless-deX11-clipboard.patch | 40 ++++++++++++++++++++ recipes/incoming/jless.toml | 1 + recipes/incoming/sccache.toml | 4 +- 6 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 recipes/incoming/jless-deX11-clipboard.patch diff --git a/recipes/incoming/gitoxide.toml b/recipes/incoming/gitoxide.toml index 47696f90..fbeb69ee 100644 --- a/recipes/incoming/gitoxide.toml +++ b/recipes/incoming/gitoxide.toml @@ -13,7 +13,9 @@ commit = "10c58bb56597d9335611da121aac21f9b09b6e5b" compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" -flags = ["--bin", "gix"] +# max-pure: feature set 100% Rust (rustls en vez de openssl-sys, zlib-rs en vez de zlib C) ⇒ +# sin deps C de sistema; ideal para el estático musl. El default `max` arrastra openssl-sys. +flags = ["--bin", "gix", "--no-default-features", "--features", "max-pure"] [build.phases] install = "mkdir -p /out/usr/bin && cp target/release/gix /out/usr/bin/gix" diff --git a/recipes/incoming/hck.toml b/recipes/incoming/hck.toml index e109f63b..9dd28b78 100644 --- a/recipes/incoming/hck.toml +++ b/recipes/incoming/hck.toml @@ -9,8 +9,10 @@ version = "0.11.6" repo = "https://github.com/sstadick/hck" commit = "e343425ecd8bada3a423139c305563a8d408c303" +# GUETO gcc: hck trae libdeflate-sys (compila libdeflate C); zig-cc rompe en los +# intrínsecos AVX512 (evex512 split de clang). compiler="gcc" usa el musl gcc de Alpine. [build] -compiler = "zig-cc" +compiler = "gcc" target = "x86_64-linux-musl" link = "static" flags = ["--bin", "hck"] diff --git a/recipes/incoming/helix.toml b/recipes/incoming/helix.toml index 18c20520..3fe224e2 100644 --- a/recipes/incoming/helix.toml +++ b/recipes/incoming/helix.toml @@ -25,7 +25,8 @@ _abuild_phase() { # system grammars # https://github.com/helix-editor/helix/blob/25.01.1/helix-loader/src/lib.rs#L64 export HELIX_DEFAULT_RUNTIME=/usr/share/helix/runtime - cargo auditable build --frozen --release + # de-Alpinizado: cargo-auditable no está en el lab de hammer; build plano (Etapa G) + cargo build --frozen --release } _abuild_phase ''' diff --git a/recipes/incoming/jless-deX11-clipboard.patch b/recipes/incoming/jless-deX11-clipboard.patch new file mode 100644 index 00000000..6185c4d6 --- /dev/null +++ b/recipes/incoming/jless-deX11-clipboard.patch @@ -0,0 +1,40 @@ +diff --git a/Cargo.toml b/Cargo.toml +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -26,7 +26,6 @@ + isatty = "0.1" + libc-stdhandle = "0.1.0" + yaml-rust = "0.4" +-clipboard = "0.5" + + [dev-dependencies] + indoc = "1.0" +diff --git a/src/app.rs b/src/app.rs +--- a/src/app.rs ++++ b/src/app.rs +@@ -2,7 +2,24 @@ + use std::io; + use std::io::Write; + +-use clipboard::{ClipboardContext, ClipboardProvider}; ++// de-X11 (Etapa G): la crate `clipboard` 0.5 arrastra x11-clipboard -> libxcb, que no existe en ++// el lab musl estático headless (fallo de link `xcb-xfixes`). Stub local con la misma interfaz; ++// el yank degrada a un error claro en runtime en vez de exigir X11 a la hora de construir. ++struct ClipboardContext; ++trait ClipboardProvider: Sized { ++ fn new() -> Result>; ++} ++impl ClipboardProvider for ClipboardContext { ++ fn new() -> Result> { ++ Err("clipboard no disponible (build headless sin X11)".into()) ++ } ++} ++impl ClipboardContext { ++ fn set_contents(&mut self, _contents: String) -> Result<(), Box> { ++ Err("clipboard no disponible (build headless sin X11)".into()) ++ } ++} ++ + use rustyline::error::ReadlineError; + use rustyline::Editor; + use termion::event::Key; diff --git a/recipes/incoming/jless.toml b/recipes/incoming/jless.toml index d79198a7..5b0c0013 100644 --- a/recipes/incoming/jless.toml +++ b/recipes/incoming/jless.toml @@ -8,6 +8,7 @@ version = "0.9.0" [source] repo = "https://github.com/PaulJuliusMartinez/jless" commit = "21dd6100edb47145bb9570931bec29697bcd0d9b" +patches = ["jless-deX11-clipboard.patch"] # GUETO gcc para los build-scripts: jless trae `libc-stdhandle` (un sys-crate con un imp.c que # cc-rs compila); zig-cc lo rechaza (mismo frente que file/jq en C puro). `compiler="gcc"` ⇒ cc-rs diff --git a/recipes/incoming/sccache.toml b/recipes/incoming/sccache.toml index 1c5fd9d9..e01b5c33 100644 --- a/recipes/incoming/sccache.toml +++ b/recipes/incoming/sccache.toml @@ -13,7 +13,9 @@ commit = "c2e4b4ca035f91f8b63978afc8e2c71f174fe306" compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" -flags = ["--bin", "sccache"] +# default=["all"] arrastra todos los backends cloud (S3/GCS/azure) → reqwest → openssl-sys (sin +# openssl de sistema en el lab). --no-default-features ⇒ cache local en disco a secas, 100% Rust. +flags = ["--bin", "sccache", "--no-default-features"] [build.phases] install = "mkdir -p /out/usr/bin && cp target/release/sccache /out/usr/bin/sccache"