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]