From 53520c24b4e610c53afcdabeeeb58958d029e86d Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 12 Sep 2026 19:20:06 +0000 Subject: [PATCH] =?UTF-8?q?recetas:=20ncdu,=20wireguard-tools=20y=20cliphi?= =?UTF-8?q?st=20=E2=80=94=20tres=20huecos=20del=20userland,=20sellados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Primera tanda del barrido de huecos del catálogo moderno. Las tres SELLAN en el hub: ncdu b3:455589610a4d0378299a2a428f85d77c4d1998f71dbdb68bb704bd64a4ef40c5 wireguard-tools b3:9283f272e7833d55ec50ac854c98a5abdee81ad5ca01ce90de4ce6f241744bac cliphist b3:86597f25894ab7fce9df1af6e7a6942de5e677546fcc40d91fc087778c059343 - ncdu 1.22 y NO la 2.x: la 2 esta reescrita en Zig y exige una version concreta del compilador; 84 recetas ya pinean zig_version=0.13.0 y el zig del lab es rodante. La 1.22 es la ultima de la rama C y hace lo mismo. - wireguard-tools va link="dynamic" a proposito: libmnl canonica es --disable-static, o sea que en el store NO hay libmnl.a. Forzar static no daria un estatico sino un enlace contra el .a del sysroot Alpine DEL LAB — la misma fuga que documenta el perfil de sway con zlib/expat/libffi. - cliphist habla wlr-data-control: sirve en sway y COSMIC, NO en KDE ni GNOME (mismo muro que wf-recorder). Declararlo donde no funciona seria peor que no tenerlo. Las tres licencias VERIFICADAS contra el LICENSE/COPYING del arbol, no adivinadas. Ninguna esta declarada todavia en targets.toml: sellado != instalado (la leccion de foot). --- recipes/cliphist.toml | 33 ++++++++++++++++++++++++++++++ recipes/ncdu.toml | 36 +++++++++++++++++++++++++++++++++ recipes/wireguard-tools.toml | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 recipes/cliphist.toml create mode 100644 recipes/ncdu.toml create mode 100644 recipes/wireguard-tools.toml diff --git a/recipes/cliphist.toml b/recipes/cliphist.toml new file mode 100644 index 00000000..232aca03 --- /dev/null +++ b/recipes/cliphist.toml @@ -0,0 +1,33 @@ +# cliphist 0.7.0 — historial de portapapeles para Wayland. Go estático, un binario. +# +# ── POR QUÉ ENTRA ────────────────────────────────────────────────────────────────────────────── +# Los cuatro escritorios ya tienen `wl-clipboard` (copiar/pegar), pero el portapapeles de Wayland +# muere con el cliente que lo ofrece: cerrás la terminal y lo copiado se va. cliphist es el demonio +# que lo persiste y lo vuelve a ofrecer. Es la pieza que falta para que copiar/pegar se comporte +# como el usuario espera, y no depende del compositor: habla `wlr-data-control`, que implementan +# sway/wlroots y COSMIC. +# +# ⚠ NO SIRVE SOLO: se alimenta de `wl-paste --watch cliphist store` y devuelve por `wl-copy`. Por eso +# `wl-clipboard` va en `[deps] runtime` aunque el build no lo toque — sin él el binario corre y no +# hace nada, que es el modo de fallo silencioso de siempre. +# +# ⚠ KWin y mutter NO implementan `wlr-data-control` (mismo muro que `wf-recorder`): esto es útil en +# `escritorio-sway` y COSMIC, no en KDE ni GNOME. Declararlo donde no funciona sería peor que no +# tenerlo. +name = "cliphist" +version = "0.7.0" +license = "GPL-3.0-only" + +[source] +repo = "https://github.com/sentriz/cliphist" +commit = "efb61cb5b5a28d896c05a24ac83b9c39c96575f2" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = [] + +[deps] +build = ["go"] +runtime = ["wl-clipboard"] diff --git a/recipes/ncdu.toml b/recipes/ncdu.toml new file mode 100644 index 00000000..fadd2ee8 --- /dev/null +++ b/recipes/ncdu.toml @@ -0,0 +1,36 @@ +# ncdu 1.22 — analizador de uso de disco en TUI (NCurses Disk Usage). C + ncurses, autotools. +# +# ── POR QUÉ LA 1.22 Y NO LA 2.x ──────────────────────────────────────────────────────────────── +# ncdu 2 está reescrito en **Zig** y exige una versión concreta del compilador (0.14 en la serie +# actual). El lab tiene zig, pero 84 recetas pinean `zig_version = "0.13.0"` y el zig del lab es +# rodante: atarse a otra versión acá es importar la deriva del lab a una hoja. La 1.22 es la última +# de la rama C, está mantenida y hace lo mismo. Subir a la 2.x es su propia unidad de trabajo, con +# el pin de zig declarado. +# +# ── TARBALL DE RELEASE, NO GIT ───────────────────────────────────────────────────────────────── +# `dev.yorhel.nl` publica un dist propio que YA trae `configure` (el árbol de git sólo tiene +# `configure.ac` ⇒ pediría autoreconf). Y no es un `/archive/` generado al vuelo por una forge, así +# que el sha256 no se mueve cuando el servidor actualice git/gzip — la trampa que documenta `foot`. +# +# `ncurses` del corpus va `--enable-widec`, que es lo que ncdu pide (`ncursesw`); el `.pc` sale de +# `--enable-pc-files`, así que el configure la halla por pkgconf sin ayuda. +name = "ncdu" +version = "1.22" +license = "MIT" + +[source] +tarball = "https://dev.yorhel.nl/download/ncdu-1.22.tar.gz" +sha256 = "0ad6c096dc04d5120581104760c01b8f4e97d4191d6c9ef79654fa3c691a176b" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr' +compile = 'make' +install = 'make DESTDIR=/out install' + +[deps] +build = ["ncurses", "pkgconf"] diff --git a/recipes/wireguard-tools.toml b/recipes/wireguard-tools.toml new file mode 100644 index 00000000..67cf6682 --- /dev/null +++ b/recipes/wireguard-tools.toml @@ -0,0 +1,39 @@ +# wireguard-tools 1.0.20260223 — `wg` y `wg-quick`, el userland de WireGuard. C, Makefile a secas. +# +# ── POR QUÉ ENTRA ────────────────────────────────────────────────────────────────────────────── +# El VPN ya está en el kernel (`CONFIG_WIREGUARD`, ver SDD 22); lo que faltaba era con qué +# configurarlo. Sin esto una caja takana puede hablar WireGuard y no hay forma de decirle con quién. +# Pesa dos binarios y un puñado de scripts. +# +# ── `link = "dynamic"`, Y NO ES GUSTO ────────────────────────────────────────────────────────── +# `wg` enlaza `libmnl`, y la receta canónica de libmnl es `--disable-static --enable-shared`: en el +# store NO hay un `libmnl.a` contra el que enlazar. Forzar `static` acá no daría un binario estático +# sino un enlace contra el `.a` del sysroot Alpine DEL LAB —la fuga que documenta el perfil de sway +# con zlib/expat/libffi—, que sella bien y sólo corre en una máquina con Alpine debajo. Dinámico es +# lo honesto: el `NEEDED libmnl.so.0` lo cubre la clausura. +# +# ⚠ `wg-quick` es un script bash y pide `bash`, `ip` (iproute2) y `resolvconf`/`openresolv` en +# RUNTIME. `wg` a secas no necesita nada de eso. Se declara lo que existe en el corpus; el día que +# `wg-quick` falle por `ip`, el que falta es iproute2, no esta receta. +name = "wireguard-tools" +version = "1.0.20260223" +license = "GPL-2.0-only" + +[source] +repo = "https://git.zx2c4.com/wireguard-tools" +commit = "49ce333da02056ae7b22ee2aeb6afe8aaed79b19" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +# WITH_SYSTEMDUNITS=no: esta distro no tiene systemd (arje). WITH_BASHCOMPLETION/WITH_WGQUICK van +# explícitos para que el paquete no cambie de contenido si upstream mueve un default. +compile = 'make -C src WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no' +install = 'make -C src DESTDIR=/out PREFIX=/usr WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no install' + +[deps] +build = ["libmnl", "pkgconf"] +runtime = ["bash"]