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"]