tawasuyu

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…

⎇ main recipes/arjectl.toml TOML · 40 líneas · 2.5 KB Historia crudo

feat(recetas): pata y churay entran al catálogo — «no hay pata» era que no existía el paquete 5ba9b5365 · Sergio ·

1# arjectl — el control en caliente del init. Sin esto, una caja de takana sólo se administra
2# REINICIÁNDOLA, y eso se descubrió del peor modo: la primera imagen del perfil `servidor` levantó
3# gitea, la card falló por falta de config, el backoff de `restart` se agotó y **no había forma de
4# pedirle a PID 1 que volviera a intentarlo**. Hubo que reiniciar la máquina entera para arrancar un
5# servicio (SDD 28 §6.11).
6#
7# ══ NO SE ESCRIBIÓ NADA: YA EXISTÍA, Y SE LLAMA `arje-ctl` ═════════════════════════════════════
8# El protocolo del bus (`arje-bus::BusRequest`) ya trae `ListEntes`, `SpawnCardFromDisk`,
9# `StopCardFromDisk`, `KillEnte` y `EnteStatus`; lo que faltaba en la imagen era el CLIENTE, que vive
10# en `03_ukupacha/arje/runtime/arje-ctl` y da `status`, `list-units`, `start`, `stop` y `restart`.
11# Buscarlo por `arjectl` no lo encontraba —el crate es `arje-ctl`, el binario `arjectl`— y de ahí
12# salió la conclusión falsa de que había que escribirlo.
13#
14# ══ EL COMMIT ES EL MISMO QUE `arje-zero`, Y NO ES POR COMODIDAD ═══════════════════════════════
15# El bus es un PROTOCOLO entre dos binarios: un cliente de otro commit puede hablarle a un init que
16# ya no entiende lo mismo, y el síntoma sería un `arjectl` que conecta y no obtiene respuesta. Que
17# `arje-zero`, `arje-polkit-compat` y éste salgan del mismo árbol es la garantía de que el cliente y
18# el init fueron compilados contra la MISMA definición. De paso reusa el árbol de fuentes ya
19# fetcheado (ADR 0012).
20#
21# ⚠ El crate publica DOS binarios: `arjectl` (soberano) y `systemctl` (drop-in de camuflaje, que
22# reenvía al systemd real si systemd es el init vivo). Acá se publica **sólo `arjectl`**: la distro
23# no tiene systemd y un `systemctl` en el PATH invitaría a escribir runbooks con el verbo ajeno.
24# Ponerlo sería una decisión de compatibilidad, no un efecto colateral de la receta.
25name    = "arjectl"
26version = "0.0.1"
27license = "MIT"
28
29[source]
30repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
31commit = "619431cac9753cd55d0f9e2d99ff8efe7fab651b"
32# Este árbol COMMITEA su propio `vendor/` y el `cargo vendor` de takana lo pisaría — igual que en
33# `arje-zero.toml`. Ver [[takana-cargo-vendor-clobbers-project-vendor]].
34cargo_vendor_dir = ".hammer-cargo-vendor"
35
36[build]
37compiler = "zig-cc"
38target   = "x86_64-linux-musl"
39link     = "static"
40flags    = ["-p", "arje-ctl", "--bin", "arjectl"]