Remove 'jessie' (debian 8) from suites list in linux gitian descriptors
Debian 8 "jessie" support reached its end-of-life on June 30, 2020
https://www.debian.org/News/2020/20200709
Add support for logging fields in spans and events
Field values must be pointers to C strings, which in practice means that they
cannot be formatted inline (as the pointer must remain valid across the FFI).
This might be improved by future iterations of the macros.
`LogPrint()` is also moved to the DEBUG level, leaving `LogPrintf()` at INFO.
The X11 license specifically mentions the X Consortium as the party that the no-advertising clause applies to.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Improvements to tracing initialization
The refactor makes it easier to implement further tracing customisations.
We also now have spans for `zcashd` initialization and shutdown.
Update checksec.sh to slimm609/checksec.sh version 2.3.0
To verify against the upstream signature:
```
git clone https://github.com/slimm609/checksec.sh
cd checksec.sh
git checkout a6df608ac077689b2160e521db6601abc7b9e26e
openssl dgst -sha256 -verify checksec.pub -signature checksec.sig ${ZCASH_SRC}/qa/zcash/checksec.sh
```
This version has more thorough Fortify checking (using `--extended --fortify-file=`) and checks specific to Clang-compiled executables.
Give a better error message for transaction expiry
As mentioned in https://github.com/zcash/zcash/issues/3393, user gets an error when sending a tx while wallet not caught up. Here we give the user a better explanation of the possible error.
Add test for garbage memory in history nodes
Tests that garbage memory in history nodes smaller than `NODE_SERIALIZED_LENGTH` have no effect when computing the `HistoryRoot` hash.
Add libfuzzer support
- Added libfuzzer support to the build system in zcutil.
- Added UniValue::Read fuzzer, dict, corpus.
I made a slight change to the build.sh script so as to separate dependency building vs src building, just so that I can layer the docker containers for building over in another repo to speed up the continuous build processes that will want to build multiple fuzzers from the same commit.
Closes#4548
This will make it possible to de-duplicate some components of the
tracing configuration. The layers themselves cannot be fully
de-duplicated due to type system constraints (a Layer wraps a
Subscriber, and is itself a Subscriber typed on the one it wraps).
Windows uses u16 for OS strings, requiring an owned OsString when
converting to Rust. This needs to be stored in its own variable, so we
can take an immutable reference to it in Path::new.
All the text from a make action is passed as arguments to a single
execve call, and it can't be longer than the maximum size allowed by the
operating system. We now have enough Rust crates vendored by the depends
system that we are hitting this limit here.
Remove deprecated contrib utilities
Removed a bunch of unused/deprecated utilities from `zcash/contrib`.
If you feel there are more to be removed, feel free to point them out and I will remove them as well.
Modernise macOS cross-compilation toolchain
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#13617
- Excluding the QT GUI changes.
- bitcoin/bitcoin#17550
- bitcoin/bitcoin#16392
- Excluding the QT GUI changes.
- bitcoin/bitcoin#18589
- bitcoin/bitcoin#19240
- bitcoin/bitcoin#19407
- bitcoin/bitcoin#17919
- Only the ancillary changes, not the `FORCE_USE_SYSTEM_CLANG` change.
- bitcoin/bitcoin#19530
After these changes, macOS versions earlier than 10.12 are no longer supported.
To cross-compile for macOS:
- Follow the instructions in `contrib/macdeploy/README.md` to generate
`Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`
(requires an Apple Developer Account)
- Extract it into `depends/SDKs` (creating that folder first if it does not exist)
- `HOST=x86_64-apple-darwin16 ./zcutil/build.sh`