-
Notifications
You must be signed in to change notification settings - Fork 714
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
[Depends] Cleanup Rust and add multi-arch linux support #2280
Conversation
I was able to build locally on x86_64, as well as with depends (using the last commit). Also couldn't complete gitian build:
|
remove all of the |
Mhm... same thing. I have also tried removing the whole |
@random-zebra these issues are likely due to a limitation of the One way around this is to have multiple local repos:
then the build command becomes something like The Another option that could be done with this, is spend the time to compile a more recent version of the Rust toolchain for each host OS (avg ~30 hrs each for armhf aarch64, and ~18-22 hrs for i686/x86_64 + time to compile std libraries for the various cross-compile targets). Doing this would, at the very least, avoid package version conflicts (the purpose of the final commit currently) as the version number would change. The downside is that it may introduce unwanted/unexpected results that may require more time to sort out. |
Thanks for the explanation. Unfortunately I wasn't able to make it work.
vs
|
hmm wait...were you trying to do a gitian build WITHOUT the last commit here? if so then it is expected that it won't work. The last commit's sole purpose is to allow testers to do gitian (and local depends) builds before the files are overwritten on Because this includes a re-build of the 1.42.0 rust toolchain distribution files (re-built for static linking to not have a host dependency on OpenSSL 1.1), the file names are the same as before, but obviously have a different shasums. So I purposely included the (temporary) last commit here that has the new toolchain distribution files hosted on The intention in doing it this way is to not have unrelated PRs depend on this PR's changes prior to this PR being reviewed/tested. Once this gets approval, I'll need to update the toolchain distribution files on |
Ok, great, now it's clear. ACK |
yeah sorry for the confusion...this kind of update is delicate and not really the ideal way of doing things. hopefully in the future we will be able to use the rust official toolchain distribution files once we require a minimum linux ABI for the C library of 2.18 (currently only CentOS 7 is holding this back, and it doesn't reach EOL until 2024...which is also not ideal) and rust doesn't include more ABI breaking symbols. |
d16f4e6
to
b8bc75a
Compare
b8bc75a
to
858773a
Compare
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.
Spent some time here, all good 👌. Have verified dependencies hash equality between depends and the cargo.lock file manually and tested it under depends on macOS Mojave.
ACK, ready to go.
quick update here: I'm holding off rebasing / merging this until the other 5.3.0 PRs are reviewed/merged. The primary reason for this hold is because once this is merged, EVERY open PR that needs to cycle through a CI run will need to be rebased on top of this just to pick up the new Rust package files, as existing files will be invalidated, so it is logistically best to merge this towards the end of a release cycle. |
this can be release on a point release after merging the priority PRs for v5.3 and/or while v5.3 is being tested. This work is not attached to any release timeframe anyway. The focus needs to be on validating that everything is working properly after merging the priority PRs 2411 and 2492 and bumping testnet. |
858773a
to
54304fb
Compare
can remove the last commit now, so this one can get merged right after the three small remaining PRs for v5.3. |
Rebuilt linux rust toolchains for static linking. This removes the host dependency on OpenSSL 1.1
54304fb
to
92bebbe
Compare
This script became un-necessary with PIVX-Project#2280, but the script file and it's reference in the Makefile weren't removed.
This script became un-necessary with PIVX-Project#2280, but the script file and it's reference in the Makefile weren't removed.
ec2d592 [Depends] Remove unused cargo-checksum.sh script (Fuzzbawls) Pull request description: This script became un-necessary with #2280, but the script file and it's reference in the Makefile weren't removed. Extracted from #2583 as this is a trivial change that is otherwise holding up a follow-up linting update and doesn't necessarily need to be included in #2583 ACKs for top commit: furszy: ACK ec2d592 random-zebra: utACK ec2d592 Tree-SHA512: f2754d4c05fd3274f3b0431a7804f40fc3c45ad21eeedc9e6521068ee5125ba92688131b9723b9cf9a833341d2be0277f8acb0fb9ede77c372c357df4c2780aa
The first commit here comes from zcash/zcash#4725 and provides a significant cleanup in terms of number of files needed in the depends tree.
The second commit re-works the way we fetch the Rust dependencies to allow depends to be built for linux on non-x86_64 systems. Currently I've compiled native toolchains for
x86_64
,arm
,armv7
, andaarch64
The third commit addresses #2127 by re-compiling the rust toolchains with static linking.
The fourth commit is temporary, and will be removed prior to merging.