From 8a01b427cdb1f2a11bd48093f2535dac613ae7c5 Mon Sep 17 00:00:00 2001 From: gabry Date: Wed, 24 Dec 2025 13:26:46 +0100 Subject: [PATCH] feat : add obs-studio --- alsa-plugins.recipe.py | 31 +++++++++++++++++++++++++++++++ ffnv-codec.recipe.py | 29 +++++++++++++++++++++++++++++ index.txt | 14 ++++++++++++++ intel-mediasdk.recipe.py | 38 ++++++++++++++++++++++++++++++++++++++ intel-onevpl.recipe.py | 33 +++++++++++++++++++++++++++++++++ libdatachannel.recipe.py | 37 +++++++++++++++++++++++++++++++++++++ libjuice.recipe.py | 32 ++++++++++++++++++++++++++++++++ libvpl.recipe.py | 33 +++++++++++++++++++++++++++++++++ luajit.recipe.py | 29 +++++++++++++++++++++++++++++ mbedtls.recipe.py | 33 +++++++++++++++++++++++++++++++++ nlohmann-json.recipe.py | 33 +++++++++++++++++++++++++++++++++ obs-studio.recipe.py | 36 +++++++++++++++++++++++++++++------- pciutils.recipe.py | 30 ++++++++++++++++++++++++++++++ swig.recipe.py | 30 ++++++++++++++++++++++++++++++ uthash.recipe.py | 28 ++++++++++++++++++++++++++++ 15 files changed, 459 insertions(+), 7 deletions(-) create mode 100644 alsa-plugins.recipe.py create mode 100644 ffnv-codec.recipe.py create mode 100644 intel-mediasdk.recipe.py create mode 100644 intel-onevpl.recipe.py create mode 100644 libdatachannel.recipe.py create mode 100644 libjuice.recipe.py create mode 100644 libvpl.recipe.py create mode 100644 luajit.recipe.py create mode 100644 mbedtls.recipe.py create mode 100644 nlohmann-json.recipe.py create mode 100644 pciutils.recipe.py create mode 100644 swig.recipe.py create mode 100644 uthash.recipe.py diff --git a/alsa-plugins.recipe.py b/alsa-plugins.recipe.py new file mode 100644 index 0000000..81d6a49 --- /dev/null +++ b/alsa-plugins.recipe.py @@ -0,0 +1,31 @@ +pkgname = "alsa-plugins" +pkgver = "1.2.12" +source = f"https://www.alsa-project.org/files/pub/plugins/alsa-plugins-{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 = ["alsa-lib", "ffmpeg", "pulseaudio"] + +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 --sysconfdir=/etc", + 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", + f"install -v -m644 {builddir}/COPYING.GPL {destdir}/usr/share/licenses/{pkgname}/LICENSE.GPL", + + # 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/ffnv-codec.recipe.py b/ffnv-codec.recipe.py new file mode 100644 index 0000000..677c43c --- /dev/null +++ b/ffnv-codec.recipe.py @@ -0,0 +1,29 @@ +pkgname = "ffnv-codec" +pkgver = "13.0.19.0" +source = f"https://github.com/FFmpeg/nv-codec-headers/releases/download/n{pkgver}/nv-codec-headers-{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/nv-codec-headers-{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/nv-codec-headers-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && make PREFIX=/usr DESTDIR={destdir} install && mkdir -p {destdir}/usr/lib32/pkgconfig && ln -sf /usr/lib/pkgconfig/ffnvcodec.pc " + f"{destdir}/usr/lib32/pkgconfig/ffnvcodec.pc", + + f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", + f"wget https://mit-license.org/license.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/index.txt b/index.txt index 847bbec..51b0c5d 100644 --- a/index.txt +++ b/index.txt @@ -3,6 +3,7 @@ accountsservice.recipe.py acl.recipe.py adw-gtk3-theme.recipe.py alsa-lib.recipe.py +alsa-plugins.recipe.py android-udev.recipe.py appstream-glib.recipe.py appstream.recipe.py @@ -81,6 +82,7 @@ femctl.recipe.py fempkg-keys.recipe.py fempkg.recipe.py ffmpeg.recipe.py +ffnv-codec.recipe.py fftw.recipe.py file.recipe.py findutils.recipe.py @@ -160,6 +162,8 @@ inih.recipe.py iniparser.recipe.py inotify-tools.recipe.py intelmedia.recipe.py +intel-mediasdk.recipe.py +intel-onevpl.recipe.py intelvaapi.recipe.py intltool.recipe.py iproute2.recipe.py @@ -204,6 +208,7 @@ libcava.recipe.py libcdio.recipe.py libclc.recipe.py libdaemon.recipe.py +libdatachannel.recipe.py libdbusmenu.recipe.py libdisplay-info.recipe.py libdrm.recipe.py @@ -222,6 +227,7 @@ libical.recipe.py libidn2.recipe.py libinput.recipe.py libjpeg-turbo.recipe.py +libjuice.recipe.py libjxl.recipe.py libkcddb.recipe.py libksba.recipe.py @@ -262,6 +268,7 @@ libuv.recipe.py libva.recipe.py libvdpau.recipe.py libvorbis.recipe.py +libvpl.recipe.py libwacom.recipe.py libwebp.recipe.py libxau.recipe.py @@ -282,6 +289,7 @@ llvm.recipe.py lmdb.recipe.py lm-sensors.recipe.py localsearch.recipe.py +luajit.recipe.py lua.recipe.py LVM2.recipe.py lz4.recipe.py @@ -290,6 +298,7 @@ make.recipe.py man-db.recipe.py man-pages.recipe.py material-design-icons.recipe.py +mbedtls.recipe.py mesa.recipe.py MIME-Base32.recipe.py ModemManager.recipe.py @@ -306,6 +315,7 @@ NetworkManager.recipe.py newt.recipe.py nghttp2.recipe.py ninja.recipe.py +nlohmann-json.recipe.py nodejs.recipe.py npth.recipe.py NSPR.recipe.py @@ -326,6 +336,7 @@ parted.recipe.py patchelf.recipe.py patch.recipe.py pavucontrol.recipe.py +pciutils.recipe.py pcre2.recipe.py perl.recipe.py pipewire.recipe.py @@ -379,6 +390,7 @@ startup-notification.recipe.py sudo.recipe.py SVT-AV1.recipe.py swappy.recipe.py +swig.recipe.py sysklogd.recipe.py sysvinit.recipe.py taglib.recipe.py @@ -393,11 +405,13 @@ umockdev.recipe.py upower.recipe.py URI.recipe.py utfcpp.recipe.py +uthash.recipe.py util-linux.recipe.py util-macros.recipe.py v4l-utils.recipe.py vala.recipe.py vim.recipe.py +vscodium.recipe.py vulkan-headers.recipe.py vulkan-loader.recipe.py wayland-protocols.recipe.py diff --git a/intel-mediasdk.recipe.py b/intel-mediasdk.recipe.py new file mode 100644 index 0000000..7dfed8e --- /dev/null +++ b/intel-mediasdk.recipe.py @@ -0,0 +1,38 @@ +pkgname = "intel-mediasdk" +pkgver = "23.2.2" +source = f"https://github.com/Intel-Media-SDK/MediaSDK/archive/refs/tags/intel-mediasdk-{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/MediaSDK-intel-mediasdk-{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", "gmmlib", "intelmedia", "libdrm", "libva", "xorg-libs", "wayland"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + # GCC-15 patches + f"cd {builddir} && sed -i '//a #include ' api/mfx_dispatch/linux/mfxparser.cpp && " + f"sed -i '//a #include ' samples/sample_vpp/src/sample_vpp_frc_adv.cpp", + + #configure + f"cd {builddir} && mkdir -pv build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release " + f"-D CMAKE_SKIP_INSTALL_RPATH=ON -D CMAKE_POLICY_VERSION_MINIMUM=3.5 -D BUILD_ALL=ON -D BUILD_TOOLS=ON " # quickshell MIGHT be in danger + f"-D ENABLE_ITT=OFF -D ENABLE_OPENCL=OFF -D ENABLE_WAYLAND=ON -D ENABLE_X11_DRI3=ON -D MFX_APPS_DIR=/usr/lib/mfx -W no-dev .. ", + + #build + 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/intel-onevpl.recipe.py b/intel-onevpl.recipe.py new file mode 100644 index 0000000..ce96a1b --- /dev/null +++ b/intel-onevpl.recipe.py @@ -0,0 +1,33 @@ +pkgname = "intel-onevpl" +pkgver = "25.4.5" +source = f"https://github.com/intel/vpl-gpu-rt/archive/refs/tags/intel-onevpl-{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/vpl-gpu-rt-intel-onevpl-{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", "gmmlib", "intelmedia", "libdrm", "libva"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + #configure + f"cd {builddir} && mkdir -pv build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release " + f"-D CMAKE_SKIP_INSTALL_RPATH=ON -D BUILD_TESTS=OFF -D MFX_ENABLE_AENC=ON -W no-dev ..", + + #build + 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/libdatachannel.recipe.py b/libdatachannel.recipe.py new file mode 100644 index 0000000..2496e0b --- /dev/null +++ b/libdatachannel.recipe.py @@ -0,0 +1,37 @@ +pkgname = "libdatachannel" +pkgver = "0.24.0" +source = f"https://github.com/paullouisageneau/libdatachannel/archive/v{pkgver}/libdatachannel-{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", "libjuice"] + +build = [ + # Extract & download additional submodules + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz && " + f"wget https://github.com/SergiusTheBest/plog/archive/94899e0b926ac1b0f4750bfbd495167b4a6ae9ef.tar.gz " + f"https://github.com/sctplab/usrsctp/archive/fec583d54493f879d2ae44a743423bf8a04371ab.tar.gz", + + # extract and rename submodules + f"cd {builddir} && tar -xvf ../94899e0b926ac1b0f4750bfbd495167b4a6ae9ef.tar.gz && tar -xvf ../fec583d54493f879d2ae44a743423bf8a04371ab.tar.gz", + f"cd {builddir} && mv -T plog-* deps/plog && mv -T usrsctp-* deps/usrsctp", + + # configure + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_INSTALL_RPATH=ON " + f"-D USE_GNUTLS=0 -D USE_NICE=0 -D USE_SYSTEM_JUICE=1 -D USE_SYSTEM_SRTP=1 -D NO_EXAMPLES=1 -D NO_TESTS=1 -Wno-dev -G Ninja ..", + + # build & install + f"cd {builddir}/build && ninja && DESTDIR={destdir} ninja 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/libjuice.recipe.py b/libjuice.recipe.py new file mode 100644 index 0000000..50e037f --- /dev/null +++ b/libjuice.recipe.py @@ -0,0 +1,32 @@ +pkgname = "libjuice" +pkgver = "1.7.0" +source = f"https://github.com/paullouisageneau/libjuice/archive/v{pkgver}/libjuice-{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 CMAKE_SKIP_INSTALL_RPATH=ON -G Ninja ..", + + 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}/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/libvpl.recipe.py b/libvpl.recipe.py new file mode 100644 index 0000000..0f2c02f --- /dev/null +++ b/libvpl.recipe.py @@ -0,0 +1,33 @@ +pkgname = "libvpl" +pkgver = "2.15.0" +source = f"https://github.com/intel/libvpl/archive/refs/tags/v{pkgver}/libvpl-{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", "gmmlib", "intelmedia", "libdrm", "libva"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.gz", + + #configure + f"cd {builddir} && mkdir -pv build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_INSTALL_SYSCONFDIR=/etc " + f"-D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_INSTALL_RPATH=ON -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=ON -W no-dev ..", + + #build + 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/luajit.recipe.py b/luajit.recipe.py new file mode 100644 index 0000000..2b12568 --- /dev/null +++ b/luajit.recipe.py @@ -0,0 +1,29 @@ +pkgname = "luajit" +pkgver = "20250816" +source = f"https://anduin.linuxfromscratch.org/BLFS/luajit/luajit-{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", + + # 64-bit build + f"cd {builddir} && make PREFIX=/usr amalg -j$(nproc)", + f"cd {builddir} && make PREFIX=/usr DESTDIR={destdir} install && rm -v {destdir}/usr/lib/libluajit-5.1.a", + + 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/mbedtls.recipe.py b/mbedtls.recipe.py new file mode 100644 index 0000000..debe551 --- /dev/null +++ b/mbedtls.recipe.py @@ -0,0 +1,33 @@ +pkgname = "mbedtls" +pkgver = "3.6.5" +source = f"https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-{pkgver}/mbedtls-{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 = ["cmake"] + +build = [ + # Extract + f"mkdir -p {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.bz2", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release " + f"-D CMAKE_SKIP_RPATH=ON -D USE_SHARED_MBEDTLS_LIBRARY=ON -D USE_STATIC_MBEDTLS_LIBRARY=OFF -D ENABLE_TESTING=OFF -G Ninja ..", + + f"cd {builddir}/build && ninja", + f"cd {builddir}/build && DESTDIR=$PWD/tmpdestdir ninja install && cd tmpdestdir/usr/bin && for i in *; do mv -v {{,mbedtls_}}$i; " + f"done && cd {builddir}/build && mkdir -p {destdir}/usr && cp -vR tmpdestdir/usr/* {destdir}/usr", + + 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/nlohmann-json.recipe.py b/nlohmann-json.recipe.py new file mode 100644 index 0000000..3aafb43 --- /dev/null +++ b/nlohmann-json.recipe.py @@ -0,0 +1,33 @@ +pkgname = "nlohmann-json" +pkgver = "3.12.0" +source = f"https://github.com/nlohmann/json/archive/v{pkgver}/json-{pkgver}.tar.gz" +builddir = f"/tmp/fempkg/build/{pkgname}/json-{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/json-{pkgver}.tar.gz", + + # 64-bit build + f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -D " + f"JSON_BuildTests=OFF -G Ninja ..", + + 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}/LICENSE.MIT {destdir}/usr/share/licenses/{pkgname}/LICENSE", + f"cp -pv {builddir}/LICENSES/* {destdir}/usr/share/licenses/{pkgname}/", + + # 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/obs-studio.recipe.py b/obs-studio.recipe.py index 374420d..2af3d3c 100644 --- a/obs-studio.recipe.py +++ b/obs-studio.recipe.py @@ -1,18 +1,40 @@ pkgname = "obs-studio" -pkgver = "31.1.2" +pkgver = "31.1.2" source = f"https://github.com/obsproject/obs-studio/releases/download/{pkgver}/OBS-Studio-{pkgver}-Sources.tar.gz" -builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" +builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}-sources" fembuilddir = f"/tmp/fempkg/build/{pkgname}" -deps = ["cmake"] +outputdir = "/home/gabry/lfs-repo/binpkg" +manifestdir = "/home/gabry/lfs-repo/manifests" +destdir = f"{fembuilddir}/DESTDIR" +deps = ["alsa-plugins" ,"cmake", "curl", "ffmpeg", "freetype", "fontconfig", "glib", "jansson", "libdrm", "libva", "libxkbcommon", "mbedtls", + "mesa", "libglvnd", "pciutils", "qt6", "uthash", "vulkan-loader", "xorg-libs", "x264", "atspi2core", "cups", "ffnv-codec", + "libdatachannel", "pipewire", "xdg-desktop-portal", "pulseaudio", "swig", "luajit", "v4l-utils", "nlohmann-json"] build = [ # Extract - f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/OBS-Studio-{pkgver}-Sources.tar.gz", + f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/OBS-Studio-{pkgver}-Sources.tar.gz && " + f"wget https://glfs-book.github.io/slfs/patches/obs/obs-studio-{pkgver}-qt6.10-1.patch https://cdn-fastly.obsproject.com/downloads/" + f"cef_binary_6533_linux_x86_64.tar.xz", + + # apply qt6.10.x,ffmpeg 8.x patch and add CEF + f"cd {builddir} && patch -Np1 -i ../obs-studio-{pkgver}-qt6.10-1.patch && sed -i 's/FF_/AV_/g' plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c && " + f"tar -xf ../cef_binary_6533_linux_x86_64.tar.xz && mv cef_binary_6533_linux_x86_64 cef-6533", + + f"cd {builddir} && mkdir -pv build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release " + f"-D CMAKE_SKIP_INSTALL_RPATH=ON -D ENABLE_BROWSER=ON -D CEF_ROOT_DIR=../cef-6533 -D ENABLE_AJA=OFF -D ENABLE_JACK=OFF " + f"-D ENABLE_WEBSOCKET=OFF -D ENABLE_SPEEXDSP=OFF -D ENABLE_VLC=OFF -D ENABLE_NEW_MPEGTS_OUTPUT=OFF -D OBS_COMPILE_DEPRECATION_AS_WARNING=ON " + f"-G Ninja -Wno-dev .. ", # WHO is gonna win atp - # 64-bit build - f"cd {builddir} && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -G Ninja ..", f"cd {builddir}/build && ninja", - f"cd {builddir}/build && ninja install", + 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", + f"install -v -m644 {builddir}/cef-6533/LICENSE.txt {destdir}/usr/share/licenses/{pkgname}/LICENSE.CEF", + + # 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/pciutils.recipe.py b/pciutils.recipe.py new file mode 100644 index 0000000..0ab5a9f --- /dev/null +++ b/pciutils.recipe.py @@ -0,0 +1,30 @@ +pkgname = "pciutils" +pkgver = "3.14.0" +source = f"https://mj.ucw.cz/download/linux/pci/pciutils-{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 = ["hwdata"] + +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 -r '/INSTALL/{{/PCI_IDS|update-pciids /d; s/update-pciids.8//}}' -i Makefile", + f"cd {builddir} && make PREFIX=/usr SHAREDIR=/usr/share/hwdata SHARED=yes -j$(nproc)", + f"cd {builddir} && make PREFIX=/usr DESTDIR={destdir} SHAREDIR=/usr/share/hwdata SHARED=yes install install-lib && chmod -v 755 {destdir}/usr/lib/libpci.so", + + 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/swig.recipe.py b/swig.recipe.py new file mode 100644 index 0000000..f40da7f --- /dev/null +++ b/swig.recipe.py @@ -0,0 +1,30 @@ +pkgname = "swig" +pkgver = "4.4.1" +source = f"https://rocketleaguechatp.duckdns.org/swig-{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} && ./configure --prefix=/usr", + f"cd {builddir} && make -j$(nproc)", + f"cd {builddir} && make DESTDIR={destdir} install && mkdir -p {destdir}/usr/share/doc && cp -v -R Doc -T {destdir}/usr/share/doc/swig-{pkgver}", + + 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/uthash.recipe.py b/uthash.recipe.py new file mode 100644 index 0000000..5f8b028 --- /dev/null +++ b/uthash.recipe.py @@ -0,0 +1,28 @@ +pkgname = "uthash" +pkgver = "2.3.0" +source = f"https://github.com/troydhanson/uthash/archive/v{pkgver}/uthash-{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 = [] # good hello and + +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 -p {destdir}/usr/include && cp -av include/* {destdir}/usr/include", + + 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}" +]