diff --git a/libfuse/tst-build.sh b/libfuse/tst-build.sh index 82ec393ffb61485a041137f9da36a41840ade8c4..80de80c79d807d4d6d1c52fef6ba09529e96e7d1 100755 --- a/libfuse/tst-build.sh +++ b/libfuse/tst-build.sh @@ -48,6 +48,27 @@ ensure_meson_version() { echo "meson upgraded to $current via pip" } +ensure_pytest_deps() { + local pyver + pyver=$(python3 -c 'import sys; print(sys.version_info[:2])' 2>/dev/null) + + if python3 -c 'import importlib_metadata' 2>/dev/null; then + echo "importlib_metadata already available, OK" + return 0 + fi + + if python3 -c 'import importlib.metadata' 2>/dev/null; then + echo "importlib.metadata (stdlib) available, OK" + return 0 + fi + + echo "Python $pyver lacks importlib.metadata, installing backport via pip..." + pip3 install -i https://mirrors.tencent.com/pypi/simple/ \ + --trusted-host mirrors.tencent.com \ + 'importlib-metadata<5.0' 'typing_extensions>=3.6.4' 'zipp>=0.5' || return 1 + echo "importlib-metadata installed successfully" +} + build_tool() { cp -r "$g_tool_dir" "$g_install_dir" && cd "$g_install_dir/libfuse" || return 1 @@ -104,6 +125,7 @@ main() { done ensure_meson_version || return 1 + ensure_pytest_deps || return 1 mkdir -p "$g_install_dir" if build_tool; then