Starting with the Clang shipped with Xcode 12, Apple has enabled
-Werror=implicit-function-declaration by default. This causes bdbs mutex
detection to fail when building on macOS (not cross-compiling):
checking for mutexes... UNIX/fcntl
configure: WARNING: NO SHARED LATCH IMPLEMENTATION FOUND FOR THIS PLATFORM.
configure: error: Unable to find a mutex implementation
as previously emitted warnings are being turned into errors. i.e:
error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
Append -Wno-error=implicit-function-declaration to cflags so that
-Wimplicit-function-declaration returns to being a warning, and the
configure checks will succeed.
Fixes#19411.
Github-Pull: #20195
Rebased-From: d0a829e9632379e42f0be5c554e3b692f0d14a95
+ Replaces std::max with std::min to resize buffer in RandAddSeedPerfmon
+ Documents behavior of RandAddSeedPerfmon
Github-Pull: #20082
Rebased-From: bd5215103eb3985c1622eddea45a040e6173829c
3562c15be3dbf725197d719d58c8d78e2f2c6779 build: set minimum required Boost to 1.48.0 (fanquake)
Pull request description:
Due to the use of [`boost::filesystem::canonical()`](80aa83aa40/src/wallet/load.cpp (L21)), the minimum required
version of Boost is actually 1.48.0. Use of canonical was introduced
in #14146.
See also [Boost filesystem 1.48.0 release notes](6b5e38134a/doc/release_history.html (L508)). Also discussed in #20080.
ACKs for top commit:
practicalswift:
ACK 3562c15be3dbf725197d719d58c8d78e2f2c6779: correct is better than incorrect :)
hebasto:
ACK 3562c15be3dbf725197d719d58c8d78e2f2c6779, this is the status quo.
Tree-SHA512: 1d2226c60accb8e2276e023120a72f070392a6c1d3db97fb23e7759c174984226f81fed6d94f3203ef663fb4b3648e65960aaf15ed718895b6673e3ebeb082bd
Due to the use of boost::filesystem::canonical(), the minimum required
version of Boost is actually 1.48.0. Use of canonical was introduced
in #14146.
See also Boost filesystem 1.48.0 release notes:
6b5e38134a/doc/release_history.html (L508)
498b7cb6f3f11d96129a4934cf1dbdc48c099f3a Update the vcpkg checkout commit ID in appveyor config. (Aaron Clauson)
ad99777b57f76a089fb87e3376e37081d560ce2e Set appveyor vm version to previous Visual Studio 2019 release. (Aaron Clauson)
Pull request description:
Required for appveyor builds to succeed for other v0.20 backports. For example #19606 fails to build on appveyor without these commits, and succeeds with them.
The first commit is actually reversed by the second commit (which also changes `VCPKG_COMMIT_ID`), but I'm backporting them both so that they're clean cherrypicks.
ACKs for top commit:
laanwj:
ACK 498b7cb6f3f11d96129a4934cf1dbdc48c099f3a
Tree-SHA512: 723a834fd86c8b5f58e71b9f1abfa8b3ad67376fab8e7d3699330142a6fde98547209b2b5fa6fdf9b934a447b29bf866e2258d0c303cec1062401e924e83f297
Our policy checks for non-standard inputs depend only on the non-witness
portion of a transaction: we look up the scriptPubKey of the input being
spent from our UTXO set (which is covered by the input txid), and the p2sh
checks only rely on the scriptSig portion of the input.
Consequently it's safe to add txids of transactions that fail these checks to
the reject filter, as the witness is irrelevant to the failure. This is helpful
for any situation where we might request the transaction again via txid (either
from txid-relay peers, or if we might fetch the transaction via txid due to
parent-fetching of orphans).
Further, in preparation for future witness versions being deployed on the
network, ensure that WITNESS_UNKNOWN transactions are rejected in
AreInputsStandard(), so that transactions spending v1 (or greater) witness
outputs will fall into this category of having their txid added to the reject
filter.
Github-Pull: #19620
Rebased-From: 7989901c7eb62ca28b3d1e5d5831041a7267e495
7c1c15329e5fc82d379725b4723913635490f34c doc: Update 0.20.1 release notes with psbt changes (Andrew Chow)
Pull request description:
#19215 was missing from the list. Also felt it was important to mention this change.
Top commit has no ACKs.
Tree-SHA512: b795cf73954ff493747a793039918a5e19c377d9325e6156a8e23ba8f510af12f48b2d63854f57d482640531a865190f1fe1ece0c78a5e45d6926f9533c6d695
7ee4769cd4be0975254b218134d057c2bb443509 [0.20] lint: fix shellcheck URL in CI install (fanquake)
Pull request description:
This is causing the tests to fail for backports i.e #19606. If you look in the Travis logs there, the output is:
```bash
You are downloading ShellCheck from an outdated URL!
Please update to the new URL:
https://github.com/koalaman/shellcheck/releases/download/v0.6.0/shellcheck-v0.6.0.linux.x86_64.tar.xz
For more information, see:
https://github.com/koalaman/shellcheck/issues/1871
PS: Sorry for breaking your build. The hosting costs were getting out of hand :(
```
ACKs for top commit:
MarcoFalke:
review ACK 7ee4769cd4be0975254b218134d057c2bb443509
Tree-SHA512: 62470291e53954ab541a7109e530390410d9b8a4d3ed6f4128ab8807d2225f368b8c984342f92de802a60dd082292cb59557599b4112413a29fc9ad8e8bcd0ee
bad9cf8f404ab70df7d3df430885430f76fea596 Increment input value sum only once per UTXO in decodepsbt (Andrew Chow)
Pull request description:
Github-Pull: #19517
Rebased-From: 75122780e2c46505d977e24c5612dfa9442ab754
ACKs for top commit:
jnewbery:
utACK bad9cf8f404ab70df7d3df430885430f76fea596
laanwj:
ACK bad9cf8f404ab70df7d3df430885430f76fea596
Tree-SHA512: 543bbe58f2dafc772289708007d72fa61592270f3de083afffb9a56274b03f2ffe8d8d509a93790ceea3a708e1c02b1ad941e23281b3db1f48766c01a930dbd6
This patch improves performance and resource usage around IP
addresses that are banned for misbehavior. They're already not
actually banned, as connections from them are still allowed,
but they are preferred for eviction if the inbound connection
slots are full.
Stop treating these like manually banned IP ranges, and instead
just keep them in a rolling Bloom filter of misbehaving nodes,
which isn't persisted to disk or exposed through the ban
framework. The effect remains the same: preferred for eviction,
avoided for outgoing connections, and not relayed to other peers.
Also change the name of this mechanism to better reflect reality;
they're not banned, just discouraged.
Contains release notes and several interface improvements by
John Newbery.
Github-Pull: #19219
Rebased-From: b691f2df5f7d443c0c9ee056ab94aa0fc19566d5
This has been removed from the master branch, and always seems to fail
at the installing packages phase. i.e:
```bash
pkg install -y autoconf automake boost-libs git gmake libevent libtool pkgconf python3 ccache
Updating FreeBSD repository catalogue...
Fetching meta.txz: . done
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
repository FreeBSD has no meta file, using default settings
Fetching packagesite.txz: .......... done
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
pkg: Repository FreeBSD load error: meta cannot be loaded No error: 0
Unable to open created repository FreeBSD
Unable to update repository FreeBSD
Error updating repositories!
Exit status: 3
```
Offline signers will always need a non_witness_utxo so make sure it is
there.
Github-Pull: #19215
Rebased-From: 46004790588c24174a0bec49b540d158ce163ffd
This fix is a based on the fix by Antoine Riard <ariard@student.42.fr> in
https://github.com/bitcoin/bitcoin/pull/18600.
Unlike that PR, which implements some new behavior, this just restores previous
wallet notification and status behavior for transactions removed from the
mempool because they conflict with transactions in a block. The behavior was
accidentally changed in two `CWallet::BlockConnected` updates:
a31be09bfd77eed497a8e251d31358e16e2f2eb1 and
7e89994133725125dddbfa8d45484e3b9ed51c6e from
https://github.com/bitcoin/bitcoin/pull/16624, causing issue
https://github.com/bitcoin/bitcoin/issues/18325.
The change here could be improved and replaced with a more comprehensive
cleanup, so it includes a detailed comment explaining future considerations.
Fixes#18325
Co-authored-by: Antoine Riard <ariard@student.42.fr>
Github-Pull: #18982
Rebased-From: b604c5c8b5892842f13dee89ae31812a28ab25d1
These haven't been updated since their addition, so this updates the list that
controls which qt base translations are bundled with the macOS binary, to all the
languages that are available with qt 5.9.8.
This could probably be improved in some way, however qt updates are infrequent,
and I didn't want to spend any more time looking at this. Also given that no-one
seems to have noticed and/or reported this it wouldn't seem high-priority.
Could be backported to 0.20.1.
Github-Pull: #19059
Rebased-From: 69bfcac27a83440092bc6e61904ded910ed4baf4
Pthread library does not set errno.
Pthread library's errno is returned by return value.
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Github-Pull: #19194
Rebased-From: cb38b069b0f41b1a26264784b1c1303c8ac6ab08
384d3f991c9bdeec6eb4685df5918877dbbe7634 Add missing QPainterPath include (Andrew Chow)
Pull request description:
This is needed to compile with Qt 5.15.
Github-Pull: #19097
Rebased-From: 79b0a69e09c1a912122e6431ea3c530cc292c690
Top commit has no ACKs.
Tree-SHA512: 23c4604cddb0bf5955afa6dfb6be87989df591e5f5ca5b85257c72e916f29337012b24c9ab5374a3289700ab7518ddb48f21195a2173ea1f935d69bd2ad13b8b