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…

TOML 1181Shell 82Rust 62Markdown 521515 Definiciones

SDD 26 §2.sexies: tres afirmaciones que el documento hacía sin medir, y cómo se cerraron

El re-empaque determinista, la capa de configuración y el branding visible eran afirmaciones, no
mediciones. Quedan con su prueba al lado: why-differs entre dos builds de atuq (85 idénticas, 0
divergen), el testigo escrito como pref de usuario, y la captura de la pantalla real.

De la primera salió el contraste que importa: el DERIVADO reproducía y la BASE no. El BuildID de
firefox era la hora del build, y build-state.json no lo podía ver porque el hash es input-addressed.
Verde y mintiendo. Cerrado, con guardián.

La regla que sale del día entero: cuando la duda es «¿llegó al artefacto?», la respuesta no está en
el log ni en la receta — está dentro del artefacto.

3ddac0269c3a3ef875171844a661dcab4c062d93 · por Sergio · (hace 1 mes) · padre e0dce7c4b · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +25 −1

diff --git a/docs/26-atuq-envoltorio-gecko.md b/docs/26-atuq-envoltorio-gecko.md
index b4ea2753..de507c2b 100644
--- a/docs/26-atuq-envoltorio-gecko.md
+++ b/docs/26-atuq-envoltorio-gecko.md
@@ -360,6 +360,30 @@ tampoco se podría shipear nunca**, así que la unidad 6 dependía de ésta sin
 `.cfg` modificado con `--ro-bind` por encima del artefacto. Editar el fichero en el rootfs habría
 escrito sobre un **hardlink del store** y corrompido el artefacto sellado.
 
+### 2.sexies Lo que quedó PROBADO, y con qué
+
+Tres afirmaciones que este documento venía haciendo sin medir, y cómo se cerraron:
+
+| Afirmación | Prueba |
+|---|---|
+| El re-empaque del `omni.ja` es determinista | `why-differs` entre dos builds de `atuq`: **85 entradas idénticas, 0 divergen** |
+| La capa de configuración se aplica | testigo `atuq.autoconfig.ok` escrito como pref de **usuario** en el perfil |
+| El branding se ve | captura de la pantalla real con `grim` desde dentro de la jaula, y la página de inicio renderizada por el propio navegador con `--headless --screenshot` |
+
+Y el contraste que salió de la primera: **el derivado reproducía y la base no.** El `BuildID` de
+`firefox` era la hora del build, así que dos construcciones con el mismo `ArtifactHash` daban bytes
+distintos — y `build-state.json` no lo podía ver, porque el hash es input-addressed y no se mueve
+por esto. Verde y mintiendo. Cerrado con `MOZ_BUILD_DATE` desde `SOURCE_DATE_EPOCH`, que es el
+mecanismo de hermeticidad que el sandbox ya tenía.
+
+**Dos guardianes nuevos en la fase `install` de `firefox`**, hermanos entre sí, porque los dos fallos
+son de la misma familia —una bandera que el `configure` acepta y el artefacto ignora, muda y a 50
+minutos de distancia—: uno comprueba `MOZ_REQUIRE_SIGNING: false` dentro del `omni.ja`, el otro que
+el `BuildID` sea el que `SOURCE_DATE_EPOCH` obliga.
+
+**La regla que sale de todo el día:** cuando la duda es «¿llegó al artefacto?», la respuesta no está
+en el log del build ni en la receta — está **dentro del artefacto**, y hay que ir a buscarla ahí.
+
 ## 7. La costura: un host de native messaging en Rust
 
 Todo lo del §6 que no es CSS pasa por **un solo mecanismo**: un proceso Rust que habla native
@@ -387,7 +411,7 @@ siguiente.
 | 4.b | Branding + re-empaque de `omni.ja` ✅ v0.2 | el chrome de verdad | — |
 | 4.d | **Abrirlo en pantalla** — destapó EXDEV, el lanzador, el `atk` envenenado y la cadena GTK3 estática | «usable», no sólo «sellado» | — |
 | 4.e | **v0.3: página de inicio y pestaña nueva** por extensión de sistema; exigió `MOZ_REQUIRE_SIGNING` vacío | y con eso queda destrabada la unidad 6 (`sct`) | rebuild de firefox |
-| 4.c | **`MOZ_BUILD_DATE` determinista en `firefox`** — hoy el `BuildID` es la fecha del build ⇒ el artefacto **no reproduce bit a bit** | el invariante de reproducibilidad | otro build de 4 h + re-sellar atuq |
+| 4.c | `MOZ_BUILD_DATE` determinista ✅ — `BuildID=19700101000001`, de `SOURCE_DATE_EPOCH`, con guardián en la fase install | el invariante de reproducibilidad | — |
 | 5 | Host de native messaging (tawasuyu) | los verbos del §6 | 4 |
 | 6 | `sct` v1 (extensión + testigo) | el diferenciador que nadie tiene | 5 |
 | 7 | Descargas al CAS | 6.2, y alimenta 6.9 | 5 |