From afe1f12fc4750bb43183e83102501e4f537ea7ee Mon Sep 17 00:00:00 2001 From: gabry Date: Wed, 31 Dec 2025 22:29:22 +0100 Subject: [PATCH] oops i forgot to commit --- bluez.recipe.py | 1 + boost.recipe.py | 30 ++++++ caelestia-shell.recipe.py | 4 +- cracklib.recipe.py | 41 ++++++++ file-roller.recipe.py | 2 +- gammastep.recipe.py | 30 ++++++ grub.recipe.py | 2 +- index.txt | 21 ++++ k3b.recipe.py | 31 +++++- kde-connect.recipe.py | 42 +++++++- kde-plasma.recipe.py | 160 +++++++++++++++++++++++++++++ kf6.recipe.py | 91 ++++++++++------ kirigami-addons.recipe.py | 38 ++++++- libarchive.recipe.py | 2 +- libdrm.recipe.py | 2 +- libkcddb.recipe.py | 36 ++++++- libpwquality.recipe.py | 32 ++++++ localsearch.recipe.py | 4 + nautilus.recipe.py | 2 +- noto-fonts.recipe.py | 29 ++++++ nvidia-vaapi-driver.recipe.py | 29 ++++++ nvidia.recipe.py | 8 +- opencv.recipe.py | 36 +++++++ os-prober.recipe.py | 41 ++++++++ oxygen-icons.recipe.py | 30 ++++++ phonon-backend-vlc.recipe.py | 30 ++++++ phonon.recipe.py | 31 ++++++ plasma-wayland-protocols.recipe.py | 2 +- polkit.recipe.py | 2 +- power-profiles-daemon.recipe.py | 2 +- pulseaudio-qt.recipe.py | 33 +++++- python.recipe.py | 4 +- qcoro.recipe.py | 34 ++++++ qt6.recipe.py | 2 +- system-config-printer.recipe.py | 30 ++++++ vlc.recipe.py | 37 +++++++ wayland-protocols.recipe.py | 4 +- xdg-user-dirs.recipe.py | 30 ++++++ xdotool.recipe.py | 30 ++++++ xorg-evdev.recipe.py | 30 ++++++ xorg-wacom.recipe.py | 30 ++++++ zip.recipe.py | 35 +++++++ zxing-cpp.recipe.py | 32 ++++++ 43 files changed, 1083 insertions(+), 59 deletions(-) create mode 100644 boost.recipe.py create mode 100644 cracklib.recipe.py create mode 100644 gammastep.recipe.py create mode 100644 kde-plasma.recipe.py create mode 100644 libpwquality.recipe.py create mode 100644 noto-fonts.recipe.py create mode 100644 nvidia-vaapi-driver.recipe.py create mode 100644 opencv.recipe.py create mode 100644 os-prober.recipe.py create mode 100644 oxygen-icons.recipe.py create mode 100644 phonon-backend-vlc.recipe.py create mode 100644 phonon.recipe.py create mode 100644 qcoro.recipe.py create mode 100644 system-config-printer.recipe.py create mode 100644 vlc.recipe.py create mode 100644 xdg-user-dirs.recipe.py create mode 100644 xdotool.recipe.py create mode 100644 xorg-evdev.recipe.py create mode 100644 xorg-wacom.recipe.py create mode 100644 zip.recipe.py create mode 100644 zxing-cpp.recipe.py diff --git a/bluez.recipe.py b/bluez.recipe.py index 08aeef4..9c9fbb1 100644 --- a/bluez.recipe.py +++ b/bluez.recipe.py @@ -19,6 +19,7 @@ build = [ f"cd {builddir} && make DESTDIR={destdir} install && install -d -m 755 {destdir}/usr/sbin && ln -svf ../libexec/bluetooth/bluetoothd " f"{destdir}/usr/sbin && install -v -dm755 {destdir}/etc/bluetooth && install -v -m644 src/main.conf {destdir}/etc/bluetooth/main.conf &&" f"install -d -m 755 {destdir}/usr/share/dbus-1/services && install -m644 ./obexd/src/org.bluez.obex.service {destdir}/usr/share/dbus-1/services", + f"ln -sf /usr/libexec/bluetooth/bluetoothd {destdir}/usr/sbin/bluetoothd", f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/COPYING.LIB", diff --git a/boost.recipe.py b/boost.recipe.py new file mode 100644 index 0000000..d51fd4b --- /dev/null +++ b/boost.recipe.py @@ -0,0 +1,30 @@ +pkgname = "boost" +pkgver = "1.89.0" +source = f"https://github.com/boostorg/boost/releases/download/boost-{pkgver}/boost-{pkgver}-b2-nodocs.tar.xz" +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 = ["which", "icu"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}-b2-nodocs.tar.xz", + + # 64-bit build + f"cd {builddir} && ./bootstrap.sh --prefix=/usr --with-python=python3", + f"cd {builddir} && ./b2 stage -j$(nproc) threading=multi link=shared", + f"cd {builddir} && DESTDIR={destdir} ./b2 install threading=multi link=shared --prefix={destdir}/usr", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/LICENSE_1_0.txt {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] \ No newline at end of file diff --git a/caelestia-shell.recipe.py b/caelestia-shell.recipe.py index e412c1e..13684bf 100644 --- a/caelestia-shell.recipe.py +++ b/caelestia-shell.recipe.py @@ -9,7 +9,9 @@ outputdir = "/home/gabry/lfs-repo/binpkg" manifestdir = "/home/gabry/lfs-repo/manifests" destdir = f"{fembuilddir}/DESTDIR" -deps = ["quickshell", "caelestia-cli", "ddcutil", "brightnessctl", "cava", "NetworkManager", "libcava", "pipewire", "lm-sensors", "fish", "aubio", "glibc", "qt6", "material-design-icons", "jetbrainsmono-nerd", "libqalculate"] +deps = ["quickshell", "caelestia-cli", "ddcutil", "brightnessctl", "cava", "NetworkManager", + "libcava", "pipewire", "lm-sensors", "fish", "aubio", "glibc", "qt6", "material-design-icons", + "jetbrainsmono-nerd", "libqalculate", "gammastep"] build = [ diff --git a/cracklib.recipe.py b/cracklib.recipe.py new file mode 100644 index 0000000..0e59cb6 --- /dev/null +++ b/cracklib.recipe.py @@ -0,0 +1,41 @@ +pkgname = "cracklib" +pkgver = "2.10.3" +source = f"https://github.com/cracklib/cracklib/releases/download/v{pkgver}/cracklib-{pkgver}.tar.xz" +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 = [] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz && wget " + f"https://github.com/cracklib/cracklib/releases/download/v{pkgver}/cracklib-words-{pkgver}.xz", + + # 64-bit build + f"cd {builddir} && ./configure --prefix=/usr --disable-static --with-default-dict=/usr/lib/cracklib/pw_dict", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install", + + # install dictionary + f"mkdir -p {destdir}/usr/share/dict && xzcat ../cracklib-words-{pkgver}.xz > {destdir}/usr/share/dict/cracklib-words && " + f"ln -v -sf cracklib-words {destdir}/usr/share/dict/words && echo $(hostname) >> {destdir}/usr/share/dict/cracklib-extra-words", + + f"install -v -m755 -d {destdir}/usr/lib/cracklib", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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"create-cracklib-dict /usr/share/dict/cracklib-words /usr/share/dict/cracklib-extra-words", +] diff --git a/file-roller.recipe.py b/file-roller.recipe.py index f3d1c4d..1b388c0 100644 --- a/file-roller.recipe.py +++ b/file-roller.recipe.py @@ -8,7 +8,7 @@ outputdir = "/home/gabry/lfs-repo/binpkg" manifestdir = "/home/gabry/lfs-repo/manifests" destdir = f"{fembuilddir}/DESTDIR" -deps = ["gtk4", "itstool", "cpio", "desktop-file-utils", "json-glib", "libarchive", "libadwaita", "libportal", "nautilus"] +deps = ["gtk4", "itstool", "cpio", "desktop-file-utils", "json-glib", "libarchive", "libadwaita", "libportal", "nautilus", "zip"] build = [ # Extract diff --git a/gammastep.recipe.py b/gammastep.recipe.py new file mode 100644 index 0000000..e98ff89 --- /dev/null +++ b/gammastep.recipe.py @@ -0,0 +1,30 @@ +pkgname = "gammastep" +pkgver = "2.0.11" +source = f"https://gitlab.com/chinstrap/gammastep/-/archive/v{pkgver}/gammastep-v{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-v{pkgver}" +fembuilddir = f"/tmp/fempkg/build/{pkgname}" +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" + +deps = ["glib", "glibc", "hicolor-icon-theme", "libdrm", "xorg-libs", "wayland", "geoclue", "gtk3", "libappindicator", "python", "intltool"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-v{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && ./bootstrap && ./configure --prefix=/usr", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/grub.recipe.py b/grub.recipe.py index 86ae6d5..81b417f 100644 --- a/grub.recipe.py +++ b/grub.recipe.py @@ -9,7 +9,7 @@ destdir = f"{fembuilddir}/DESTDIR" unsets = "unset {{C,CPP,CXX,LD}}FLAGS" unifont_ver = "17.0.01" -deps = ["freetype"] +deps = ["freetype", "os-prober"] build = [ # Extract diff --git a/index.txt b/index.txt index 8641d0e..b83369b 100644 --- a/index.txt +++ b/index.txt @@ -21,6 +21,7 @@ bc.recipe.py binutils.recipe.py bison.recipe.py bluez.recipe.py +boost.recipe.py breakpad.recipe.py breeze-icons.recipe.py brightnessctl.recipe.py @@ -43,6 +44,7 @@ cliphist.recipe.py cmake.recipe.py coreutils.recipe.py cpio.recipe.py +cracklib.recipe.py cryptsetup.recipe.py cuda.recipe.py cups.recipe.py @@ -99,6 +101,7 @@ fribidi.recipe.py fuse2.recipe.py fuse.recipe.py fuzzel.recipe.py +gammastep.recipe.py gawk.recipe.py gcc.recipe.py gcr4.recipe.py @@ -182,6 +185,7 @@ k3b.recipe.py kapidox.recipe.py kbd.recipe.py kde-connect.recipe.py +kde-plasma.recipe.py keyutils.recipe.py kf6.recipe.py kirigami-addons.recipe.py @@ -247,6 +251,7 @@ libpipeline.recipe.py libpng.recipe.py libportal.recipe.py libpsl.recipe.py +libpwquality.recipe.py libqalculate.recipe.py libqmi.recipe.py libqrencode.recipe.py @@ -318,17 +323,22 @@ nghttp2.recipe.py ninja.recipe.py nlohmann-json.recipe.py nodejs.recipe.py +noto-fonts.recipe.py npth.recipe.py NSPR.recipe.py NSS.recipe.py nvidia-egl-libraries.recipe.py nvidia.recipe.py +nvidia-vaapi-driver.recipe.py nwg-look.recipe.py obs-studio.recipe.py +opencv.recipe.py openldap.recipe.py openssl.recipe.py opsec.recipe.py +os-prober.recipe.py ostree.recipe.py +oxygen-icons.recipe.py p11-kit.recipe.py pangomm.recipe.py pango.recipe.py @@ -340,6 +350,8 @@ pavucontrol.recipe.py pciutils.recipe.py pcre2.recipe.py perl.recipe.py +phonon-backend-vlc.recipe.py +phonon.recipe.py pipewire.recipe.py pixman.recipe.py pkgconf.recipe.py @@ -362,6 +374,7 @@ __pycache__ pycairo.recipe.py python.recipe.py qca.recipe.py +qcoro.recipe.py qt6ct.recipe.py qt6.recipe.py quickshell.recipe.py @@ -393,6 +406,7 @@ SVT-AV1.recipe.py swappy.recipe.py swig.recipe.py sysklogd.recipe.py +system-config-printer.recipe.py sysvinit.recipe.py taglib.recipe.py tar.recipe.py @@ -412,6 +426,7 @@ util-macros.recipe.py v4l-utils.recipe.py vala.recipe.py vim.recipe.py +vlc.recipe.py vscodium.recipe.py vulkan-headers.recipe.py vulkan-loader.recipe.py @@ -434,19 +449,25 @@ xdg-dbus-proxy.recipe.py xdg-desktop-portal-gtk.recipe.py xdg-desktop-portal-hyprland.recipe.py xdg-desktop-portal.recipe.py +xdg-user-dirs.recipe.py xdg-utils.recipe.py +xdotool.recipe.py xkeyboard-config.recipe.py xmlparser.recipe.py xmlto.recipe.py xorg-apps.recipe.py +xorg-evdev.recipe.py xorg-fonts.recipe.py xorg-input-driver.recipe.py xorg-libs.recipe.py xorgproto.recipe.py xorg-server.recipe.py +xorg-wacom.recipe.py xwayland.recipe.py xz.recipe.py yaml-cpp.recipe.py yasm.recipe.py +zip.recipe.py zlib.recipe.py zstd.recipe.py +zxing-cpp.recipe.py diff --git a/k3b.recipe.py b/k3b.recipe.py index afc5a8c..ec96b53 100644 --- a/k3b.recipe.py +++ b/k3b.recipe.py @@ -14,7 +14,11 @@ build = [ f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", # 64-bit build - f"cd {builddir} && mkdir -p {destdir}/opt/kf6-{kf6_ver} && ln -sf kf6-{kf6_ver} {destdir}/opt/kf6 && mkdir build && cd build && " + f"mkdir -p {destdir}/opt/kf6-{kf6_ver} && ln -sf kf6-{kf6_ver} {destdir}/opt/kf6", + f"mkdir -p {destdir}/opt/kf6/{{etc,share}}", + f"mkdir -p {destdir}/etc/dbus-1 {destdir}/usr/share/dbus-1 {destdir}/usr/share/polkit-1", + + f"cd {builddir} && mkdir build && cd build && " f"cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D K3B_DOC=OFF -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -W no-dev ..", f"cd {builddir}/build && make -j$(nproc)", f"cd {builddir}/build && make DESTDIR={destdir} install", @@ -22,10 +26,31 @@ build = [ f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"cp -pv {builddir}/LICENSES/* {destdir}/usr/share/licenses/{pkgname}/", + # Move KF6 payloads safely (modern method) + 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 (modern) + 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 + # Cleanup f"rm -rf {builddir} {fembuilddir}" -] \ No newline at end of file +] diff --git a/kde-connect.recipe.py b/kde-connect.recipe.py index c79f927..431aae4 100644 --- a/kde-connect.recipe.py +++ b/kde-connect.recipe.py @@ -1,5 +1,6 @@ pkgname = "kde-connect" -pkgver = "25.12.0" +pkgver = "25.12.0" +kf6_ver = "6.20.0" source = f"https://invent.kde.org/network/kdeconnect-kde/-/archive/v{pkgver}/kdeconnect-kde-v{pkgver}.tar.gz" builddir = f"/tmp/fempkg/build/{pkgname}/kdeconnect-kde-v{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" @@ -13,6 +14,16 @@ build = [ # Extract f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/kdeconnect-kde-v{pkgver}.tar.gz", + 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", + + # 64-bit build f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -W no-dev ..", f"cd {builddir}/build && make -j$(nproc)", @@ -21,6 +32,35 @@ build = [ f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"cp -pv {builddir}/LICENSES/* {destdir}/usr/share/licenses/{pkgname}/", + # --- KF6 dbus / polkit handling (ADDED) --- + + f"""if [ -d {destdir}$KF6_PREFIX/etc/dbus-1 ]; then + mkdir -p {destdir}/etc/dbus-1 && + cp -aT {destdir}$KF6_PREFIX/etc/dbus-1 {destdir}/etc/dbus-1 && + rm -rf {destdir}$KF6_PREFIX/etc/dbus-1 + fi""", + + f"""if [ -d {destdir}$KF6_PREFIX/share/dbus-1 ]; then + mkdir -p {destdir}/usr/share/dbus-1 && + cp -aT {destdir}$KF6_PREFIX/share/dbus-1 {destdir}/usr/share/dbus-1 && + rm -rf {destdir}$KF6_PREFIX/share/dbus-1 + fi""", + + f"""if [ -d {destdir}$KF6_PREFIX/share/polkit-1 ]; then + mkdir -p {destdir}/usr/share/polkit-1 && + cp -aT {destdir}$KF6_PREFIX/share/polkit-1 {destdir}/usr/share/polkit-1 && + rm -rf {destdir}$KF6_PREFIX/share/polkit-1 + fi""", + + 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""", + + # --- end additions --- + # 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", diff --git a/kde-plasma.recipe.py b/kde-plasma.recipe.py new file mode 100644 index 0000000..0fd82ba --- /dev/null +++ b/kde-plasma.recipe.py @@ -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}" +] diff --git a/kf6.recipe.py b/kf6.recipe.py index a081919..0eda20e 100644 --- a/kf6.recipe.py +++ b/kf6.recipe.py @@ -1,41 +1,50 @@ -# TODO when a new kf6 ver drops update also the single kapidox recipe (and breeze-icons and extra-cmake-modules and k3b) -pkgname = "kf6" +# 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://download.kde.org/stable/frameworks/{Pkgver}/attica-{pkgver}.tar.xz" +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"] +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 /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/attica-{pkgver}.tar.xz && mkdir {builddir}", + 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", - # 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} && + + f"""cd {builddir} && bash -e <<'EOF' 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 + pkg=$(echo $file|sed 's|^.*/||') + packagedir=$(echo $pkg|sed 's|\\.tar.*||') + name=$(echo $pkg|sed 's|-6.*$||') 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 @@ -51,7 +60,7 @@ while read -r line; do esac mkdir build - cd build + cd build cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \\ -D CMAKE_INSTALL_LIBEXECDIR=libexec \\ @@ -60,33 +69,57 @@ while read -r line; do -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)' \\ + -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 + 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 """, - # 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", + # 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 .", @@ -99,4 +132,4 @@ done < frameworks-{pkgver}.md5 triggers = [ f"cd /tmp && find /opt -maxdepth 1 -type d -name \"kf6-*\" ! -name \"kf6-{pkgver}\" -exec rm -rf {{}} +", f"/sbin/ldconfig" -] +] \ No newline at end of file diff --git a/kirigami-addons.recipe.py b/kirigami-addons.recipe.py index 3469e56..730a26b 100644 --- a/kirigami-addons.recipe.py +++ b/kirigami-addons.recipe.py @@ -1,5 +1,6 @@ pkgname = "kirigami-addons" -pkgver = "1.10.0" +pkgver = "1.10.0" +kf6_ver = "6.20.0" source = f"https://download.kde.org/stable/kirigami-addons/kirigami-addons-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" @@ -13,6 +14,15 @@ build = [ # Extract f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + 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", + # 64-bit build f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF ..", f"cd {builddir}/build && make -j$(nproc)", @@ -21,10 +31,34 @@ build = [ f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"cp -pv {builddir}/LICENSES/* {destdir}/usr/share/licenses/{pkgname}/", + # 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}" -] +] \ No newline at end of file diff --git a/libarchive.recipe.py b/libarchive.recipe.py index 8b1c9d8..8e20da4 100644 --- a/libarchive.recipe.py +++ b/libarchive.recipe.py @@ -15,7 +15,7 @@ build = [ # 64-bit build f"cd {builddir} && ./configure --prefix=/usr --disable-static", f"cd {builddir} && make -j$(nproc)", - f"cd {builddir} && make DESTDIR={destdir} install && ln -sfv bsdunzip {destdir}/usr/bin/unzip", + f"cd {builddir} && make DESTDIR={destdir} install", f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", diff --git a/libdrm.recipe.py b/libdrm.recipe.py index 1eb1631..ea8938b 100644 --- a/libdrm.recipe.py +++ b/libdrm.recipe.py @@ -1,5 +1,5 @@ pkgname = "libdrm" -pkgver = "2.4.129" +pkgver = "2.4.131" source = f"https://dri.freedesktop.org/libdrm/libdrm-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" diff --git a/libkcddb.recipe.py b/libkcddb.recipe.py index ff05957..a711a13 100644 --- a/libkcddb.recipe.py +++ b/libkcddb.recipe.py @@ -1,5 +1,6 @@ pkgname = "libkcddb" -pkgver = "25.08.3" +pkgver = "25.08.3" +kf6_ver = "6.20.0" source = f"https://download.kde.org/stable/release-service/{pkgver}/src/libkcddb-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" @@ -12,23 +13,50 @@ build = [ # Extract f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + # /opt/kf6 symlinks + DBus/Polkit setup + 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 {destdir}$KF6_PREFIX/share/dbus-1 {destdir}$KF6_PREFIX/share/polkit-1", + f"mkdir -p {destdir}/etc/dbus-1 {destdir}/usr/share/dbus-1 {destdir}/usr/share/polkit-1", + # 64-bit build f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -D QT_MAJOR_VERSION=6 -W no-dev ..", f"cd {builddir}/build && make -j$(nproc)", f"cd {builddir}/build && make DESTDIR={destdir} install", + # Move DBus/Polkit payloads safely out of /opt/kf6 + 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 + 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""", + + # Licenses f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/LICENSES/BSD-3-Clause.txt {destdir}/usr/share/licenses/{pkgname}/BSD-3-Clause.txt", f"install -v -m644 {builddir}/LICENSES/CC0-1.0.txt {destdir}/usr/share/licenses/{pkgname}/CC0-1.0.txt", f"install -v -m644 {builddir}/LICENSES/GFDL-1.2-or-later.txt {destdir}/usr/share/licenses/{pkgname}/GFDL-1.2-or-later.txt", f"install -v -m644 {builddir}/LICENSES/GPL-2.0-or-later.txt {destdir}/usr/share/licenses/{pkgname}/GPL-2.0-or-later.txt", f"install -v -m644 {builddir}/LICENSES/LGPL-2.0-or-later.txt {destdir}/usr/share/licenses/{pkgname}/LGPL-2.0-or-later.txt", - # why so much licenses lmao # 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 + # Cleanup f"rm -rf {builddir} {fembuilddir}" -] \ No newline at end of file +] diff --git a/libpwquality.recipe.py b/libpwquality.recipe.py new file mode 100644 index 0000000..78c3794 --- /dev/null +++ b/libpwquality.recipe.py @@ -0,0 +1,32 @@ +pkgname = "libpwquality" +pkgver = "1.4.5" +source = f"https://github.com/libpwquality/libpwquality/releases/download/libpwquality-{pkgver}/libpwquality-{pkgver}.tar.bz2" +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 = ["cracklib", "python"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.bz2", + + # 64-bit build + f"cd {builddir} && ./configure --prefix=/usr --disable-static --with-securedir=/usr/lib/security --disable-python-bindings", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/python", + f"cd {builddir} && make DESTDIR={destdir} install", + f"cd {builddir} && pip3 install --root={destdir} --no-index --find-links dist --no-user --force-reinstall --no-deps pwquality", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] \ No newline at end of file diff --git a/localsearch.recipe.py b/localsearch.recipe.py index 6921c23..43e9e98 100644 --- a/localsearch.recipe.py +++ b/localsearch.recipe.py @@ -33,3 +33,7 @@ build = [ # Cleanup f"rm -rf {fembuilddir}" ] + +triggers = [ + f"glib-compile-schemas /usr/share/glib-2.0/schemas", +] \ No newline at end of file diff --git a/nautilus.recipe.py b/nautilus.recipe.py index 3b5db66..fce8eba 100644 --- a/nautilus.recipe.py +++ b/nautilus.recipe.py @@ -9,7 +9,7 @@ manifestdir = "/home/gabry/lfs-repo/manifests" destdir = f"{fembuilddir}/DESTDIR" deps = ["gexiv2", "gnome-autoar", "gnome-desktop", "libadwaita", "libportal", "libseccomp", "tinysparql", - "desktop-file-utils", "glib", "gst-plugins-base", "gvfs"] + "desktop-file-utils", "glib", "gst-plugins-base", "gvfs", "localsearch"] build = [ # Extract diff --git a/noto-fonts.recipe.py b/noto-fonts.recipe.py new file mode 100644 index 0000000..2e67a16 --- /dev/null +++ b/noto-fonts.recipe.py @@ -0,0 +1,29 @@ +pkgname = "noto-fonts" +pkgver = "1.0" +source = f"https://rocketleaguechatp.duckdns.org/Noto_Sans.zip" +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 = ["fontconfig"] + +build = [ + # Extract + f"mkdir -p {builddir} && cd {fembuilddir} && unzip /var/lib/fempkg/pkgs/Noto_Sans.zip -d {builddir}", + + # 64-bit build + f"mkdir -p {destdir}/usr/share/fonts/noto", + f"cd {builddir} && cp -pv *.ttf {destdir}/usr/share/fonts/noto/", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/OFL.txt {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/nvidia-vaapi-driver.recipe.py b/nvidia-vaapi-driver.recipe.py new file mode 100644 index 0000000..699dbbd --- /dev/null +++ b/nvidia-vaapi-driver.recipe.py @@ -0,0 +1,29 @@ +pkgname = "nvidia-vaapi-driver" +pkgver = "0.0.14" +source = f"https://github.com/elFarto/nvidia-vaapi-driver/archive/v{pkgver}/nvidia-vaapi-driver-{pkgver}.tar.gz" +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 = ["libdrm", "libva", "ffnv-codec", "libglvnd"] + +build = [ + # Extract + f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && meson setup .. --prefix=/usr --buildtype=release", + f"cd {builddir}/build && ninja", + f"cd {builddir}/build && DESTDIR={destdir} ninja install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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 {builddir} {fembuilddir}" +] diff --git a/nvidia.recipe.py b/nvidia.recipe.py index 6880844..4862be6 100644 --- a/nvidia.recipe.py +++ b/nvidia.recipe.py @@ -1,12 +1,12 @@ pkgname = "nvidia" -pkgver = "580.119.02" +pkgver = "590.48.01" kernel_ver = "6.18.2" source = f"https://rocketleaguechatp.duckdns.org/pappalaugh.jpg" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" krl_src = f"https://rocketleaguechatp.duckdns.org/kernel-source-prep-{kernel_ver}.tar.xz" -deps = ["linux"] +deps = ["linux", "make", "autoconf", "automake", "gcc"] build = [ # Extract @@ -16,11 +16,11 @@ build = [ f"cd {builddir} && if [ -f \"/var/lib/fempkg/nvidia\" ]; then wget {krl_src} -O /var/lib/fempkg/pkgs/kernel-source-prep-{kernel_ver}.tar.xz && " f"tar -xvf /var/lib/fempkg/pkgs/kernel-source-prep-{kernel_ver}.tar.xz -C /var/tmp/fempkg/build/linux/linux-{kernel_ver}/ && " f"wget https://us.download.nvidia.com/XFree86/Linux-x86_64/{pkgver}/NVIDIA-Linux-x86_64-{pkgver}.run " - f"https://glfs-book.github.io/glfs/download/NVIDIA/install-NVIDIA-1 https://glfs-book.github.io/glfs/download/NVIDIA/manifest-NVIDIA-1 && " + f"https://glfs-book.github.io/glfs/download/NVIDIA/install-NVIDIA-2 https://glfs-book.github.io/glfs/download/NVIDIA/manifest-NVIDIA-2 && " f"sh NVIDIA-Linux-x86_64-{pkgver}.run -x && cd NVIDIA-Linux-x86_64-{pkgver}/kernel && make KERNEL_UNAME={kernel_ver} NV_EXCLUDE_KERNEL_MODULES= " f"-j$(nproc) && make KERNEL_UNAME={kernel_ver} modules_install && cd .. && rm -rvf /usr/lib/firmware/nvidia/[0-9]* && " f"mkdir -pv /usr/lib/firmware/nvidia/{pkgver} && cp -v firmware/*.bin /usr/lib/firmware/nvidia/{pkgver} && install -vdm755 /usr/share/nvidia && " - f"install -vDm755 ../install-NVIDIA-1 /usr/sbin/nvidia-install && install -vDm644 ../manifest-NVIDIA-1 /usr/share/nvidia/manifest && /sbin/nvidia-install; " + f"install -vDm755 ../install-NVIDIA-2 /usr/sbin/nvidia-install && install -vDm644 ../manifest-NVIDIA-2 /usr/share/nvidia/manifest && /sbin/nvidia-install; " f"else echo \"Nvidia isn't enabled in fempkg's settings... Skipping\"; fi", # Cleanup diff --git a/opencv.recipe.py b/opencv.recipe.py new file mode 100644 index 0000000..9a2175a --- /dev/null +++ b/opencv.recipe.py @@ -0,0 +1,36 @@ +pkgname = "opencv" +pkgver = "4.12.0" +source = f"https://github.com/opencv/opencv/archive/{pkgver}/opencv-{pkgver}.tar.gz" +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 = ["cmake", "libarchive", "ffmpeg", "gst-plugins-base", "gtk3", "libjpeg-turbo", "libpng", "libtiff", "libwebp"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz && " + f"wget https://www.linuxfromscratch.org/patches/blfs/svn/opencv-{pkgver}-ffmpeg8-1.patch", + + # 64-bit build + f"cd {builddir} && patch -Np1 -i ../opencv-{pkgver}-ffmpeg8-1.patch && mkdir -pv build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr " + f"-D CMAKE_BUILD_TYPE=Release -D ENABLE_CXX11=ON -D BUILD_PERF_TESTS=OFF -D WITH_XINE=OFF -D WITH_OPENJPEG=OFF -D BUILD_TESTS=OFF " + f"-D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_SKIP_INSTALL_RPATH=ON -D BUILD_WITH_DEBUG_INFO=OFF -D OPENCV_GENERATE_PKGCONFIG=ON " + f"-D CMAKE_POLICY_VERSION_MINIMUM=3.5 -W no-dev .. ", # hmm + + f"cd {builddir}/build && make -j$(nproc)", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}4/", + f"install -v -m644 {builddir}/LICENSE {destdir}/usr/share/licenses/{pkgname}4/LICENSE", + f"install -v -m644 {builddir}/COPYRIGHT {destdir}/usr/share/licenses/{pkgname}4/COPYRIGHT", + + # 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}" +] diff --git a/os-prober.recipe.py b/os-prober.recipe.py new file mode 100644 index 0000000..81524fe --- /dev/null +++ b/os-prober.recipe.py @@ -0,0 +1,41 @@ +pkgname = "os-prober" +pkgver = "1.83" +source = f"https://deb.debian.org/debian/pool/main/o/{pkgname}/{pkgname}_{pkgver}.tar.xz" +builddir = f"/tmp/fempkg/build/{pkgname}/work" +fembuilddir = f"/tmp/fempkg/build/{pkgname}" +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" + +deps = ["bash"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}_{pkgver}.tar.xz", + + # 64-bit build + f"cd {builddir} && sed -i -e \"s:/lib/ld\\*\\.so\\*:/lib*/ld*.so*:g\" os-probes/mounted/common/90linux-distro && make newns", + f"""cd {builddir} && install -Dm 755 os-prober linux-boot-prober -t "{destdir}/usr/bin" + install -Dm 755 newns -t "{destdir}/usr/lib/os-prober" + install -Dm 755 common.sh -t "{destdir}/usr/share/os-prober" + + for dir in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do + install -dm 755 "{destdir}/usr/lib/${{dir}}" + install -m 755 -t "{destdir}/usr/lib/${{dir}}" "${{dir}}"/common/* + [[ -d "${{dir}}"/x86 ]] && cp -r "${{dir}}"/x86/* "{destdir}/usr/lib/${{dir}}" + done + + install -Dm 755 os-probes/mounted/powerpc/20macosx "{destdir}"/usr/lib/os-probes/mounted/20macosx + install -dm 755 "${destdir}"/var/lib/os-prober +""", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"wget https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt -O {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/oxygen-icons.recipe.py b/oxygen-icons.recipe.py new file mode 100644 index 0000000..4139c01 --- /dev/null +++ b/oxygen-icons.recipe.py @@ -0,0 +1,30 @@ +pkgname = "oxygen-icons" +pkgver = "6.0.0" +source = f"https://download.kde.org/stable/oxygen-icons/oxygen-icons-{pkgver}.tar.xz" +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 = ["extra-cmake-modules", "qt6"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + + # 64-bit build + f"cd {builddir} && sed -i '/( oxygen/ s/)/scalable )/' CMakeLists.txt && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -W no-dev ..", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/LICENSE.LIB", + + # 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}" +] diff --git a/phonon-backend-vlc.recipe.py b/phonon-backend-vlc.recipe.py new file mode 100644 index 0000000..ee6c41f --- /dev/null +++ b/phonon-backend-vlc.recipe.py @@ -0,0 +1,30 @@ +pkgname = "phonon-backend-vlc" +pkgver = "0.12.0" +source = f"https://download.kde.org/stable/phonon/phonon-backend-vlc/{pkgver}/phonon-backend-vlc-{pkgver}.tar.xz" +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 = ["phonon", "vlc"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D PHONON_BUILD_QT5=OFF ..", + f"cd {builddir}/build && make -j$(nproc)", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/phonon.recipe.py b/phonon.recipe.py new file mode 100644 index 0000000..7f95bb0 --- /dev/null +++ b/phonon.recipe.py @@ -0,0 +1,31 @@ +pkgname = "phonon" +pkgver = "4.12.0" +source = f"https://download.kde.org/stable/phonon/{pkgver}/phonon-{pkgver}.tar.xz" +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 = ["cmake", "extra-cmake-modules", "glib", "qt6", "pulseaudio"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D PHONON_BUILD_QT5=OFF -W no-dev .. ", + f"cd {builddir}/build && make -j$(nproc)", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/LICENSE.LIB", + + # 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}" +] diff --git a/plasma-wayland-protocols.recipe.py b/plasma-wayland-protocols.recipe.py index 54801a0..44535c1 100644 --- a/plasma-wayland-protocols.recipe.py +++ b/plasma-wayland-protocols.recipe.py @@ -1,5 +1,5 @@ pkgname = "plasma-wayland-protocols" -pkgver = "1.18.0" +pkgver = "1.19.0" source = f"https://download.kde.org/stable/plasma-wayland-protocols/plasma-wayland-protocols-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" diff --git a/polkit.recipe.py b/polkit.recipe.py index ff84b9d..7685a3b 100644 --- a/polkit.recipe.py +++ b/polkit.recipe.py @@ -15,7 +15,7 @@ build = [ # 64-bit build f"cd {builddir} && mkdir build && cd build && meson setup .. --prefix=/usr --buildtype=release -D man=true -D session_tracking=elogind -D systemdsystemunitdir=/tmp -D tests=true", f"cd {builddir}/build && ninja", - f"cd {builddir}/build && DESTDIR={destdir} ninja install && rm -v {destdir}/tmp/*.service && rm -rf {destdir}/usr/lib/{{sysusers,tmpfiles}}.d", + f"cd {builddir}/build && DESTDIR={destdir} ninja install && rm -rfv {destdir}/tmp && rm -rf {destdir}/usr/lib/{{sysusers,tmpfiles}}.d", f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", diff --git a/power-profiles-daemon.recipe.py b/power-profiles-daemon.recipe.py index c2ea32f..2c49c87 100644 --- a/power-profiles-daemon.recipe.py +++ b/power-profiles-daemon.recipe.py @@ -16,7 +16,7 @@ build = [ # 64-bit build f"cd {builddir} && mkdir build && cd build && meson setup .. --prefix=/usr --buildtype=release -D gtk_doc=false -D tests=false -D systemdsystemunitdir=/tmp/", f"cd {builddir}/build && ninja", - f"cd {builddir}/build && DESTDIR={destdir} ninja install && rm -rf /tmp/power-profiles-daemon.service && install -vdm755 {destdir}/var/lib/power-profiles-daemon", + f"cd {builddir}/build && DESTDIR={destdir} ninja install && rm -rf {destdir}/tmp && install -vdm755 {destdir}/var/lib/power-profiles-daemon", f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", diff --git a/pulseaudio-qt.recipe.py b/pulseaudio-qt.recipe.py index ced50de..6ac4cdb 100644 --- a/pulseaudio-qt.recipe.py +++ b/pulseaudio-qt.recipe.py @@ -1,5 +1,6 @@ pkgname = "pulseaudio-qt" -pkgver = "1.7.0" +pkgver = "1.7.0" +kf6_ver = "6.20.0" source = f"https://download.kde.org/stable/pulseaudio-qt/pulseaudio-qt-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" @@ -13,11 +14,39 @@ build = [ # Extract f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", + # /opt/kf6 symlinks + DBus/Polkit setup + 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 {destdir}$KF6_PREFIX/share/dbus-1 {destdir}$KF6_PREFIX/share/polkit-1", + f"mkdir -p {destdir}/etc/dbus-1 {destdir}/usr/share/dbus-1 {destdir}/usr/share/polkit-1", + # 64-bit build - f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D CMAKE_PREFIX_PATH=$QT6DIR -D CMAKE_SKIP_INSTALL_RPATH=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF .. ", + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX -D CMAKE_PREFIX_PATH=$QT6DIR -D CMAKE_SKIP_INSTALL_RPATH=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF ..", f"cd {builddir}/build && make -j$(nproc)", f"cd {builddir}/build && make DESTDIR={destdir} install", + # Move DBus/Polkit payloads safely out of /opt/kf6 + 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 + 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""", + + # Licenses f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"cp -pv {builddir}/LICENSES/* {destdir}/usr/share/licenses/{pkgname}/", diff --git a/python.recipe.py b/python.recipe.py index 6f2e7b5..599ed07 100644 --- a/python.recipe.py +++ b/python.recipe.py @@ -38,8 +38,8 @@ triggers = [ f"cd /tmp && pip3 install requests build installer materialyoucolor pillow setuptools wheel meson dbus-python meson_python " f"flit-core packaging markupsafe Jinja2 pluggy PyYAML pathspec Mako trove-classifiers editables hatchling python-dbusmock " f"brotli pyproject_metadata Cython pyparsing ply docutils PyGObject Pygments tqdm httplib2==0.21.0 certifi chardet charset_normalizer " - f"doxypypy doxyqml idna urllib3 psutil pygdbmi sentry-sdk", - {"rebuild_package": ["caelestia-cli", "kapidox", "glib", "libxml2", "newt", "pycairo", "xcb-proto", "libpwquality"]}, + f"doxypypy doxyqml idna urllib3 psutil pygdbmi sentry-sdk pyxdg", + {"rebuild_package": ["caelestia-cli", "kapidox", "glib", "libxml2", "newt", "pycairo", "xcb-proto", "libpwquality", "flatpost"]}, ] # TODO when a minor version, ie 3.13.0 to 3.14.0 drops specfiy the python version in the newt package config line \ No newline at end of file diff --git a/qcoro.recipe.py b/qcoro.recipe.py new file mode 100644 index 0000000..b4fc9cf --- /dev/null +++ b/qcoro.recipe.py @@ -0,0 +1,34 @@ +pkgname = "qcoro" +pkgver = "0.12.0" +qtver = "6.10.1" +source = f"https://github.com/danvratil/qcoro/archive/v{pkgver}/qcoro-{pkgver }.tar.gz" +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 = ["cmake"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # 64-bit build + f"mkdir -p {destdir}/opt/qt-{qtver} && ln -sf qt-{qtver} {destdir}/opt/qt6", + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR -D CMAKE_BUILD_TYPE=Release " + f"-D BUILD_TESTING=OFF -D QCORO_BUILD_EXAMPLES=OFF -D BUILD_SHARED_LIBS=ON .. ", + + f"cd {builddir}/build && make -j$(nproc)", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/LICENSE {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/qt6.recipe.py b/qt6.recipe.py index 24af5c7..1fc2e25 100644 --- a/qt6.recipe.py +++ b/qt6.recipe.py @@ -1,4 +1,4 @@ -# TODO update sddm qca caelestia shell qt6ct qtver wen updating qt6 ver +# TODO update sddm qca caelestia shell qt6ct qcoro qtver wen updating qt6 ver pkgname = "qt6" pkgver = "6.10.1" Pkgver = pkgver[:4] diff --git a/system-config-printer.recipe.py b/system-config-printer.recipe.py new file mode 100644 index 0000000..eb0009a --- /dev/null +++ b/system-config-printer.recipe.py @@ -0,0 +1,30 @@ +pkgname = "system-config-printer" +pkgver = "1.5.18" +source = f"https://github.com/OpenPrinting/system-config-printer/releases/download/v{pkgver}/system-config-printer-{pkgver}.tar.gz" +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 = ["cups"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && ./configure --prefix=/usr", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/vlc.recipe.py b/vlc.recipe.py new file mode 100644 index 0000000..05f4089 --- /dev/null +++ b/vlc.recipe.py @@ -0,0 +1,37 @@ +pkgname = "vlc" +pkgver = "3.0.22" +source = f"https://download.videolan.org/vlc/{pkgver}/vlc-{pkgver}.tar.xz" +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 = [] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz && " + f"wget https://www.linuxfromscratch.org/patches/blfs/svn/vlc-{pkgver}-ffmpeg8-1.patch", + + # 64-bit build + f"cd {builddir} && patch -Np1 -i ../vlc-{pkgver}-ffmpeg8-1.patch && BUILDCC=gcc ./configure --prefix=/usr --disable-libplacebo", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make docdir=/usr/share/doc/vlc-{pkgver} DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + f"install -v -m644 {builddir}/COPYING.LIB {destdir}/usr/share/licenses/{pkgname}/LICENSE.LIB", + + # 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"gtk-update-icon-cache -qtf /usr/share/icons/hicolor", + f"update-desktop-database -q", +] \ No newline at end of file diff --git a/wayland-protocols.recipe.py b/wayland-protocols.recipe.py index 0bc8e9a..5f551f1 100644 --- a/wayland-protocols.recipe.py +++ b/wayland-protocols.recipe.py @@ -1,6 +1,6 @@ pkgname = "wayland-protocols" -pkgver = "1.46" -source = f"https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/{pkgver}/downloads/wayland-protocols-{pkgver}.tar.xz" +pkgver = "1.47" +source = f"https://rocketleaguechatp.duckdns.org/wayland-protocols-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" outputdir = "/home/gabry/lfs-repo/binpkg" diff --git a/xdg-user-dirs.recipe.py b/xdg-user-dirs.recipe.py new file mode 100644 index 0000000..1618c06 --- /dev/null +++ b/xdg-user-dirs.recipe.py @@ -0,0 +1,30 @@ +pkgname = "xdg-user-dirs" +pkgver = "0.19" +source = f"https://rocketleaguechatp.duckdns.org/xdg-user-dirs-v{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-v{pkgver}" +fembuilddir = f"/tmp/fempkg/build/{pkgname}" +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" + +deps = [] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-v{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D docs=false ..", + f"cd {builddir}/build && ninja", + f"cd {builddir}/build && DESTDIR={destdir} ninja install && rm -rvf {destdir}/usr/lib/systemd", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/xdotool.recipe.py b/xdotool.recipe.py new file mode 100644 index 0000000..9df6004 --- /dev/null +++ b/xdotool.recipe.py @@ -0,0 +1,30 @@ +pkgname = "xdotool" +pkgver = "4.20251130.1" +source = f"https://github.com/jordansissel/xdotool/releases/download/v{pkgver}/xdotool-{pkgver}.tar.gz" +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 = ["xorg-libs"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && sed -i 's#/local##' libxdo.pc", + f"cd {builddir} && make WITHOUT_RPATH_FIX=1 -j$(nproc)", + f"cd {builddir} && make PREFIX=/usr INSTALLMAN=/usr/share/man DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYRIGHT {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/xorg-evdev.recipe.py b/xorg-evdev.recipe.py new file mode 100644 index 0000000..88dabb1 --- /dev/null +++ b/xorg-evdev.recipe.py @@ -0,0 +1,30 @@ +pkgname = "xorg-evdev" # https://www.linuxfromscratch.org/blfs/view/svn/x/x7driver.html#xorg-evdev-driver +pkgver = "2.11.0" +source = f"https://www.x.org/pub/individual/driver/xf86-input-evdev-{pkgver}.tar.xz" +builddir = f"/tmp/fempkg/build/{pkgname}/xf86-input-evdev-{pkgver}" +fembuilddir = f"/tmp/fempkg/build/{pkgname}" +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" + +deps = ["libevdev", "mtdev", "xorg-server"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/xf86-input-evdev-{pkgver}.tar.xz", + + # 64-bit build + f"cd {builddir} && ./configure $XORG_CONFIG", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/xorg-wacom.recipe.py b/xorg-wacom.recipe.py new file mode 100644 index 0000000..4b6eb1a --- /dev/null +++ b/xorg-wacom.recipe.py @@ -0,0 +1,30 @@ +pkgname = "xorg-wacom" +pkgver = "1.2.4" +source = f"https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-{pkgver}/xf86-input-wacom-{pkgver}.tar.bz2" +builddir = f"/tmp/fempkg/build/{pkgname}/xf86-input-wacom-{pkgver}" +fembuilddir = f"/tmp/fempkg/build/{pkgname}" +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" + +deps = ["xorg-server"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/xf86-input-wacom-{pkgver}.tar.bz2", + + # 64-bit build + f"cd {builddir} && ./configure $XORG_CONFIG --with-systemd-unit-dir=no", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/GPL {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +] diff --git a/zip.recipe.py b/zip.recipe.py new file mode 100644 index 0000000..e2ea643 --- /dev/null +++ b/zip.recipe.py @@ -0,0 +1,35 @@ +pkgname = "zip" +pkgver = "30" +unzip_ver = "6.0" +source = f"https://rocketleaguechatp.duckdns.org/zip{pkgver}.tar.gz" +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 = [] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && make -f unix/Makefile generic CC=\"gcc -std=gnu89\"", + f"cd {builddir} && make prefix={destdir}/usr MANDIR={destdir}/usr/share/man/man -f unix/Makefile install", + f"mkdir -p {builddir}/unzip && cd {builddir}/unzip && wget https://github.com/thejoshwolfe/info-zip-unzip/archive/refs/tags/{unzip_ver}.tar.gz ", + f"cd {builddir}/unzip && tar -xvf {unzip_ver}.tar.gz && cd info-zip-unzip-{unzip_ver} && make -f unix/Makefile generic CC=\"gcc -std=gnu89\"", + f"cd {builddir}/unzip/info-zip-unzip-{unzip_ver} && make prefix={destdir}/usr MANDIR={destdir}/usr/share/man/man -f unix/Makefile install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -d -m755 {destdir}/usr/share/licenses/unzip/", + f"install -v -m644 {builddir}/LICENSE {destdir}/usr/share/licenses/{pkgname}/LICENSE", + f"install -v -m644 {builddir}/unzip/info-zip-unzip-{unzip_ver}/LICENSE {destdir}/usr/share/licenses/unzip/LICENSE", + + # 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}" +] diff --git a/zxing-cpp.recipe.py b/zxing-cpp.recipe.py new file mode 100644 index 0000000..57aa1e1 --- /dev/null +++ b/zxing-cpp.recipe.py @@ -0,0 +1,32 @@ +pkgname = "zxing-cpp" +pkgver = "2.3.0" +source = f"https://github.com/zxing-cpp/zxing-cpp/archive/v{pkgver}/zxing-cpp-{pkgver}.tar.gz" +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 = ["cmake"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release " + f"-D ZXING_EXAMPLES=OFF -W no-dev ..", + + f"cd {builddir}/build && make -j$(nproc)", + f"cd {builddir}/build && make DESTDIR={destdir} install", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"install -v -m644 {builddir}/LICENSE {destdir}/usr/share/licenses/{pkgname}/LICENSE", + + # 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}" +]