-
-
Notifications
You must be signed in to change notification settings - Fork 17
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
ci(push-build): add RISC-V builds #504
Conversation
Okay, not so easy:
Others worked around it by switching form rusttls to OpenSSL: Skallwar/suckit#196 A PR/patch on ring itself seems to as well use OpenSSL internally (EDIT: It does in general, but here assembler is disabled): briansmith/ring#1436 |
It's kind of hilarious that rustls may eventually be using OpenSSL as a crypto backend anyway. Regardless, I'd rather not switch away from using rustls. Besides being more modern, it's been found to be faster and use less memory than OpenSSL (https://jbp.io/2019/07/01/rustls-vs-openssl-performance.html). And, even if we did switch away from rustls (and replaced |
Agreed. There are 4 PRs open about this, one by the ring repo owner itself: #1562 |
I was able to confirm Please make sure to: Yeah this cross build doesn't experience the same issue with sccache. It would definitely need to be built on actual riscv hardware to experience the exact issue. Please consider taking sccache out of the equation for this particular build by doing the above export for the mentioned environment variable. Why? It's because sccache itself uses the ring crate and can't be installed for the same reason. |
I'll be honest, I have no idea why nothing is building now. I'm using what should be the original |
Ah.
|
So far so good. Now some OpenSSL library or headers seem to be missing for the RISC-V arch, respectively the linker does not find them 🤔. |
Failing functions: EDIT: Ran the test suite with |
We could try it with a RISC-V container (debian-slim Sid Docker or DietPi RISC-V Sid with |
I don't think the cross containers have OpenSSL installed by default, and attempting to install it for RISC-V doesn't get it to compile. I'd be happy to try in a separate Docker container. P.S. Does DietPi have Docker support yet? I tried a while back and I got a ton of |
Nope we don't have a DietPi own Docker container as we don't see the use case. |
A niche use case, but it would make it easier for me to test DietPi-Dashboard on an actual DietPi system without having to spin up a full VM. |
What about a WSL2 container? |
We have these container images: https://dietpi.com/downloads/images/ But they do not work with Docker (or WSL2), only successfully tested with * The part with the needed bind mounts will be removed soon. This is needed as |
It compiled here: https://github.com/MichaIng/DietPi/actions/runs/4525391685/jobs/7972162111 Will try now the same with actual v0.16.20 as basis, but it is likely that recent changes made this possible. |
Okay I fail to succeed with v0.16.20 as well:
Very similar to how the build here fails. There are a bunch of other architecture specific So cross-compiling vs emulation does not make a difference here. For reference, my last (cumulative) commit: https://github.com/MichaIng/ring/commit/8a29d72ca5a6f860ccdef8e729ec277336dd6659 @omac777 |
Ring now has an active PR for RISC-V support: briansmith/ring#1627. |
I just saw and subscribed to this topic an hour ago, aiming to revive our attempt here once it has been merged 😄. I think, it will still take a while until a new Ring version is released, and then until the crates we need add support for this new Ring version. AFAIR there were some API changes. |
Request + PR for an update is there already: Keats/jsonwebtoken#333 ... not the only one:
For
|
We also need to update EDIT: Nice, finally! I fixed my |
I just enabled the dashboard with these artifacts for RISC-V in I'll keep an eye on the dependencies to switch back to upstream and stable where possible. |
We could now "downgrade" to latest rustls stable releases, which have their ring dependencies all updated: |
webpki v0.102 has been released: https://github.com/rustls/webpki/releases/tag/v/0.102.0
|
0f612df
to
ad5b4e8
Compare
71314b0
to
9d0e9bd
Compare
Seems like there was another breaking change in rustls between |
9d78588
to
130c57e
Compare
Signed-off-by: MichaIng <micha@dietpi.com>
Works now without any other changes from |
Let's see, whether it is that easy.