espejo provisional del repo en takana.gioser.net/repo, sin firmar y diciéndolo
Mientras repo.gioser.net espera su vhost (root), el catálogo queda servido bajo el sitio que Caddy ya atiende: /work/sergio/gioser-web/takana/repo, escribible sin root y con certificado válido. 173 paquetes; `install zsh` desde la URL pública tarda 0,22 s (1331 ficheros) y el binario corre. El índice va SIN FIRMA a propósito. La clave de release está en /root/.config/takana/keys y desde la jaula no se alcanza; firmarlo con otra habría sido peor que no firmarlo, porque una autoría inventada se lee igual que una real — es la «firma sin gestión de claves» que repo-perfil.sh se niega a hacer. Se le quitó la firma de la clave de prueba con la que se ensayó. Control: --require-signed lo rechaza. Dos cuidados, porque vive dentro del clon de git de otra web: repo/.gitignore con `*` (el directorio se ignora a sí mismo, así un `git add -A` en gioser-web no se lleva 173 .tkn) y hermanas.py no lo borra (sólo escribe index.html). Comprobado que el clon de la web sigue limpio. Se quita con un rm -rf el día que repo.gioser.net sirva el firmado. No cuenta como el segundo origen del ADR 0014: un origen sin firma no es un origen.
This commit is contained in:
@@ -630,6 +630,34 @@ disfraza de «al día»: lo dice, sale ≠ 0 y **conserva el último estado buen
|
||||
lab. El aviso llega a cualquiera; el `install` que lo resuelve sigue siendo reproducir desde fuente
|
||||
(§5.4). Por eso `outdated` **no actualiza**: instalar es verificar, y eso no se cuelga de un cron.
|
||||
|
||||
### 5.8 El espejo provisional en `takana.gioser.net/repo` — y por qué va SIN FIRMAR *(2026-09-21)*
|
||||
|
||||
Mientras `repo.gioser.net` espera su vhost (root, §5.7), el catálogo está servido bajo el sitio que
|
||||
Caddy ya atiende: `/work/sergio/gioser-web/takana/repo`, que es un árbol **escribible sin root** y
|
||||
con certificado válido. 173 paquetes, y `install zsh` desde la URL pública tarda **0,22 s** (1331
|
||||
ficheros) y el binario corre.
|
||||
|
||||
**El índice va sin firma a propósito, y eso es lo único honesto que se podía hacer.** La clave de
|
||||
release vive en `/root/.config/takana/keys` de la caja y desde la jaula no se alcanza. Firmarlo con
|
||||
otra clave habría sido *peor* que no firmarlo: una autoría inventada se lee igual que una real, y es
|
||||
exactamente la «firma sin gestión de claves» que `repo-perfil.sh` se niega a hacer (SDD 19 §3.2). Se
|
||||
le quitó al índice la firma de la clave de prueba con la que se había ensayado. Control:
|
||||
`--require-signed` lo **rechaza** — `Error: el repo no tiene firma de release`.
|
||||
|
||||
Lo que sí conserva su valor: cada entrada lleva su `expected_hash` anclado, así que `install`
|
||||
reconstruye desde fuente y **compara**. Lo que no se puede verificar acá es *quién* armó el
|
||||
catálogo, no si el binario sale de la fuente que dice.
|
||||
|
||||
Dos cuidados que lleva puestos, porque vive dentro del clon de git de otra web:
|
||||
|
||||
- **`repo/.gitignore` con `*`**: el directorio se ignora a sí mismo. Un `git add -A` en `gioser-web`
|
||||
no se lleva 173 `.tkn` por delante. Comprobado: `git status` del clon sigue limpio.
|
||||
- **`hermanas.py` no lo borra**: sólo escribe `takana/index.html` y `hifas/index.html`, no arrasa el
|
||||
directorio, así que el espejo sobrevive a `publicar-webs.sh`.
|
||||
|
||||
Se quita con `rm -rf /work/sergio/gioser-web/takana/repo` el día que `repo.gioser.net` sirva el
|
||||
firmado. **No es un espejo del ADR 0014**: un origen sin firma no cuenta como origen alternativo.
|
||||
|
||||
---
|
||||
|
||||
## 6. La mudanza como experimento: el criterio de borrado
|
||||
|
||||
Reference in New Issue
Block a user