diff --git a/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml index c5e880a0..cd6807f3 100644 --- a/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml +++ b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml @@ -13,10 +13,13 @@ sha256 = "cd15aca2e1364da308eb3796bb8ae4a577e60ca4fe12006b315232cfd19c8861" [build] compiler = "zig-cc" target = "x86_64-linux-musl" -link = "static" +# DINÁMICA, como mutter/gtk4 y el resto de la isla. Con `link=static` + `--prefer-static` el linker +# elegía `libfontconfig.a` —que sigue montada porque alguna dep transitiva depende de la fontconfig +# canónica— por encima de la `.so` de fontconfig-shared, y las `.a` del corpus no son PIC. +link = "dynamic" [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 -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 -Ddefault_library=shared -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" @@ -29,4 +32,25 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # la misma glib. Mismo patrón que ya se había medido con pipewire. # FRONTERA: gnome-desktop → ya en incoming-gnome/ (thumbnails/settings). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "libadwaita", "glib", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "gdk-pixbuf", "libjpeg-turbo", "libtiff", "mesa", "fontconfig", "xdg-desktop-portal"] +# ⚠ LAS DEPS VAN EN VARIANTE `-shared`, NO EN LA ESTÁTICA CANÓNICA. Esta receta se escribió antes de +# que GNOME pasara a ISLA DINÁMICA y declaraba las estáticas; el link muere con +# «relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC» sobre +# `libfontconfig.a(fccfg.o)`. Las `.a` del corpus no son PIC y no entran en nada dinámico. mutter, +# gtk4 y el resto de la isla ya tomaban las `-shared`; ésta era la única rezagada. Antes de gastar un +# build en un caso así: `readelf -r .a | grep R_X86_64_32`. +# +# ⛔ NO SELLA TODAVÍA, Y EL MURO ESTÁ MEDIDO — no vuelvas a iterar sobre ESTA receta. +# Con las deps ya en `-shared` y `link=dynamic`, el link SIGUE tomando `libfontconfig.a`. El rastreo +# del cierre da un único camino: +# xdg-desktop-portal-gnome -> libadwaita -> fontconfig (la ESTÁTICA canónica) +# y `libadwaita` resuelve a `recipes/libadwaita.toml`, o sea la del CORPUS, que es una receta entera +# de la era estática: declara `gtk4`, `glib`, `cairo`, `freetype`, `pango`… todas canónicas. No es que +# le falte una variante: NO PERTENECE a la isla dinámica. +# +# ⇒ El paso siguiente es una SOMBRA de libadwaita en `incoming-gnome/` construida contra la isla +# (gtk4/glib/pango dinámicas + las `-shared`), igual que se hizo con `glib`. `yupana radio +# libadwaita` = 4 dependientes, 0 sellados cayendo a deuda, así que es barato — pero es un frente +# propio, no un remiendo de esta receta. NO tocar la libadwaita del corpus: la comparten otras colas. +# +# El frontend genérico `xdg-desktop-portal` SÍ está sellado (b3:db5e5cf8) — ése ya no bloquea. +build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "libadwaita", "glib", "cairo-shared", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng-shared", "pixman", "freetype-shared", "expat", "libffi", "pcre2", "zlib-shared", "gdk-pixbuf", "libjpeg-turbo-shared", "libtiff-shared", "mesa", "fontconfig-shared", "xdg-desktop-portal"]