From dcf80a17a606e029aae75b09112893b603bd8bbb Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 29 Aug 2026 19:00:18 +0000 Subject: [PATCH] =?UTF-8?q?vps-setup:=20`patch`=20faltaba=20en=20la=20rama?= =?UTF-8?q?=20Fedora=20=E2=80=94=20tumbaba=20el=20stack=20GUI=20de=20GNOME?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4 --- scripts/farm/vps-setup.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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