After the merge of #18331, there are now two ways to create source tarballs.
make dist
git archive
It would seem that both methods are being used in our Gitian descriptor.
First, we run make dist
to create a bootstrapped tarball: https://github.com/bitcoin/bitcoin/blob/c5966a87d1fdd7a98f2baee5b2deddd541fdfb5a/contrib/gitian-descriptors/gitian-linux.yml#L143-L148
Which is used by each host to build the binary tarballs in the for loop: https://github.com/bitcoin/bitcoin/blob/c5966a87d1fdd7a98f2baee5b2deddd541fdfb5a/contrib/gitian-descriptors/gitian-linux.yml#L154-L191
Then, we use git archive
to create the final source tarball: https://github.com/bitcoin/bitcoin/blob/c5966a87d1fdd7a98f2baee5b2deddd541fdfb5a/contrib/gitian-descriptors/gitian-linux.yml#L194
It seems to me that perhaps it’d be good to reinstate the behaviour whereby our binary tarballs are built from the source tarball, just for robustness’s sake.
A simple fix might be:
- switch the earlier
make dist
togit archive
./autogen.sh
for each host- Remove the last call to
git archive
Perhaps this can even allow us to specify the no-dist
automake option and clean up dist
related targets in Makefile.am
.