-
Notifications
You must be signed in to change notification settings - Fork 78
Update to Ubuntu 24.04 #2269
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
Update to Ubuntu 24.04 #2269
Conversation
RyanGlScott
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.
It would be worth manually triggering a CI workflow that includes the saw and saw-remote-api Docker image builds to ensure that they still work after these changes.
exercises/Dockerfile
Outdated
| FROM ubuntu:24.04 | ||
|
|
||
| RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections | ||
| RUN apt-get update && apt-get install -y clang-12 make |
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.
I don't think ubuntu:24.04 includes clang-12 anymore, so we'll likely need to bump the Clang version here. Some investigation suggests clang-14 is supported in ubuntu:24.04, so that might work.
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.
Did that...
| FROM ubuntu:20.04 | ||
| FROM ubuntu:22.04 | ||
|
|
||
| ARG heapster_commit=ca697c01ae9f3d2fbcae3169318d69f58e83efb2 |
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.
GitHub won't let me highlight it, but there is a similar versioning problem below in this Dockerfile:
# Dependencies for installing Haskell and Coq, mainly
RUN apt-get update && apt-get install -y \
curl gcc git m4 make libtinfo5 libgmp-dev locales locales-all opam xz-utils z3 zlib1g-dev I think this needs to be libtinfo6 in ubuntu:24.04.
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.
Oops, missed this one, will bump it after the current builds finish
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.
also do you know why this ARG line is referencing a commit from 2020?
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.
No idea. Truth be told, I'm not sure if anything in the CI is actually using this Dockerfile.
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.
It looks like not, so I'll revert all the changes to it as they're likely to break it (and I would expect the ubuntu 20.04 base docker image to hang around for some years yet, unlike GH Actions)
s2nTests/docker/awslc.dockerfile
Outdated
| FROM ubuntu:22.04 | ||
| FROM ubuntu:24.04 | ||
| RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections | ||
| RUN apt-get update && apt-get install -y curl wget unzip git cmake golang python3-pip libncurses6 libncurses5 libtinfo-dev quilt file |
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.
AFAICT, libncurses5 no longer exists in ubuntu:24.04. Oddly enough this Dockerfile is already installing both libncurses6 and libncurses5. libncurses6 appears to be the only version supported in ubuntu:24.04, so let's just go with that one.
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.
and I think I got all of these.
s2nTests/docker/blst.dockerfile
Outdated
| FROM ubuntu:22.04 | ||
| FROM ubuntu:24.04 | ||
| RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections | ||
| RUN apt-get update && apt-get install -y curl wget unzip git cmake golang python3-pip libncurses6 libncurses5 libtinfo-dev quilt file |
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.
Similar comments about libncurses here.
| FROM ubuntu:24.04 | ||
|
|
||
| RUN apt-get update -y -q && \ | ||
| apt-get install -y software-properties-common && \ |
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.
GitHub won't let me highlight it, but the use of libncurses5 below should be replaced with libncurses6.
5ca988a to
c1cd683
Compare
|
Most of the s2n proofs are failing because they download https://s2n-public-test-dependencies.s3-us-west-2.amazonaws.com/saw-0.4.0.99-2020-03-31-Ubuntu14.04-64.tar.gz (which still exists) and then try to run saw from it (which requires ncurses 5). I am guessing this needs to be suppressed upstream somewhere much as we did before with the other ancient binary downloads that had disappeared. (update: appears to be possible to avoid that) |
ae8399b to
9e1bfdf
Compare
|
Ok, after all the assorted chaos and force-pushes I think this is now a reasonable set of changes that we could actually merge, and provided I didn't make some silly syntax blunder in the last commit it ought to actually run this way too. |
|
Manual run with docker images is here: https://github.com/GaloisInc/saw-script/actions/runs/14139605068 (don't the s2n tests now also build at least the saw docker image? we should probably find something that builds and uses the saw-remote-api docker image as a test case too) |
RyanGlScott
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.
We should note that the awslc tests do not currently work somewhere (perhaps in s2nTests/README.md and/or the awslc Dockerfile), pointing to #2273 in the process. Other than that, LGTM.
…e 22.04. Update the what4-solvers snapshot to get Ubuntu 24.04 bins. Note that GitHub Actions support for 20.04 is about to disappear. Leave heapster.dockerfile alone as it isn't being used and will need further attention to not break it.
clang-12 is no longer available on ubuntu 24.04. also, rearrange the logic that symlinks clang -> clang-14 (and update it to 14)
ncurses 5 is no longer available in ubuntu 24.04. If there's an ancient binary somewhere using it, we'll have to regen. We aren't running a museum here...
This is apparently now required as a workaround to use pip (rather than apt) to install system-wide packages.
v2 tries to install darcs, which is not available on the ubuntu 24.04 runners. Changes are from #2153, which failed mysteriously when it was filed but might work better now.
This prevents it from downloading and trying to run an ancient binary that no longer runs on Ubuntu 24.04. Downside of this is that this also turns off fetching yices and z3, so instead copy in the yices and z3 we already have. This may or may not work since they're probably quite a bit newer than the ones expected, but if they do it's probably for the best. The tls and hmac proofs apparently need yices-smt2, so add that to the bits provided by docker-compose. This also may not be the way we want to do this, but if it works it avoids needing to change the s2n tree.
The binary distribution seems to be linked against ncurses 5, which is no longer available in ubuntu 24.04. Why a compiler needs to be linked against curses, IDK. Applies to the awslc and blst containers, but not (yet?) the default s2n container as that uses a different clang that might or might not be runnable. Provisional.
While passing through, note a couple of the other recent maintenance concerns as well.
bbb2dfd to
a6aea1c
Compare
|
Did that, last force push is to just rebase across merging #2274, which is doc changes only and can't interact with this branch. |
No description provided.