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:
Ryan Hughes
2026-09-01 01:55:23 -04:00
parent c6e34f7949
commit 2fad766013
12 changed files with 332 additions and 0 deletions
@@ -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
@@ -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
+87
View File
@@ -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: