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 1572Shell 203Rust 109Markdown 993728 Definitions

⎇ 9fe1e010e21199c12896ff156f85884a83f04ce6 recipes/tejido.toml TOML · 55 lines · 3.3 KB History raw

INTERCAMBIO de tejido hecho: la identidad cambió de máquina, no de dueño 897b4eaf2 · Sergio ·

1# tejido — el relay de la flota: `tejido relay` en gioser, sirviendo :4102 y :33097.
2#
3# ⚠ Su IDENTIDAD no es reproducible: `~/.tejido/{persona,device,relay}.seed` + el padrón
4# (`roster.postcard`). Generar semillas nuevas no es «reinstalar»: es ser OTRA máquina para el
5# resto de la flota y perder los teléfonos dados de alta. El binario se construye; la identidad
6# se MUDA. La Card tiene que exigirla, no crearla.
7#
8# Receta Cargo contra el monorepo de tawasuyu, pinneada al MISMO commit que `shuma-*` y
9# `puriy-costura`: el árbol de fuentes se comparte por `<dep>-<sha>`, así que un pin distinto es otro
10# vendoreo de 2,4 G. Estática musl con zig-cc — la caja la arranca el init y no puede depender de
11# encontrar un cargador, que es justo lo que le falta al binario glibc de gioser.
12
13name    = "tejido"
14version = "0.1.0"
15license = "MIT OR Apache-2.0"
16
17[source]
18repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
19commit = "23a292863f53b355c5c02d6185904f2c33d8ab42"
20# tawasuyu COMMITEA su propio `vendor/` (smithay parcheado, enchufado por `[patch.crates-io]` POR
21# RUTA); el `cargo vendor` de takana lo pisaría y el error habla de `taffy`, no de esto.
22cargo_vendor_dir = ".hammer-cargo-vendor"
23
24[build]
25compiler = "zig-cc"
26target   = "x86_64-linux-musl"
27link     = "static"
28flags    = ["-p", "tejido", "--bin", "tejido"]
29
30# ── LA CUENTA Y EL SERVICIO (SDD 30) ────────────────────────────────────────────────────────────
31# Fuera de `hash_inputs`. En gioser corre como `sergio`, nunca como root ⇒ cuenta propia.
32[[user]]
33name = "tejido"
34uid  = 964
35home = "/var/lib/tejido"
36
37# ⚠⚠ **ESTE NO SE PUEDE ENCENDER MIENTRAS EL VIEJO SIGA VIVO, y es distinto de todo lo anterior.**
38# Con los vhosts la regla fue «mudá el DNS y dejá el origen encendido, así volver cuesta un minuto»
39# (§6.26). Acá NO vale: el README de tejido dice que **la clave que el roster atesta ES la identidad
40# de transporte libp2p** (`~/.tejido/device.seed`). Dos máquinas con la misma semilla son el MISMO
41# PeerId en la red — no dos réplicas: dos impostores mutuos. Por eso la Card queda en `cards.d` y
42# **no entra al `genesis`**: se enciende cuando el de gioser se apaga, en ese orden, y es un
43# INTERCAMBIO, no una convivencia.
44#
45# Y por eso la guarda EXIGE la identidad en vez de crearla: un `tejido` que genera semillas nuevas
46# arranca perfecto y es OTRA máquina para la flota — se pierde el padrón de teléfonos dados de alta.
47[[service]]
48label      = "tejido"
49id         = "01M2EKDA00TEJ1D0RE1AY00001"
50exec       = "/bin/busybox"
51argv = ["sh", "-c", "/bin/grep -q '^tejido:' /etc/passwd || { echo 'tejido: falta el usuario `tejido` en /etc/passwd — lo declara esta receta con [[user]]' >&2; exit 78; }; test -s /var/lib/tejido/.tejido/device.seed || { echo 'tejido: falta /var/lib/tejido/.tejido/device.seed — es la IDENTIDAD libp2p de esta máquina y NO se genera: viene de ~/.tejido del origen. Generar otra es ser otra máquina para la flota' >&2; exit 78; }; cd /var/lib/tejido || exit 78; exec /usr/bin/setuidgid tejido /usr/bin/tejido relay"]
52envp       = [["PATH", "/usr/bin:/bin"], ["HOME", "/var/lib/tejido"], ["USER", "tejido"]]
53networking = "full"
54cgroup     = "arje.slice/tejido"
55restart    = { initial_ms = 1000, max_ms = 30000 }