fix: harden post-install migrations and bundle multi-ABI Python runtimes

- safely migrate historical Bashrc and Log2RAM installations
- align post-install function versions across both flows
- bundle gevent runtimes for CPython 3.11 and 3.13
- select the correct Python ABI at runtime
- validate both supported Proxmox VE Python versions in AppImage workflows
- fix #327, #328 and #331
This commit is contained in:
MacRimi
2026-09-03 11:55:39 +02:00
parent ac09cc24a8
commit 86305cf261
9 changed files with 730 additions and 59 deletions
@@ -42,6 +42,26 @@ jobs:
- name: Build AppImage
working-directory: AppImage
run: ./scripts/build_appimage.sh
- name: Set up Python 3.11 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Verify bundled Python 3.11 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp311:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Set up Python 3.13 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Verify bundled Python 3.13 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp313:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Get version from package.json
id: version
+20
View File
@@ -42,6 +42,26 @@ jobs:
- name: Build AppImage
working-directory: AppImage
run: ./scripts/build_appimage.sh
- name: Set up Python 3.11 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Verify bundled Python 3.11 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp311:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Set up Python 3.13 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Verify bundled Python 3.13 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp313:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Get version from package.json
id: version
@@ -40,6 +40,26 @@ jobs:
- name: Build AppImage
working-directory: AppImage
run: ./scripts/build_appimage.sh
- name: Set up Python 3.11 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Verify bundled Python 3.11 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp311:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Set up Python 3.13 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Verify bundled Python 3.13 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp313:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Get version from package.json
id: version
+20
View File
@@ -42,6 +42,26 @@ jobs:
- name: Build AppImage
working-directory: AppImage
run: ./scripts/build_appimage.sh
- name: Set up Python 3.11 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Verify bundled Python 3.11 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp311:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Set up Python 3.13 validation runtime
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Verify bundled Python 3.13 runtime
env:
PYTHONPATH: /tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/vendor/cp313:/tmp/proxmenux_build/ProxMenux.AppDir/usr/lib/python3/dist-packages
run: python -c 'import gevent, greenlet, geventwebsocket, zope.interface; from gevent import pywsgi; print(gevent.__version__)'
- name: Get version from package.json
id: version