diff --git a/pkgbuilds/link-studio/.omarchy/package.json b/pkgbuilds/link-studio/.omarchy/package.json new file mode 100644 index 0000000..b44bd0a --- /dev/null +++ b/pkgbuilds/link-studio/.omarchy/package.json @@ -0,0 +1,11 @@ +{ + "source": "local", + "release_ring": "fast", + "upstream": { + "github": "jweaver60/link-studio", + "checksums": "SHA256SUMS", + "assets": { + "any": "dist/link-studio-{pkgver}.tar.gz" + } + } +} diff --git a/pkgbuilds/link-studio/PKGBUILD b/pkgbuilds/link-studio/PKGBUILD new file mode 100644 index 0000000..034b49c --- /dev/null +++ b/pkgbuilds/link-studio/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Jake Weaver +pkgname=link-studio +pkgver=1.0.2 +pkgrel=1 +pkgdesc="Native Linux controller for Insta360 Link webcams" +arch=('x86_64') +url="https://jweaver60.github.io/link-studio/" +license=('MIT') +depends=( + 'gst-libav' + 'gst-plugins-bad' + 'gst-plugins-base' + 'gst-plugins-good' + 'gtk4' + 'libadwaita' + 'python-gobject' + 'python-mediapipe' + 'python-numpy' + 'python-opencv' + 'python-pillow' + 'python-qrcode' + 'v4l-utils' +) +makedepends=('python-build' 'python-installer' 'python-setuptools' 'python-wheel') +optdepends=( + 'v4l2loopback-dkms: processed virtual-camera output' + 'v4l2loopback-utils: virtual-camera controls' + 'whisper-cpp: offline meeting transcription' +) +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/jweaver60/link-studio/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz") +sha256sums=('b0fc912d8b7924661b57e427280c9766cbb0f01b7a2b3f3cdb1885969f8cfdc6') + +build() { + cd "link_studio-${pkgver}" + python -m build --wheel --no-isolation +} + +check() { + cd "link_studio-${pkgver}" + PYTHONPATH=src python -m unittest discover -v +} + +package() { + cd "link_studio-${pkgver}" + python -m installer --destdir="$pkgdir" --prefix=/usr dist/*.whl + sed -i '1c#!/usr/bin/python' "$pkgdir/usr/bin/link-studio" + + install -Dm644 data/io.github.linkstudio.LinkStudio.desktop \ + "$pkgdir/usr/share/applications/io.github.linkstudio.LinkStudio.desktop" + install -Dm644 data/io.github.linkstudio.LinkStudio.metainfo.xml \ + "$pkgdir/usr/share/metainfo/io.github.linkstudio.LinkStudio.metainfo.xml" + install -Dm755 scripts/setup-virtual-camera \ + "$pkgdir/usr/bin/link-studio-setup-virtual-camera" + install -Dm755 scripts/setup-local-ai \ + "$pkgdir/usr/bin/link-studio-setup-local-ai" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -Dm644 THIRD_PARTY_NOTICES.md \ + "$pkgdir/usr/share/licenses/$pkgname/THIRD_PARTY_NOTICES.md" + install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md" + install -Dm644 docs/PARITY.md "$pkgdir/usr/share/doc/$pkgname/PARITY.md" +} diff --git a/pkgbuilds/python-mediapipe/.omarchy/package.json b/pkgbuilds/python-mediapipe/.omarchy/package.json new file mode 100644 index 0000000..6300a69 --- /dev/null +++ b/pkgbuilds/python-mediapipe/.omarchy/package.json @@ -0,0 +1,5 @@ +{ + "source": "aur", + "release_ring": "fast", + "upstream_commit": "99700efde7dc0200719dfed1a1147ace2cd7b0c0" +} diff --git a/pkgbuilds/python-mediapipe/.omarchy/patches/verify-bazel-source.patch b/pkgbuilds/python-mediapipe/.omarchy/patches/verify-bazel-source.patch new file mode 100644 index 0000000..6cd9fb3 --- /dev/null +++ b/pkgbuilds/python-mediapipe/.omarchy/patches/verify-bazel-source.patch @@ -0,0 +1,42 @@ +--- a/PKGBUILD ++++ b/PKGBUILD +@@ -2,6 +2,7 @@ + # Maintainer: Hu Butui + + _pkgname=mediapipe ++_bazel_version=7.4.1 + pkgname=python-mediapipe + pkgver=1.0.0 + pkgrel=2 +@@ -27,10 +28,10 @@ makedepends=( + python-installer + python-setuptools + python-wheel +- wget + ) + + source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/google-ai-edge/mediapipe/archive/refs/tags/v${pkgver}.tar.gz" ++ "bazel-${_bazel_version}-linux-x86_64::https://github.com/bazelbuild/bazel/releases/download/${_bazel_version}/bazel-${_bazel_version}-linux-x86_64" + "0004-use-opencv-headers.patch" + "0005-set-hermetic-python-version-and-disable-odml-converter.patch" + "0006-opencv5-geometry-header.patch" +@@ -38,6 +39,7 @@ source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/google-ai-edge/medi + "0007-bump-rules-java.patch" + ) + sha256sums=('6343314dad0f4112610807ca723eee63feea00711dc2be9360928b6f0a5eba12' ++ 'c97f02133adce63f0c28678ac1f21d65fa8255c80429b588aeeba8a1fac6202b' + 'd18e88a217a00dc77cf2bfaa1d33b5fbc912deed5df686b0d2455fb0db75a677' + '62cbd43346e7a7705127656a74bec44852e5bbfc006c4723005fdd23af5258db' + 'fb082d88d9cca47534ae01fca676a3afdb909bfc82d52c97cf0eaedf34571d5f' +@@ -47,9 +49,8 @@ sha256sums=('6343314dad0f4112610807ca723eee63feea00711dc2be9360928b6f0a5eba12' + prepare() { + # bazel in the ArchLinux is not working + mkdir -p ${srcdir}/bin +- bazel_version=$(cat ${srcdir}/${_pkgname}-${pkgver}/.bazelversion) +- wget https://github.com/bazelbuild/bazel/releases/download/${bazel_version}/bazel-${bazel_version}-linux-x86_64 -O ${srcdir}/bin/bazel +- chmod +x ${srcdir}/bin/bazel ++ install -Dm755 "${srcdir}/bazel-${_bazel_version}-linux-x86_64" \ ++ "${srcdir}/bin/bazel" + export PATH=${srcdir}/bin:${PATH} + cd "${srcdir}/${_pkgname}-${pkgver}" + patch -p1 -i "${srcdir}/0004-use-opencv-headers.patch" diff --git a/pkgbuilds/python-mediapipe/0004-use-opencv-headers.patch b/pkgbuilds/python-mediapipe/0004-use-opencv-headers.patch new file mode 100644 index 0000000..9cab7dc --- /dev/null +++ b/pkgbuilds/python-mediapipe/0004-use-opencv-headers.patch @@ -0,0 +1,41 @@ +From 454702a3fa207ae5553627a60cfd36b36e2b344c Mon Sep 17 00:00:00 2001 +From: Butui Hu +Date: Wed, 21 Feb 2024 10:56:46 +0800 +Subject: [PATCH 4/5] use external opencv headers + +Arch packages OpenCV 5 headers under /usr/include/opencv5 and renamed +libopencv_calib3d/libopencv_features2d to libopencv_calib/libopencv_features. + +--- + third_party/opencv_linux.BUILD | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/third_party/opencv_linux.BUILD b/third_party/opencv_linux.BUILD +--- a/third_party/opencv_linux.BUILD ++++ b/third_party/opencv_linux.BUILD +@@ -18,19 +18,19 @@ + #"include/aarch64-linux-gnu/opencv4/opencv2/cvconfig.h", + #"include/arm-linux-gnueabihf/opencv4/opencv2/cvconfig.h", + #"include/x86_64-linux-gnu/opencv4/opencv2/cvconfig.h", +- #"include/opencv4/opencv2/**/*.h*", ++ "include/opencv5/opencv2/**/*.h*", + ]), + includes = [ + # For OpenCV 4.x + #"include/aarch64-linux-gnu/opencv4/", + #"include/arm-linux-gnueabihf/opencv4/", + #"include/x86_64-linux-gnu/opencv4/", +- #"include/opencv4/", ++ "include/opencv5/", + ], + linkopts = [ + "-l:libopencv_core.so", +- "-l:libopencv_calib3d.so", +- "-l:libopencv_features2d.so", ++ "-l:libopencv_calib.so", ++ "-l:libopencv_features.so", + "-l:libopencv_highgui.so", + "-l:libopencv_imgcodecs.so", + "-l:libopencv_imgproc.so", +-- +2.43.2 diff --git a/pkgbuilds/python-mediapipe/0005-set-hermetic-python-version-and-disable-odml-converter.patch b/pkgbuilds/python-mediapipe/0005-set-hermetic-python-version-and-disable-odml-converter.patch new file mode 100644 index 0000000..83e8418 --- /dev/null +++ b/pkgbuilds/python-mediapipe/0005-set-hermetic-python-version-and-disable-odml-converter.patch @@ -0,0 +1,13 @@ +--- a/.bazelrc ++++ b/.bazelrc +@@ -129,6 +129,10 @@ + # with system Python 3.14+ + common --repo_env=HERMETIC_PYTHON_VERSION=3.12 + ++# Force Bazel hermetic Python to use 3.12 to avoid incompatibility ++# with system Python 3.14+ ++common --repo_env=HERMETIC_PYTHON_VERSION=3.12 ++ + # This bazelrc file is meant to be written by a setup script. + try-import %workspace%/.configure.bazelrc + diff --git a/pkgbuilds/python-mediapipe/0006-opencv5-geometry-header.patch b/pkgbuilds/python-mediapipe/0006-opencv5-geometry-header.patch new file mode 100644 index 0000000..59c4781 --- /dev/null +++ b/pkgbuilds/python-mediapipe/0006-opencv5-geometry-header.patch @@ -0,0 +1,10 @@ +--- a/mediapipe/framework/port/opencv_imgproc_inc.h ++++ b/mediapipe/framework/port/opencv_imgproc_inc.h +@@ -25,6 +25,8 @@ + #include + #if CV_VERSION_MAJOR == 4 + #include ++#elif CV_VERSION_MAJOR >= 5 ++#include + #endif + #endif diff --git a/pkgbuilds/python-mediapipe/0007-bump-rules-java.patch b/pkgbuilds/python-mediapipe/0007-bump-rules-java.patch new file mode 100644 index 0000000..d095e6e --- /dev/null +++ b/pkgbuilds/python-mediapipe/0007-bump-rules-java.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Butui Hu +Date: Sun, 30 Aug 2026 11:22:50 +0800 +Subject: [PATCH] bump rules_java to 7.12.5 to fix local_jdk auto-config + +rules_java 7.10.0 emits a local_jdk/BUILD.bazel referencing the +non-existent @rules_java//tools/jdk package when no local JDK is +detected (a 7.10.0 regression). 7.11.0+ points at +@rules_java//toolchains:bootstrap_runtime_toolchain_type (the correct +location). 7.12.5 is the last 7.x with the label fully cleaned up. + +--- + MODULE.bazel | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/MODULE.bazel ++++ b/MODULE.bazel +@@ -13,10 +13,10 @@ + version = "0.2.9", + ) + +-bazel_dep(name = "rules_java", version = "7.10.0") ++bazel_dep(name = "rules_java", version = "7.12.5") + single_version_override( + module_name = "rules_java", +- version = "7.10.0", ++ version = "7.12.5", + ) + + bazel_dep(name = "rules_kotlin", version = "1.9.6") +-- +2.43.2 diff --git a/pkgbuilds/python-mediapipe/PKGBUILD b/pkgbuilds/python-mediapipe/PKGBUILD new file mode 100644 index 0000000..aac594c --- /dev/null +++ b/pkgbuilds/python-mediapipe/PKGBUILD @@ -0,0 +1,87 @@ +# Maintainer: robertfoster +# Maintainer: Hu Butui + +_pkgname=mediapipe +_bazel_version=7.4.1 +pkgname=python-mediapipe +pkgver=1.0.0 +pkgrel=2.1 +pkgdesc="A cross-platform, customizable ML solutions for live and streaming media" +arch=('x86_64') +url="https://github.com/google-ai-edge/mediapipe" +license=("Apache-2.0") +depends=( + absl-py + gcc-libs + glibc + libglvnd + opencv + opengl-driver + python-attrs + python-flatbuffers + python-matplotlib + python-numpy + python-opencv + python-pillow + python-protobuf + python-scipy + python-six + python-sounddevice + python-tensorflow +) +makedepends=( + patchelf + python-build + python-installer + python-setuptools + python-wheel +) + +source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/google-ai-edge/mediapipe/archive/refs/tags/v${pkgver}.tar.gz" + "bazel-${_bazel_version}-linux-x86_64::https://github.com/bazelbuild/bazel/releases/download/${_bazel_version}/bazel-${_bazel_version}-linux-x86_64" + "0004-use-opencv-headers.patch" + "0005-set-hermetic-python-version-and-disable-odml-converter.patch" + "0006-opencv5-geometry-header.patch" + "0007-bump-rules-java.patch" +) +sha256sums=('6343314dad0f4112610807ca723eee63feea00711dc2be9360928b6f0a5eba12' + 'c97f02133adce63f0c28678ac1f21d65fa8255c80429b588aeeba8a1fac6202b' + 'd18e88a217a00dc77cf2bfaa1d33b5fbc912deed5df686b0d2455fb0db75a677' + '62cbd43346e7a7705127656a74bec44852e5bbfc006c4723005fdd23af5258db' + 'fb082d88d9cca47534ae01fca676a3afdb909bfc82d52c97cf0eaedf34571d5f' + 'bdead49ac5370dc84d9facee962bf2def5d9055d7339a37b2ba3f3b4bb02f811') + + +prepare() { + # bazel in the ArchLinux is not working + mkdir -p ${srcdir}/bin + install -Dm755 "${srcdir}/bazel-${_bazel_version}-linux-x86_64" \ + "${srcdir}/bin/bazel" + export PATH=${srcdir}/bin:${PATH} + cd "${srcdir}/${_pkgname}-${pkgver}" + patch -p1 -i "${srcdir}/0004-use-opencv-headers.patch" + patch -p1 -i "${srcdir}/0005-set-hermetic-python-version-and-disable-odml-converter.patch" + patch -p1 -i "${srcdir}/0006-opencv5-geometry-header.patch" + patch -p1 -i "${srcdir}/0007-bump-rules-java.patch" + # set __version__ + sed -i "s/__version__ = 'dev'/__version__ = '$pkgver'/" setup.py + # set link_opencv to True + sed -i "s/self.link_opencv = False/self.link_opencv = True/g" setup.py +} + +build() { + cd "${srcdir}/${_pkgname}-${pkgver}" + # enable building with GPU support, using opengl-driver + # opengl-driver is provided by mesa or nvidia-utils + MEDIAPIPE_DISABLE_GPU=0 \ + python -m build --wheel --no-isolation +} + +package() { + cd "${srcdir}/${_pkgname}-${pkgver}" + python -m installer --destdir="${pkgdir}" dist/*.whl + # remove rpath and fix permission + find ${pkgdir} -type f -name "*.so" -exec patchelf --remove-rpath {} \; + find ${pkgdir} -type f -name "*.so" -exec chmod 755 {} \; +} +# vim:set ts=2 sw=2 et: diff --git a/pkgbuilds/python-sounddevice/.nvchecker.toml b/pkgbuilds/python-sounddevice/.nvchecker.toml new file mode 100644 index 0000000..a80113f --- /dev/null +++ b/pkgbuilds/python-sounddevice/.nvchecker.toml @@ -0,0 +1,3 @@ +[python-sounddevice] +source = "pypi" +pypi = "sounddevice" diff --git a/pkgbuilds/python-sounddevice/.omarchy/package.json b/pkgbuilds/python-sounddevice/.omarchy/package.json new file mode 100644 index 0000000..e50ad7b --- /dev/null +++ b/pkgbuilds/python-sounddevice/.omarchy/package.json @@ -0,0 +1,5 @@ +{ + "source": "aur", + "release_ring": "fast", + "upstream_commit": "c3a5320f95ada9ccebd629b5722276e645388ced" +} diff --git a/pkgbuilds/python-sounddevice/PKGBUILD b/pkgbuilds/python-sounddevice/PKGBUILD new file mode 100644 index 0000000..f5552f6 --- /dev/null +++ b/pkgbuilds/python-sounddevice/PKGBUILD @@ -0,0 +1,22 @@ +# Maintainer: Alexander F. Rødseth +# Contributor: robertfoster +# Contributor: Håvard Pettersson + +pkgname=python-sounddevice +pkgver=0.5.5 +pkgrel=1 +pkgdesc='Record and play back sound' +url='https://python-sounddevice.rtfd.io/' +arch=(any) +license=(MIT) +depends=(portaudio python-cffi) +makedepends=(python-setuptools) +optdepends=('python-numpy: to play back and record NumPy arrays') +source=("https://files.pythonhosted.org/packages/source/s/sounddevice/sounddevice-$pkgver.tar.gz") +b2sums=('25da7f11bb20f115c828bfb4de00c7ced40224126b5da3a08027c0459d40e1300a4747305c25dab480f73db87c9ad6f0982d0af6adf8c3cc4d5de2e0e9ffaaff') + +package() { + cd sounddevice-$pkgver + python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +}