diff --git a/pkgbuilds/python-mediapipe/0008-drop-semantic-retriever-from-libmediapipe.patch b/pkgbuilds/python-mediapipe/0008-drop-semantic-retriever-from-libmediapipe.patch new file mode 100644 index 00000000..1e18d2a4 --- /dev/null +++ b/pkgbuilds/python-mediapipe/0008-drop-semantic-retriever-from-libmediapipe.patch @@ -0,0 +1,21 @@ +Drop the semantic retriever from libmediapipe.so + +MediaPipe 1.1.0 links its SQLite memory and vector stores from prebuilt +archives (third_party/sqlite_prebuilt_files.bzl) built with Google's internal +toolchain: they carry no archive symbol table, reference Google's libc++ +(std::__u) and internal symbols (__alloc_token_*__Znwm, sqlite_helpers, +sqlite3_vector_init), and cannot link against a libstdc++ build. Leave the +semantic retriever's C API out of the library; everything else, including +the universal embedder, still builds. Only an explicit import of +mediapipe.tasks.python.retrieval.semantic_retriever needs those symbols. + +--- a/mediapipe/tasks/c/BUILD ++++ b/mediapipe/tasks/c/BUILD +@@ -45,7 +45,6 @@ + "//mediapipe/tasks/c/audio/audio_embedder:audio_embedder_c_lib", + "//mediapipe/tasks/c/core:common", + "//mediapipe/tasks/c/metadata:flatbuffer_api_c_lib", +- "//mediapipe/tasks/c/retrieval/semantic_retriever:semantic_retriever_lib", + "//mediapipe/tasks/c/retrieval/universal_embedder:universal_embedder_lib", + "//mediapipe/tasks/c/text/language_detector:language_detector_c_lib", + "//mediapipe/tasks/c/text/text_classifier:text_classifier_c_lib", diff --git a/pkgbuilds/python-mediapipe/PKGBUILD b/pkgbuilds/python-mediapipe/PKGBUILD index aac594c4..20f487b6 100644 --- a/pkgbuilds/python-mediapipe/PKGBUILD +++ b/pkgbuilds/python-mediapipe/PKGBUILD @@ -4,8 +4,8 @@ _pkgname=mediapipe _bazel_version=7.4.1 pkgname=python-mediapipe -pkgver=1.0.0 -pkgrel=2.1 +pkgver=1.1.0 +pkgrel=1 pkgdesc="A cross-platform, customizable ML solutions for live and streaming media" arch=('x86_64') url="https://github.com/google-ai-edge/mediapipe" @@ -43,13 +43,15 @@ source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/google-ai-edge/mediapi "0005-set-hermetic-python-version-and-disable-odml-converter.patch" "0006-opencv5-geometry-header.patch" "0007-bump-rules-java.patch" + "0008-drop-semantic-retriever-from-libmediapipe.patch" ) -sha256sums=('6343314dad0f4112610807ca723eee63feea00711dc2be9360928b6f0a5eba12' +sha256sums=('ef260449409c942a35859ed017f13934f6bf6240ddccdd01a202225650dad73e' 'c97f02133adce63f0c28678ac1f21d65fa8255c80429b588aeeba8a1fac6202b' 'd18e88a217a00dc77cf2bfaa1d33b5fbc912deed5df686b0d2455fb0db75a677' '62cbd43346e7a7705127656a74bec44852e5bbfc006c4723005fdd23af5258db' 'fb082d88d9cca47534ae01fca676a3afdb909bfc82d52c97cf0eaedf34571d5f' - 'bdead49ac5370dc84d9facee962bf2def5d9055d7339a37b2ba3f3b4bb02f811') + 'bdead49ac5370dc84d9facee962bf2def5d9055d7339a37b2ba3f3b4bb02f811' + '2b7ce1adcbfb39379f396a917bbc805a571f207ac2569ec6161348d88b3ccaf2') prepare() { @@ -63,6 +65,9 @@ prepare() { 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" + # 1.1.0's semantic retriever links Google-toolchain prebuilts (libc++, + # internal symbols) that cannot link here; leave it out of libmediapipe.so + patch -p1 -i "${srcdir}/0008-drop-semantic-retriever-from-libmediapipe.patch" # set __version__ sed -i "s/__version__ = 'dev'/__version__ = '$pkgver'/" setup.py # set link_opencv to True