-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
Summary
The Bitmark codebase fails to compile on Ubuntu 22.04 (and newer) due to:
- Berkeley DB 4.8 PPA no longer available
- GCC 13+ strict alignment requirements for Blake2
- Boost 1.74 / C++11 placeholder incompatibility
Fix size: 4 files, net +2 lines of code.
Environment
- Target OS: Ubuntu 22.04 LTS (Jammy)
- Compiler: GCC 11.4.0
- Boost: 1.74
- OpenSSL: 3.0.2
Problem 1: Berkeley DB 4.8 Unavailable
E: The repository 'https://ppa.launchpadcontent.net/bitcoin/bitcoin/ubuntu jammy Release' does not have a Release file
Fix: Build BDB 4.8 from source (Oracle still hosts the tarball).
Problem 2: Blake2 Alignment Errors
error: size of array element is not a multiple of its alignment
ALIGN( 64 ) typedef struct __blake2s_state
Fix: Remove ALIGN(64) from structs inside #pragma pack(1), move parallel state structs outside the pack block.
Files: src/blake2.h, src/blake2s-ref.c
Problem 3: Boost Placeholder Incompatibility
error: no match for 'operator==' (operand types are 'const std::_Placeholder<1>' and 'const std::_Placeholder<1>')
Fix: Replace std::placeholders::_N with boost::placeholders::_N when using boost::bind.
Files: src/main.cpp, src/rpcserver.cpp
Proposed Fix
src/blake2.h | 8 +++++---
src/blake2s-ref.c | 10 +++++-----
src/main.cpp | 20 ++++++++++----------
src/rpcserver.cpp | 4 ++--
4 files changed, 22 insertions(+), 20 deletions(-)Build Verification
$ docker run --rm bitmark-builder /output/bitmarkd --version
Bitmark Core Daemon version v0.9.7.4-ffd840e-dirty-beta
Impact
- Breaking changes: None
- Consensus changes: None
- Pure build-system compatibility fixes
Metadata
Metadata
Assignees
Labels
No labels