gnome: xdp-gnome a la isla dinámica + diagnóstico del muro que queda
Deps canónicas -> variantes -shared, y link=static -> dynamic: la receta era de la era estática y el link moría con «relocation R_X86_64_64 ... recompile with -fPIC» sobre libfontconfig.a. No sella todavía, y el muro queda MEDIDO en la receta para que nadie itere en falso: el cierre tiene un único camino a la fontconfig estática, xdp-gnome -> libadwaita -> fontconfig, y esa libadwaita es la del CORPUS, una receta entera de la era estática (gtk4/glib/cairo/pango canónicas). No le falta una variante: no pertenece a la isla dinámica. El paso siguiente es una sombra de libadwaita en incoming-gnome, como se hizo con glib. `yupana radio libadwaita` = 4 dependientes, 0 sellados cayendo. El frontend generico xdg-desktop-portal SI sello (b3:db5e5cf8). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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 <lib>.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"]
|
||||
|
||||
Reference in New Issue
Block a user