We need to load these early so that it's possible for other
initialization steps to respect them. However, we were loading them
slightly too early, before the config file had been read, which meant
that only CLI arguments were being used.
We now load the `-allowdeprecated` settings just after the config file
is parsed and the chain parameters are prepared; neither of these are
features we would ever consider deprecating (at least while `zcashd`
exists in its Bitcoin Core-derived form).
Closeszcash/zcash#6420.
Interrupting rpc-tests (e.g., with Ctrl-c) will print a list of the tests that were running when the
interrupt was received. This is useful for identifying tests that aren’t terminating.
For example:
```
wallet_broadcast.py:
Pass: True, Duration: 62 s
.................
zmq_test.py:
Pass: True, Duration: 29 s
.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^C
The following tests were running when interrupted:
• mempool_reorg.py
Traceback (most recent call last):
...
```
Previously, they downloaded to filenames that were simply the git hashes
followed by .tar.gz, now this creates
`native_cctools_55562e4073dea0fbfd0b20e0bf69ffe6390c7f97.tar.gz` and
`native_cctools_libtapi_3efb201881e7a76a21e0554906cf306432539cef.tar.gz`
Note that those are the filenames that must exist on download.z.cash
as well, since the alternate URLs fetched refer to the
*destination filename* and not the original (here, github) filename.
The new URLs (with `archive/ref/tags`) are good for tag-based references
so we leave them alone, and only revert the hash-based URLs to GitHub
URLs which doesn't 404 and give us files with the expected hashes today.
Currently, the three repos in question (`cctools-port`, `apple-libtapi`,
and `expected`) do not have usable tags/releases we can use instead of
the hashes.
We will also upload correct versions of those files to the
download.z.cash server (with the correct filenames) so if there's
another issue with hash stability (like there was on 30 January 2023
https://github.com/orgs/community/discussions/46034)
it won't instantly break the build.
This should achieve similar performance gains to "fat" LTO (which we
were previously using) while taking substantially less time to run
(over 20s saved on a Ryzen 9 5950X).
Part of zcash/zcash#6065.
The relevant licenses are:
* bdb: BDB (variant of Gnu Affero GPL)
* libevent: BSD-3-clause
* libsodium: ISC
* tl_expected: CC0-1.0
* zeromq: LGPL-3+ with ZeroMQ exception
In the case of zeromq, this is an explicit condition of the license --
specifically its static linking exception, which we rely on:
"If you modify this library, you must extend this exception to your
version of the library."
In all cases, patches are necessarily derived (even if only trivially)
from the code they are patching. We technically could relicense to MIT
in some cases, but using the original license for patches we've written
is a courtesy that makes it easier for upstream to adopt the patch, even
if we don't specifically file a PR.
native_cctools is also patched, but Debian copyright policy does not
require `contrib/debian/copyright` to mention this dependency, because
it is only part of the build process and its contents do not get compiled
into the resulting build:
https://www.debian.org/doc/debian-policy/ch-archive.html#s-pkgcopyright
In all cases I checked that we have the right to distribute the patch
under the relevant license (i.e. it doesn't depend on any incompatible
third-party contributions). Reviewers should satisfy themselves of this.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This should lower the main thread's likelihood to immediately reacquire
cs_main after dropping it, which should help ThreadNotifyWallets and the
RPC methods to acquire cs_main more quickly.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Kris Nuttycombe <kris@nutty.land>