Leverages the VA_OPT macro library, which is a polyfill for __VA_OPT__
on non-C++20 platforms, to enable TracingSpan to support optional fields.
Source: https://github.com/willwray/VA_OPT
License: Boost Software License, Version 1.0
add zstd package to support Windows cross compile
Once the v4.3.0 release is stable, we will need to go rebuild/deploy this builder with a couple other updates so that windows can gracefully cross compile again.
Partial revert of "Update links"
This partially reverts commit f459e43dc9. See #4904.
In summary, the rationale is that:
* Some of the changed files are from subtrees, which should be updated upstream.
* The licensing of four of the files under `build-aux/m4` is complicated and so changes to them should have required review with that in mind: 5b97cd27f8/COPYING (L38-L44)
* The changes to `contrib/debian/copyright` must also be reverted because those are in copies of specific versioned licenses.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Before Zcash launched, we were heavily relying on `zcutil/build.sh` to
apply our Zcash-specific hardening flags. The Gitian deterministic build
system obviously didn't use our script, so the corresponding flags were
manually added to `gitian-linux.yml`.
Since then, we have migrated all of our flags into `configure.ac`.
Manually setting them in the Gitian descriptor is no longer necessary,
and should have been removed at the same time. This didn't cause any
noticeable issues, however, leaving it undetected until we migrated to
Clang in zcash/zcash#4613, and performed a Gitian build for 4.1.0-rc1.
The Gitian failure was caused by linker flags specific to C++ being used
in configuration tests for secp256k1 (a C library). This causes ldd to
emit warnings, which are then converted to errors by the -Werror flags
that were added to CFLAGS and CXXFLAGS by `gitian-linux.yml`. CI did not
encounter this because it uses the standard `--enable-werror` config flag,
which adds `-Werror` to CXXFLAGS but not CFLAGS.
Co-authored-by: Jack Grigg <jack@z.cash>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Before this PR, the linenumber infomaition is output if trailing-space
or tab code was found, but the output occurence is only per a file.
This PR separates the output timing of file name and line number.
As a result, users will find where they need to fix more easily.
Lint checks should not test these, they are historical documents,
and we don't want to encourage silly changes to them to satisfy
a checker.
Hopefully makes travis pass again on master.
Tree-SHA512: 37e6716c4fd5e8a4e579f9b84042e6b0ac224836b6c851cd1ca3f7d46611ffd3003bed0ae08dd0457f69d6eaa485a0d21c631e7ef16b14bdb0f2f78ea700332d
This adds a new CHECK_DOC check that looks for newly introduced trailing
whitespace. Existing trailing whitespace (of which there is plenty!)
will not trigger an error.
This is written in a generic way so that new lint-*.sh scripts can be
added to contrib/devtools/, as I'd like to contribute additional lint
checks in the future.
Enabled ShellCheck rules:
SC1087
SC2001
SC2004
SC2005
SC2006
SC2016
SC2028
SC2048
SC2066 (note that IFS already contains only a line feed)
SC2116
SC2166
SC2181
SC2206
SC2207
SC2230
SC2236
Zcash: Only the changes that applied to the versions of the scripts we have.
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>
Replace OpenSSL AES with ctaes-based version
Backported from upstream PR https://github.com/bitcoin/bitcoin/pull/7689.
This is backported primarily to remove merge conflicts for a subsequent
backport, and also helps us towards removing OpenSSL. Its actual usage
in wallet encryption would be replaced by a more modern construction
before we make wallet encryption a supported feature, but for now this
does not affect anyone using the experimental feature.
Previously, we did not include the macOS SDK libc++ headers in our SDK
creation process and instead used whichever libc++ headers shipped with
the clang package we downloaded in depends.
This change adds a script (which works on both GNU/Linux and macOS) to
correctly generate the macOS SDK including the libc++ headers. This can
be thought of as a simplified rewrite of tpoechtrager's script:
d3392f4eae/tools/gen_sdk_package.sh
The location within the SDK where we place the libc++ headers is chosen
such that clang's search path detection logic for sysroots would pick up
the headers properly.
We also document this change.