kde/H-Qt: bundlear fuentes/imágenes + fontconfig=OFF (mata dep transitiva expat)

8vo ciclo: entró a Gui, murió con símbolos expat (XML_ParseBuffer…) — fontconfig.a
→ expat pero el link estático no arrastra la transitiva (el .pc no la declara).
En vez de iterar lib-por-lib, bundleo freetype/harfbuzz/libpng/libjpeg en Qt (PIC,
cierre completo) y apago fontconfig. zlib/pcre2 siguen reusándose. Deuda Capa 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 15:33:37 -04:00
co-authored by Claude Opus 4.8
parent b2a90ca174
commit 7d76c644e4
+11 -7
View File
@@ -72,12 +72,12 @@ cmake -B build -G Ninja -Wno-dev \
-DQT_FEATURE_openssl=OFF \
-DQT_FEATURE_ssl=OFF \
-DQT_FEATURE_system_zlib=ON \
-DQT_FEATURE_system_libpng=ON \
-DQT_FEATURE_system_libjpeg=ON \
-DQT_FEATURE_system_freetype=ON \
-DQT_FEATURE_system_harfbuzz=ON \
-DQT_FEATURE_system_libpng=OFF \
-DQT_FEATURE_system_libjpeg=OFF \
-DQT_FEATURE_system_freetype=OFF \
-DQT_FEATURE_system_harfbuzz=OFF \
-DQT_FEATURE_system_pcre2=ON \
-DQT_FEATURE_fontconfig=ON \
-DQT_FEATURE_fontconfig=OFF \
-DQT_FEATURE_glib=OFF \
-DQT_FEATURE_opengl=ON \
-DQT_FEATURE_egl=ON \
@@ -100,7 +100,6 @@ fi
# Sólo deps YA selladas + toolchain. double-conversion/libb2/icu/vulkan/xcb/cups quedan bundled u OFF.
build = [
"cmake", "samurai", "python3", "pkgconf",
"glib", "freetype", "fontconfig", "harfbuzz", "libpng", "libjpeg-turbo",
"pcre2", "zlib",
"wayland", "wayland-protocols", "libxkbcommon", "mesa",
]
@@ -113,4 +112,9 @@ build = [
# · glib → FEATURE_glib=OFF: el glib.a sellado deja símbolos indefinidos bajo -Wl,--no-undefined
# (g_hmac_ref/g_strv_builder_ref/…); GTK4 lo linkea sin --no-undefined y no lo expone.
# Qt trae su propio event loop ⇒ glib es opcional para una ventana.
# DEUDA Capa 0/1: para KDE con SSL/SQL/glib, reconstruir sqlite/openssl shared-PIC y glib .a completo.
# · fuentes/imágenes → system_{freetype,harfbuzz,libpng,libjpeg}=OFF + fontconfig=OFF: el link
# estático NO arrastra deps transitivas (fontconfig.a → símbolos expat XML_* indefinidos,
# el .pc sellado no las declara). En vez de iterar lib-por-lib, se BUNDLEAN en Qt (PIC
# internos, cierre completo). zlib/pcre2 SÍ se reusan (entran limpio: libz.so, pcre2.a PIC).
# DEUDA Capa 0/1: para reusar el stack sellado en KDE, hace falta el closure C shared-PIC y .pc con
# Requires.private completo (expat, etc.); mientras, el gate bundlea fuentes/imágenes.