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 - Update README.md
This commit is contained in:
76
README.md
76
README.md
@@ -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
|
||||
|
||||
|
||||
6
setup.py
6
setup.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user