recetas: ncdu, wireguard-tools y cliphist — tres huecos del userland, sellados
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).
This commit is contained in:
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
Reference in New Issue
Block a user