From 01649076dafe1482f423b27976ff16602d9b5dc9 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sun, 13 Sep 2026 20:11:10 +0000 Subject: [PATCH] =?UTF-8?q?SDD=2026:=20el=20paquete=20opcional=20entra=20a?= =?UTF-8?q?l=20cat=C3=A1logo=20FIRMADO,=20y=20las=20tres=20cosas=20que=20s?= =?UTF-8?q?=C3=B3lo=20aparecieron=20al=20instalarlo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/26-atuq-envoltorio-gecko.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/26-atuq-envoltorio-gecko.md b/docs/26-atuq-envoltorio-gecko.md index a87877e2..5f1532a7 100644 --- a/docs/26-atuq-envoltorio-gecko.md +++ b/docs/26-atuq-envoltorio-gecko.md @@ -767,6 +767,32 @@ no hay modelo de embeddings en /usr/share/takana/ia/embeddings.gguf: es una desc — instalalo con `takana install ia-modelo-embeddings` ``` +**El catálogo, firmado y verificado en los dos sentidos.** Publicar el paquete no alcanza: un +catálogo sin firma deja a `install --require-signed` sin nada que comprobar, y una firma con clave +efímera es decoración (SDD 19 §3.2). Se firmó con la **clave estable** del SDD 28 §5.1 —pública en +`trust/`, privada fuera de git— y se comprobó como corresponde: + +| `--trust` | resultado | +|---|---| +| `./trust` | `release: trusted (by release) — 94 paquete(s)` | +| un directorio vacío | `release: unknown-key … añadí su clave para confiar` | + +⚠ Esto es un **ensayo local**: `dist/repo` no está en git y la publicación de verdad es la caja del +SDD 28 §5. Lo que queda demostrado acá es que el paquete y su cierre entran al catálogo firmado sin +inventar nada nuevo. + +⚠ **Y tres cosas que sólo aparecieron al instalarlo de verdad, no al empaquetarlo:** + +1. **el cierre no estaba publicado**: faltaban `llama-cpp` y `cmake`. Un paquete cuyo cierre no está + en el catálogo existe y **no se instala**; +2. **tres paquetes llevaban el ancla de sanidad por default** (`/usr/bin/`), que en una + librería o en un modelo no existe — `install` habría fallado al verificar algo que nunca iba a + estar; +3. **el instalador no podía instalar a otro filesystem**: `Invalid cross-device link`, justo en el + caso que su propia ayuda promete. Y no hace falta tener dos discos: `linkat` da EXDEV **entre dos + mounts del mismo dispositivo**, y el store de esta máquina es un bind-mount. Arreglado con una + copia ante EXDEV —y sólo ante EXDEV— en `takana-build::hydrate`, con su test cruzando a `/dev/shm`. + #### 6.3.quater El modelo que elegimos NO SERVÍA, y el síntoma no se parecía a la causa (2026-09-12) Esto es la unidad de trabajo más caras de esta tanda y vale escribirla entera, porque la clase de