kde/Plasma: okular 25.04.3 (8va app, visor documentos) + poppler 25.02.0 + freetype/fontconfig shared — DEUDA CAPA 0 SALDADA
okular sella (5efc2ad9) con 8 generadores: poppler (PDF) + kimgio + txt + comicbook + fax + fb + dvi + xps. okularGenerator_poppler.so → libpoppler-qt6.so.3 verificado. poppler 25.02.0 (59461aff), Qt6-only: sin QT5/glib/cpp/utils/tests; NSS3/GPGME/LIBCURL/LIBTIFF off y LIBOPENJPEG=none (sin deps selladas; los JPEG2000 embebidos no renderizan, el resto del PDF sí). Cierre libpoppler.so VERIFICADO soberano: libfreetype.so.6 + libfontconfig.so.1 + libjpeg.so.62 + libpng16.so.16 + liblcms2.so.2 + libz.so.1 — sin fugas al sysroot. **DEUDA CAPA 0 'freetype/fontconfig shared-PIC' (marcada pendiente en ADR 0011) SALDADA:** freetype-shared 2.14.3 (76fd1f4b, libfreetype.so.6, --without-harfbuzz corta el ciclo con harfbuzz) + fontconfig-shared 2.18.1 (6ed9e303, libfontconfig.so.1). expat NO necesita variante: el canónico ya usa --with-pic. Las variantes omiten los 3 patches Alpine de rendering (viven en recipes/, copiarlos arriesga colisión de patches homónimos; no afectan el rasterizado que poppler necesita). Fixes okular: FORCE_NOT_REQUIRED_DEPENDENCIES (flag OFICIAL que sugiere el propio feature_summary) para DocTools/Purpose/TIFF/LibSpectre/KExiv2Qt6/DjVuLibre/EPub/Discount/QMobipocket6; +plasma-activities (REQUIRED), +kpty (comicbook), +kwallet (ya sellada). GOTCHA musl durable: synctex_parser.c usa vasprintf (extensión GNU) con -std=c99 ⇒ musl no la declara en modo estricto ⇒ CMAKE_C_FLAGS=-D_GNU_SOURCE. Apps: konsole+dolphin+kate+kcalc+ark+filelight+gwenview+okular. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
4 files · +180 −0
diff --git a/recipes/incoming-kde/fontconfig-shared.toml b/recipes/incoming-kde/fontconfig-shared.toml
new file mode 100644
index 00000000..2d0cbcd9
--- /dev/null
+++ b/recipes/incoming-kde/fontconfig-shared.toml
@@ -0,0 +1,27 @@
+# fontconfig-shared 2.18.1 — variante DINÁMICA (libfontconfig.so.1, PIC) para el escritorio KDE.
+# El canónico (recipes/fontconfig.toml) es --disable-shared (sólo libfontconfig.a sin PIC) ⇒ no enlaza en
+# un .so. Lo exige poppler (búsqueda/sustitución de fuentes del PDF) → okular. Deuda Capa 0 del ADR 0011.
+#
+# expat NO necesita variante: el canónico ya usa --with-pic (su .a lleva objetos PIC, enlazable en .so).
+# libpng-shared+zlib-shared: freetype se compila --with-png ⇒ freetype2.pc trae `Requires: libpng` (y
+# libpng.pc → zlib); sin ellos pkg-config no resuelve freetype2 y ./configure aborta (gotcha .pc transitivo).
+name = "fontconfig-shared"
+version = "2.18.1"
+
+[source]
+tarball = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/2.18.1/fontconfig-2.18.1.tar.xz"
+sha256 = "2300f3dbfa7253b3a44f4feecdbc8dfa45dde5dc2cfb71fceaf31f394cb41031"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "dynamic"
+flags = []
+
+[build.phases]
+configure = "./configure --build=$CBUILD --host=$CHOST --prefix=/usr --sysconfdir=/etc --enable-shared --disable-static --disable-docs"
+compile = 'make -j"$(nproc)"'
+install = "make install DESTDIR=/out && find /out -name '*.la' -delete"
+
+[deps]
+build = ["freetype-shared", "expat", "pkgconf", "gperf", "python3", "libpng-shared", "zlib-shared"]
diff --git a/recipes/incoming-kde/freetype-shared.toml b/recipes/incoming-kde/freetype-shared.toml
new file mode 100644
index 00000000..8643116d
--- /dev/null
+++ b/recipes/incoming-kde/freetype-shared.toml
@@ -0,0 +1,31 @@
+# freetype-shared 2.14.3 — variante DINÁMICA (libfreetype.so.6, PIC) para el escritorio KDE.
+# El canónico (recipes/freetype.toml) es --disable-shared (sólo libfreetype.a sin PIC) ⇒ no enlaza dentro
+# de un .so. Lo exige poppler (rasterizado de fuentes del PDF) → okular. Deuda Capa 0 que el ADR 0011
+# marcaba pendiente ("freetype/fontconfig shared-PIC").
+#
+# SIN los 3 patches del canónico (pcf-family-names/subpixel/table-validation-modules): son tweaks de
+# rendering de Alpine y viven en recipes/ (copiarlos a esta cola arriesga la colisión de patches homónimos).
+# No afectan la corrección del rasterizado que poppler necesita.
+#
+# --without-harfbuzz: corta el ciclo freetype↔harfbuzz (harfbuzz autodetectaría freetype). --without-brotli:
+# no hay brotli sellado (sólo afecta fuentes WOFF2). zlib/png dinámicos vía las variantes -shared.
+name = "freetype-shared"
+version = "2.14.3"
+
+[source]
+tarball = "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.3.tar.xz"
+sha256 = "36bc4f1cc413335368ee656c42afca65c5a3987e8768cc28cf11ba775e785a5f"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "dynamic"
+flags = []
+
+[build.phases]
+configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --without-harfbuzz --without-brotli --with-zlib=yes --with-png=yes CPPFLAGS=-I/usr/include LDFLAGS=-L/usr/lib'
+compile = 'make -j"$(nproc)"'
+install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
+
+[deps]
+build = ["zlib-shared", "libpng-shared", "pkgconf"]
diff --git a/recipes/incoming-kde/okular.toml b/recipes/incoming-kde/okular.toml
new file mode 100644
index 00000000..9ae07d1c
--- /dev/null
+++ b/recipes/incoming-kde/okular.toml
@@ -0,0 +1,65 @@
+# okular 25.04.3 — el visor de documentos de KDE. 8va APP del escritorio.
+# Patrón KF6 app (dynamic, wrapper zig, ECM). Dep nueva clave: poppler 25.02.0 (Qt6) = el generador PDF.
+# ZLIB es REQUIRED. okular marca sus generadores TYPE REQUIRED pero ofrece el flag OFICIAL
+# `FORCE_NOT_REQUIRED_DEPENDENCIES` (lo sugiere el propio feature_summary al abortar) ⇒ se degradan los que
+# no tenemos sellados: DocTools, Purpose, TIFF, LibSpectre (PS), KExiv2Qt6, DjVuLibre, EPub, Discount
+# (markdown), QMobipocket6. Sí entran: poppler (PDF, lo importante), kimgio (imágenes), txt, comicbook
+# (pide KF6Pty), fictionbook, xps. Aprovechados por estar ya sellados: kwallet (claves de PDF), phonon
+# (sonido), qtspeech (lectura en voz), plasma-activities (REQUIRED).
+#
+# GOTCHA musl: core/synctex/synctex_parser.c usa vasprintf (extensión GNU) y compila con -std=c99; en modo
+# estricto (__STRICT_ANSI__) musl NO declara vasprintf en stdio.h (sólo bajo _GNU_SOURCE/_BSD_SOURCE) ⇒
+# "call to undeclared function 'vasprintf'" con -Werror=implicit-function-declaration. Fix: CMAKE_C_FLAGS=-D_GNU_SOURCE.
+name = "okular"
+version = "25.04.3"
+
+[source]
+tarball = "https://download.kde.org/stable/release-service/25.04.3/src/okular-25.04.3.tar.xz"
+sha256 = "d0b5bb0b0eeab46aa2367c8d81096185bd2261710701c84f1c6e2398e5058bfb"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "dynamic"
+flags = []
+
+[build.phases]
+configure = '''
+rm -rf po doc
+sed -i '/add_subdirectory(doc)/d' CMakeLists.txt
+sed -i '/kdoctools_install/d' CMakeLists.txt
+ZW="$PWD/.zwrap"; mkdir -p "$ZW"
+cat > "$ZW/cc" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig cc -mcpu=baseline $a
+W
+cat > "$ZW/cxx" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig c++ -mcpu=baseline $a
+W
+chmod +x "$ZW/cc" "$ZW/cxx"
+cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
+ -DCMAKE_C_FLAGS="-D_GNU_SOURCE" \
+ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
+ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF \
+ -DFORCE_NOT_REQUIRED_DEPENDENCIES="KF6DocTools;KF6Purpose;TIFF;LibSpectre;KExiv2Qt6;DjVuLibre;EPub;Discount;QMobipocket6"
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "qtsvg", "dbus", "extra-cmake-modules",
+ "qttools", "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative",
+ "poppler", "freetype-shared", "fontconfig-shared", "zlib-shared", "lcms2",
+ "libjpeg-turbo-shared", "libpng-shared", "expat", "phonon", "qtspeech", "qtmultimedia",
+ "karchive", "kbookmarks", "kcompletion", "kconfig", "kconfigwidgets", "kcoreaddons", "ki18n",
+ "kio", "threadweaver", "kwindowsystem", "kxmlgui", "kparts", "kcolorscheme", "kcrash",
+ "kiconthemes", "kitemviews", "ktextwidgets", "kwidgetsaddons",
+ "kservice", "kjobwidgets", "kcodecs", "kguiaddons", "solid", "sonnet", "attica", "kpackage",
+ "kirigami", "kglobalaccel", "kauth", "icu4c", "knotifications", "kitemmodels", "plasma-activities",
+ "kpty", "kwallet",
+ "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes", "libXi",
+ "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image", "xcb-util-renderutil"]
diff --git a/recipes/incoming-kde/poppler.toml b/recipes/incoming-kde/poppler.toml
new file mode 100644
index 00000000..8b78abd4
--- /dev/null
+++ b/recipes/incoming-kde/poppler.toml
@@ -0,0 +1,57 @@
+# poppler 25.02.0 — motor de renderizado PDF (libpoppler.so + libpoppler-qt6.so). Campaña KDE (ADR 0011):
+# es el backend de okular (visor de documentos).
+#
+# CMake + wrapper zig, C++20. Recortado al frontend Qt6: sin QT5/glib/gobject/cpp/utils/tests. Cripto y
+# formatos extra OFF por no tener las deps selladas: NSS3/GPGME (firma de PDF), LIBCURL (PDF remoto),
+# LIBTIFF, LIBOPENJPEG=none (JPX/JPEG2000 — imágenes JPEG2000 dentro del PDF no renderizan; el resto sí).
+# ENABLE_BOOST=OFF (sólo perf del backend Splash). Sustrato: freetype-shared + fontconfig-shared (las
+# variantes .so/PIC nuevas; el .a canónico no enlaza en libpoppler.so) + lcms2 + libjpeg-turbo-shared
+# (DCTDECODER) + libpng-shared + zlib-shared.
+name = "poppler"
+version = "25.02.0"
+
+[source]
+tarball = "https://poppler.freedesktop.org/poppler-25.02.0.tar.xz"
+sha256 = "21234cb2a9647d73c752ce4031e65a79d11a511a835f2798284c2497b8701dee"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "dynamic"
+flags = []
+
+[build.phases]
+configure = '''
+ZW="$PWD/.zwrap"; mkdir -p "$ZW"
+cat > "$ZW/cc" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig cc -mcpu=baseline $a
+W
+cat > "$ZW/cxx" <<'W'
+#!/bin/sh
+a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
+exec /opt/zig/zig c++ -mcpu=baseline $a
+W
+chmod +x "$ZW/cc" "$ZW/cxx"
+cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
+ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
+ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_SHARED_LIBS=ON \
+ -DENABLE_QT5=OFF -DENABLE_QT6=ON -DENABLE_GLIB=OFF -DENABLE_GOBJECT_INTROSPECTION=OFF \
+ -DENABLE_CPP=OFF -DENABLE_UTILS=OFF -DENABLE_BOOST=OFF \
+ -DENABLE_LIBOPENJPEG=none -DENABLE_DCTDECODER=libjpeg -DENABLE_LCMS=ON \
+ -DENABLE_LIBCURL=OFF -DENABLE_LIBTIFF=OFF -DENABLE_NSS3=OFF -DENABLE_GPGME=OFF \
+ -DBUILD_GTK_TESTS=OFF -DBUILD_QT5_TESTS=OFF -DBUILD_QT6_TESTS=OFF -DBUILD_CPP_TESTS=OFF \
+ -DBUILD_MANUAL_TESTS=OFF
+'''
+compile = "cmake --build build"
+install = "DESTDIR=/out cmake --install build"
+
+[deps]
+build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "extra-cmake-modules", "qttools",
+ "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "dbus",
+ "freetype-shared", "fontconfig-shared", "expat", "lcms2",
+ "libjpeg-turbo-shared", "libpng-shared", "zlib-shared", "gperf",
+ "libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes", "libXi",
+ "libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image", "xcb-util-renderutil"]