-
Notifications
You must be signed in to change notification settings - Fork 38.8k
guix: Pin Guix using guix time-machine
#17933
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Wasn't the conclusion that the channel could be in the same repo? See #16519 (comment) Though, I guess the time machine still makes sense when we can switch it to vanilla upstream and not use |
Ah sorry, what I meant to say is that using Previously in #16519, we had to point to the channel (which contained some extra packages), which in turn pointed to the version of Guix we wanted. Side benefit: if we used channels in |
|
Approach ACK 4763171ff7ad03e654ccd9f78b5ac5ab17aecd25 Didn't test or review the diff to guix upstream |
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
|
Concept ACK
Big ++ if this means the project doesn't have to maintain more build / packaging infrastructure. I've completed a Guix build using this PR (4763171) and this Docker container: env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
guix 65b510b
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 65b510bbc4f2a9ce5bfe3355e6006e9d08f14532
git rev-parse HEAD
4763171ff7ad03e654ccd9f78b5ac5ab17aecd25
find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
edf4db52c0835a89dec1b9c90d7fe43bf94a7ffaa0a9cf54b528bf97283af256 output/bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz
816d5a669333ee84a665b8ec8873a288123f4f0008b2943461393f27aacbb7bc output/bitcoin-0.19.99-aarch64-linux-gnu.tar.gz
3b211b8c7056c81afba457f56f5fbc8a93d819880fac5e464d9a49d82aa87d60 output/bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gz
7ae65539e3866af01e843b1008bd604dccf0c327a811a5fbff749a0a0ac3ebbe output/bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz
0215604cd6706a58a798112bd5284ee2b4d8c941a2da2ba129eefd6f9b615fb1 output/bitcoin-0.19.99-i686-linux-gnu-debug.tar.gz
1a19ffc68a191c5246e8ed30c34548c9ac4351bcf4070b29799144e60cf43476 output/bitcoin-0.19.99-i686-linux-gnu.tar.gz
6632680da7511d941e40a7663246d167b5ce5a58924c9923790988707d71f628 output/bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz
b3acdb8db33d77cabe99198e4db2b94757b5bfb5b68b29568ffd432a6d6380d6 output/bitcoin-0.19.99-riscv64-linux-gnu.tar.gz
dab9bf161c283d996b4bf168c7365d966375b434d2a329fbfeb02ee252dba824 output/bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz
7ba0242c970eb466a20cfc015f88fb472efba08df5c25b9d668878515a420d07 output/bitcoin-0.19.99-x86_64-linux-gnu.tar.gz
4ac1efb49459a1bb98216580ca3f05c367b8628440505141e924c8de6691639e output/src/bitcoin-0.19.99.tar.gz |
|
Why is this a draft? |
fanquake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason why I didn't originally propose this is because guix time-machine is a recent addition to Guix, only available since f675f8dec73d02e319e607559ed2316c299ae8c7
Given that Guix is a new addition to the project, and there's only a few people doing builds, I've got no issue with us requiring Guix master for now.
I've completed time-machine builds for Linux and Windows. macOS builds are also working as far as I know; I haven't done a build yet, because I haven't got an SDK with the headers packaged.
I've taken a quick look at the 2019-10-bitcoin-staging-GREAT-CORE-UPDATES-MERGE branch as well. I can see the changes you've made match some upstream discussion on the Guix mailing list here.
It also seems that your commit with David Truby's fix for libstdc++ has now made it into Guix master 496bbeee7a0afbf1c7cbcc0de8c33c2111cb661f. So I guess will be dropped when you pull upstream.
@dongcarl I'd be pretty happy for us to merge this change. Will ACK once you mark as ready for review.
Fantastic, see my matching hashes below. Note that even though our $ guix describe
Generation 36 Jan 14 2020 14:50:02 (current)
guix 09bad3c
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 09bad3cd42ca51974f3697f04ce841bf2fe6786c
$ git rev-parse HEAD
4763171ff7ad03e654ccd9f78b5ac5ab17aecd25
$ find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
edf4db52c0835a89dec1b9c90d7fe43bf94a7ffaa0a9cf54b528bf97283af256 output/bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz
816d5a669333ee84a665b8ec8873a288123f4f0008b2943461393f27aacbb7bc output/bitcoin-0.19.99-aarch64-linux-gnu.tar.gz
3b211b8c7056c81afba457f56f5fbc8a93d819880fac5e464d9a49d82aa87d60 output/bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gz
7ae65539e3866af01e843b1008bd604dccf0c327a811a5fbff749a0a0ac3ebbe output/bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz
0215604cd6706a58a798112bd5284ee2b4d8c941a2da2ba129eefd6f9b615fb1 output/bitcoin-0.19.99-i686-linux-gnu-debug.tar.gz
1a19ffc68a191c5246e8ed30c34548c9ac4351bcf4070b29799144e60cf43476 output/bitcoin-0.19.99-i686-linux-gnu.tar.gz
6632680da7511d941e40a7663246d167b5ce5a58924c9923790988707d71f628 output/bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz
b3acdb8db33d77cabe99198e4db2b94757b5bfb5b68b29568ffd432a6d6380d6 output/bitcoin-0.19.99-riscv64-linux-gnu.tar.gz
dab9bf161c283d996b4bf168c7365d966375b434d2a329fbfeb02ee252dba824 output/bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz
7ba0242c970eb466a20cfc015f88fb472efba08df5c25b9d668878515a420d07 output/bitcoin-0.19.99-x86_64-linux-gnu.tar.gz
4ac1efb49459a1bb98216580ca3f05c367b8628440505141e924c8de6691639e output/src/bitcoin-0.19.99.tar.gz |
Wait a minute, doc. Are you telling me you built a time machine... Out of a functional package manager?
4763171 to
88c8363
Compare
|
Marking as "Ready for review": 88c8363 Changes since fanquake's last build
Some context on my Guix branchOutstanding commits between my Guix branch and Guix master: dongcarl/guix@3776062...b3a7c72 Proof that |
fanquake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 88c8363
Ran another build and seeing (new) matching results:
bash-5.0# env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
guix 7ee8acb
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 7ee8acbb76bd440a8985a4b2a20b75521c6853ed
bash-5.0# git rev-parse HEAD
88c83636d5a56bd9551577139786bdd3e74852c2
bash-5.0# find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
39608e90c90be13c10488c25fb4bfa3969c5304a4fcde21ce8c57acc0947c9d8 output/bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz
0540ab5aba8959c45255b60077ee7498333852f3d2067610357d811925762f61 output/bitcoin-0.19.99-aarch64-linux-gnu.tar.gz
cc1fcc9dd71162baa0f8d85ae9b514bdbf7f92001bfbd45998dd6db92260edc0 output/bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gz
f978a4496dd37aa7588e7868ae52607b7e8849d86d27b82f2007ea369cddd1fc output/bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz
92da6f327f187cc44bd30c31852111bf09879640efac630303bad2f040e20b93 output/bitcoin-0.19.99-i686-linux-gnu-debug.tar.gz
db4654620e0dfe03c4f3a3570b1a9cace15c28c9f68497614710156b7a4a1318 output/bitcoin-0.19.99-i686-linux-gnu.tar.gz
d841618b51ce5e9a83ca789b89e86b617c646fee2c9d15487e521e29741f4e72 output/bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz
879e526aa5139eea666c949036d811652c3c6f7e3601a53a7617bc21738baf1a output/bitcoin-0.19.99-riscv64-linux-gnu.tar.gz
5cde323bbcf1c3331be294b562aab477a72adfad141d5e019ff10e1753178de8 output/bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz
8cf0240185043fdcfb41500058bbc60c7ec61d15ec30230cc9a33c8e99d73955 output/bitcoin-0.19.99-x86_64-linux-gnu.tar.gz
843f958009812087fcb68fab8117d7710db19bcc64d36966121975718609dced output/src/bitcoin-0.19.99.tar.gzHad another look over your branch guix branch as well. Do you have any sort of timeline in regards to your patches being upstreamed? We should probably update #16496.
I've also updated the Guix instructions in core-review to pull from master rather than your repo.
88c8363 guix: Update documentation for time-machine (Carl Dong) e605088 guix: Pin Guix using `guix time-machine` (Carl Dong) Pull request description: An alternative to #16519, pinning our version of Guix and eliminating a `guix pull` and changing the default Guix profile of builders. I think this method might be superior, as it: - Eliminates the possibility of future changes to the `guix environment` command line interface breaking our builds - Eliminates the need to set up a separate channel repo It is a more general pinning solution than #16519. ----- The reason why I didn't originally propose this is because `guix time-machine` is a recent addition to Guix, only available since `f675f8dec73d02e319e607559ed2316c299ae8c7` ACKs for top commit: fanquake: ACK 88c8363 Tree-SHA512: 85e03b0987ffa86da73e02801e1cd8b7622698d70c4ba4e60561611be1e9717d661c2811a59b3e137b1b8eef2d0ba37c313867d035ebc89c3bd06a23a078064a
| [guix/env-setup]: https://www.gnu.org/software/guix/manual/en/html_node/Build-Environment-Setup.html | ||
| [guix/substitutes]: https://www.gnu.org/software/guix/manual/en/html_node/Substitutes.html | ||
| [guix/substitute-server-auth]: https://www.gnu.org/software/guix/manual/en/html_node/Substitute-Server-Authorization.html | ||
| [guix/inferiors]: https://www.gnu.org/software/guix/manual/en/html_node/Inferiors.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can remove unused link now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made a note to fix this in 17595.
a35e323 guix: Appease travis. (Carl Dong) 0b66d22 guix: Use gcc-9 for mingw-w64 instead of 8 (Carl Dong) ba0b99b guix: Don't set MINGW_HAS_SECURE_API CFLAG in depends (Carl Dong) 93439a7 guix: Bump to upstream commit with mingw-w64 changes (Carl Dong) 35a9679 guix: Check mingw symbols, improve SSP fix docs (Carl Dong) 449d8fe guix: Expand on INT trap message (Carl Dong) 3f1f03c guix: Spelling fixes (Carl Dong) ff821dd guix: Reinstate make-ssp-fixed-gcc (Carl Dong) 360a9e0 guix: Bump time-machine for mingw-w64 patches (Carl Dong) 93e41b7 guix: Use gcc-8 for mingw-w64 instead of 7 (Carl Dong) ef4f7e4 guix: Set the well-known timezone env var (Carl Dong) acf4b3b guix: Make x86_64-w64-mingw32 builds reproducible (Carl Dong) c4cce00 guix: Remove dead links from README. (Carl Dong) df953a4 guix: Appease shellcheck. (Carl Dong) 91897c9 guix: Improve guix-build.sh documentation (Carl Dong) 570d769 guix: Build support for Windows (Carl Dong) Pull request description: ~~Based on: #16519 Based on: #17933 (Time Machines are... shall we say... superior 😁) This PR allows us to perform Guix builds for the `x86_64-w64-mingw32` target. We do this _without_ splitting up the build script like we do in Gitian by using this newfangled alien technology called `case` statements. (This is WIP and might be changed to `if` statements soon) ACKs for top commit: fanquake: ACK a35e323 2/3 Tree-SHA512: c471951c23eb2cda919a71285d8b8f2580cb20f09d5db17b53e13dbd8813e01b3e7a83ea848e4913fd0f2bc12c6c133c5f76b54e65c0d89fed4dfd2e0be19875
…arget a35e323 guix: Appease travis. (Carl Dong) 0b66d22 guix: Use gcc-9 for mingw-w64 instead of 8 (Carl Dong) ba0b99b guix: Don't set MINGW_HAS_SECURE_API CFLAG in depends (Carl Dong) 93439a7 guix: Bump to upstream commit with mingw-w64 changes (Carl Dong) 35a9679 guix: Check mingw symbols, improve SSP fix docs (Carl Dong) 449d8fe guix: Expand on INT trap message (Carl Dong) 3f1f03c guix: Spelling fixes (Carl Dong) ff821dd guix: Reinstate make-ssp-fixed-gcc (Carl Dong) 360a9e0 guix: Bump time-machine for mingw-w64 patches (Carl Dong) 93e41b7 guix: Use gcc-8 for mingw-w64 instead of 7 (Carl Dong) ef4f7e4 guix: Set the well-known timezone env var (Carl Dong) acf4b3b guix: Make x86_64-w64-mingw32 builds reproducible (Carl Dong) c4cce00 guix: Remove dead links from README. (Carl Dong) df953a4 guix: Appease shellcheck. (Carl Dong) 91897c9 guix: Improve guix-build.sh documentation (Carl Dong) 570d769 guix: Build support for Windows (Carl Dong) Pull request description: ~~Based on: bitcoin#16519 Based on: bitcoin#17933 (Time Machines are... shall we say... superior 😁) This PR allows us to perform Guix builds for the `x86_64-w64-mingw32` target. We do this _without_ splitting up the build script like we do in Gitian by using this newfangled alien technology called `case` statements. (This is WIP and might be changed to `if` statements soon) ACKs for top commit: fanquake: ACK a35e323 2/3 Tree-SHA512: c471951c23eb2cda919a71285d8b8f2580cb20f09d5db17b53e13dbd8813e01b3e7a83ea848e4913fd0f2bc12c6c133c5f76b54e65c0d89fed4dfd2e0be19875
Bitcoin Core PR: bitcoin/bitcoin#17595 Pull request description: ~~Based on: bitcoin/bitcoin#16519 Based on: bitcoin/bitcoin#17933 (Time Machines are... shall we say... superior 😁) This PR allows us to perform Guix builds for the `x86_64-w64-mingw32` target. We do this _without_ splitting up the build script like we do in Gitian by using this newfangled alien technology called `case` statements. (This is WIP and might be changed to `if` statements soon)
An alternative to #16519, pinning our version of Guix and eliminating a
guix pulland changing the default Guix profile of builders.I think this method might be superior, as it:
guix environmentcommand line interface breaking our buildsIt is a more general pinning solution than #16519.
The reason why I didn't originally propose this is because
guix time-machineis a recent addition to Guix, only available sincef675f8dec73d02e319e607559ed2316c299ae8c7