python-mediapipe: leave the semantic retriever out of libmediapipe.so
MediaPipe 1.1.0 links its SQLite memory and vector stores from prebuilt archives built with Google's internal toolchain. They have no archive symbol table, and once indexed they still need Google's libc++ (std::__u) and internal symbols (__alloc_token_*__Znwm, sqlite_helpers, sqlite3_vector_init), so the link of libmediapipe.so fails. Drop the semantic retriever's C API from the library; mediapipe and its other tasks import and work as before.
This commit is contained in:
1 parent
39f0096f35
commit
7dde80c9f7
2 files changed
+32
-1
No files matched your search
@@ -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",
|
||||
@@ -43,8 +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=('ef260449409c942a35859ed017f13934f6bf6240ddccdd01a202225650dad73e' 'c97f02133adce63f0c28678ac1f21d65fa8255c80429b588aeeba8a1fac6202b' 'd18e88a217a00dc77cf2bfaa1d33b5fbc912deed5df686b0d2455fb0db75a677' '62cbd43346e7a7705127656a74bec44852e5bbfc006c4723005fdd23af5258db' 'fb082d88d9cca47534ae01fca676a3afdb909bfc82d52c97cf0eaedf34571d5f' 'bdead49ac5370dc84d9facee962bf2def5d9055d7339a37b2ba3f3b4bb02f811')
|
||||
sha256sums=('ef260449409c942a35859ed017f13934f6bf6240ddccdd01a202225650dad73e'
|
||||
'c97f02133adce63f0c28678ac1f21d65fa8255c80429b588aeeba8a1fac6202b'
|
||||
'd18e88a217a00dc77cf2bfaa1d33b5fbc912deed5df686b0d2455fb0db75a677'
|
||||
'62cbd43346e7a7705127656a74bec44852e5bbfc006c4723005fdd23af5258db'
|
||||
'fb082d88d9cca47534ae01fca676a3afdb909bfc82d52c97cf0eaedf34571d5f'
|
||||
'bdead49ac5370dc84d9facee962bf2def5d9055d7339a37b2ba3f3b4bb02f811'
|
||||
'2b7ce1adcbfb39379f396a917bbc805a571f207ac2569ec6161348d88b3ccaf2')
|
||||
|
||||
|
||||
prepare() {
|
||||
@@ -58,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
|
||||
|
||||
Reference in new issue
Block a user