mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-18 04:41:56 +00:00
fix(install): also patch psutil on Termux fresh-install path
The Termux update path (PR #22814) prebuilds psutil from a marker-patched sdist so 'platform android is not supported' doesn't kill it. The same psutil setup.py error blocks fresh installs via scripts/install.sh — only the update path was wired up. Without this, a brand-new Termux user can't get past the very first 'pip install -e .[termux-all]' call. - New scripts/install_psutil_android.py — standalone version of the same patcher hermes_cli/main.py uses, callable from bash. - scripts/install.sh detects sys.platform == 'android' and runs the patcher before pip install. - TODO note added to both copies pointing at upstream https://github.com/giampaolo/psutil/pull/2762; remove both when that ships. Note: we keep psutil as a base dep on Android (do not adopt the proposed sys_platform != 'android' marker in pyproject). Removing it would crash five unguarded 'import psutil' sites at runtime (tools/code_execution_tool.py, tools/tts_tool.py, tools/process_registry.py (2x), gateway/platforms/whatsapp.py).
This commit is contained in:
parent
6d5d467d39
commit
c179bdab3c
3 changed files with 135 additions and 0 deletions
|
|
@ -985,6 +985,19 @@ install_deps() {
|
|||
|
||||
"$PIP_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null
|
||||
|
||||
# On Android, psutil's setup.py rejects sys.platform == 'android' before
|
||||
# it ever invokes the C build, so the next pip install would fail at
|
||||
# "platform android is not supported". Prebuild psutil from the official
|
||||
# sdist with a one-line marker patch (Linux source path is fine on
|
||||
# Android). Stopgap until psutil#2762 ships upstream.
|
||||
if "$PIP_PYTHON" -c 'import sys; raise SystemExit(0 if sys.platform == "android" else 1)' 2>/dev/null; then
|
||||
log_info "Android Python detected: prebuilding psutil compatibility shim..."
|
||||
if ! "$PIP_PYTHON" "$INSTALL_DIR/scripts/install_psutil_android.py" --pip "$PIP_PYTHON -m pip"; then
|
||||
log_warn "psutil Android prebuild failed — package install will likely fail next."
|
||||
log_info "Workaround: manually rerun 'python scripts/install_psutil_android.py' once your toolchain is set up."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Try the broad Termux profile first (best-effort "install all" for Android),
|
||||
# then fall back to the conservative Termux baseline, then base package.
|
||||
if ! "$PIP_PYTHON" -m pip install -e '.[termux-all]' -c constraints-termux.txt; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue