da6011826a Fix macOS launch-at-startup memory issue (Jonas Schnelli)
516437a1b7 Qt: remove macOS launch-at-startup option when compiled with > macOS 10.11 (Jonas Schnelli)
Pull request description:
The launch-at-startup API Bitcoin Core uses on macOS where removed in macOS 10.11 leading to a segmentation-fault due to the weak-linking when not actively compiled against SDK 10.11 (`-mmacosx-version-min=10.11`)
This PR removes the launch-at-startup feature on macOS when compiled with macOS min version > 10.11 (the default is always the macOS version you compile on).
**The depends built binaries (Gitian) are not affected since we are building with min macOS 10.10.**
Users self compiling on macOS > 10.11 can re-enable the feature by compiling with min version <= 10.11 (`CXXFLAGS="-mmacosx-version-min=10.11" CFLAGS="-mmacosx-version-min=10.11" ./configure`)
**Isn't there a new API from Apple?**
Yes, [there is](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLoginItems.html).
It will require to create a helper application which needs to be embedded in the .app folder (needs code signing as well). Developers willing to go down that rabbit hole are welcome.
Fixes#15142
Tree-SHA512: fa9cc4e39d5a2d2559919b7e22b7766f5e0269a361719294d4a4a2df2fd9d955e5b23b5907e68023fdeee297f652f844f3c447904bf18f9c1145348ad101c432
7cf994d5cf qa: Improve tests of /rest/headers and /rest/block (João Barbosa)
0825b86b28 doc: /rest/block responds with 404 if block does not exist (João Barbosa)
be625f7c55 doc: Explain empty result of /rest/headers (João Barbosa)
Pull request description:
Follow up of #15107.
Tree-SHA512: a7fdeed05216e3eda9604664db529237c2d0ddf422cfac139d6345a22b6e00bfe870d4e3f177423db7d4efb295ac2dc0ca2eb20c9c27c0719b89fd5428860d03
03b8596dd6 Add checksum in gitian build scripts for ossl (TheCharlatan)
Pull request description:
This adds a checksum in the gitian build script to make sure that ossl tool and theuni's patch matches what is expected. Also changes the url to use https.
Tree-SHA512: bd25acda1c7d9ca94e710bdfa915d20810101e10b0c68913a00fcb0eada25cdc2d59f7efebc822e07dea7eaab058024e6c53031883ded0ecf9f08212e50a25b3
645e905c32 doc: Add release notes for unloadwallet change to synchronous call (João Barbosa)
c37851de57 rpc: Make unloadwallet wait for complete wallet unload (João Barbosa)
Pull request description:
Currently the `unloadwallet` RPC is asynchronous, it only signals the intent to unload the wallet and then returns the response to the client. The actual unload can happen later and the client has no way to be notified of that.
This PR makes the `unloadwallet` RPC synchronous, meaning that it blocks until the wallet is fully unloaded.
Replaces #14919, fixes#14917.
Tree-SHA512: ad88b980e2f3652809a58f904afbfe020299f3aa6a517f495ba943b8d54d4520f6e70074d6749be8f5967065c0f476e0faedcde64c8b4899e5f99c70f0fd6534
a0ac15459a doc: Add getrpcinfo release notes (João Barbosa)
251a91c1bf qa: Add tests for getrpcinfo (João Barbosa)
d0730f5ce4 rpc: Add getrpcinfo command (João Barbosa)
068a8fc05f rpc: Track active commands (João Barbosa)
bf4383277d rpc: Remove unused PreCommand signal (João Barbosa)
Pull request description:
The new `getrpcinfo` command exposes details of the RPC interface. The details can be configuration properties or runtime values/stats.
This can be particular useful to coordinate concurrent functional tests (see #14958 from where this was extracted).
Tree-SHA512: 7292cb6087f4c429973d991aa2b53ffa1327d5a213df7d6ba5fc69b01b2e1a411f6d1609fed9234896293317dab05f65064da48b8f2b4a998eba532591d31882
9d0e52834 implements different disk sizes for different networks on intro (marcoagner)
Pull request description:
Fixes https://github.com/bitcoin/bitcoin/issues/13213.
Mostly, I layed out the concept to open the PR for refinement and getting feedback if the approach is okay. Changes are expected.
Two points:
- The values for both new consts `TESTNET_BLOCK_CHAIN_SIZE` and `TESTNET_CHAIN_STATE_SIZE` is certainly not optimal; I just checked the size of my testnet3 related dirs and set them to little bit higher values. Which values should be used?
- Should we do something like this to regtest? Or these "niceties" do not matter when on regtest?
Thanks!
Tree-SHA512: 8ae87a29fa8356b899e7a823c76cde793d9126b4ee59554d7a2a8edb088fe42a19976b34c06c2fd4a98a727e1e4971dd983f42b6093ea6caa255b45004e22bb4
This adds a checksum in the gitian build script to make sure that
ossl tool and theuni's patch matches what is expected. Also changes
the url to use https and adds the same instructions to the release docs.
a62e667296 docs: Add more Doxygen information to Developer Notes (Jon Layton)
Pull request description:
Update information about Doxygen in `doc/developer-notes.md`.
Alternatively, this could have its own file (like `doc/web-documentation.md`), since there are installation steps included.
For example, I had to run:
```
brew install doxygen graphviz
```
on MacOS, otherwise failures occurred.
This information could also be linked to the `doc/release-process.md`.
Tree-SHA512: 5d77ee83e1b96fde036482b502f676a90a56f3f667753545a7cfba5c2e3b825644bb4cf0f8a84b7f9ba92fa5f2e1cd6ef1e27a94277f43d012355df741f7dd2f
3019ba28d1 Making supported operating systems more clear (Ben Carman)
Pull request description:
With the doc saying that we only support Windows 7+ stating that XP isn't supported is redundant and can be removed. Bitcoin stop supporting Windows XP in 0.13 so users should have had plenty of time to learn that XP is no longer supported.
Tree-SHA512: bbaaea205ea7ec9960198e70ded83e8f384c9b8c476ed873488635b8dfe28a482f8caa50df2fd818f226cdc936a21de087e95f0f1fd7f5ae17e7889ea0bea221
be5ca825a3 doc: update NetBSD build instructions for 8.0 (fanquake)
Pull request description:
Updates the NetBSD build documentation for 8.0.
Use Python37 and add pkg-config.
Switches to using our `contrib/install_db4.sh` script for installing bdb.
Tree-SHA512: c0ac1a89349a752d9d4d87e2d134fd402e9beaac84e471ec9a0b507ebc5e762e973c8d2821db3824dea82841e38c39b0bb0a0d97f7e58318f2b15e93e81bf654
eacff95de Add release notes (Pieter Wuille)
bdacbda25 Overhaul importmulti logic (Pieter Wuille)
Pull request description:
This is an alternative to #14558 (it will warn when fields are being ignored). In addition:
* It makes sure no changes to the wallet are made when an error in the input exists.
* It validates all arguments, and will fail if anything fails to parse.
* Adds a whole bunch of sanity checks
Tree-SHA512: fdee0b6aca8c643663f0bc295a7c1d69c1960951493b06abf32c58977f3e565f75918dbd0402dde36e508dc746c9310a968a0ebbacccc385a57ac2a68b49c1d0
d2ce315fbf [docs] add release note for change to GBT (John Newbery)
0025c9eae4 [mining] segwit option must be set in GBT (John Newbery)
Pull request description:
Calling getblocktemplate without the segwit rule specified is most
likely a client error, since it results in lower fees for the miner.
Prevent this client error by failing getblocktemplate if called without
the segwit rule specified.
Of the previous 1000 blocks (measured at block [551591 (hash 0x...173c811)](https://blockstream.info/block/000000000000000000173c811e79858808abc3216af607035973f002bef60a7a)), 991 included segwit transactions.
Tree-SHA512: 7933b073d72683c9ab9318db46a085ec19a56a14937945c73f783ac7656887619a86b74db0bdfcb8121df44f63a1d6a6fb19e98505b2a26a6a8a6e768e442fee
a46c8476e9 depends: disable unused qt features (fanquake)
73b46eeb7e depends: qt 5.9.7 (fanquake)
095e765975 depends: expat 2.2.6 (fanquake)
Pull request description:
This PR upgrades `expat` and `qt` in depends. The intention is to upgrade Qt in master to the latest point release of the current Qt LTS. This change can then be back-ported to the 0.17 branch (wether it makes it into 0.17.1 or not).
Then, sometime before the 0.18.0 release, we could move to using Qt 5.12+ in depends (which is also LTS). That discussion, as well as minimum supported Qt versions is in #13478.
### Qt 5.9.7
[Release announcement](https://blog.qt.io/blog/2018/10/23/qt-5-9-7-released/)
[Changelog](https://bugreports.qt.io/browse/QTBUG-70888?filter=20149)
### Expat 2.2.6
* Avoid doing arithmetic with NULL pointers in XML_GetBuffer
* Fix 2.2.5 regression with suspend-resume while parsing a document like <root/>
Full changelog [here](https://github.com/libexpat/libexpat/blob/R_2_2_6/expat/Changes)
a46c8476e9 disables a bunch of qt features we aren't currently using. This speeds up the qt depends build slightly (also decreases the size of the built `qt-5.9.7` tar by about 2%). The disabling is somewhat unintuitive, hence `[wip]` until after a travis run and gitian build.
Tree-SHA512: f3d51d0c7dabe5b7043ef23f264abf2aba3e94e55ffc9d5c323b153b6852d9161368e1591db3ba28f3498f0613bac77d40b855bd0465296f52be03f9230656de
9b51b158fc Add nice table to files.md (Emil Engler)
Pull request description:
I have added a nice table to the files.md in the documentation.
This looks way more better and lightweight than before.
[Screenshot](https://imgur.com/a/wJuQgZN)
Tree-SHA512: 0c59171531b99f3bc898108c7c570e9e8309e7011d6f3b3211b0200eb2354fd4c4211bba5950d450522523f346631e23b87201813337ed5849336d359c0e166d
a67d71311d [doc] developer-notes.md: point out that UniValue deviates from upstream (Sjors Provoost)
Pull request description:
While debugging an issue I was somewhat surprised to [learn](https://github.com/bitcoin/bitcoin/pull/14164#issuecomment-419752678) that we've moved `src/univalue` from https://github.com/jgarzik/univalue to https://github.com/bitcoin-core/univalue, that these repos are both maintained and they're different.
The first mention of using the bitcoin-core repo is from late 2015 in #7157. I didn't check when the last common ancestor commit is.
I couldn't find documentation as to why (these things just happen in open source of course), but at minimum we should make this more clear.
There's also the following line in `config.ac` that I'm not sure what to do with:
```
AC_INIT([univalue], [1.0.3],
[http://github.com/jgarzik/univalue/])
```
Tree-SHA512: e58105677b5ebe0005772282da4a805fee7dfccacfb1b2686a874517bf46072d1481181f8a8865d25526f6ed9e5fcd55d8d49906bf27cd0f5aefe4f258aa4d63
688f665a5e Scripts and tools & Docs: Used #!/usr/bin/env bash instead of obsolete #!/bin/bash, added linting for .sh files shebang and updated the Developer Notes. (vim88)
Pull request description:
As it was discussed in [#13510](https://github.com/bitcoin/bitcoin/pull/13510), it is better to use `#!/usr/bin/env bash` instead of `#!/bin/bash`.
Tree-SHA512: 25f71eb9a6a0cdc91568b5c6863205c5fe095f77a69e633503a2ac7805bd9013af8538e538c0c666ce96a28e3f43ce7a8df5f08d4ff007723bb588d85674f2da
6c6ee8af8 Less confusing documentation for `torpassword` (Chakib Benziane)
Pull request description:
Rebased & squashed #14609.
> The current documentation leads the reader to think hash-password is an other option.
This change is less confusing and make it clear how to use this option.
Tree-SHA512: b94223715f1d28a8218e501117faa103d7cc791333e6d9a40e9253756070316d41de73e3b4593cd1fa9e1823fa8e8de4938cf0de89117a6e4649401d877e3477