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:
92
README.md
92
README.md
@@ -49,82 +49,108 @@ The easiest way to run Pallectrum is to download the pre-built binaries:
|
||||
|
||||
### Running from Source
|
||||
|
||||
If you want to run Pallectrum from source, you'll need Python 3.10 or higher.
|
||||
Running from source requires **Python 3.10 or higher**. Follow the steps for your platform below.
|
||||
|
||||
---
|
||||
|
||||
#### Windows
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
- Python 3.10+ installed from [python.org](https://www.python.org/downloads/)
|
||||
|
||||
**Setup with Virtual Environment:**
|
||||
**Prerequisite:** Python 3.10+ from [python.org](https://www.python.org/downloads/)
|
||||
|
||||
```powershell
|
||||
# Clone repository
|
||||
# Clone the repository
|
||||
git clone https://github.com/palladium-coin/pallectrum.git
|
||||
cd pallectrum
|
||||
|
||||
# Create and activate virtual environment
|
||||
# Create and activate a virtual environment
|
||||
python -m venv env
|
||||
env\Scripts\Activate.ps1
|
||||
|
||||
# Upgrade pip and install dependencies
|
||||
# Install dependencies
|
||||
python -m pip install --upgrade pip
|
||||
pip install -e ".[gui,crypto]"
|
||||
|
||||
# Copy libsecp256k1 DLL (if needed)
|
||||
# Copy the secp256k1 library (required on Windows)
|
||||
copy libsecp256k1*.dll env\Lib\site-packages\electrum_ecc\
|
||||
|
||||
# Run with Qt GUI
|
||||
# Launch
|
||||
python run_electrum
|
||||
```
|
||||
|
||||
##### Optional: QML GUI on Windows (simulates Android interface)
|
||||
> **Optional – QML GUI** (simulates the Android interface):
|
||||
> ```powershell
|
||||
> pip install -e ".[qml_gui]"
|
||||
> python run_electrum -g qml
|
||||
> ```
|
||||
|
||||
```powershell
|
||||
pip install ".[qml_gui]"
|
||||
python run_electrum gui -g qml
|
||||
```
|
||||
---
|
||||
|
||||
#### Linux (Ubuntu / Debian)
|
||||
|
||||
**Install Prerequisites:**
|
||||
##### 1. Install system 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:**
|
||||
##### 2. Clone the repository and set up the virtual environment
|
||||
|
||||
```bash
|
||||
# Clone repository
|
||||
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 and install dependencies
|
||||
python3 -m pip install --upgrade pip
|
||||
pip install -e ".[gui,crypto]"
|
||||
```
|
||||
|
||||
# Run with Qt GUI
|
||||
##### 3. Install dependencies
|
||||
|
||||
###### 3.1. x86_64 (Intel / AMD)
|
||||
|
||||
```bash
|
||||
pip install -e ".[gui,crypto]"
|
||||
```
|
||||
|
||||
###### 3.2. ARM64 / aarch64
|
||||
|
||||
> PyQt6 ≥ 6.9 wheels are not published for ARM64 on PyPI — pinned versions must be used.
|
||||
|
||||
```bash
|
||||
pip install -r contrib/requirements/requirements.txt
|
||||
pip install "cryptography>=2.6"
|
||||
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"
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
##### 4. Launch
|
||||
|
||||
```bash
|
||||
python run_electrum
|
||||
```
|
||||
|
||||
##### Optional: QML GUI on Linux (simulates Android interface)
|
||||
###### 4.1. Optional – QML GUI (Android-like interface)
|
||||
|
||||
*x86_64*
|
||||
```bash
|
||||
pip install ".[qml_gui]"
|
||||
python run_electrum gui -g qml
|
||||
pip install -e ".[qml_gui]"
|
||||
python run_electrum -g qml
|
||||
```
|
||||
|
||||
For detailed installation instructions, including dependencies and platform-specific notes, see the [original Electrum documentation](README-ELECTRUM.md#getting-started).
|
||||
*ARM64* — the pinned PyQt6 packages installed in step 3 already include QML support:
|
||||
```bash
|
||||
python run_electrum -g qml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
For the full list of dependencies and advanced configuration options, see [README-ELECTRUM.md#getting-started](README-ELECTRUM.md#getting-started).
|
||||
|
||||
## User Guide
|
||||
|
||||
@@ -168,10 +194,10 @@ Pallectrum stores wallet data and configuration in:
|
||||
|
||||
Pallectrum includes specific adaptations for the Palladium blockchain:
|
||||
|
||||
- BIP21 URI scheme: `palladium:` (instead of `bitcoin:`)
|
||||
- BIP21 URI scheme: `palladium:`
|
||||
- BIP44 coin type: 746
|
||||
- Default block explorer: https://explorer.palladium-coin.com/
|
||||
- Currency unit: PLM (Palladium) instead of BTC
|
||||
- Currency unit: PLM (Palladium)
|
||||
- Checkpoint-based validation (compatible with LWMA difficulty algorithm)
|
||||
|
||||
|
||||
|
||||
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