From b4dd41666321b720ca03e0b682275c1ecbf748b4 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 14 Jul 2026 07:09:27 -0400 Subject: [PATCH] =?UTF-8?q?kde/Plasma:=20dolphin=2025.04.3=20(2da=20app)?= =?UTF-8?q?=20+=20musl-fts=201.2.7=20=E2=80=94=20gestor=20de=20archivos,?= =?UTF-8?q?=20con=20fix=20de=20musl=20real?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dolphin sella (4fe0cab4). BLOCKER musl real: (fts_open/read) NO existe en musl (glibc/BSD) → receta musl-fts 1.2.7 (047c45c9, fts.c compilada a mano, config.h stub) + link -lfts global. Phonon (sonido) + UserFeedback (telemetría) patcheados a opcional/quitados del link. Patrón reusable: apps que usan fts (find-like) necesitan musl-fts en deps + -DCMAKE_*_LINKER_FLAGS=-lfts. --- recipes/incoming-kde/dolphin.toml | 60 ++++++++++++++++++++++++++++++ recipes/incoming-kde/musl-fts.toml | 22 +++++++++++ 2 files changed, 82 insertions(+) create mode 100644 recipes/incoming-kde/dolphin.toml create mode 100644 recipes/incoming-kde/musl-fts.toml diff --git a/recipes/incoming-kde/dolphin.toml b/recipes/incoming-kde/dolphin.toml new file mode 100644 index 00000000..dc8c0334 --- /dev/null +++ b/recipes/incoming-kde/dolphin.toml @@ -0,0 +1,60 @@ +# dolphin 25.04.3 — el gestor de archivos de KDE (release-service). Segunda app del escritorio. +# Patrón KF6 app. baloo (búsqueda de archivos → lmdb) queda opcional/ausente (degrada sin search). +name = "dolphin" +version = "25.04.3" + +[source] +tarball = "https://download.kde.org/stable/release-service/25.04.3/src/dolphin-25.04.3.tar.xz" +sha256 = "e822faf02d3d727faf14789eacd331288cb8a74bb9b9881f1e7cd1789752c3f1" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" +flags = [] + +[build.phases] +configure = ''' +rm -rf po doc +sed -i 's/find_package(KF6DocTools[^)]*REQUIRED)/find_package(KF6DocTools)/' CMakeLists.txt +sed -i '/set_package_properties(KF6DocTools/,/)/ s/TYPE REQUIRED/TYPE OPTIONAL/' CMakeLists.txt +sed -i '/add_subdirectory(doc)/d' CMakeLists.txt +# UserFeedback (telemetría) + Phonon (sonido) opcionales — a no-REQUIRED / TYPE OPTIONAL. +sed -i 's/find_package(KF6UserFeedback[^)]*REQUIRED)/find_package(KF6UserFeedback)/' CMakeLists.txt +sed -i 's/find_package(Phonon4Qt6[^)]*REQUIRED)/find_package(Phonon4Qt6)/' CMakeLists.txt +sed -i '/set_package_properties(KF6UserFeedback/,/)/ s/TYPE REQUIRED/TYPE OPTIONAL/' CMakeLists.txt +sed -i '/set_package_properties(Phonon4Qt6/,/)/ s/TYPE REQUIRED/TYPE OPTIONAL/' CMakeLists.txt +# Phonon (sonido) se linkea incondicional en src/CMakeLists ⇒ lo removemos (código bajo #ifdef HAVE_PHONON). +sed -i '/Phonon::phonon4qt6/d' src/CMakeLists.txt +sed -i '/PHONON_INCLUDES/d' src/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_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF \ + -DCMAKE_SHARED_LINKER_FLAGS=-lfts -DCMAKE_EXE_LINKER_FLAGS=-lfts +''' +compile = "cmake --build build" +install = "DESTDIR=/out cmake --install build" + +[deps] +build = ["cmake", "samurai", "python3", "pkgconf", "qtbase", "dbus", "extra-cmake-modules", "qttools", + "gettext-tiny", "mesa", "libdrm", "libxkbcommon", "wayland", "qtdeclarative", "qt5compat", "icu4c", "musl-fts", + "kcmutils", "kcompletion", "kconfig", "kconfigwidgets", "kcoreaddons", "kcrash", "kdbusaddons", + "kguiaddons", "ki18n", "kiconthemes", "kio", "knewstuff", "knotifications", "kparts", "ktextwidgets", + "kwidgetsaddons", "kwindowsystem", "kxmlgui", "kglobalaccel", "kbookmarks", "kservice", "solid", + "kitemviews", "kcodecs", "kcolorscheme", "kjobwidgets", "karchive", "sonnet", "kauth", "kdnssd", + "kfilemetadata", "kpackage", "kirigami", "attica", "kdeclarative", "kparts", + "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/musl-fts.toml b/recipes/incoming-kde/musl-fts.toml new file mode 100644 index 00000000..db1b1bfa --- /dev/null +++ b/recipes/incoming-kde/musl-fts.toml @@ -0,0 +1,22 @@ +# musl-fts 1.2.7 — implementación de fts(3) (fts_open/fts_read…) para musl, que NO la trae (es glibc/BSD). +# Apps como dolphin (kdirectorycontentscounterworker) incluyen y linkean fts. Compilación manual +# (sin autotools): fts.c → libfts.so + libfts.a + fts.h en /usr. +name = "musl-fts" +version = "1.2.7" + +[source] +tarball = "https://github.com/void-linux/musl-fts/archive/refs/tags/v1.2.7.tar.gz" +sha256 = "49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +configure = "printf '#define HAVE_STDINT_H 1\\n#define HAVE_STDLIB_H 1\\n#define HAVE_STRING_H 1\\n' > config.h" +compile = "${CC:-zig cc} -fPIC -O2 -DHAVE_CONFIG_H -I. -c fts.c -o fts.o && ${CC:-zig cc} -shared -Wl,-soname,libfts.so.0 -o libfts.so.0 fts.o && ${AR:-zig ar} rcs libfts.a fts.o" +install = "mkdir -p /out/usr/include /out/usr/lib/pkgconfig && cp fts.h /out/usr/include/ && install -m755 libfts.so.0 /out/usr/lib/ && ln -sf libfts.so.0 /out/usr/lib/libfts.so && install -m644 libfts.a /out/usr/lib/ && printf 'prefix=/usr\\nlibdir=/usr/lib\\nincludedir=/usr/include\\n\\nName: fts\\nDescription: musl fts\\nVersion: 1.2.7\\nLibs: -L${libdir} -lfts\\nCflags: -I${includedir}\\n' > /out/usr/lib/pkgconfig/fts.pc" + +[deps] +build = []