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