Summary
The reproducible build process documented in tools/build-linux/appimage/run_in_docker.sh fails because Python 3.12 is compiled without SSL support, preventing pip from downloading dependencies from PyPI.
Affected Versions
- ✅ Confirmed: v1.5.0
- ✅ Confirmed: v1.6.0
- ⚠️ Likely affects all versions using this build system
Steps to Reproduce
Environment
- OS: Ubuntu 22.04 (tested in Podman container)
- Container Runtime: Podman/Docker
- Required tools: git, wget, docker
Reproduction Steps
# 1. Clone repository
git clone [https://github.com/andreasgriffin/bitcoin-safe.git](https://github.com/andreasgriffin/bitcoin-safe.git)
cd bitcoin-safe
# 2. Checkout affected version
git checkout 1.6.0
# 3. Run containerized build
cd tools/build-linux/appimage
./run_in_docker.sh
Could not build the ssl module!
Python requires a OpenSSL 1.1.1 or newer
The following modules are *disabled* in configure script:
_ssl _hashlib _lzma
...
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
ERROR: Could not find a version that satisfies the requirement flit-core==3.12.0 (from versions: none)
ERROR: No matching distribution found for flit-core==3.12.0
🗯 ERROR: Could not install the specified packages due to a failure in: -Ir /tmp/bitcoin-safe/tools/deterministic-build/requirements-build-base.txt
Root Cause
The Docker container used by run_in_docker.sh is missing OpenSSL development libraries during Python compilation. When Python 3.12 is built from source (line ~50-100 in the script), it compiles without SSL support because libssl-dev is not installed in the build environment.
Expected Behavior
The build should complete successfully and produce:
bitcoin_safe-<version>-x86_64.AppImage
bitcoin_safe-<version>-x86_64.deb (via appimage2deb conversion)
Actual Behavior
Build fails during dependency installation phase because pip cannot connect to PyPI over HTTPS.
Edit: Further notes
Currently, we are in the process of automating all builds, and have a few guidelines, we build from within the container such that only podman/docker and a basic linux computer is all that any third-party builder/verifier would need.
Summary
The reproducible build process documented in tools/build-linux/appimage/run_in_docker.sh fails because Python 3.12 is compiled without SSL support, preventing pip from downloading dependencies from PyPI.
Affected Versions
Steps to Reproduce
Environment
Reproduction Steps
Root Cause
The Docker container used by
run_in_docker.shis missing OpenSSL development libraries during Python compilation. When Python 3.12 is built from source (line ~50-100 in the script), it compiles without SSL support because libssl-dev is not installed in the build environment.Expected Behavior
The build should complete successfully and produce:
Actual Behavior
Build fails during dependency installation phase because pip cannot connect to PyPI over HTTPS.
Edit: Further notes
Currently, we are in the process of automating all builds, and have a few guidelines, we build from within the container such that only podman/docker and a basic linux computer is all that any third-party builder/verifier would need.