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…

Markdown 19Rust 9TOML 655 Sutichaykuna

⎇ 93362fc21bb17467ac1f4e30f1bd645e7b8ad8e5 recipes/os-release.toml TOML · 38 siq'ikuna · 1.8 KB Ñawpa willay ch'uya

el TLS arreglado en la caja, la distro con nombre, y el ENOSPC que no era de la raíz 93362fc21 · Sergio ·

1# os-release — la identidad del sistema, que hasta hoy NO EXISTÍA.
2#
3# Se descubrió al meter `fastfetch` (2026-09-14): en la caja de producción decía
4#
5#     Host: vServer (20171111)
6#     Kernel: Linux 7.1.2
7#
8# …y ni una palabra de takana, porque `/etc/os-release` no está. No es cosmético: ese fichero es lo
9# que TODO el mundo lee para saber en qué distro corre — fastfetch, los instaladores de terceros, los
10# scripts de CI, el propio `qorpa` el día que quiera distinguir anfitrión de huésped. Una distro sin
11# `os-release` es anónima para cualquier programa que no sea suyo.
12#
13# ══ POR QUÉ UNA RECETA Y NO UNA CONSTANTE EN `takana-bootstrap` ════════════════════════════════
14# El `/etc/passwd` del producto SÍ es una constante de Rust, y esa decisión ya costó: para añadir un
15# usuario había que recompilar takana (lo arregló `[[user]]`). Meter `os-release` ahí re-sellaría el
16# `product-rootfs`, que es el **baseline del selfhost**, por un fichero de cinco líneas. Como receta
17# entra por perfil, se edita sin tocar el bootstrap y su radio es cero.
18#
19# ⚠ SIN VERSIÓN NI FECHA, a propósito. Un `VERSION_ID` con la fecha del build haría que este
20# artefacto —y con él la clausura de toda imagen que lo lleve— cambiara de hash cada día sin que
21# nada haya cambiado. La versión de una distro de árbol único es el hash de su imagen, que ya existe.
22name    = "os-release"
23version = "1"
24license = "MIT"
25
26[source]
27dir = "os-release/tree"
28
29[build]
30compiler = "zig-cc"
31target   = "x86_64-linux-musl"
32link     = "static"
33flags    = []
34
35[build.phases]
36configure = "true"
37compile   = "true"
38install   = "mkdir -p /out/etc && cp /src/etc/os-release /out/etc/os-release && mkdir -p /out/usr/lib && ln -sf ../../etc/os-release /out/usr/lib/os-release"