feat(arm64): add ARM64/aarch64 QML support with pinned PyQt6 dependencies

- Pin qml_gui extras in setup.py to PyQt6>=6.7.0,<6.8.0, PyQt6-Qt6>=6.7.0,<6.8.0
  and PyQt6-sip==13.10.2 for compatibility on both x86_64 and aarch64 architectures
- Add ARM64/aarch64 QML GUI installation instructions in README.md with the exact
  pinned package versions required for correct operation on Apple Silicon and
  Linux ARM64 systems
This commit is contained in:
2026-02-18 14:40:20 +01:00
parent 85a9fad68b
commit 1959b2904e
2 changed files with 69 additions and 13 deletions

View File

@@ -53,9 +53,7 @@ If you want to run Pallectrum from source, you'll need Python 3.10 or higher.
#### Windows
**Prerequisites:**
- Python 3.10+ installed from [python.org](https://www.python.org/downloads/)
**Prerequisites:** Python 3.10+ installed from [python.org](https://www.python.org/downloads/)
**Setup with Virtual Environment:**
@@ -88,16 +86,20 @@ python run_electrum gui -g qml
#### Linux (Ubuntu/Debian)
**Install Prerequisites:**
##### Install Prerequisites
```bash
# System packages
sudo apt update
sudo apt install -y python3-venv python3-pip build-essential python3-dev
sudo apt install -y libffi-dev libssl-dev libsecp256k1-dev
sudo apt install -y \
python3-venv python3-pip python3-dev build-essential \
libffi-dev libssl-dev libsecp256k1-dev \
libpulse0
```
**Setup with Virtual Environment:**
---
##### Standard Installation (x86_64)
```bash
# Clone repository
@@ -108,23 +110,73 @@ cd pallectrum
python3 -m venv env
source env/bin/activate
# Upgrade pip and install dependencies
# Upgrade pip
python3 -m pip install --upgrade pip
pip install -e ".[gui,crypto]"
# Install project with GUI + crypto extras
pip install -e "[gui,crypto]"
# Run with Qt GUI
python run_electrum
```
##### Optional: QML GUI on Linux (simulates Android interface)
---
##### ARM64 (aarch64)
> PyQt6 ≥ 6.9 wheels are not available for ARM64 on PyPI. Use pinned versions.
```bash
pip install ".[qml_gui]"
# Clone repository (if not already done)
git clone https://github.com/palladium-coin/pallectrum.git
cd pallectrum
# Create and activate virtual environment
python3 -m venv env
source env/bin/activate
# Upgrade pip
python3 -m pip install --upgrade pip
# Base requirements
pip install -r contrib/requirements/requirements.txt
pip install "cryptography>=2.6"
# Install ARM64-compatible PyQt6 versions
pip install --only-binary PyQt6,PyQt6-Qt6,PyQt6-sip \
"PyQt6>=6.7.0,<6.8.0" \
"PyQt6-Qt6>=6.7.0,<6.8.0" \
"PyQt6-sip==13.10.2"
# Install project (development mode)
pip install -e .
# Run
python run_electrum
```
---
##### Optional: QML GUI (Android-like interface)
###### x86_64
```bash
pip install "[qml_gui]"
python run_electrum gui -g qml
```
For detailed installation instructions, including dependencies and platform-specific notes, see the [original Electrum documentation](README-ELECTRUM.md#getting-started).
###### ARM64
```bash
python run_electrum gui -g qml
```
---
For detailed installation instructions, including dependencies and platform-specific notes, see the original Electrum documentation:
[README-ELECTRUM.md#getting-started](README-ELECTRUM.md#getting-started)
## User Guide

View File

@@ -45,7 +45,11 @@ extras_require = {
'gui': ['pyqt6'],
'crypto': ['cryptography>=2.6'],
'tests': ['pycryptodomex>=3.7', 'cryptography>=2.6', 'pyaes>=0.1a1'],
'qml_gui': ['pyqt6<6.6', 'pyqt6-qt6<6.6']
'qml_gui': [
'pyqt6>=6.7.0,<6.8.0',
'pyqt6-qt6>=6.7.0,<6.8.0',
'pyqt6-sip==13.10.2',
],
}
# 'full' extra that tries to grab everything an enduser would need (except for libsecp256k1...)
extras_require['full'] = [pkg for sublist in