Release v0.9.1: Linux build fixes and branding update
- Bump version to 0.9.1 in all files - Add detailed CHANGELOG for v0.9.1 with Linux AppImage build fixes - Fix desktop notification: "Electrum" → "Pallectrum" Fixes reproducible builds with ELECBUILD_COMMIT and improves AppImage filename determinism.
This commit is contained in:
80
CHANGELOG.md
80
CHANGELOG.md
@@ -18,6 +18,86 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [0.9.1] - 2025-12-09
|
||||||
|
|
||||||
|
### Overview
|
||||||
|
This release fixes critical build system issues for Linux AppImage reproducibility. Linux builds are new to Pallectrum and were not available in previous versions.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
#### 1. Fix: Type2-runtime path resolution for reproducible AppImage builds
|
||||||
|
|
||||||
|
**Issue resolved**: Building with `ELECBUILD_COMMIT` failed with "Unable to load provided runtime file" errors.
|
||||||
|
|
||||||
|
**Root Cause**:
|
||||||
|
- Reproducible builds create a fresh git clone for deterministic output
|
||||||
|
- Type2-runtime binary built in original project directory was inaccessible to fresh clone
|
||||||
|
- Runtime cache location changed between contexts
|
||||||
|
|
||||||
|
**Implemented changes**:
|
||||||
|
|
||||||
|
a) **Runtime cache persistence** (`contrib/build-linux/appimage/make_type2_runtime.sh`)
|
||||||
|
- Changed cache to fixed `$PROJECT_ROOT` location (persists across fresh clones)
|
||||||
|
- Added validation: file exists AND non-zero size
|
||||||
|
- Automatic cleanup and rebuild if runtime is corrupted
|
||||||
|
|
||||||
|
b) **Runtime transfer for fresh clones** (`contrib/build-linux/appimage/build.sh`)
|
||||||
|
- Copies pre-built runtime from original project to fresh clone when `ELECBUILD_COMMIT` is set
|
||||||
|
- Creates directory structure and includes error handling
|
||||||
|
|
||||||
|
**Modified files**:
|
||||||
|
- `contrib/build-linux/appimage/build.sh` (+9 lines)
|
||||||
|
- `contrib/build-linux/appimage/make_type2_runtime.sh` (+35, -5 lines)
|
||||||
|
|
||||||
|
**Impact**:
|
||||||
|
- Reproducible builds now work without runtime errors
|
||||||
|
- Better resilience to cache corruption
|
||||||
|
- Faster builds through runtime reuse (~5-10 minutes saved)
|
||||||
|
|
||||||
|
#### 2. Fix: AppImage filename version handling for deterministic builds
|
||||||
|
|
||||||
|
**Issue resolved**: Filenames were non-deterministic, making it difficult to distinguish official releases from development builds.
|
||||||
|
|
||||||
|
**Root Cause**:
|
||||||
|
- Version determined too early (before Python installation)
|
||||||
|
- Used `git describe` which varies by repository state
|
||||||
|
|
||||||
|
**Implemented changes** (`contrib/build-linux/appimage/make_appimage.sh`):
|
||||||
|
- Moved version detection to after environment setup
|
||||||
|
- Changed from `git describe` to `print_electrum_version.py` (reads `electrum/version.py`)
|
||||||
|
- Conditional filename generation:
|
||||||
|
- **Reproducible/clean**: `pallectrum-v0.9.1-x86_64.AppImage`
|
||||||
|
- **Development**: `pallectrum-v0.9.1-<count>-g<hash>-dirty-x86_64.AppImage`
|
||||||
|
|
||||||
|
**Modified files**:
|
||||||
|
- `contrib/build-linux/appimage/make_appimage.sh` (+16, -3 lines)
|
||||||
|
|
||||||
|
**Impact**:
|
||||||
|
- Deterministic filenames for reproducible builds
|
||||||
|
- Development builds clearly marked as non-official
|
||||||
|
- Better traceability for debugging
|
||||||
|
|
||||||
|
### Technical Details
|
||||||
|
|
||||||
|
- Docker-based reproducible builds with fresh clone isolation
|
||||||
|
- Runtime cached after first build (saves 5-10 minutes on subsequent builds)
|
||||||
|
- Total changes: 3 files, 63 insertions, 8 deletions
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
- Reproducible build with `ELECBUILD_COMMIT=HEAD` works without errors
|
||||||
|
- Development builds produce `-dirty` filename
|
||||||
|
- Runtime caching works across multiple builds
|
||||||
|
- AppImage executes correctly on Ubuntu 20.04+
|
||||||
|
|
||||||
|
### Upgrade Notes
|
||||||
|
|
||||||
|
**For end users**: No action required. This is a build system fix only.
|
||||||
|
|
||||||
|
**For maintainers**: Reproducible builds with `ELECBUILD_COMMIT` now work reliably.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [0.9.0] - 2025-12-07
|
## [0.9.0] - 2025-12-07
|
||||||
|
|
||||||
### Overview
|
### Overview
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
Licence: MIT Licence
|
Licence: MIT Licence
|
||||||
Version: 0.9.0
|
Version: 0.9.1
|
||||||
Maintainer: Davide Grilli
|
Maintainer: Davide Grilli
|
||||||
Language: Python (>= 3.10)
|
Language: Python (>= 3.10)
|
||||||
Homepage: https://github.com/palladium-coin/pallectrum
|
Homepage: https://github.com/palladium-coin/pallectrum
|
||||||
|
|||||||
@@ -938,7 +938,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
|
|||||||
|
|
||||||
def notify(self, message):
|
def notify(self, message):
|
||||||
if self.tray:
|
if self.tray:
|
||||||
self.tray.showMessage("Electrum", message, read_QIcon("electrum_dark_icon"), 20000)
|
self.tray.showMessage("Pallectrum", message, read_QIcon("electrum_dark_icon"), 20000)
|
||||||
|
|
||||||
def timer_actions(self):
|
def timer_actions(self):
|
||||||
# refresh invoices and requests because they show ETA
|
# refresh invoices and requests because they show ETA
|
||||||
|
|||||||
@@ -4,5 +4,5 @@
|
|||||||
"author": "orenz0@protonmail.com",
|
"author": "orenz0@protonmail.com",
|
||||||
"available_for": ["qt"],
|
"available_for": ["qt"],
|
||||||
"icon":"timelock_recovery_60.png",
|
"icon":"timelock_recovery_60.png",
|
||||||
"version": "0.9.0"
|
"version": "0.9.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
ELECTRUM_VERSION = '0.9.0' # version of the client package (Pallectrum)
|
ELECTRUM_VERSION = '0.9.1' # version of the client package (Pallectrum)
|
||||||
|
|
||||||
PROTOCOL_VERSION_MIN = '1.4' # electrum protocol
|
PROTOCOL_VERSION_MIN = '1.4' # electrum protocol
|
||||||
PROTOCOL_VERSION_MAX = '1.6'
|
PROTOCOL_VERSION_MAX = '1.6'
|
||||||
|
|||||||
Reference in New Issue
Block a user