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:
94
README.md
94
README.md
@@ -49,82 +49,108 @@ The easiest way to run Pallectrum is to download the pre-built binaries:
|
|||||||
|
|
||||||
### Running from Source
|
### 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
|
#### Windows
|
||||||
|
|
||||||
**Prerequisites:**
|
**Prerequisite:** Python 3.10+ from [python.org](https://www.python.org/downloads/)
|
||||||
|
|
||||||
- Python 3.10+ installed from [python.org](https://www.python.org/downloads/)
|
|
||||||
|
|
||||||
**Setup with Virtual Environment:**
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
# Clone repository
|
# Clone the repository
|
||||||
git clone https://github.com/palladium-coin/pallectrum.git
|
git clone https://github.com/palladium-coin/pallectrum.git
|
||||||
cd pallectrum
|
cd pallectrum
|
||||||
|
|
||||||
# Create and activate virtual environment
|
# Create and activate a virtual environment
|
||||||
python -m venv env
|
python -m venv env
|
||||||
env\Scripts\Activate.ps1
|
env\Scripts\Activate.ps1
|
||||||
|
|
||||||
# Upgrade pip and install dependencies
|
# Install dependencies
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install -e ".[gui,crypto]"
|
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\
|
copy libsecp256k1*.dll env\Lib\site-packages\electrum_ecc\
|
||||||
|
|
||||||
# Run with Qt GUI
|
# Launch
|
||||||
python run_electrum
|
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)
|
#### Linux (Ubuntu / Debian)
|
||||||
|
|
||||||
**Install Prerequisites:**
|
##### 1. Install system prerequisites
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# System packages
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y python3-venv python3-pip build-essential python3-dev
|
sudo apt install -y \
|
||||||
sudo apt install -y libffi-dev libssl-dev libsecp256k1-dev
|
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
|
```bash
|
||||||
# Clone repository
|
|
||||||
git clone https://github.com/palladium-coin/pallectrum.git
|
git clone https://github.com/palladium-coin/pallectrum.git
|
||||||
cd pallectrum
|
cd pallectrum
|
||||||
|
|
||||||
# Create and activate virtual environment
|
|
||||||
python3 -m venv env
|
python3 -m venv env
|
||||||
source env/bin/activate
|
source env/bin/activate
|
||||||
|
|
||||||
# Upgrade pip and install dependencies
|
|
||||||
python3 -m pip install --upgrade pip
|
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
|
python run_electrum
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Optional: QML GUI on Linux (simulates Android interface)
|
###### 4.1. Optional – QML GUI (Android-like interface)
|
||||||
|
|
||||||
|
*x86_64*
|
||||||
```bash
|
```bash
|
||||||
pip install ".[qml_gui]"
|
pip install -e ".[qml_gui]"
|
||||||
python run_electrum gui -g qml
|
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
|
## User Guide
|
||||||
|
|
||||||
@@ -168,10 +194,10 @@ Pallectrum stores wallet data and configuration in:
|
|||||||
|
|
||||||
Pallectrum includes specific adaptations for the Palladium blockchain:
|
Pallectrum includes specific adaptations for the Palladium blockchain:
|
||||||
|
|
||||||
- BIP21 URI scheme: `palladium:` (instead of `bitcoin:`)
|
- BIP21 URI scheme: `palladium:`
|
||||||
- BIP44 coin type: 746
|
- BIP44 coin type: 746
|
||||||
- Default block explorer: https://explorer.palladium-coin.com/
|
- 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)
|
- Checkpoint-based validation (compatible with LWMA difficulty algorithm)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
6
setup.py
6
setup.py
@@ -45,7 +45,11 @@ extras_require = {
|
|||||||
'gui': ['pyqt6'],
|
'gui': ['pyqt6'],
|
||||||
'crypto': ['cryptography>=2.6'],
|
'crypto': ['cryptography>=2.6'],
|
||||||
'tests': ['pycryptodomex>=3.7', 'cryptography>=2.6', 'pyaes>=0.1a1'],
|
'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...)
|
# 'full' extra that tries to grab everything an enduser would need (except for libsecp256k1...)
|
||||||
extras_require['full'] = [pkg for sublist in
|
extras_require['full'] = [pkg for sublist in
|
||||||
|
|||||||
Reference in New Issue
Block a user