From 71bc228102f362fab5df25e898514f792c93c0bc Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 23 Jun 2026 17:49:50 -0400 Subject: [PATCH] =?UTF-8?q?Etapa=20G:=20cosecha=20tanda=20CLI=20Rust=20?= =?UTF-8?q?=E2=80=94=205=20promovidos=20est=C3=A1ticos=20(corpus=20154?= =?UTF-8?q?=E2=86=92159)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drenada la cola de 14 staged. 5 sellados+publicados al repo firmado, todos ESTÁTICOS y ejecutan (versión correcta): - topgrade 17.6.1, git-absorb 0.9.0, cargo-audit 0.22.1, yazi 26.5.6, cargo-edit 0.13.11 Patrón común de de-Alpinización (estilo zellij): el lab NO trae `cargo auditable` ⇒ reescritas LIMPIAS sin él ni manpage/completions. Claves de la tanda: - SIN fase compile custom ⇒ path default del lab (aplica crt-static tras `cargo rustc --`, sólo el bin top, NO en RUSTFLAGS donde rompería los proc-macros) + linker zig-cc ⇒ binario estático. Las fases custom con `cargo build` salían DINÁMICAS (musl pie) y no corrían en el host — corregido. - compiler="gcc" donde hay deps-C de build-script (git2/openssl/ring/mlua-lua/ jemalloc/onig): el CC=zig global rechaza el triple x86_64-alpine-linux-musl; el gueto gcc-musl los compila, linker sigue zig-cc. +deps zlib en git-absorb/cargo-audit. - cargo-edit: 4 bins (cargo-add/rm/upgrade/set-version, no hay bin `cargo-edit`); el path default (`cargo rustc -- flags`) exige un único target ⇒ fase custom que itera los 4 bins con crt-static por-bin. - yazi: dropeado el patch system-lua + dep lua5.5 ⇒ mlua vendorea su Lua. Diferidos a incoming/.deferred (frontera dura, motivo documentado): - jless → libxcb (clipboard X11, dep real sin receta) - b3sum → proyecto anidado con Cargo.lock propio (el vendor del lab no lo alcanza) - dprint/mprocs → libclang.a/bindgen (clang-sys estático) - hck → libz-sys (-lz no hallado), kalker → gmp, dura → Cargo.lock stale, xcp → libfs i32/u64 musl, mdcat → #![deny(warnings)] en lib (path default no deja inyectar --cap-lints) Co-Authored-By: Claude Opus 4.8 --- recipes/cargo-audit.toml | 21 +++++++++ recipes/cargo-edit.toml | 31 +++++++++++++ recipes/git-absorb.toml | 21 +++++++++ recipes/incoming/{ => .deferred}/b3sum.toml | 0 recipes/incoming/{ => .deferred}/dprint.toml | 0 recipes/incoming/{ => .deferred}/dura.toml | 0 recipes/incoming/{ => .deferred}/hck.toml | 0 recipes/incoming/.deferred/jless.toml | 25 ++++++++++ recipes/incoming/{ => .deferred}/kalker.toml | 0 recipes/incoming/{ => .deferred}/mdcat.toml | 0 recipes/incoming/{ => .deferred}/mprocs.toml | 0 recipes/incoming/{ => .deferred}/xcp.toml | 0 recipes/incoming/cargo-audit.toml | 37 --------------- recipes/incoming/cargo-edit.toml | 22 --------- recipes/incoming/git-absorb.toml | 48 -------------------- recipes/incoming/jless.toml | 36 --------------- recipes/incoming/topgrade.toml | 47 ------------------- recipes/incoming/yazi.toml | 41 ----------------- recipes/topgrade.toml | 16 +++++++ recipes/yazi.toml | 18 ++++++++ 20 files changed, 132 insertions(+), 231 deletions(-) create mode 100644 recipes/cargo-audit.toml create mode 100644 recipes/cargo-edit.toml create mode 100644 recipes/git-absorb.toml rename recipes/incoming/{ => .deferred}/b3sum.toml (100%) rename recipes/incoming/{ => .deferred}/dprint.toml (100%) rename recipes/incoming/{ => .deferred}/dura.toml (100%) rename recipes/incoming/{ => .deferred}/hck.toml (100%) create mode 100644 recipes/incoming/.deferred/jless.toml rename recipes/incoming/{ => .deferred}/kalker.toml (100%) rename recipes/incoming/{ => .deferred}/mdcat.toml (100%) rename recipes/incoming/{ => .deferred}/mprocs.toml (100%) rename recipes/incoming/{ => .deferred}/xcp.toml (100%) delete mode 100644 recipes/incoming/cargo-audit.toml delete mode 100644 recipes/incoming/cargo-edit.toml delete mode 100644 recipes/incoming/git-absorb.toml delete mode 100644 recipes/incoming/jless.toml delete mode 100644 recipes/incoming/topgrade.toml delete mode 100644 recipes/incoming/yazi.toml create mode 100644 recipes/topgrade.toml create mode 100644 recipes/yazi.toml diff --git a/recipes/cargo-audit.toml b/recipes/cargo-audit.toml new file mode 100644 index 00000000..28167e59 --- /dev/null +++ b/recipes/cargo-audit.toml @@ -0,0 +1,21 @@ +# cargo-audit 0.22.1 — audita Cargo.lock contra la base RustSec. Etapa G, tier CLI Rust con dep-C. +# Reescrita LIMPIA estilo zellij: sin `cargo auditable`. SIN fases ⇒ path default (crt-static + +# linker zig ⇒ ESTÁTICO). `--features fix` añade el subcomando `cargo audit fix` (como Alpine). +# - compiler="gcc": deps-C de build-script (ring/constant_time, git2 vía la feature fix); el gueto +# gcc los compila (el CC=zig global no traga el triple alpine), linker zig-cc. +# - deps.build=["zlib"]: git2/openssl-sys enlazan -lz. +name = "cargo-audit" +version = "0.22.1" + +[source] +tarball = "https://github.com/RustSec/cargo-audit/archive/cargo-audit/v0.22.1.tar.gz" +sha256 = "262d42fcca5db8629b6220d84e62e7ffda913846a36089a847ffe276e6b09446" + +[build] +compiler = "gcc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--features", "fix", "--bin", "cargo-audit"] + +[deps] +build = ["zlib"] diff --git a/recipes/cargo-edit.toml b/recipes/cargo-edit.toml new file mode 100644 index 00000000..06011ff3 --- /dev/null +++ b/recipes/cargo-edit.toml @@ -0,0 +1,31 @@ +# cargo-edit 0.13.11 — cargo add/rm/upgrade/set-version. Etapa G, tier CLI Rust. +# Caso especial: produce 4 bins (gated por las features default add/rm/upgrade/set-version) y NO +# hay un bin `cargo-edit`. El path default del lab usa `cargo rustc -- ` que exige UN único +# target ⇒ inservible para multi-bin. Por eso una fase compile custom que REPLICA el setup estático +# del lab (wrapper .hammer-zig-cc que reescribe --target + crt-static) pero con `cargo build` (todos +# los bins). crt-static va TRAS `cargo rustc --` (sólo el bin top), NUNCA en RUSTFLAGS: ahí alcanza +# a los proc-macros (clap_derive) y rustc aborta ("cannot produce proc-macro ... crt-static"). Como +# `cargo rustc --` exige un único target, itero los 4 bins. El install lo auto-genera el lab. +name = "cargo-edit" +version = "0.13.11" + +[source] +repo = "https://github.com/killercup/cargo-edit" +commit = "98d58b713cb9a7715c01053dbd36cb84f3be1e4f" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = [] + +[build.phases] +compile = ''' +printf '%s\n' '#!/bin/sh' 'for a do' 'case "$a" in --target=*) a=--target=x86_64-linux-musl ;; esac' 'set -- "$@" "$a"' 'shift' 'done' 'exec zig cc -mcpu=baseline "$@"' > "$PWD/.hammer-zig-cc" +chmod +x "$PWD/.hammer-zig-cc" +RF="-C linker=$PWD/.hammer-zig-cc" +rustc -vV | grep -q 'host: .*-alpine-' || RF="$RF -C link-self-contained=no" +for b in cargo-add cargo-rm cargo-upgrade cargo-set-version; do + CC=gcc CXX=g++ AR=ar RUSTFLAGS="$RF" cargo rustc --release --locked --bin "$b" -- -C target-feature=+crt-static -C relocation-model=static +done +''' diff --git a/recipes/git-absorb.toml b/recipes/git-absorb.toml new file mode 100644 index 00000000..7718a722 --- /dev/null +++ b/recipes/git-absorb.toml @@ -0,0 +1,21 @@ +# git-absorb 0.9.0 — autogenera commits fixup! y los absorbe. Etapa G, tier CLI Rust con dep-C. +# Reescrita LIMPIA estilo zellij: sin `cargo auditable` (no está en el lab) ni manpage (asciidoc). +# SIN fases ⇒ path default (crt-static + linker zig ⇒ ESTÁTICO). +# - compiler="gcc": git2/libgit2-sys vendorea libgit2 en C (build-script cc-rs); el gueto gcc lo +# compila (el CC=zig global no traga el triple alpine), el linker sigue zig-cc. +# - deps.build=["zlib"]: libgit2-sys enlaza -lz; el lab materializa libz.a en /usr/lib. +name = "git-absorb" +version = "0.9.0" + +[source] +tarball = "https://github.com/tummychow/git-absorb/archive/refs/tags/0.9.0.tar.gz" +sha256 = "a0f74e6306d7fbd746d2b4a6856621d46a7f82e3e88b6bb8b6fc0480cf811f53" + +[build] +compiler = "gcc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--bin", "git-absorb"] + +[deps] +build = ["zlib"] diff --git a/recipes/incoming/b3sum.toml b/recipes/incoming/.deferred/b3sum.toml similarity index 100% rename from recipes/incoming/b3sum.toml rename to recipes/incoming/.deferred/b3sum.toml diff --git a/recipes/incoming/dprint.toml b/recipes/incoming/.deferred/dprint.toml similarity index 100% rename from recipes/incoming/dprint.toml rename to recipes/incoming/.deferred/dprint.toml diff --git a/recipes/incoming/dura.toml b/recipes/incoming/.deferred/dura.toml similarity index 100% rename from recipes/incoming/dura.toml rename to recipes/incoming/.deferred/dura.toml diff --git a/recipes/incoming/hck.toml b/recipes/incoming/.deferred/hck.toml similarity index 100% rename from recipes/incoming/hck.toml rename to recipes/incoming/.deferred/hck.toml diff --git a/recipes/incoming/.deferred/jless.toml b/recipes/incoming/.deferred/jless.toml new file mode 100644 index 00000000..d80345a4 --- /dev/null +++ b/recipes/incoming/.deferred/jless.toml @@ -0,0 +1,25 @@ +# Importada de Alpine aports por `hammer import-alpine` (Etapa G). Reescrita LIMPIA +# (patrón zellij/xsv): sin `cargo auditable` (no está en el lab). Deps espurias de Alpine +# dropeadas: python3 (sólo para tests), libxcb (no lo usa el build del binario). +name = "jless" +version = "0.9.0" + +[source] +tarball = "https://github.com/PaulJuliusMartinez/jless/archive/refs/tags/v0.9.0.tar.gz" +sha256 = "43527a78ba2e5e43a7ebd8d0da8b5af17a72455c5f88b4d1134f34908a594239" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = [] + +# CC=gcc: el shim C libc-stdhandle (dep) se compila con cc-rs, y el CC=zig global del +# sandbox rechaza el triple x86_64-alpine-linux-musl (el wrapper .hammer-zig-cc sólo opera +# en el path default, no en fases custom). gcc-musl nativo del rootfs lo compila limpio. +[build.phases] +compile = "CC=gcc CXX=g++ AR=ar cargo build --frozen --release" +install = ''' +mkdir -p /out/usr/bin +cp target/release/jless /out/usr/bin/jless +''' diff --git a/recipes/incoming/kalker.toml b/recipes/incoming/.deferred/kalker.toml similarity index 100% rename from recipes/incoming/kalker.toml rename to recipes/incoming/.deferred/kalker.toml diff --git a/recipes/incoming/mdcat.toml b/recipes/incoming/.deferred/mdcat.toml similarity index 100% rename from recipes/incoming/mdcat.toml rename to recipes/incoming/.deferred/mdcat.toml diff --git a/recipes/incoming/mprocs.toml b/recipes/incoming/.deferred/mprocs.toml similarity index 100% rename from recipes/incoming/mprocs.toml rename to recipes/incoming/.deferred/mprocs.toml diff --git a/recipes/incoming/xcp.toml b/recipes/incoming/.deferred/xcp.toml similarity index 100% rename from recipes/incoming/xcp.toml rename to recipes/incoming/.deferred/xcp.toml diff --git a/recipes/incoming/cargo-audit.toml b/recipes/incoming/cargo-audit.toml deleted file mode 100644 index ec6f4b78..00000000 --- a/recipes/incoming/cargo-audit.toml +++ /dev/null @@ -1,37 +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 = "cargo-audit" -version = "0.22.1" - -[source] -tarball = "https://github.com/RustSec/cargo-audit/archive/cargo-audit/v0.22.1.tar.gz" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "bafc8e553c4d82c1e709de8e6e416ad1ee13a73b7e6f2169783bec8bd5816244badb8df78050f8cabb40bb1ab85fa159ae7d0d7be21708fa3a9275518e8a3795" -sha256 = "262d42fcca5db8629b6220d84e62e7ffda913846a36089a847ffe276e6b09446" - -[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 build --release --frozen --features fix -} -_abuild_phase -''' -# de package() de Alpine (traducido $pkgdir→/out): -install = ''' -_abuild_phase() { -install -Dm 755 target/release/cargo-audit -t "/out/usr/bin" - install -Dm 644 -t "/out/usr/share/doc/cargo-audit" README.md -} -_abuild_phase -''' - -[deps] -build = ["openssl"] diff --git a/recipes/incoming/cargo-edit.toml b/recipes/incoming/cargo-edit.toml deleted file mode 100644 index 69fdfae5..00000000 --- a/recipes/incoming/cargo-edit.toml +++ /dev/null @@ -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 = "cargo-edit" -version = "0.13.11" - -[source] -repo = "https://github.com/killercup/cargo-edit" -commit = "98d58b713cb9a7715c01053dbd36cb84f3be1e4f" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "static" -flags = ["--bin", "cargo-edit"] - -[build.phases] -install = "mkdir -p /out/usr/bin && cp target/release/cargo-edit /out/usr/bin/cargo-edit" - -# 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): openssl, zlib diff --git a/recipes/incoming/git-absorb.toml b/recipes/incoming/git-absorb.toml deleted file mode 100644 index 2d40946a..00000000 --- a/recipes/incoming/git-absorb.toml +++ /dev/null @@ -1,48 +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 = "git-absorb" -version = "0.9.0" - -[source] -tarball = "https://github.com/tummychow/git-absorb/archive/refs/tags/0.9.0.tar.gz" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "5a02cbbb4df65340705dd6ef721cd40d8ae7eadf6926f9682de3a6ade20d9a2b1caf51e69d32b9c47e2b7a16c864f58992fbe486387c480965cc816f2b713011" -sha256 = "a0f74e6306d7fbd746d2b4a6856621d46a7f82e3e88b6bb8b6fc0480cf811f53" - -[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 - - target/release/git-absorb --gen-completions bash > git-absorb.bash - target/release/git-absorb --gen-completions fish > git-absorb.fish - target/release/git-absorb --gen-completions zsh > _git-absorb - - make -C Documentation git-absorb.1 -} -_abuild_phase -''' -# de package() de Alpine (traducido $pkgdir→/out): -install = ''' -_abuild_phase() { -install -Dm755 --target-directory="/out"/usr/bin target/release/git-absorb - - install -Dm644 git-absorb.bash "/out"/usr/share/bash-completion/completions/git-absorb - install -Dm644 git-absorb.fish "/out"/usr/share/fish/vendor_completions.d/git-absorb.fish - install -Dm644 _git-absorb "/out"/usr/share/zsh/site-functions/_git-absorb - - install -Dm644 --target-directory="/out"/usr/share/man/man1 Documentation/git-absorb.1 -} -_abuild_phase -''' - -[deps] -build = ["asciidoc", "libgit2"] diff --git a/recipes/incoming/jless.toml b/recipes/incoming/jless.toml deleted file mode 100644 index 10b1e2a1..00000000 --- a/recipes/incoming/jless.toml +++ /dev/null @@ -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 = "jless" -version = "0.9.0" - -[source] -tarball = "https://github.com/PaulJuliusMartinez/jless/archive/refs/tags/v0.9.0.tar.gz" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "2c0f4b5d662f7e93727b25ef6b138368b453dc7246a6a2a3d14c158e15baeaf70df00252b0e1a813016837504bd6f75585d6e21760c52fc3ba76d61fc094ec7a" -sha256 = "43527a78ba2e5e43a7ebd8d0da8b5af17a72455c5f88b4d1134f34908a594239" - -[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 -Dm0755 target/release/jless "/out"/usr/bin/jless -} -_abuild_phase -''' - -[deps] -build = ["python3", "libxcb"] diff --git a/recipes/incoming/topgrade.toml b/recipes/incoming/topgrade.toml deleted file mode 100644 index 83ed90a4..00000000 --- a/recipes/incoming/topgrade.toml +++ /dev/null @@ -1,47 +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 = "topgrade" -version = "17.6.1" - -[source] -tarball = "https://github.com/topgrade-rs/topgrade/archive/refs/tags/v17.6.1.tar.gz" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "4473e971a3c744ce4f07096c7b6e38d384b2d1eb8698cfa26bd6018c361a667f971f14410d265b2c82119d805485c9247d4d16465dc0e7e2b4b5f7b4529b600b" -sha256 = "c25274461f61b8fa469c1645a892bb5b52236bb64dc448152c6f485f9ec1cb1d" - -[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 --release --frozen - - target/release/topgrade --gen-completion bash > topgrade.bash - target/release/topgrade --gen-completion fish > topgrade.fish - target/release/topgrade --gen-completion zsh > _topgrade - - target/release/topgrade --gen-manpage > topgrade.8 -} -_abuild_phase -''' -# de package() de Alpine (traducido $pkgdir→/out): -install = ''' -_abuild_phase() { -install -Dm755 target/release/topgrade "/out"/usr/bin/topgrade - install -Dm644 LICENSE "/out"/usr/share/licenses/topgrade/LICENSE - - install -Dm644 topgrade.bash "/out"/usr/share/bash-completion/completions/topgrade - install -Dm644 topgrade.fish "/out"/usr/share/fish/vendor_completions.d/topgrade.fish - install -Dm644 _topgrade "/out"/usr/share/zsh/site-functions/_topgrade - - install -Dm644 config.example.toml "/out"/usr/share/doc/topgrade/config.example.toml - install -Dm644 topgrade.8 "/out"/usr/share/man/man8/topgrade.8 -} -_abuild_phase -''' diff --git a/recipes/incoming/yazi.toml b/recipes/incoming/yazi.toml deleted file mode 100644 index e91994af..00000000 --- a/recipes/incoming/yazi.toml +++ /dev/null @@ -1,41 +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 = "yazi" -version = "26.5.6" - -[source] -tarball = "https://github.com/sxyazi/yazi/archive/refs/tags/v26.5.6.tar.gz" -# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine: -# sha512 = "2f1b980753c82f5e4186759ec6c40df6c2d740b3521fe31edaff69802701b0c5292c03fde5a1e775e17e91c694ea63c0b16a149fa39ccc609b4780281421d38e" -sha256 = "a18445df86a20068f7b17609d12d6f635de488958579ae7a2b143a244ba7e63f" -patches = ["system-lua.patch"] - -[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() { -YAZI_GEN_COMPLETIONS=true cargo auditable build --release --frozen --workspace --no-default-features -} -_abuild_phase -''' -# de package() de Alpine (traducido $pkgdir→/out): -install = ''' -_abuild_phase() { -install -Dm755 target/release/yazi "/out"/usr/bin/yazi - install -Dm644 yazi-boot/completions/yazi.bash "/out"/usr/share/bash-completion/completions/yazi - install -Dm644 yazi-boot/completions/yazi.fish "/out"/usr/share/fish/vendor_completions.d/yazi.fish - install -Dm644 yazi-boot/completions/_yazi "/out"/usr/share/zsh/site-functions/_yazi - install -Dm644 LICENSE "/out"/usr/share/licenses/yazi/LICENSE -} -_abuild_phase -''' - -[deps] -build = ["lua5.5"] diff --git a/recipes/topgrade.toml b/recipes/topgrade.toml new file mode 100644 index 00000000..626b10ed --- /dev/null +++ b/recipes/topgrade.toml @@ -0,0 +1,16 @@ +# topgrade 17.6.1 — actualiza todas las herramientas del sistema de una. Etapa G, tier CLI Rust. +# Reescrita LIMPIA estilo zellij: el import de Alpine traía `cargo auditable` (no está en el lab) +# + manpage/completions. SIN fases ⇒ el lab autodetecta Cargo y usa el path default (que aplica +# crt-static + linker zig-cc ⇒ binario ESTÁTICO). Pure-Rust ⇒ zig-cc baseline. +name = "topgrade" +version = "17.6.1" + +[source] +tarball = "https://github.com/topgrade-rs/topgrade/archive/refs/tags/v17.6.1.tar.gz" +sha256 = "c25274461f61b8fa469c1645a892bb5b52236bb64dc448152c6f485f9ec1cb1d" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--bin", "topgrade"] diff --git a/recipes/yazi.toml b/recipes/yazi.toml new file mode 100644 index 00000000..d5fd0f4d --- /dev/null +++ b/recipes/yazi.toml @@ -0,0 +1,18 @@ +# yazi 26.5.6 — file manager de terminal (blazing-fast, async). Etapa G, tier CLI Rust con dep-C. +# Reescrita LIMPIA estilo zellij: sin `cargo auditable`, sin el patch system-lua (mlua VENDOREA su +# Lua). SIN fases ⇒ path default (crt-static + linker zig ⇒ ESTÁTICO). +# - compiler="gcc": mlua-sys (Lua C), tikv-jemalloc-sys, onig_sys y ring compilan C vía cc-rs; el +# gueto gcc los compila (el CC=zig global no traga el triple alpine), linker zig-cc. +# - --no-default-features: evita los plugins que pedirían un Lua externo. +name = "yazi" +version = "26.5.6" + +[source] +tarball = "https://github.com/sxyazi/yazi/archive/refs/tags/v26.5.6.tar.gz" +sha256 = "a18445df86a20068f7b17609d12d6f635de488958579ae7a2b143a244ba7e63f" + +[build] +compiler = "gcc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--no-default-features", "--bin", "yazi"]