Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Build against system UniValue when available #7349
Conversation
luke-jr
referenced this pull request
Jan 15, 2016
Closed
Replace univalue subtree with proper dependency on external UniValue #7340
luke-jr
added some commits
Jan 15, 2016
|
This is nice. |
jonasschnelli
added
the
Build system
label
Jan 15, 2016
|
ut ACK |
|
utACK |
|
Ping @theuni |
|
Concept ack, but let's not default to using the system lib unless --with-system-univalue is specified, please. Otherwise someone (like myself) who has at some point built/installed univalue to system will suddenly find themselves frustrated when their in-tree univalue source changes aren't reflected in the build. |
theuni
commented on an outdated diff
Jan 22, 2016
theuni
commented on an outdated diff
Jan 22, 2016
| @@ -14,7 +14,7 @@ bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) | ||
| bench_bench_bitcoin_LDADD = \ | ||
| $(LIBBITCOIN_SERVER) \ | ||
| $(LIBBITCOIN_COMMON) \ | ||
| - $(LIBBITCOIN_UNIVALUE) \ | ||
| + $(LIBUNIVALUE) \ |
theuni
Member
|
Just use --without-system-univalue. Defaults should not be set just for niche scenarios... |
|
Agreed, and the new (system) scenario is the niche scenario. It should be opt-in as long as we build it in-tree. |
|
Using system libraries when they are available is the standard use case, not the niche. I'm happy to go back to #7340 if that's preferable though. |
|
I'm not yet convinced that univalue will be a library found by default on many systems, will be maintained actively, and if so will do proper versioning in lock-step with our requirements. So to err on the side of caution I agree with @theuni, defaulting to the in-tree univalue makes sense. It can always be reconsidered later when things have matured for a few versions. |
|
I agree with @theuni. |
|
I think defaulting to "no" is still very unreasonable considering @jgarzik is the maintainer, but changed for now. |
|
Ok, thanks, utACK after other two @theuni's nits solved |
luke-jr
added some commits
Jan 31, 2016
|
@theuni 's nits taken care of |
laanwj
and 1 other
commented on an outdated diff
Feb 1, 2016
| @@ -46,6 +46,7 @@ Optional dependencies: | ||
| qt | GUI | GUI toolkit (only needed when GUI enabled) | ||
| protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled) | ||
| libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled) | ||
| + univalue | Utility | JSON parsing and encoding (if missing, bundled version will be used) |
laanwj
Owner
|
|
Thanks, ut ack. |
luke-jr commentedJan 15, 2016
If UniValue is present on the system, it will be used instead of bundled copy.
If not, bundled copy will automatically be built and used statically.
User can override either way using --with[out]-system-univalue configure option.