oops i forgot to commit

This commit is contained in:
2025-12-31 22:29:22 +01:00
parent bd91c01d76
commit afe1f12fc4
43 changed files with 1083 additions and 59 deletions

View File

@@ -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",

30
boost.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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 = [

41
cracklib.recipe.py Normal file
View File

@@ -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",
]

View File

@@ -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

30
gammastep.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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

View File

@@ -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

View File

@@ -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}"
]
]

View File

@@ -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",

160
kde-plasma.recipe.py Normal file
View 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}"
]

View File

@@ -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"
]
]

View File

@@ -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}"
]
]

View File

@@ -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",

View File

@@ -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}"

View File

@@ -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}"
]
]

32
libpwquality.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -33,3 +33,7 @@ build = [
# Cleanup
f"rm -rf {fembuilddir}"
]
triggers = [
f"glib-compile-schemas /usr/share/glib-2.0/schemas",
]

View File

@@ -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

29
noto-fonts.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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}"
]

View File

@@ -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

36
opencv.recipe.py Normal file
View File

@@ -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}"
]

41
os-prober.recipe.py Normal file
View File

@@ -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}"
]

30
oxygen-icons.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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}"
]

31
phonon.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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}"

View File

@@ -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",

View File

@@ -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",

View File

@@ -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}/",

View File

@@ -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

34
qcoro.recipe.py Normal file
View File

@@ -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}"
]

View File

@@ -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]

View File

@@ -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}"
]

37
vlc.recipe.py Normal file
View File

@@ -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",
]

View File

@@ -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"

30
xdg-user-dirs.recipe.py Normal file
View File

@@ -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}"
]

30
xdotool.recipe.py Normal file
View File

@@ -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}"
]

30
xorg-evdev.recipe.py Normal file
View File

@@ -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}"
]

30
xorg-wacom.recipe.py Normal file
View File

@@ -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}"
]

35
zip.recipe.py Normal file
View File

@@ -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}"
]

32
zxing-cpp.recipe.py Normal file
View File

@@ -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}"
]