tianocore/containers

Refresh Ubuntu22 images

Opened this issue · 6 comments

The images are 6+ months old now. Wondering if we have an update process in place. Or do we prefer to not fix what isn't broken?

Specifically, I'd like to update the Ubuntu22 images to pickup the GCC 12.3 toolchain. The current images are on 12.1.

Thanks!

There is no process in place at the moment, other than "PRs are always welcome".

The update requires a change to the Dockerfile, since the versions are hard-coded.

in this case, the Dockerfile hard-codes just the major version, not the minor version. Specifically, it installs "gcc-12". At the time the image was built, that was 12.1, but has since been updated to 12.3.

That said, I don't mind pushing a change to trigger a rebuild. I see edk2-stable202311 likes to have rustc and cargo, so adding those will suffice.

PR incoming...

Sorry, it's edk2-pytool-extensions that wants rust, but edk2-pytool-extensions is pulled in by pip-requirements.txt updated for edk2-stable202311.

00:01:06 Sct E: DEBUG - --------- Running Time (mm:ss): 00:00 ----------
00:01:06 Sct E: DEBUG - ----------- Return Code: 0x0000007f ------------
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: INFO - cargo version: N/A
00:01:06 Sct E: DEBUG - Cmd to run is: cargo make --version
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - --------------Cmd Output Starting---------------
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - /bin/sh: 1: cargo: not found
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - --------------Cmd Output Finished---------------
00:01:06 Sct E: DEBUG - --------- Running Time (mm:ss): 00:00 ----------
00:01:06 Sct E: DEBUG - ----------- Return Code: 0x0000007f ------------
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: INFO - cargo make version: N/A
00:01:06 Sct E: DEBUG - Cmd to run is: rustc --version
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - --------------Cmd Output Starting---------------
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - /bin/sh: 1: rustc: not found
00:01:06 Sct E: DEBUG - ------------------------------------------------
00:01:06 Sct E: DEBUG - --------------Cmd Output Finished---------------
00:01:06 Sct E: DEBUG - --------- Running Time (mm:ss): 00:00 ----------
00:01:06 Sct E: DEBUG - ----------- Return Code: 0x0000007f ------------
00:01:06 Sct E: DEBUG - ------------------------------------------------```

We need Rust now? I did not know that...

As a side note: For the Fedora images I want to stop hard-coding version numbers for gcc, etc. since that only complicates things and I don't expect breaking changes within the lifetime of a Fedora major release. (see #88)

@osteffenrh It's coming out of this change:
tianocore/edk2-pytool-extensions@8a0566e

@makubacki Should we be adding cargo and rustc to the containers? The error above doesn't abort the build, but it does look scary. Admittedly, it's a DEBUG message, but I've already had a few users ask if something was wrong.

Also, any idea how to go about adding "cargo make" in a container-wide way? I know next to nothing about rust. When I ran "cargo install --force cargo-make", I noticed it was installed into "/root/.cargo/bin".

Thanks!

@osteffenrh It's coming out of this change: tianocore/edk2-pytool-extensions@8a0566e

@makubacki Should we be adding cargo and rustc to the containers? The error above doesn't abort the build, but it does look scary. Admittedly, it's a DEBUG message, but I've already had a few users ask if something was wrong.

Also, any idea how to go about adding "cargo make" in a container-wide way? I know next to nothing about rust. When I ran "cargo install --force cargo-make", I noticed it was installed into "/root/.cargo/bin".

Thanks!

There is a component in the build called the "version aggregator" that captures the versions of build dependencies. Rust tools were recently added to the aggregator.

While I did add those tools to a similar dockerfile here for reference, it is not necessary in edk2. If not found (as is the case here), those versions will simply be reported as "N/A" and since edk2 does not depend on Rust, the tools will not be invoked and it's not a problem.

The logging level for that is set to logging.DEBUG (edk2_invocable.py) to facilitate debug in case the versions are not being reported correctly.