What's Changed
-
Version.njk: Update to Ubuntu 24.04 container @makubacki (#406)
Change Details
Update pipelines and devcontainer files to use the 24.04 container. Also updates Mu DevOps version for the upcoming release.
⚠️ Breaking Changes
-
Version.njk: Update Ubuntu build container version and use Mu Devops 12.4.2 @makubacki (#401)
Change Details
- Updates the container to latest `af4ec63` - This container image does not have `python3.12-distutils` - Updates the Mu DevOps version synced from "v12.4.0" to "v12.4.2".
Marked as breaking change due to the container update that contains a potentially breaking change.
-
Containers/Ubuntu-22: Remove pythonx.x-distutils @makubacki (#400)
Change Details
The `pythonx.x-distutils` package provided the standard `distutils` module for our Ubuntu container Python environment.
In the deadsnakes PPA python3.12.7-1+jammy1 to python3.12.8-1+jammy1 update on 12/04/2024, the following diff was made:
https://launchpadlibrarian.net/761821028/python3.12_3.12.7-1+jammy1_3.12.8-1+jammy1.diff.gz
In that,
python3.12-distutils
is no longer a built package per PEP-0632. Therefore, it is removed from the container using Python 3.12 and some subsequent Python code updates may need to made for compatibility.This change is specifically focused on fixing the Ubuntu 22.04 (jammy) container build.
Marked as a breaking change since
distutils
will no longer be installed in the container.
🚀 Features & ✨ Enhancements
-
Add Ubuntu 24.04 (Noble Numbat) container build @makubacki (#404)
Change Details
Closes #403
Adds a new dockerfile to build a Ubuntu 24.04 image.
As we continue to update other Linux dependencies such as our Python installation and various packages, we can maintain better compatibility with pre-compiled binaries and get newer, safer updates by moving to the latest Ubuntu stable release.
In particular, glibc 2.39 is now included by default which allows us to move ahead to newer binaries being pulled into the build like
cargo-make
v0.37.24.
Ubuntu 22.04 image:
/.cargo/bin/cargo-make: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /.cargo/bin/cargo-make)
Ubuntu 24.04 image:
root@4d1e94a3013a:/src/mu_tiano_platforms# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble
root@4d1e94a3013a:/mu_plus# ldd --version ldd (Ubuntu GLIBC 2.39-0ubuntu8.3) 2.39 Copyright (C) 2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper
root@4d1e94a3013a:/mu_plus# cargo make test [cargo-make] INFO - cargo make 0.37.24 [cargo-make] INFO - [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: test [cargo-make] INFO - Profile: development [cargo-make] INFO - Running Task: individual-package-targets [cargo-make] INFO - Execute Command: "cargo" "test"
Powershell in the new image:
root@4d1e94a3013a:/mu_plus# pwsh PowerShell 7.5.0
</blockquote> <hr> </details>
🐛 Bug Fixes
-
Update Ubuntu Container iASL [Rebase \& FF] @makubacki (#405)
Change Details
**Ubuntu 24.04: Update iasl 20210105.0.6 to 20230628.0.1**
Updates iasl to the latest built Mu version matching the version
used in Mu ext deps.
Fix Ubuntu iasl wrong machine type
A long standing issue has been that the AARCH64 binary is copied
to /usr/bin/iasl in the x86-64 container image. This copies the
x86 binary.
Before
root@724459c0de48:/src/mu_tiano_platforms# readelf -h /usr/bin/iasl ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: AArch64 Version: 0x1 Entry point address: 0x401e08 Start of program headers: 64 (bytes into file) Start of section headers: 1217552 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 8 Size of section headers: 64 (bytes) Number of section headers: 36 Section header string table index: 35
After
root@e1a9c5ffb3b3:/# readelf -h /usr/bin/iasl ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Position-Independent Executable file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x25b90 Start of program headers: 64 (bytes into file) Start of section headers: 1449448 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 13 Size of section headers: 64 (bytes) Number of section headers: 32 Section header string table index: 31
</blockquote> <hr> </details>
Full Changelog: v12.4.2...v13.0.0