kde/Plasma: dolphin 25.04.3 (2da app) + musl-fts 1.2.7 — gestor de archivos, con fix de musl real

dolphin sella (4fe0cab4). BLOCKER musl real: <fts.h> (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.
This commit is contained in:
2026-07-14 07:09:27 -04:00
parent cdb2616a96
commit b4dd416663
2 changed files with 82 additions and 0 deletions
+60
View File
@@ -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"]
+22
View File
@@ -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 <fts.h> 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 = []