From af6bea5bbe7251a044dc813724d2f49f2bd3cb79 Mon Sep 17 00:00:00 2001 From: yellowcooln <12516003+yellowcooln@users.noreply.github.com> Date: Thu, 25 Jun 2026 21:55:40 -0400 Subject: [PATCH] fix: repair updater venv pip shim --- manage.sh | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/manage.sh b/manage.sh index 0c1aa9d..428a6e5 100755 --- a/manage.sh +++ b/manage.sh @@ -113,7 +113,19 @@ ensure_venv() { fi # Always use python -m pip so we don't rely on a potentially stale pip wrapper. + "$VENV_PYTHON" -m ensurepip --upgrade >/dev/null 2>&1 || true "$VENV_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null 2>&1 || true + + # Some older OTA wrappers call $VENV_DIR/bin/pip directly. Debian/Ubuntu + # venvs can briefly lack that console script after migrations, so keep a + # tiny shim in place for compatibility while new code uses python -m pip. + if ! "$VENV_PIP" --version >/dev/null 2>&1 && [ -x "$VENV_PYTHON" ]; then + cat > "$VENV_PIP" <<'PIPEOF' +#!/bin/sh +exec "$(dirname "$0")/python" -m pip "$@" +PIPEOF + chmod 0755 "$VENV_PIP" + fi } # Migrate an existing system-pip install into the venv. @@ -585,7 +597,15 @@ fi if [ ! -x "$VENV_PYTHON" ]; then echo "[pymc-do-upgrade] Creating venv at $VENV_DIR ..." python3 -m venv --system-site-packages "$VENV_DIR" - "$VENV_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null 2>&1 || true +fi +"$VENV_PYTHON" -m ensurepip --upgrade >/dev/null 2>&1 || true +"$VENV_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null 2>&1 || true +if ! "$VENV_PIP" --version >/dev/null 2>&1 && [ -x "$VENV_PYTHON" ]; then + cat > "$VENV_PIP" <<'PIPEOF' +#!/bin/sh +exec "$(dirname "$0")/python" -m pip "$@" +PIPEOF + chmod 0755 "$VENV_PIP" fi # ---- Migration: clean up legacy service unit issues ---- SVC_UNIT=/etc/systemd/system/openhop-repeater.service @@ -1020,7 +1040,15 @@ fi if [ ! -x "$VENV_PYTHON" ]; then echo "[pymc-do-upgrade] Creating venv at $VENV_DIR ..." python3 -m venv --system-site-packages "$VENV_DIR" - "$VENV_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null 2>&1 || true +fi +"$VENV_PYTHON" -m ensurepip --upgrade >/dev/null 2>&1 || true +"$VENV_PYTHON" -m pip install --upgrade pip setuptools wheel >/dev/null 2>&1 || true +if ! "$VENV_PIP" --version >/dev/null 2>&1 && [ -x "$VENV_PYTHON" ]; then + cat > "$VENV_PIP" <<'PIPEOF' +#!/bin/sh +exec "$(dirname "$0")/python" -m pip "$@" +PIPEOF + chmod 0755 "$VENV_PIP" fi # ---- Migration: clean up legacy service unit issues ---- SVC_UNIT=/etc/systemd/system/openhop-repeater.service