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"]