Conversation
There was a problem hiding this comment.
Why do you add this here? What exactly does it do, if you say rebuilding isn't necessary?
There was a problem hiding this comment.
Hmm yes maybe it is necessary.
There was a problem hiding this comment.
Okay -- in that case, don't forget to increment the dependency version.
|
At least rebuild Qt after this. I'm not 100% sure that it is needed, but there is a large chance that Qt itself is also using the resource compiler somewhere. |
|
ACK |
- Add 'g++' package (virtualbox images don't have this by default) - Workaround for determinism in Qt5 resources - Pass --disable-maintainer-mode --disable-dependency-tracking to configure for libqrencode to avoid random errors about missing m4 directory - Fix typo -with-pic -> --with-pic It is not necessary to rebuild dependencies after this commit. Fixes bitcoin#3610 and bitcoin#3612.
|
Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/65615a3a784c01128b408a915ab375c35640fb0a for binaries and test log. |
|
This seems to fix at least all the determinism issues on KVM. I built the entire chain (including all dependencies) twice and ended up with the same result: Edit: now going to try with LXC and see if it different (and if so, why). |
|
I've written down the steps I had to follow to get the LXC build to work on Ubuntu 12.04: |
|
@laanwj Hm, what's wrong with doing it the way @devrandom suggests in his README, with these commands: ? Other than that, I don't see anything different in your gist relating to the build itself. Any idea what the difference might be? |
|
I've rebuilt the entire dependency chain in LXC and got the same result as above. So, seems deterministic. Edit: nothing is wrong with @devrandom's way, but I wanted to use the lxcbr0 device provided by Ubuntu itself instead of creating a new one. This will not make a difference to the executable. |
65615a3 Gitian fixes for 0.9.0rc1 build (Wladimir J. van der Laan)
|
@gavinandresen I've merged this, but I'm not sure how to do proceed. Can/should we re-tag rc1 to make sure that people build with these gitian descriptors? |
|
Best to just consider rc1 dead, bump version numbers, and jump to rc2. |
|
Hm, let's wait a bit. I'm not getting deterministic builds for Linux. |
|
OK on waiting a bit; we should make sure we can cobble together builds that match before bumping version numbers. FYI: I'll be out Wed-Fri this week, headed down to Princeton and DC. |
|
Let's try to get it ready today then. I figured out the cause of non-determinism (OpenSSL embeds a timestamp, should use faketime during OpenSSL build). |
…rminism c799a19 build, qt: No longer need to set QT_RCC_TEST=1 for determinism (Hennadii Stepanov) Pull request description: The Qt Resource Compiler (rcc) output order relies on [`QHash`](https://doc.qt.io/qt-5/qhash.html): > This randomization of `QHash` is enabled by default. Even though programs should never depend on a particular `QHash` ordering, there may be situations where you temporarily need deterministic behavior, for example for debugging or regression testing. To disable the randomization, define the environment variable `QT_HASH_SEED` to have the value 0. Since #3620 we use `QT_RCC_TEST=1` to achieve a deterministic output. Since Qt 5.3.1 hash seeding is disabled for all of the bootstrapped tools, including rcc. Therefore, `QT_RCC_TEST=1` is no longer needed. See commit [5283a6c87beac5a43f612786fefd6e43f2c70bf6](qt/qtbase@5283a6c). ACKs for top commit: fanquake: ACK c799a19 Tree-SHA512: 9d116ac1e8c605ee3e8ed7f618586f0de85d8b06bbbb70fe8c298939ce203d2a7e97264a9afac037179993ab54c5f69a65ebb9ab27ca7f45acb963011bd45743
…or determinism c799a19 build, qt: No longer need to set QT_RCC_TEST=1 for determinism (Hennadii Stepanov) Pull request description: The Qt Resource Compiler (rcc) output order relies on [`QHash`](https://doc.qt.io/qt-5/qhash.html): > This randomization of `QHash` is enabled by default. Even though programs should never depend on a particular `QHash` ordering, there may be situations where you temporarily need deterministic behavior, for example for debugging or regression testing. To disable the randomization, define the environment variable `QT_HASH_SEED` to have the value 0. Since bitcoin#3620 we use `QT_RCC_TEST=1` to achieve a deterministic output. Since Qt 5.3.1 hash seeding is disabled for all of the bootstrapped tools, including rcc. Therefore, `QT_RCC_TEST=1` is no longer needed. See commit [5283a6c87beac5a43f612786fefd6e43f2c70bf6](qt/qtbase@5283a6c). ACKs for top commit: fanquake: ACK c799a19 Tree-SHA512: 9d116ac1e8c605ee3e8ed7f618586f0de85d8b06bbbb70fe8c298939ce203d2a7e97264a9afac037179993ab54c5f69a65ebb9ab27ca7f45acb963011bd45743
configure for libqrencode to avoid random errors about missing m4
directory
It is
notnecessary to rebuild dependencies after this commit.Fixes #3610 and #3612.