release: all-coin packaging fix (libsecp256k1 bundle + per-coin configs) for v0.2.3.1#742
Merged
Merged
Conversation
…gs) for v0.2.3.1
BUG A (Linux, all 5 coins): every v0.2.3 Linux tarball was dead-on-arrival.
The Linux packaging step hardcoded libsecp256k1.so.2, but the runners
libsecp256k1-dev provides .so.1, so the find matched nothing and the binary
only dynamic non-glibc dependency (libsecp256k1.so.1) was never bundled;
lib/ carried only the statically-redundant leveldb/snappy. Replace the
hardcoded SONAME list with an ldd-resolved copy of the real runtime closure
(SONAME-agnostic). macOS/Windows already bundle secp256k1 correctly.
BUG B (all 15 packages): every coin tarball shipped the Litecoin config
(LTC header, ports 9326/9327, LTC/DOGE checkpoints, embedded_ltc), so a
DASH pool logged LTC and bound LTC ports. Add per-coin config/<coin>/
mainnet+testnet files with coin-correct headers and authoritative sharechain
ports (btc 9333, ltc 9326/9327, dgb 5024/5025, dash 8999/7903, bch 9349);
release.yml selects config/${COIN}/ on all three platforms. DASH config
documents the external dashd-RPC fallback (embedded SPV unwired per #738).
Guards: release.yml packaging asserts each Linux package bundles
libsecp256k1 and its config header names the coin (fail-fast tripwires);
start.sh/start.bat refuse to launch a binary against a mismatched-coin
config.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes the #740-only task. Field audit of v0.2.3 confirmed two all-coin packaging bugs; both fixed here. Retag as v0.2.3.1 (tag-build path, same source) on merge.
Audit matrix (needs vs bundles, v0.2.3 live assets)
leveldb/snappy/boost/gmp/event are statically linked on Linux — libsecp256k1.so.1 is the ONLY dynamic non-glibc dep, and it was the one omitted. No other unbundled deps on any platform.
BUG A — libsecp256k1 missing (Linux only, all 5 coins)
Root cause: Linux packaging hardcoded libsecp256k1.so.2; the runner libsecp256k1-dev provides .so.1, so find matched nothing and it was never copied. Fixed by resolving the real runtime closure via ldd of the built binary (SONAME-agnostic; survives the next SONAME bump). macOS/Windows already bundle secp256k1 correctly.
BUG B — wrong-coin config (all 15 packages)
Every tarball shipped the Litecoin config, so a DASH pool logged LTC and bound LTC ports. Added config//c2pool_{mainnet,testnet}.yaml with coin-correct headers and authoritative sharechain ports (btc 9333, ltc 9326/9327, dgb 5024/5025, dash 8999/7903, bch 9349); release.yml selects config/${COIN}/ on all three platforms. DASH config documents the external dashd-RPC fallback (embedded SPV unwired per #738). Checkpoints/RPC left as commented guidance rather than fabricated values.
Guards
Closes #740, closes #741. No self-merge — on approval I take the tag-build path to v0.2.3.1.