gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1184Shell 70Rust 62Markdown 501503 Sutichaykuna

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).

53520c24b4e610c53afcdabeeeb58958d029e86d · ruwaq Sergio · (1 killa ñawpaq) · tayta 0949c0895 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

3 qillqakuna · +108 −0

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