ci: build RocksDB 8.9.1 from source (Ubuntu 22.04 ships 6.11.4)
PR #10 added a configure-time FATAL_ERROR for RocksDB < 7.4.0 because the v5.9.24 daemon on DNS2 was built against librocksdb 6.11 and can't read smsgDB SST files written by newer RocksDB (XXH3 per-block checksum). The check worked — but it immediately failed CI, because GitHub's ubuntu-22.04 runners also ship librocksdb-dev 6.11.4. This is the same drift class the original patch was meant to prevent. Fix: build RocksDB from source in CI, pinned to 8.9.1 (matching DNS2's system version). Add scripts/ci/build-rocksdb.sh as a reusable helper and call it from each of the four Linux jobs (test-linux-unit, test-linux-sanitizers, build-linux-daemon, build-linux-qt). Drop librocksdb-dev from the apt-get install (otherwise find_library would pick up /usr/lib/librocksdb.so.6.11.4 first) and add libsnappy-dev / libzstd-dev / liblz4-dev (compression libs RocksDB optionally links against). MacOS was already passing — Homebrew's rocksdb is current. Windows was already passing — MSYS2's mingw-w64-rocksdb is at 9.x. Also fix a cosmetic CMake bug: the version-detect function was setting RocksDB_VERSION with PARENT_SCOPE only, so the 'Detected RocksDB version from version.h:' message printed an empty value. Set the local variable too so the STATUS message reflects the real value.
This commit is contained in:
@@ -22,7 +22,15 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential cmake ninja-build \
|
||||
libboost-all-dev libssl-dev libdb++-dev libleveldb-dev \
|
||||
librocksdb-dev libevent-dev libminiupnpc-dev zlib1g-dev
|
||||
libevent-dev libminiupnpc-dev zlib1g-dev \
|
||||
libsnappy-dev liblz4-dev libzstd-dev
|
||||
|
||||
- name: Build RocksDB from source
|
||||
# Ubuntu 22.04's librocksdb-dev is 6.11.4 which CMakeLists.txt now
|
||||
# refuses to configure against (need >= 7.4 for XXH3 per-block
|
||||
# checksum). Build 8.9.1 from source — same version DNS2 ships —
|
||||
# into /usr/local so CMake's find_library picks it up first.
|
||||
run: sudo bash scripts/ci/build-rocksdb.sh
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
@@ -104,7 +112,11 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential cmake ninja-build \
|
||||
libboost-all-dev libssl-dev libdb++-dev libleveldb-dev \
|
||||
librocksdb-dev libevent-dev libminiupnpc-dev zlib1g-dev
|
||||
libevent-dev libminiupnpc-dev zlib1g-dev \
|
||||
libsnappy-dev liblz4-dev libzstd-dev
|
||||
|
||||
- name: Build RocksDB from source
|
||||
run: sudo bash scripts/ci/build-rocksdb.sh
|
||||
|
||||
- name: Configure with sanitizers
|
||||
run: |
|
||||
@@ -389,7 +401,11 @@ jobs:
|
||||
sudo apt-get install -y build-essential cmake ninja-build \
|
||||
qtbase5-dev qttools5-dev-tools \
|
||||
libboost-all-dev libssl-dev libdb++-dev \
|
||||
libleveldb-dev librocksdb-dev libevent-dev libminiupnpc-dev zlib1g-dev
|
||||
libleveldb-dev libevent-dev libminiupnpc-dev zlib1g-dev \
|
||||
libsnappy-dev liblz4-dev libzstd-dev
|
||||
|
||||
- name: Build RocksDB from source
|
||||
run: sudo bash scripts/ci/build-rocksdb.sh
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
@@ -516,7 +532,11 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential cmake ninja-build \
|
||||
libboost-all-dev libssl-dev libdb++-dev libleveldb-dev \
|
||||
librocksdb-dev libevent-dev libminiupnpc-dev zlib1g-dev
|
||||
libevent-dev libminiupnpc-dev zlib1g-dev \
|
||||
libsnappy-dev liblz4-dev libzstd-dev
|
||||
|
||||
- name: Build RocksDB from source
|
||||
run: sudo bash scripts/ci/build-rocksdb.sh
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user