Etapa G: 2da pasada de la granja — 4 al corpus (95→99) + jless diferido
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>
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
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<Self, Box<dyn Error>>;
|
||||
+}
|
||||
+impl ClipboardProvider for ClipboardContext {
|
||||
+ fn new() -> Result<Self, Box<dyn Error>> {
|
||||
+ Err("clipboard no disponible (build headless sin X11)".into())
|
||||
+ }
|
||||
+}
|
||||
+impl ClipboardContext {
|
||||
+ fn set_contents(&mut self, _contents: String) -> Result<(), Box<dyn Error>> {
|
||||
+ Err("clipboard no disponible (build headless sin X11)".into())
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
use rustyline::error::ReadlineError;
|
||||
use rustyline::Editor;
|
||||
use termion::event::Key;
|
||||
@@ -1,26 +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 = "jless"
|
||||
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
|
||||
# usa el Alpine musl gcc para ese C; el linker sigue zig-cc (ABI musl compatible).
|
||||
[build]
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
flags = ["--bin", "jless"]
|
||||
|
||||
[build.phases]
|
||||
install = "mkdir -p /out/usr/bin && cp target/release/jless /out/usr/bin/jless"
|
||||
|
||||
# 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): python3, libxcb
|
||||
Reference in New Issue
Block a user