diff --git a/recipes/incoming-kde/ark.toml b/recipes/incoming-kde/ark.toml new file mode 100644 index 00000000..bad5575b --- /dev/null +++ b/recipes/incoming-kde/ark.toml @@ -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"] diff --git a/recipes/incoming-kde/bzip2-shared.toml b/recipes/incoming-kde/bzip2-shared.toml new file mode 100644 index 00000000..78b26aab --- /dev/null +++ b/recipes/incoming-kde/bzip2-shared.toml @@ -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"] diff --git a/recipes/incoming-kde/libarchive.toml b/recipes/incoming-kde/libarchive.toml new file mode 100644 index 00000000..7efce0a8 --- /dev/null +++ b/recipes/incoming-kde/libarchive.toml @@ -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"] diff --git a/recipes/incoming-kde/libzip.toml b/recipes/incoming-kde/libzip.toml new file mode 100644 index 00000000..3bfd4a8c --- /dev/null +++ b/recipes/incoming-kde/libzip.toml @@ -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"] diff --git a/recipes/incoming-kde/xz-shared.toml b/recipes/incoming-kde/xz-shared.toml new file mode 100644 index 00000000..783f20bd --- /dev/null +++ b/recipes/incoming-kde/xz-shared.toml @@ -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"]