# TODO when a new kf6 ver drops update also the single kapidox recipe (and breeze-icons and extra-cmake-modules and k3b) pkgname = "kf6" pkgver = "6.20.0" Pkgver = pkgver[:4] source = f"https://download.kde.org/stable/frameworks/{Pkgver}/attica-{pkgver}.tar.xz" bbuilddir = f"/tmp/fempkg/build/{pkgname}/attica-{pkgver}" builddir = f"{bbuilddir}/kf6" fembuilddir = f"/tmp/fempkg/build/{pkgname}" outputdir = "/home/gabry/lfs-repo/binpkg" manifestdir = "/home/gabry/lfs-repo/manifests" destdir = f"{fembuilddir}/DESTDIR" deps = ["gpgmepp", "aspell","extra-cmake-modules", "breeze-icons", "libcanberra", "libgcrypt", "libical", "lmdb", "qca", "libqrencode", "plasma-wayland-protocols", "shared-mime-info", "URI", "wget"] build = [ # Extract f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/attica-{pkgver}.tar.xz && mkdir {builddir}", # 64-bit build f"cd {builddir} && export url=https://rocketleaguechatp.duckdns.org/kf6/ && wget -r -nH -nd -A '*.xz' -np $url || true", f"cd {builddir} && wget https://rocketleaguechatp.duckdns.org/frameworks-{pkgver}.md5", f"""cd {builddir} && mkdir -p {destdir}$KF6_PREFIX while read -r line; do # Get the file name, ignoring comments and blank lines if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi file=$(echo $line | cut -d" " -f2) pkg=$(echo $file|sed 's|^.*/||') # Remove directory packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory name=$(echo $pkg|sed 's|-6.*$||') # Isolate package name tar -xf $file pushd $packagedir # kapidox is a python module case $name in kapidox) pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD pip3 install --root={destdir} --no-index --find-links dist --no-user --force-reinstall --no-deps kapidox install -v -d -m755 {destdir}/usr/share/licenses/kapidox/ install -v -m644 ./LICENSES/BSD-2-Clause.txt {destdir}/usr/share/licenses/kapidox/BSD-2-Clause.txt install -v -m644 ./LICENSES/CC0-1.0.txt {destdir}/usr/share/licenses/kapidox/CC0-1.0.txt install -v -m644 ./LICENSES/LGPL-3.0-or-later.txt {destdir}/usr/share/licenses/kapidox/LGPL-3.0-or-later.txt popd rm -rf $packagedir continue ;; esac mkdir build cd build cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \\ -D CMAKE_INSTALL_LIBEXECDIR=libexec \\ -D CMAKE_PREFIX_PATH=$QT6DIR \\ -D CMAKE_SKIP_INSTALL_RPATH=ON \\ -D CMAKE_BUILD_TYPE=Release \\ -D BUILD_TESTING=OFF \\ -D BUILD_PYTHON_BINDINGS=OFF \\ -W no-dev .. make -j$(nproc) make DESTDIR={destdir} install mkdir -p "{destdir}/usr/share/licenses/$name" LICENSE_FILES=$(find . \\ -regextype posix-extended \\ -iregex '.*(LICEN[SC]E(|S)|COPYING|COPYRIGHT|LEGAL|NOTICE)(|\.txt|\.md)' \\ -type f) while read -r lf; do [ -z "$lf" ] && continue relpath=$(echo "$lf" | sed 's|^\./||') install -Dm644 "$lf" \\ "{destdir}/usr/share/licenses/$name/$relpath" done <<< "$LICENSE_FILES" popd rm -rf $packagedir /sbin/ldconfig done < frameworks-{pkgver}.md5 """, # Rename and link inside DESTDIR instead of system root f"cd {destdir}/opt && mv -v kf6 kf6-{pkgver} && ln -sfvn kf6-{pkgver} kf6", f"rm -rf {destdir}/opt/kf6/lib/systemd || true", # Make tarball + manifests f"mkdir -p {outputdir} && cd {destdir} && tar --transform 's|^\\.||' -I zstd -cf {outputdir}/{pkgname}-{pkgver}.tar.zst .", f"mkdir -p {manifestdir} && tar -tf {outputdir}/{pkgname}-{pkgver}.tar.zst | grep -v '/$' > {manifestdir}/{pkgname}.txt", # Cleanup f"rm -rf {fembuilddir}" ] triggers = [ f"cd /tmp && find /opt -maxdepth 1 -type d -name \"kf6-*\" ! -name \"kf6-{pkgver}\" -exec rm -rf {{}} +", f"/sbin/ldconfig" ]