Skip to content

Conversation

@str4d
Copy link
Contributor

@str4d str4d commented Oct 15, 2016

This PR pulls in all gitian-related PRs that have been merged upstream since 0.11.2. The only ones I left out were documentation-only PRs, because we removed doc/gitian-building.md at some point. Here are the commits applied here, in the order shown in git log (ie. last to first):

Part of #540

str4d and others added 17 commits October 15, 2016 13:47
Add a check to symbol-check.py that checks that only the subset of
allowed libraries is imported (to avoid incompatibilities).

See 56734f4 for the earlier changes.
Forgot to add these.
Also add a short description for each required library.
[Zcash: removed doc/gitian-building.md]
These are not added to the default checks because some of them depend on
release-build configs.

[Zcash: See 56734f4 for check-security]
glibc absorbed clock_gettime in 2.17. librt (its previous location) is safe to
link in anyway for back-compat.

Fixes #7420
This removes the following executables from the binary gitian release:

- test_bitcoin-qt[.exe]
- bench_bitcoin[.exe]

@jonasschnelli and me discussed this on IRC a few days ago - unlike the
normal `bitcoin_tests` which is useful to see if it is safe to run
bitcoin on a certain OS/environment combination, there is no good reason
to include these. Better to leave them out to reduce the download
size.

Sizes from the 0.12 release:
```
2.4M bitcoin-0.12.0/bin/bench_bitcoin.exe
 22M bitcoin-0.12.0/bin/test_bitcoin-qt.exe
```
This does not break any existing prefix behavior, only makes new behavior work.

For example:
CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/
The -debug tarballs/zips contain detached debugging symbols. To use them, place
in the same dir as the target binary, and invoke gdb as usual.

Also, because the debug symbols add a substantial space requirement, the build
dirs are now deleted when they're no longer needed.
@str4d str4d added Zcash codebase A-build Area: Build system C-upstream-port Category: Changes that are ported from the Bitcoin Core codebase. labels Oct 15, 2016
WRAP_DIR=$HOME/wrapped
HOSTS="i686-pc-linux-gnu x86_64-unknown-linux-gnu"
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I accidentally left --disable-bench in here (upstream added a benchmark framework in bitcoin/bitcoin#6733 with an associated disable flag that they added to gitian), but it does no harm and will mean we don't forget about adding it if we do eventually pull in bitcoin/bitcoin#6733 from upstream.

Currently it does not recognise any of the C++11 symbols. We can re-enable this
when either we update it, or upstream migrates to C++11 and does so.
@daira
Copy link
Contributor

daira commented Oct 15, 2016

If we're maintaining the gitian build process now, can we put back gitian-building.md and include the updates to it? Sorry if this is more work. (I guess just putting it back as it is after the updates would also be sufficient, if that's easier.)

@str4d
Copy link
Contributor Author

str4d commented Oct 15, 2016

Mmm. I'll try and figure out where it was deleted; if I revert that commit, then I can rework this PR to include all the documentation changes. That said, our documentation is actually going to be a little different, since instead of codifying the build process in a Markdown document, it is being codified in a Vagrant VM + Ansible.

@daira
Copy link
Contributor

daira commented Oct 15, 2016

Ah OK. Would having that doc be redundant with the Vagrant+Ansible config, or is it useful to read anyway? I'll leave it up to you whether to put it back.

@ageis
Copy link
Contributor

ageis commented Oct 15, 2016

@daira I prefer to keep the documentation in ages/zcash-gitian (which I will eventually move to our GitHub organization), and we can link to it from elsewhere. The old gitian-building.md is not going to be relevant, necessary or useful for us. It contains a lot of manual steps for Bitcoin which we have automated away.

@daira
Copy link
Contributor

daira commented Oct 15, 2016

OK cool, then I withdraw the request to add it back.

@daira
Copy link
Contributor

daira commented Oct 15, 2016

utACK. (I just scanned the overall diff and saw nothing objectionable; I didn't check correspondence to the upstream patches.)

The workaround to ensure Windows build determinism mentioned here is probably no longer necessary since we could just use a more recent binutils that has fixed https://sourceware.org/bugzilla/show_bug.cgi?id=16192 , but it's fine for now.

@str4d
Copy link
Contributor Author

str4d commented Oct 16, 2016

It might be useful to hear from @defuse as to whether he left the check-symbols changes out because they were useless to us, or for some other reason. I'm personally inclined to include them in here because it makes future upstream diffs easier, but if there's a specific reason to leave them out, it would be good to know.

@str4d
Copy link
Contributor Author

str4d commented Oct 16, 2016

@bitcartel up to you if you want to land this in RC 1 (but the deterministic Gitian build process depends on this PR, and is almost completely finished).

@bitcartel
Copy link
Contributor

@str4d Reviewing this now.

@bitcartel
Copy link
Contributor

Automated tests pass.

@bitcartel
Copy link
Contributor

ACK

1 similar comment
@ageis
Copy link
Contributor

ageis commented Oct 17, 2016

ACK

@bitcartel
Copy link
Contributor

@zkbot r+

@zkbot
Copy link
Contributor

zkbot commented Oct 17, 2016

📌 Commit 7d1c2d0 has been approved by bitcartel

@bitcartel
Copy link
Contributor

@zkbot retry

@bitcartel
Copy link
Contributor

@zkbot force

2 similar comments
@bitcartel
Copy link
Contributor

@zkbot force

@bitcartel
Copy link
Contributor

@zkbot force

zkbot pushed a commit that referenced this pull request Oct 17, 2016
Upstream gitian updates

This PR pulls in all gitian-related PRs that have been merged upstream since 0.11.2. The only ones I left out were documentation-only PRs, because we removed `doc/gitian-building.md` at some point. Here are the commits applied here, in the order shown in `git log` (ie. last to first):

- bitcoin/bitcoin#7283
  - fa42a67
  - fa58c76
- bitcoin/bitcoin#8175
  - 74c1347
- bitcoin/bitcoin#8167
  - 7e7eb27
  - ad38204
  - b676f38
- bitcoin/bitcoin#7776
  - f063863
- bitcoin/bitcoin#7424
  - a81c87f ~ we already partly applied
  - a8ce872
  - f3d3eaf ~ we already partly applied
  - 475813b
  - ~~cd27bf5~~ X we already applied
- bitcoin/bitcoin#7060
  - 3b468a0 ~ we removed doc/gitian-building.md
  - ~~99fda26~~ X we removed doc/gitian-building.md
- bitcoin/bitcoin#7251
  - fa09562
- bitcoin/bitcoin#6900
  - ~~2cecb24~~ X we removed doc/gitian-building.md
  - 957c0fd
  - 2e31d74
  - ~~0b416c6~~ X we removed QT
  - 9f251b7
- bitcoin/bitcoin#6854
  - 579b863 ~ we already partly applied

Part of #540
@zkbot
Copy link
Contributor

zkbot commented Oct 17, 2016

⌛ Testing commit 7d1c2d0 with merge 4ee9d71...

@zkbot
Copy link
Contributor

zkbot commented Oct 17, 2016

☀️ Test successful - zcash

@zkbot zkbot merged commit 7d1c2d0 into zcash:master Oct 17, 2016
@str4d str4d deleted the upstream-gitian-updates branch October 17, 2016 16:14
@str4d str4d mentioned this pull request Feb 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-build Area: Build system C-upstream-port Category: Changes that are ported from the Bitcoin Core codebase. Zcash codebase

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants