# TODO when a new kf6 ver drops update also the single kapidox recipe (and breeze-icons and extra-cmake-modules and k3b kirigami addons and plasma pkgname = "kf6" # libkccdb, pulseaudio-qt kde-connect pkgver = "6.20.0" Pkgver = pkgver[:4] source = f"https://rocketleaguechatp.duckdns.org/pappalaugh.jpg" 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", "zxing-cpp"] build = [ # Extract f"mkdir -p {builddir}", # kf6 prefix + versioned symlink f"mkdir -p {destdir}/opt/kf6-{pkgver} && ln -sfn kf6-{pkgver} {destdir}/opt/kf6", f"mkdir -p {destdir}/opt/kf6/{{etc,share}}", f"""mkdir -p {destdir}$KF6_PREFIX/etc/dbus-1 && mkdir -p {destdir}$KF6_PREFIX/share/dbus-1 && mkdir -p {destdir}$KF6_PREFIX/share/polkit-1""", f"mkdir -p {destdir}/etc/dbus-1 {destdir}/usr/share/dbus-1 {destdir}/usr/share/polkit-1", 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} && bash -e <<'EOF' mkdir -p {destdir}$KF6_PREFIX while read -r line; do if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi file=$(echo $line | cut -d" " -f2) pkg=$(echo $file|sed 's|^.*/||') packagedir=$(echo $pkg|sed 's|\\.tar.*||') name=$(echo $pkg|sed 's|-6.*$||') tar -xf $file pushd $packagedir 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 \\ -D ENABLE_DOCS=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 EOF """, # Move payloads safely (no globbing, no dotfile loss) f"""if [ -d {destdir}/opt/kf6/etc/dbus-1 ]; then cp -aT {destdir}/opt/kf6/etc/dbus-1 {destdir}/etc/dbus-1 && rm -rf {destdir}/opt/kf6/etc/dbus-1 fi""", f"""if [ -d {destdir}/opt/kf6/share/dbus-1 ]; then cp -aT {destdir}/opt/kf6/share/dbus-1 {destdir}/usr/share/dbus-1 && rm -rf {destdir}/opt/kf6/share/dbus-1 fi""", f"""if [ -d {destdir}/opt/kf6/share/polkit-1 ]; then cp -aT {destdir}/opt/kf6/share/polkit-1 {destdir}/usr/share/polkit-1 && rm -rf {destdir}/opt/kf6/share/polkit-1 fi""", # Replace directories with symlinks (explicit + safe) f"""rm -rf {destdir}$KF6_PREFIX/etc/dbus-1 && ln -sfn /etc/dbus-1 {destdir}$KF6_PREFIX/etc/dbus-1""", f"""rm -rf {destdir}$KF6_PREFIX/share/dbus-1 && ln -sfn /usr/share/dbus-1 {destdir}$KF6_PREFIX/share/dbus-1 && ln -sfn /usr/share/polkit-1 {destdir}$KF6_PREFIX/share/polkit-1""", # 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" ]