diff --git a/recipes/incoming/shuma-daemon.toml b/recipes/incoming/shuma-daemon.toml new file mode 100644 index 00000000..f77d7263 --- /dev/null +++ b/recipes/incoming/shuma-daemon.toml @@ -0,0 +1,26 @@ +# shuma-daemon — el dueño de los Workspaces de shuma: sesiones PTY, paneles y el socket de admin +# que consultan el gateway, el TUI y el shell. Es el que hace que `/shuma/*` sirva de algo. +# +# ── POR QUÉ ESTA RECETA (2026-09-16) ──────────────────────────────────────────────────────────── +# Va en par con `shuma-gateway`: el gateway sin daemon es un puente a ninguna parte. Los dos corren +# hoy en gioser desde binarios puestos a mano —el del daemon, además, desde un **inodo borrado**— y +# la mudanza los reconstruye en vez de copiarlos (SDD 28 §6.34). +# +# ⚠ **Lo que esta receta NO resuelve, y hay que decirlo acá**: en gioser el daemon corre como +# `sergio`, no como root, y el payload `Native` de una tarjeta de arje **no tiene campo de usuario** +# (SDD 29 §4.0 quinquies). Declararlo sin más lo pondría a correr como root, que no es «perder una +# opción» sino cambiar el sistema. La bajada de privilegio se decide al escribir la tarjeta, no acá. +name = "shuma-daemon" +version = "0.1.0" +license = "MIT OR Apache-2.0" + +[source] +repo = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git" +commit = "23a292863f53b355c5c02d6185904f2c33d8ab42" +cargo_vendor_dir = ".hammer-cargo-vendor" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = ["-p", "shuma-daemon", "--bin", "shuma-daemon"] diff --git a/recipes/incoming/shuma-gateway.toml b/recipes/incoming/shuma-gateway.toml new file mode 100644 index 00000000..39f85cd1 --- /dev/null +++ b/recipes/incoming/shuma-gateway.toml @@ -0,0 +1,34 @@ +# shuma-gateway — el puente HTTP/JSON + WebSocket de shuma: lo que `sergio.gioser.net/shuma/*` +# atraviesa para hablarle al daemon. Traduce JSON ↔ postcard y empalma WS ↔ ExecPty. +# +# ── POR QUÉ EXISTE ESTA RECETA (2026-09-16) ───────────────────────────────────────────────────── +# Es el ÚLTIMO vhost atado a gioser (SDD 28 §6.34): de los 29 dominios del Caddyfile, `sergio` es el +# único que todavía resuelve a la máquina que se borra, y lo que lo ata no es el sitio —su frontend +# ya está copiado en la caja— sino esta consola. El binario que corre allá hoy es **glibc, puesto a +# mano, y su inodo está BORRADO del disco**: vive sólo mientras el proceso no muera. Un servicio así +# no se muda copiándolo; se DECLARA y se reconstruye, que es lo que decidió el usuario cuando se le +# ofrecieron las tres salidas (jaula glibc / construirlo desde tawasuyu / que muera). +# +# ── EL PIN ────────────────────────────────────────────────────────────────────────────────────── +# `23a292863` es el MISMO commit que ya usa `puriy-costura` (subido hoy). Compartir el pin no es +# cosmético: el árbol de fuentes de una dep se comparte entre recetas (`work/sources/-`), +# así que dos pines distintos del monorepo son dos árboles de 2,4 G vendoreados en vez de uno. +name = "shuma-gateway" +version = "0.1.0" +license = "MIT OR Apache-2.0" + +[source] +repo = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git" +commit = "23a292863f53b355c5c02d6185904f2c33d8ab42" +# tawasuyu COMMITEA su propio `vendor/` (smithay parcheado, enchufado por `[patch.crates-io]` POR +# RUTA) y el `cargo vendor` de takana lo pisaría, con un error que habla de `taffy` y no de esto. +# Ver [[takana-cargo-vendor-clobbers-project-vendor]] y el cabezal de `puriy-costura`. +cargo_vendor_dir = ".hammer-cargo-vendor" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +# Estático musl: lo arranca el init de la caja y no puede depender de encontrar un cargador. Es +# exactamente lo que le falta hoy al binario de gioser, que es ELF dinámico contra glibc. +link = "static" +flags = ["-p", "shuma-gateway", "--bin", "shuma-gateway"]