Fix backend patch: use middlewared's actual site-packages dir, add direct file patching
site.getsitepackages()[0] returns /usr/local/lib/python3.11/dist-packages/ on TrueNAS 25.x but middlewared lives in /usr/lib/python3/dist-packages/. sitecustomize.py was installed to the wrong directory and Python never loaded it. Fix: derive SITE_PKG from middlewared.__file__ so the overlay and sitecustomize.py land in the correct directory. Also add direct patching of b2.py and restic.py in the overlay as the primary backend approach — more reliable than an import hook since it works regardless of Python's site initialisation configuration. apply.sh now also writes hook_status.json at boot time so 'verify' shows OK without requiring a backup run. Also fixes incorrect middlewared log path in README (/var/log/middlewared/middlewared.log → /var/log/middlewared.log) and simplifies the verify troubleshooting note.
This commit is contained in:
+9
-1
@@ -67,7 +67,15 @@ if ! "$PYTHON" -c "import middlewared" 2>/dev/null; then
|
||||
fi
|
||||
fi
|
||||
|
||||
SITE_PKG=$("$PYTHON" -c "import site; print(site.getsitepackages()[0])" 2>/dev/null || true)
|
||||
SITE_PKG=$("$PYTHON" -c "
|
||||
import os
|
||||
try:
|
||||
import middlewared
|
||||
print(os.path.dirname(os.path.dirname(os.path.abspath(middlewared.__file__))))
|
||||
except ImportError:
|
||||
import site
|
||||
print(site.getsitepackages()[0])
|
||||
" 2>/dev/null || true)
|
||||
|
||||
if [ -n "$SITE_PKG" ] && [ -f "$SITE_PKG/sitecustomize.py" ]; then
|
||||
if grep -q "truecloud-patch" "$SITE_PKG/sitecustomize.py" 2>/dev/null; then
|
||||
|
||||
Reference in New Issue
Block a user