kde/Plasma: ark 25.04.3 (5ta app, comprimidos) + libarchive/libzip + bzip2-shared/xz-shared

ark sella (8ebf0e10) con sus plugins kerfuffle: kerfuffle_libarchive.so→libarchive.so.13 y
kerfuffle_libzip.so→libzip.so.5. Motor nuevo: libarchive 3.7.7 (41f9959c) + libzip 1.11.3 (f64869dc).

Deuda Capa 0 pagada (static↔dinámico): el libbz2.a/liblzma.a canónicos son SIN -fPIC → no enlazan en
un .so ('R_X86_64_PC32 recompile with -fPIC'). Nuevas variantes shared como zlib-shared: bzip2-shared
(4a015f8a, Makefile-libbz2_so → libbz2.so.1.0) y xz-shared (25765982, autotools --enable-shared →
liblzma.so.5). Cierre libarchive.so verificado soberano: liblzma.so.5 + libzstd.so.1 + libbz2.so.1.0 +
libz.so.1, sin fugas al sysroot. Apps: konsole + dolphin + kate + kcalc + ark.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 08:12:03 -04:00
co-authored by Claude Opus 4.8
parent 2192aeb8b1
commit 89cf661d9e
5 changed files with 187 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# ark 25.04.3 — el gestor de archivos comprimidos de KDE. 5ta APP del escritorio.
# Patrón KF6 app (dynamic, wrapper zig, ECM). Motor: libarchive (tar/gz/bz2/xz/zstd/7z/iso) + libzip
# (ZIP nativo). find_package(LibArchive) usa el FindLibArchive.cmake de cmake; LibZip vía su config
# cmake instalado. KF6DocTools se degrada a opcional (evita docbook).
name = "ark"
version = "25.04.3"
[source]
tarball = "https://download.kde.org/stable/release-service/25.04.3/src/ark-25.04.3.tar.xz"
sha256 = "f93a428c88226d61e5a632e0660391189731f80adb574825108015a07bb1051c"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''
rm -rf po doc
# KF6DocTools está en el COMPONENTS REQUIRED → sacarlo, borrar doc y la macro kdoctools_install (queda
# indefinida sin el framework).
sed -i 's/\bDocTools\b//' CMakeLists.txt
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_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_TESTING=OFF
'''
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",
"libarchive", "libzip", "zlib-shared", "bzip2-shared", "xz-shared", "zstd", "openssl",
"kconfig", "kcrash", "kdbusaddons", "kfilemetadata", "ki18n", "kio", "kservice", "kparts",
"kwidgetsaddons", "kwindowsystem", "kiconthemes", "kpty",
"kcoreaddons", "kcompletion", "kcodecs", "kcolorscheme", "kconfigwidgets", "kxmlgui", "kguiaddons",
"kitemviews", "kjobwidgets", "sonnet", "karchive", "kbookmarks", "solid", "attica", "kglobalaccel",
"kauth", "icu4c", "knotifications", "ktextwidgets", "kirigami", "kpackage",
"libX11", "xorgproto", "libXau", "libXdmcp", "libXext", "libXrender", "libXfixes", "libXi",
"libxcb", "xcb-util", "xcb-util-keysyms", "xcb-util-wm", "xcb-util-image", "xcb-util-renderutil"]
+31
View File
@@ -0,0 +1,31 @@
# bzip2-shared 1.0.8 — variante DINÁMICA (libbz2.so, PIC) para el escritorio KDE.
#
# El bzip2 canónico (recipes/bzip2.toml) sólo sella libbz2.a SIN -fPIC (cola static-musl del toolchain).
# Linkear ese .a dentro de un .so (libarchive.so/libzip.so) falla: "relocation R_X86_64_PC32 ... recompile
# with -fPIC". Como zlib-shared, esta variante sella el libbz2.so soberano vía el Makefile-libbz2_so del
# tarball (ya trae -fpic -fPIC, soname libbz2.so.1.0). Nombre distinto para no colisionar con el canónico.
name = "bzip2-shared"
version = "1.0.8"
[source]
tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz"
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
compile = 'make -f Makefile-libbz2_so CC="zig cc"'
install = '''
install -Dm644 bzlib.h /out/usr/include/bzlib.h
install -Dm755 libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1.0
ln -sf libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1
ln -sf libbz2.so.1.0 /out/usr/lib/libbz2.so
'''
[deps]
build = ["pkgconf"]
+30
View File
@@ -0,0 +1,30 @@
# libarchive 3.7.7 — lectura/escritura de múltiples formatos de archivo comprimido (libarchive.so).
# Campaña KDE (ADR 0011): motor de ark (el gestor de comprimidos). Autotools + zig-cc/musl.
#
# Formatos: zlib + bz2 + lzma/xz + zstd + openssl(libcrypto, cifrado zip/7z), todos como .so dinámicos
# (bzip2-shared/xz-shared aportan el libbz2.so/liblzma.so PIC; el .a canónico sin PIC no enlaza en un .so).
# Se desactivan libs ausentes (lz4, libb2, xml2, nettle) para que configure no autodetecte nada del host y
# el cierre sea explícito.
name = "libarchive"
version = "3.7.7"
[source]
tarball = "https://github.com/libarchive/libarchive/releases/download/v3.7.7/libarchive-3.7.7.tar.xz"
sha256 = "879acd83c3399c7caaee73fe5f7418e06087ab2aaf40af3e99b9e29beb29faee"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''./configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-static --enable-shared \
--with-zlib --with-bz2lib --with-lzma --with-zstd --with-openssl \
--without-lz4 --without-libb2 --without-xml2 --without-expat --without-nettle --without-cng \
--disable-bsdtar --disable-bsdcpio --disable-bsdcat --disable-bsdunzip'''
compile = 'make -j"$(nproc)"'
install = "make install DESTDIR=/out && find /out -name '*.la' -delete"
[deps]
build = ["pkgconf", "zlib-shared", "bzip2-shared", "xz-shared", "zstd", "openssl"]
+43
View File
@@ -0,0 +1,43 @@
# libzip 1.11.3 — lectura/escritura de archivos ZIP (libzip.so). Campaña KDE (ADR 0011): ark lo usa
# opcionalmente (find_package(LibZip 1.3.0), sin REQUIRED) para el formato ZIP nativo.
#
# CMake + wrapper zig (descarta -Wl,--fatal-warnings como konsole/kate). zlib/bz2/lzma/zstd/openssl todos
# como .so dinámicos (bzip2-shared/xz-shared aportan el PIC); openssl para el cifrado AES del ZIP.
name = "libzip"
version = "1.11.3"
[source]
tarball = "https://libzip.org/download/libzip-1.11.3.tar.xz"
sha256 = "9509d878ba788271c8b5abca9cfde1720f075335686237b7e9a9e7210fe67c1b"
[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 \
-DBUILD_SHARED_LIBS=ON -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF \
-DENABLE_BZIP2=ON -DENABLE_LZMA=ON -DENABLE_ZSTD=ON -DENABLE_OPENSSL=ON -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF
'''
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["cmake", "samurai", "pkgconf", "zlib-shared", "bzip2-shared", "xz-shared", "zstd", "openssl"]
+27
View File
@@ -0,0 +1,27 @@
# xz-shared 5.8.3 — variante DINÁMICA (liblzma.so, PIC) para el escritorio KDE.
#
# El xz canónico (recipes/xz.toml) sella liblzma.a --disable-shared (cola static-musl). Ese .a sin PIC no
# enlaza dentro de libarchive.so/libzip.so. Como zlib-shared/bzip2-shared, esta variante construye
# liblzma.so con autotools --enable-shared (PIC nativo). Nombre distinto para no colisionar con el canónico.
name = "xz-shared"
version = "5.8.3"
[source]
tarball = "https://github.com/tukaani-project/xz/releases/download/v5.8.3/xz-5.8.3.tar.xz"
sha256 = "fff1ffcf2b0da84d308a14de513a1aa23d4e9aa3464d17e64b9714bfdd0bbfb6"
[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 \
--disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-scripts --disable-doc'''
compile = 'make -j"$(nproc)"'
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
[deps]
build = ["pkgconf"]