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…
caddy: receta TERMINADA — era un import de nix con un tag flotante
1# caddy 2.11.4 — servidor web y proxy inverso. Un binario Go estático, sin dependencias en runtime.
2#
3# ── ESTADO: TERMINADA (2026-09-11). Antes era un import de nix en crudo ────────────────────────
4# La cabecera decía «PUNTO DE PARTIDA, no final» y el `commit` era el TAG FLOTANTE `v2.11.4`, que
5# contradice el ADR 0006: un tag se puede mover, y entonces la misma receta construye otra cosa sin
6# que el hash lo note. Anclado con `takana pin` al SHA inmutable `e2eee6a7…` — el hash se movió a
7# propósito (`b3:d38acaa0…` → nuevo), que es exactamente lo que un anclaje debe hacer.
8#
9# ── POR QUÉ IMPORTA QUE ESTÉ TERMINADA ─────────────────────────────────────────────────────────
10# El `caddy` de gioser **no tiene dueño**: es un binario puesto a mano en `/usr/bin`, sin paquete y
11# sin receta (medido por `scripts/mudanza/censar.py`, que le preguntó a pacman). Se pierde con la
12# máquina. Con esta receta el servidor nuevo lo declara en su perfil y lo reconstruye — que es la
13# diferencia entre mudar un servidor y poder mudarlo otra vez (SDD 29).
14#
15# `link = "static"` y CGO apagado: Go estático no arrastra sonames, así que no repite la fuga del
16# `NEEDED` colgante — el binario corre en la imagen sin el sysroot del lab debajo.
17name = "caddy"
18version = "2.11.4"
19license = "Apache-2.0"
20
21[source]
22repo = "https://github.com/caddyserver/caddy"
23commit = "e2eee6a7fce366321294c9c2a79f3146891dcbdf"
24
25[build]
26compiler = "zig-cc"
27target = "x86_64-linux-musl"
28link = "static"
29flags = []
30
31# `go` es herramienta de BUILD, no dependencia de runtime: el binario sale autocontenido.
32[deps]
33build = ["go"]