oops i forgot to commit
This commit is contained in:
160
kde-plasma.recipe.py
Normal file
160
kde-plasma.recipe.py
Normal file
@@ -0,0 +1,160 @@
|
||||
pkgname = "kde-plasma"
|
||||
pkgver = "6.5.2"
|
||||
kf6_ver = "6.20.0"
|
||||
source = f"https://rocketleaguechatp.duckdns.org/pappalaugh.jpg"
|
||||
builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}"
|
||||
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
|
||||
outputdir = "/home/gabry/lfs-repo/binpkg"
|
||||
manifestdir = "/home/gabry/lfs-repo/manifests"
|
||||
destdir = f"{fembuilddir}/DESTDIR"
|
||||
|
||||
deps = [
|
||||
# REQUIRED
|
||||
"boost", "ffmpeg", "gtk3", "kf6", "kirigami-addons", "libdisplay-info", "libpwquality", "libqalculate", "libnl", "libxcvt",
|
||||
"libxkbcommon", "mesa", "wayland", "opencv", "phonon", "pipewire", "pulseaudio-qt", "qca", "qcoro", "sassc", "taglib",
|
||||
"xdotool", "xorg-evdev", "phonon-backend-vlc",
|
||||
# Reccomended (practically required)
|
||||
"gsettings-desktop-schemas", "libcanberra", "libinput", "libpcap", "libwacom", "xorg-wacom", "Linux-PAM", "lm-sensors",
|
||||
"oxygen-icons", "pciutils", "power-profiles-daemon", "python",
|
||||
# Reccomended (runtime)
|
||||
"accountsservice", "breeze-icons", "xdg-desktop-portal", "xwayland", "noto-fonts", "system-config-printer", #"kio-extras", smartmontools
|
||||
# optional
|
||||
"appstream", "glu", "plymouth" # wont add more since no have :laugh:
|
||||
]
|
||||
|
||||
build = [
|
||||
# make fembuiasczxcx zxczxczxc
|
||||
f"mkdir -p {fembuilddir}",
|
||||
f"mkdir -p {destdir}/opt/kf6-{kf6_ver} && ln -sfn kf6-{kf6_ver} {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 {fembuilddir} && wget https://rocketleaguechatp.duckdns.org/plasma-{pkgver}.md5 && "
|
||||
f"wget -r -nH -nd -A '*.xz' -np https://rocketleaguechatp.duckdns.org/plasma/ || true",
|
||||
|
||||
f"""cd {fembuilddir} && bash -e <<'EOF'
|
||||
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
|
||||
name=$( echo $pkg |sed 's|-6.*$||') # Isolate package name
|
||||
packagedir=$(echo $pkg |sed 's|\\.tar.*||') # Source directory
|
||||
|
||||
tar -xvf $file
|
||||
pushd $packagedir
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \\
|
||||
-D CMAKE_INSTALL_LIBEXECDIR=libexec \\
|
||||
-D CMAKE_BUILD_TYPE=Release \\
|
||||
-D BUILD_QT5=OFF \\
|
||||
-D BUILD_TESTING=OFF \\
|
||||
-D ENABLE_DOCS=OFF \\
|
||||
-W no-dev .. &&
|
||||
|
||||
make -j$(nproc)
|
||||
make DESTDIR={destdir} install
|
||||
|
||||
# ---- license copying (best-effort) ----
|
||||
licensedir={destdir}/usr/share/licenses/$name
|
||||
mkdir -p $licensedir
|
||||
|
||||
find .. -type f \\( \\
|
||||
-iname COPYING -o \\
|
||||
-iname COPYRIGHT -o \\
|
||||
-iname NOTICE -o \\
|
||||
-iname LICENSE -o \\
|
||||
-iname LICENCE \\
|
||||
\\) -exec cp -pv {{}} $licensedir \\; || true
|
||||
|
||||
find .. -type d -iname LICENSES | while read -r licdir; do
|
||||
cp -pvra $licdir/* $licensedir/ || true
|
||||
done || true
|
||||
|
||||
popd
|
||||
|
||||
rm -rf $packagedir
|
||||
/sbin/ldconfig || true
|
||||
|
||||
done < plasma-{pkgver}.md5
|
||||
EOF""",
|
||||
|
||||
# DM & portals etc
|
||||
f"""# Setup xsessions (X11 sessions)
|
||||
install -dvm 755 {destdir}/usr/share/xsessions
|
||||
cd {destdir}/usr/share/xsessions
|
||||
|
||||
[ -e plasma.desktop ] ||
|
||||
ln -sfv $KF6_PREFIX/share/xsessions/plasmax11.desktop
|
||||
|
||||
# Setup wayland-sessions
|
||||
install -dvm 755 {destdir}/usr/share/wayland-sessions
|
||||
cd {destdir}/usr/share/wayland-sessions
|
||||
|
||||
[ -e plasmawayland.desktop ] ||
|
||||
ln -sfv $KF6_PREFIX/share/wayland-sessions/plasma.desktop
|
||||
|
||||
# Setup xdg-desktop-portal
|
||||
install -dvm 755 {destdir}/usr/share/xdg-desktop-portal
|
||||
cd {destdir}/usr/share/xdg-desktop-portal
|
||||
|
||||
[ -e kde-portals.conf ] ||
|
||||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/kde-portals.conf
|
||||
|
||||
# Setup kde portal
|
||||
install -dvm 755 {destdir}/usr/share/xdg-desktop-portal/portals
|
||||
cd {destdir}/usr/share/xdg-desktop-portal/portals
|
||||
|
||||
[ -e kde.portal ] ||
|
||||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/portals/kde.portal""",
|
||||
|
||||
# remove useless systemd bloat
|
||||
f"rm -rf {destdir}$KF6_PREFIX/lib/systemd",
|
||||
|
||||
# Linux-PAM setup
|
||||
f"mkdir -p {destdir}/etc/pam.d",
|
||||
f"wget https://rocketleaguechatp.duckdns.org/kde -O {destdir}/etc/pam.d/kde",
|
||||
f"wget https://rocketleaguechatp.duckdns.org/kde-np -O {destdir}/etc/pam.d/kde-np",
|
||||
f"wget https://rocketleaguechatp.duckdns.org/kscreensaver -O {destdir}/etc/pam.d/kscreensaver",
|
||||
|
||||
# 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}"
|
||||
]
|
||||
Reference in New Issue
Block a user