fix: Use system cryptography package on ARM v7 to fix Docker build#89
Merged
Conversation
On ARM v7 (linux/arm/v7), pre-built wheels for cffi/cryptography are not available on PyPI, causing pip to attempt building from source. This fails because the build requires libffi-dev. This fix: - Installs libffi-dev for building cffi if needed - Installs python3-cffi and python3-cryptography via apt (pre-built) - Uses --system-site-packages when creating plugin venvs on ARM v7 - Mirrors the existing MSYS2 strategy for handling packages that can't be built from source Fixes Docker multi-arch build failure on linux/arm/v7. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
60fe701 to
3eff7de
Compare
Allow manual workflow dispatch to specify which platforms to build. Useful for testing platform-specific fixes without building all archs. Default remains all platforms (linux/amd64,linux/arm64,linux/arm/v7). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
libffi-dev alone provides the headers needed to build cffi from source. python3-cffi and python3-cryptography were redundant since pip successfully builds and installs newer versions in the venv. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
With libffi-dev installed, cffi can be built from source on ARM v7. The --system-site-packages workaround is no longer needed for this platform. MSYS2 still requires it due to Windows-specific build issues. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
linux/arm/v7architecturepython3-cryptographyto apt dependencies--system-site-packagesfor plugin venvs on ARM v7 (mirrors existing MSYS2 strategy)Problem
The Docker build was failing on ARM v7 with:
This happens because:
asyncua→cryptography→cfficffilibffi-devand failsSolution
Instead of adding build dependencies, we use the same strategy as MSYS2:
python3-cryptographyvia apt (pre-built for all Debian architectures)--system-site-packageson ARM v7Test plan
linux/arm/v7linux/amd64andlinux/arm64builds still work🤖 Generated with Claude Code