Repository navigation
Support Debian 12/13 Python dependencies in a venv - #132
nicolasmorrone-coder wants to merge 1 commit into
Conversation
Salvialf
left a comment
There was a problem hiding this comment.
Thanks, but this PR can't be merged.
Python dependencies are handled by the core: any pip3 dependency declared in plugin_info/packages.json is installed in a venv (resources/python_venv) on Debian 12 and later. The right fix for this plugin is to migrate its dependencies to packages.json and run the daemon with the venv's Python, not to add a second install script that bypasses the existing one depending on VERSION_ID.
As with your other PRs (jeedom/core#3588, jeedom/plugin-ifttt#16), this one also adds things that don't belong here: a CI workflow, a test script, and a hard-coded module list in dependancy_info() that duplicates the core's own dependency check.
Please keep contributions to one concrete bug per PR, with only the change needed to fix it.
BLEA dependency installation fails on Debian 13: libtiff5/libatlas-base-dev are unavailable, global pip installs are blocked by PEP 668, and the legacy script removes system cryptography and installs obsolete crypto packages.
For Debian 12 and newer, install supported Debian Python/native packages and put bluepy and pycryptodome in resources/python_venv (with access to distro Python packages). Do not modify system Python with pip. The dependency check imports the modules using that interpreter; local and remote daemon commands select the venv when available and retain the previous interpreter as fallback. Older distributions retain their existing installer.
Validation on the dedicated Debian 13 / Python 3.13 VM:
Adds an integration workflow that installs real dependencies on Debian 12 and 13 and repeats the hardware-free daemon lifecycle test.
Fork integration workflow passed on both Debian 12 (bookworm) and Debian 13 (trixie), on the PR head commit: https://github.com/nicolasmorrone-coder/plugin-blea/actions/runs/39421382926. Official upstream execution may still require maintainer approval.