gioser

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 1555Shell 203Rust 109Markdown 993728 Definiciones

vps-setup: `patch` faltaba en la rama Fedora — tumbaba el stack GUI de GNOME

En Debian `patch` entra de regalo dentro de `build-essential`; al desglosar la rama dnf a
gcc/g++/make sueltos se cayó sin que nadie lo notara. El campo `patches = [...]` de una
receta lo aplica hammer DEL LADO DEL HOST, fuera del sandbox, así que no alcanza con que
el rootfs lo traiga —lo trae, `/usr/bin/patch` está en el alpine de los dos labs— y por
eso el diagnóstico "rootfs laptop ≠ worker" no aplicaba acá.

Medido en dev.gioser.net: `cairo-shared` moría con `spawn patch: No such file or
directory` y detrás caían `pango` y `gtk4`. El stack GUI entero de GNOME por un binario
de 129 KB ausente en el host.

Regla que queda escrita: toda herramienta que hammer invoque HOST-SIDE va en esta lista,
no en `[deps]` de la receta — declararla en la receta re-hashearía cairo y todo GNOME
debajo, para arreglar algo que no es de la receta.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4

dcf80a17a606e029aae75b09112893b603bd8bbb · por Sergio · (hace 1 mes) · padre ccb3d6af2 · ver el árbol en este commit

Delta semántico

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

1 archivos · +10 −1

diff --git a/scripts/farm/vps-setup.sh b/scripts/farm/vps-setup.sh
index 51edaac0..ddaced47 100755
--- a/scripts/farm/vps-setup.sh
+++ b/scripts/farm/vps-setup.sh
@@ -61,7 +61,16 @@ if [ "$PKG" = apt ]; then
 else
     # Equivalencias Fedora. `build-essential` no existe: gcc/g++/make sueltos.
     # uidmap → shadow-utils (trae newuidmap/newgidmap); xz-utils → xz; libssl-dev → openssl-devel.
-    $DNF install -y -q git gcc gcc-c++ make curl pkgconf-pkg-config openssl-devel \
+    #
+    # ⚠ `patch` VA EXPLÍCITO Y NO ES OBVIO (2026-08-29). En Debian entra de regalo dentro de
+    # `build-essential`; al desglosar a gcc/g++/make sueltos se cayó sin que nadie lo notara. El
+    # campo `patches = [...]` de una receta lo aplica hammer DEL LADO DEL HOST, fuera del sandbox
+    # ⇒ no alcanza con que el rootfs lo traiga (lo trae: `/usr/bin/patch` está en el alpine). Sin
+    # él, `cairo-shared` muere con `spawn patch: No such file or directory` y detrás caen `pango`
+    # y `gtk4`, o sea el stack GUI entero de GNOME por un binario de 129 KB.
+    # Regla: toda herramienta que hammer invoque HOST-SIDE va en esta lista, no en `[deps]` de la
+    # receta — declararla en la receta re-hashearía cairo y todo GNOME debajo para nada.
+    $DNF install -y -q git gcc gcc-c++ make patch curl pkgconf-pkg-config openssl-devel \
         bubblewrap rsync ca-certificates shadow-utils xz tar findutils
 fi