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:
@@ -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"]
|
||||
@@ -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 = []
|
||||
Reference in New Issue
Block a user