Add Link Studio to the fast ring
Package Link Studio 1.0.2 with its AUR-only MediaPipe and sounddevice dependencies. Wire Link Studio to GitHub release checksums, keep all three packages on the fast ring, and make MediaPipe's Bazel bootstrap a checksummed makepkg source.
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"source": "local",
|
||||||
|
"release_ring": "fast",
|
||||||
|
"upstream": {
|
||||||
|
"github": "jweaver60/link-studio",
|
||||||
|
"checksums": "SHA256SUMS",
|
||||||
|
"assets": {
|
||||||
|
"any": "dist/link-studio-{pkgver}.tar.gz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# Maintainer: Jake Weaver <jakeweaver at hey dot com>
|
||||||
|
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"
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"source": "aur",
|
||||||
|
"release_ring": "fast",
|
||||||
|
"upstream_commit": "99700efde7dc0200719dfed1a1147ace2cd7b0c0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
--- a/PKGBUILD
|
||||||
|
+++ b/PKGBUILD
|
||||||
|
@@ -2,6 +2,7 @@
|
||||||
|
# Maintainer: Hu Butui <hot123tea123@gmail.com>
|
||||||
|
|
||||||
|
_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"
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
From 454702a3fa207ae5553627a60cfd36b36e2b344c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Butui Hu <hot123tea123@gmail.com>
|
||||||
|
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
|
||||||
+13
@@ -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
|
||||||
|
|
||||||
@@ -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 <opencv2/imgproc.hpp>
|
||||||
|
#if CV_VERSION_MAJOR == 4
|
||||||
|
#include <opencv2/imgproc/types_c.h>
|
||||||
|
+#elif CV_VERSION_MAJOR >= 5
|
||||||
|
+#include <opencv2/geometry/2d.hpp>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Butui Hu <hot123tea123@gmail.com>
|
||||||
|
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
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
# Maintainer: robertfoster
|
||||||
|
# Maintainer: Hu Butui <hot123tea123@gmail.com>
|
||||||
|
|
||||||
|
_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:
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[python-sounddevice]
|
||||||
|
source = "pypi"
|
||||||
|
pypi = "sounddevice"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"source": "aur",
|
||||||
|
"release_ring": "fast",
|
||||||
|
"upstream_commit": "c3a5320f95ada9ccebd629b5722276e645388ced"
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
|
||||||
|
# Contributor: robertfoster <morf3089@gmail.com>
|
||||||
|
# Contributor: Håvard Pettersson <mail@haavard.me>
|
||||||
|
|
||||||
|
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"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user