Skip to content

Support Debian 12/13 Python dependencies in a venv - #132

Closed
nicolasmorrone-coder wants to merge 1 commit into
jeedom:betafrom
nicolasmorrone-coder:debian13-python-venv
Closed

nicolasmorrone-coder wants to merge 1 commit into
jeedom:betafrom
nicolasmorrone-coder:debian13-python-venv

Conversation

@nicolasmorrone-coder

@nicolasmorrone-coder nicolasmorrone-coder commented Oct 20, 2026 •

Copy link
Copy Markdown

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:

  • Reproduced missing apt packages and the externally-managed Python environment error.
  • Ran the actual updated installer, including building bluepy 1.3.0; all required imports and Jeedom dependency detection passed.
  • Started the actual daemon socket and stopped it with SIGTERM in three cycles under www-data; exit 0 and PID-file removal checked.
  • No Bluetooth adapter is attached, so radio discovery and device operation are not validated. Remote SSH deployment was not exercised.

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.

@Salvialf Salvialf left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Salvialf Salvialf closed this Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants