bitcoin/contrib
Carl Dong 96cc6bb04f guix/prelude: Override VERSION with FORCE_VERSION
Previously, if the builder exported $VERSION in their environment (as
past Gitian-building docs told them to), but their HEAD does not
actually point to v$VERSION, their build outputs will differ from those
of other builders.

This is because the contrib/guix/guix-* scripts only ever act on the
current git worktree, and does not try to check out $VERSION if $VERSION
is set in the environment.

Setting $VERSION only makes the scripts pretend like the current
worktree is $VERSION.

This problem was seen in jonatack's attestation for all.SHA256SUMS,
where only his bitcoin-22.0rc3-osx-signed.dmg differed from everyone
else's.

Here is my deduced sequence of events:

1. Aug 27th: He guix-builds 22.0rc3 and uploads his attestations up to
   guix.sigs

2. Aug 30th, sometime after POSIX time 1630310848: he pulls the latest
   changes from master in the same worktree where he guix-built 22.0rc3
   and ends up at 7be143a960

3. Aug 30th, sometime before POSIX time 1630315907: With his worktree
   still on 7be143a960, he guix-codesigns. Normally, this would result
   in outputs going in guix-build-7be143a960e2, but he had
   VERSION=22.0rc3 in his environment, so the guix-* scripts pretended
   like he was building 22.0rc3, and used 22.0rc3's guix-build directory
   to locate un-codesigned outputs and dump codesigned ones.

   However, our SOURCE_DATE_EPOCH defaults to the POSIX time of HEAD
   (7be143a960), which made all timestamps in the resulting codesigned
   DMG 1630310848, 7be143a960e2's POSIX timestamp. This differs from the
   POSIX timestamp of 22.0rc3, which is 1630348517. Note that the
   windows codesigning procedure does not consider SOURCE_DATE_EPOCH.

We resolve this by only allowing VERSION overrides via the FORCE_VERSION
environment variable.
2021-08-31 10:57:04 -04:00
..
builder-keys contrib: use hkps://keys.openpgp.org to retrieve builder keys 2021-08-17 08:59:04 +08:00
debian doc: Fix external links (IRC, ...) 2021-05-31 17:27:57 +02:00
devtools scripts: prevent GCC optimising test symbols in test-symbol-check 2021-08-09 13:59:48 +08:00
gitian-descriptors Merge bitcoin/bitcoin#21871: scripts: add checks for minimum required OS versions 2021-06-18 15:21:47 +08:00
guix guix/prelude: Override VERSION with FORCE_VERSION 2021-08-31 10:57:04 -04:00
init Merge #21418: contrib: Make systemd invoke dependencies only when ready 2021-03-22 15:15:14 +01:00
linearize refactor: replace remaining binascii method calls 2021-08-16 19:30:56 +01:00
macdeploy macdeploy: alternative info to download the macOS SDK 2021-07-29 10:59:14 +02:00
message-capture
qos test: fix file permissions on various scripts 2021-04-23 17:13:28 -07:00
seeds contrib, p2p: update I2P hardcoded seeds 2021-07-30 11:03:44 +02:00
shell guix: Add source-able bash prelude and utils 2021-04-05 11:00:21 -04:00
signet Merge bitcoin/bitcoin#22660: contrib: catch bitcoin-cli RPC call errors in getcoins.py 2021-08-26 10:04:57 +02:00
testgen bugfix: fix bech32_encode calls in gen_key_io_test_vectors.py 2021-03-18 14:28:46 -07:00
tracing tracing: Tracepoint for connected blocks 2021-07-27 17:12:38 +02:00
verify-commits contrib: use hkps://keys.openpgp.org to retrieve builder keys 2021-08-17 08:59:04 +08:00
verifybinaries Fix typo in comment 2021-07-27 14:01:08 +07:00
windeploy Merge bitcoin/bitcoin#22017: Update Windows code signing certificate 2021-05-27 21:51:58 +02:00
zmq refactor: replace remaining binascii method calls 2021-08-16 19:30:56 +01:00
bitcoin-cli.bash-completion
bitcoin-tx.bash-completion
bitcoind.bash-completion
filter-lcov.py
gitian-build.py build: Xcode 12.1, macOS SDK 10.15.6 2021-05-01 13:39:45 +08:00
install_db4.sh contrib: use newer config.guess & config.sub in install_db4.sh 2021-07-22 14:49:21 +08:00
README.md tree-wide: Rename gitian-keys to builder-keys 2021-07-08 11:29:54 -04:00
valgrind.supp

Repository Tools

Developer tools

Specific tools for developers working on this repository. Additional tools, including the github-merge.py script, are available in the maintainer-tools repository.

Verify-Commits

Tool to verify that every merge commit was signed by a developer using the github-merge.py script.

Linearize

Construct a linear, no-fork, best version of the blockchain.

Qos

A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.

Seeds

Utility to generate the pnSeed[] array that is compiled into the client.

Build Tools and Keys

Packaging

The Debian subfolder contains the copyright file.

All other packaging related files can be found in the bitcoin-core/packaging repository.

Gitian-descriptors

Files used during the gitian build process. For more information about gitian, see the the Bitcoin Core documentation repository.

Builder keys

PGP keys used for signing Bitcoin Core release results.

MacDeploy

Scripts and notes for Mac builds.

Gitian-build

Script for running full Gitian builds.

Test and Verify Tools

TestGen

Utilities to generate test vectors for the data-driven Bitcoin tests.

Verify Binaries

This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.