What changed, and why it matters
This commit updates the project's build environment from Ubuntu 20.04 to Ubuntu 24.04 in its GitHub Actions CI workflow and Docker container. It also switches the 'reuse' license-compliance tool from being installed via Python's pip to being installed as a standard Ubuntu package. This is a routine maintenance change. It does not by itself fix a known security vulnerability, but staying on a newer, supported operating-system base reduces long-term risk from outdated dependencies and avoids the end-of-life status Ubuntu 20.04 will reach in April 2025.
Treat as routine maintenance. Verify that the Ubuntu 24.04 package set and 'reuse' version still satisfy the project's build and license-check requirements. Review whether any pinned apt packages or Python dependencies need updates for Noble compatibility. No urgent security action is required based solely on this commit.
Security signals we found
Operating-system base image updated to a newer, still-supported LTS release
Python package installed via pip replaced with distribution-managed package, reducing supply-chain surface
No direct vulnerability fix, exploit mitigation, or cryptographic change present in the diff
Evidence from the diff
The diff changes the CI runner label from ‘ubuntu-20.04’ to ‘ubuntu-24.04’ for four jobs (firmware, bootloader, simulator, build-tools) and the Dockerfile base image from ‘ubuntu:20.04’ to ‘ubuntu:24.04’. In the Dockerfile, ‘reuse’ moves from a ‘pip3 install reuse’ step to an apt package install alongside other build dependencies. No application source code, cryptographic code, or firmware logic is modified. The change is a build-hygiene update.
Changed components
GitHub Actions CI workflow (.github/workflows/build.yaml)Docker build environment (Dockerfile)Build-time dependency installation for 'reuse'Inspect captured patch +7 / −9
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 39f55ac..5a1e3b2 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -8,7 +8,7 @@ on: [push]
jobs:
firmware:
name: Firmware
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
strategy:
matrix:
@@ -96,7 +96,7 @@ jobs:
bootloader:
name: Bootloader
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [firmware]
# TODO: SFT-1077.
@@ -145,7 +145,7 @@ jobs:
simulator:
name: Simulator
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [firmware]
strategy:
@@ -184,7 +184,7 @@ jobs:
build-tools:
name: Tools
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
services:
registry:
diff --git a/Dockerfile b/Dockerfile
index 02bc32c..08ba117 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
#
-FROM ubuntu:20.04
+FROM ubuntu:24.04
ARG DEBIAN_FRONTEND=noninteractive
@@ -23,12 +23,10 @@ RUN apt-get update && \
pkg-config \
pycodestyle \
python3 \
- python3-pip && \
+ python3-pip \
+ reuse && \
rm -rf /var/lib/apt/lists/*
-# Install reuse.
-RUN pip3 install reuse
-
# Install rustup.
ENV RUSTUP_HOME="/rustup"
ENV CARGO_HOME="/cargo"
Why this scored 13/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.