-
Notifications
You must be signed in to change notification settings - Fork 45
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
riotdocker-base: bump to 2022.04 (Jammy Jellyfish) #189
Conversation
@chrysn I think we need a newer c2rust build (based on jammy):
Maybe tag it differently so the old one stays until this PR is merged? |
IIUC it should suffice if I build c2rust-built on the current branch (with the right riotdocker); I'll publish it as :jammy (probably tomorrow morning after this has run through) and then this branch can switch over to :jammy (and maybe we should stick with Ubuntu version names rather than :latest anyway). |
Hm, it's not tha trivial due to OpenSSL version mismatches, investigating tomorrow. |
I don't see a trivial route for fixing this right now -- C2Rust depends on OpenSSL 1.x (which is also the default libssl-dev in Debian even now), but Ubuntu switched to OpenSSL 3 while Debian still has that only marked as "experimental". I'm running some tests with selectively updated C2Rust dependencies, maybe that gets us somewhere; in parallel, I'm looking into whether we can unpin the C2Rust version altogether (looks like they're preparing a new major release, so I'm careful there to just update master). |
The new upstream release of c2rust looks like the most promising route; I hoped to let it mature a bit more, but it appears to solve the issue of not accepting the new OpenSSL version (judging by other openssl-sys dependent packages building on jammy). Looks right now like it'll need one or two bug fixes, and a riot-sys update to get the generalized workarounds where they depended on properties of the old version, but generally that update would simplify things a lot anyway, as it allows building c2rust without downloading an ancient nightly. |
Is there a chance we can then also use #116? |
The Rust situation is largely resolved with RIOT-OS/RIOT#18048 that pulls in a riot-sys with support for the latest C2Rust. I do have working builds locally with a branch of C2Rust (mainly branches that upstream is about to merge, plus a change to be able to tell which C2Rust version we're actually using). If you want to press this fast, I can get these ship-shape, but I'd prefer to wait for their release (immunant/c2rust#388), as that'd allow simplifying things further ( |
I don't think there's any rush. No need to press this. |
Other than on the Rust side, how far along is this? (Options for the C2Rust update are to do it in here, or to do it on a separate update still on focal, as using the new C2Rust version is now also a blocker for RIOT-OS/RIOT#18056) [edit:] Never mind, started it on focal as it's cleaner that way anyway; see #195 |
195: Update C2Rust to 0.16 r=kaspar030 a=chrysn Things got a lot easier since upstream did awesome work leading up to immunant/c2rust#365. This release allows riot-sys to do away with a quite a few workarounds, and resolves a blocker for RIOT-OS/RIOT#18056 in passing. This is a prerequisite for #189 (in the course of which C2Rust can then be simplified further, as we can just use Rust from Ubuntu to build it, or even simply let this become a Debian package over time). Co-authored-by: chrysn <chrysn@fsfe.org>
195: Update C2Rust to 0.16 r=kaspar030 a=chrysn Things got a lot easier since upstream did awesome work leading up to immunant/c2rust#365. This release allows riot-sys to do away with a quite a few workarounds, and resolves a blocker for RIOT-OS/RIOT#18056 in passing. This is a prerequisite for #189 (in the course of which C2Rust can then be simplified further, as we can just use Rust from Ubuntu to build it, or even simply let this become a Debian package over time). Co-authored-by: chrysn <chrysn@fsfe.org>
If you rebase that onto master after #195 is in, you can switch the riotbuild/Dockerfile (The more I think of it, the more I want to get rid of the docker tag switcharoo, and just start doing a |
let's see. :) |
I can't make it a suggestion from the GitHub GUI as it's outside the range, but seeing that LLVM version is parameterized, |
I've bumped numpy to 1.22.4. It's marked as emlearn dependency, and emlearn specifies ">=1.14.0". Where is this used? @aabadie do you know? |
https://github.com/RIOT-OS/RIOT/tree/master/tests/pkg_emlearn |
This is making RIOT-OS/RIOT#18565 harder than it needs to be. Is there anything left that's keeping us from continuing with this? Let's ask one expert: bors try |
c0a8000
to
786a371
Compare
hm, it seems like this passed. |
Not ACKing yet because there's a fixup left in this (and we don't have CI checks that prevent merging them). I think this is good for a squash and then prime time. (We're still well on time to have this for 2022.10). |
786a371
to
116a48d
Compare
IMO we should maybe merge this on a tuesday morning with a bunch of motivated sprinters ready to fix the fallout. |
Or a Monday afternoon (like, in 8 hours), so that if there is breakage, CI would have gathered failure reports from a few runs that the sprinters can work on. |
bors try |
tryBuild succeeded:
|
so, should we do it? (needs an ACK) btw, the actions already do a "try". |
bors merge |
Build succeeded: |
Build failures after RIOT-OS#189 show that the test coverage is insufficient to catch C2Rust breakage; this mitigates it by building an example that pulls in much more code.
209: CI: Test Rust both with hello-world and gcoap example r=kaspar030 a=chrysn Build failures after #189 show that the test coverage is insufficient to catch C2Rust breakage; this mitigates it by building an example that pulls in much more code. [edit: Also, this is a good base to look into whether this needs / can be fixed on the image rather than on the Rust side, and it keeps pressure off Murdock by testing it here]. Co-authored-by: chrysn <chrysn@fsfe.org>
Seems like with this update libasan is now missing from the Docker container. All release tests for native failed tonight: https://github.com/RIOT-OS/RIOT/actions/runs/3163069653/jobs/5150275711 |
Trying to just bump. (/me crossing fingers)