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 1471Shell 173Rust 105Markdown 943545 Definiciones

gdk-pixbuf: -Dgif=disabled — el único .so de la receta no podía enlazar libpng no-PIC

En 2.44 `gif` es opción propia con default `auto` y ya no cae bajo `others`.
Sin declararla, el loader de GIF se construía como MÓDULO COMPARTIDO
(`libpixbufloader-gif.so`, el único .so de los 14 targets; el resto son
ejecutables), y una .so no puede enlazar una .a sin PIC: 1978 errores
`relocation R_X86_64_32 ... recompile with -fPIC`, todos de /usr/lib/libpng16.a
(que es --disable-shared).

Coherente con la intención declarada de la receta —«solo PNG (leaf mínimo)»:
jpeg y tiff ya se desactivaban; gif se coló por DERIVA DE VERSIÓN. Por eso el
arreglo es la flag y NO `[deps]`: cambiar libpng→libpng-pic es la decisión de
arquitectura que se descartó para el canónico el 2026-08-21, y que las colas
wlr/gnome resuelven con SOMBRAS propias.

Regresión CONGELADA, no fallo nuevo: se servía por cache-hit y sólo aparece al
reconstruir. Tumbaba en cascada xdg-desktop-portal, gnome-desktop, gjs, gdm,
gnome-session, gnome-settings-daemon y gnome-shell — todas fallando en 2-45 s
por su dep, no por sí mismas.

Verificado: sella en 12 s, 0 errores PIC, artefacto de 58 M con
libgdk_pixbuf-2.0.a y ningún .so. Blast radius nulo: el canónico estaba en
deuda con 0 dependientes sellados en los cinco grafos.

5044c9f1ca91b67716117cfdd2114feac28de898 · por Sergio · (hace 1 mes) · padre 252dec45a · ver el árbol en este commit

Delta semántico

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

1 archivos · +20 −1

diff --git a/recipes/gdk-pixbuf.toml b/recipes/gdk-pixbuf.toml
index 384c7cec..9c42e28b 100644
--- a/recipes/gdk-pixbuf.toml
+++ b/recipes/gdk-pixbuf.toml
@@ -1,4 +1,23 @@
 # gdk-pixbuf 2.44.6 — carga/escala de imágenes (loader de GTK). meson static, solo PNG (leaf mínimo).
+#
+# ── `-Dgif=disabled`: SIN ÉL, ESTA RECETA NO ENLAZA (2026-08-27) ─────────────────────────────────
+# En 2.44 `gif` es una opción PROPIA con default `auto`, ya no cae bajo `others`. Como no se
+# declaraba, el único loader que quedaba fuera de `builtin_loaders=png` se construía como MÓDULO
+# COMPARTIDO — `libpixbufloader-gif.so`, el ÚNICO `.so` de los 14 targets que enlaza esta receta,
+# todos los demás son ejecutables. Y una `.so` no puede enlazar una `.a` sin PIC:
+#     ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC
+#     >>> defined in /usr/lib/libpng16.a(pngwrite.o)
+# (1978 errores, todos de `libpng16.a`, que es `--disable-shared` y por tanto no-PIC).
+#
+# ⚠ Es coherente con la intención declarada arriba —«solo PNG (leaf mínimo)»: jpeg y tiff YA se
+# desactivaban y gif se coló por DERIVA DE VERSIÓN, no por decisión. Por eso el arreglo es la flag
+# y NO tocar `[deps]`: cambiar `libpng`→`libpng-pic` es la decisión de arquitectura que el usuario
+# descartó para el canónico el 2026-08-21 (ver la cabecera de `incoming-wlr/gdk-pixbuf.toml`, que
+# resuelve lo mismo con una SOMBRA por cola). Acá no cambia ninguna dep.
+#
+# ⚠ REGRESIÓN CONGELADA, no fallo nuevo: gdk-pixbuf se servía por cache-hit y el fallo llevaba meses
+# invisible. Sólo aparece al reconstruir. Tumbaba en cascada xdg-desktop-portal, gnome-desktop, gjs,
+# gdm, gnome-session y gnome-settings-daemon —todas fallando en 3-10 s por su dep, no por sí mismas.
 # -Dgio_sniffing=false ESQUIVA shared-mime-info (→itstool/gettext): cada loader autoidentifica su formato
 # por firma built-in; el sniffing GIO/mime es solo para content-type en runtime, innecesario p/ GTK4.
 name    = "gdk-pixbuf"
@@ -12,7 +31,7 @@ compiler = "zig-cc"
 target   = "x86_64-linux-musl"
 link     = "static"
 [build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dpng=enabled -Djpeg=disabled -Dtiff=disabled -Dothers=disabled -Dglycin=disabled -Dbuiltin_loaders=png -Dgio_sniffing=false -Dman=false -Dintrospection=disabled -Dtests=false -Dinstalled_tests=false -Dgtk_doc=false -Dc_args=-Wno-error=date-time"
+configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dpng=enabled -Djpeg=disabled -Dtiff=disabled -Dgif=disabled -Dothers=disabled -Dglycin=disabled -Dbuiltin_loaders=png -Dgio_sniffing=false -Dman=false -Dintrospection=disabled -Dtests=false -Dinstalled_tests=false -Dgtk_doc=false -Dc_args=-Wno-error=date-time"
 compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
 install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
 [deps]