Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .devcontainer/base/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ubuntu:24.04@sha256:cd1dba651b3080c3686ecf4e3c4220f026b521fb76978881737d24f200828b2b AS extractor
FROM ubuntu:26.04@sha256:a072b64036a738e55bff8f9a9682cbb893bf20c213772effc1de8dee8df1cea9 AS extractor

ARG BATS_CORE_VERSION=1.13.0
ARG BATS_SUPPORT_VERSION=0.3.0
Expand All @@ -20,10 +20,12 @@ RUN tar xzf /bats-core.tar.gz && mv bats-core-*/ bats-core \
&& tar xzf /bats-support.tar.gz && mv bats-support-*/ bats-support \
&& tar xzf /bats-assert.tar.gz && mv bats-assert-*/ bats-assert

FROM ubuntu:24.04@sha256:cd1dba651b3080c3686ecf4e3c4220f026b521fb76978881737d24f200828b2b
FROM ubuntu:26.04@sha256:a072b64036a738e55bff8f9a9682cbb893bf20c213772effc1de8dee8df1cea9

ARG DEBIAN_FRONTEND=noninteractive

ENV LANG=C.UTF-8

HEALTHCHECK NONE

SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]
Expand All @@ -49,8 +51,10 @@ RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tm
cp -r /src/bats-support /usr/local/bats-support
cp -r /src/bats-assert /usr/local/bats-assert

# Update all tool alternatives to the correct version
# and patch root's bashrc to include bash-completion
update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-14 20
# Generate locale
sed -i '/C.UTF-8/s/^# //' /etc/locale.gen
locale-gen

# Patch root's bashrc to include bash-completion
cp /etc/skel/.bashrc /root/.bashrc
EOF
16 changes: 8 additions & 8 deletions .devcontainer/base/apt-requirements.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"bash-completion": "1:2.11-8",
"ca-certificates": "20240203",
"g++-14": "14.2.0-4ubuntu2~24.04.1",
"git": "1:2.43.0-1ubuntu7.3",
"gnupg2": "2.4.4-2ubuntu17.4",
"udev": "255.4-1ubuntu8.15",
"wget": "1.21.4-1ubuntu4.1",
"xz-utils": "5.6.1+really5.4.5-1ubuntu0.2"
"bash-completion": "1:2.16.0-8build1",
"ca-certificates": "20250419build1",
"git": "1:2.53.0-1ubuntu1",
"gnupg2": "2.4.8-4ubuntu3",
"locales": "2.43-2ubuntu1",
"udev": "259.5-0ubuntu2",
"wget": "1.25.0-2ubuntu4",
"xz-utils": "5.8.2-2"
}
18 changes: 9 additions & 9 deletions .devcontainer/cpp/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ RUN --mount=from=downloader,target=/dl \
--mount=type=cache,target=/var/lib/apt,sharing=locked <<EOF
apt-get update && apt-get install --no-install-recommends -y minisign

ARM_GNU_TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz"
ARM_GNU_TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-$(uname -m)-arm-none-eabi.tar.xz"
ARM_GNU_TOOLCHAIN_TAR="/tmp/arm-gnu-toolchain.tar.xz"

if [[ "$(uname -m)" == "x86_64" ]]; then
ARM_GNU_TOOLCHAIN_SHA256="62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823"
ARM_GNU_TOOLCHAIN_SHA256="597893282ac8c6ab1a4073977f2362990184599643b4c5ee34870a8215783a16"
elif [[ "$(uname -m)" == "aarch64" ]]; then
ARM_GNU_TOOLCHAIN_SHA256="87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684"
ARM_GNU_TOOLCHAIN_SHA256="d061559d814b205ed30c5b7c577c03317ec447ca51cd5a159d26b12a5bbeb20c"
fi

wget --no-hsts -qO "${ARM_GNU_TOOLCHAIN_TAR}" "${ARM_GNU_TOOLCHAIN_URL}"
Expand Down Expand Up @@ -132,7 +132,7 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
cat /src/mull.gpg.key | gpg --dearmor -o /usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg

UBUNTU_CODENAME=$(grep '^UBUNTU_CODENAME=' /etc/os-release | cut -d= -f2)
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot-keyring.gpg] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_VERSION} main" | tee /etc/apt/sources.list.d/llvm-snapshot.list > /dev/null
#echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot-keyring.gpg] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_VERSION} main" | tee /etc/apt/sources.list.d/llvm-snapshot.list > /dev/null
echo "deb [signed-by=/usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/mull-project/mull-stable/deb/ubuntu ${UBUNTU_CODENAME} main" | tee /etc/apt/sources.list.d/mull-project-mull-stable.list > /dev/null
echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | \
Expand All @@ -159,11 +159,11 @@ RUN --mount=type=cache,target=/cache,sharing=locked \
# Update all tool alternatives to the correct version
# and patch root's bashrc to include bash-completion
RUN --mount=type=cache,target=/var/log,sharing=locked \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 10 \
--slave /usr/bin/g++ g++ /usr/bin/g++-14 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-14 \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-14 10 \
--slave /usr/bin/c++ c++ /usr/bin/g++-14 \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 10 \
--slave /usr/bin/g++ g++ /usr/bin/g++-15 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-15 \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-15 10 \
--slave /usr/bin/c++ c++ /usr/bin/g++-15 \
&& update-alternatives --install /usr/bin/iwyu iwyu /usr/local/bin/include-what-you-use 10 \
&& update-alternatives --install /usr/bin/mull-runner mull-runner /usr/bin/mull-runner-${CLANG_VERSION} 10 \
--slave /usr/bin/mull-reporter mull-reporter /usr/bin/mull-reporter-${CLANG_VERSION} \
Expand Down
10 changes: 5 additions & 5 deletions .devcontainer/cpp/apt-requirements-base.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"gdb-multiarch": "15.1-1ubuntu1~24.04.1",
"ninja-build": "1.11.1-2",
"python3-pip": "24.0+dfsg-1ubuntu1.3",
"unzip": "6.0-28ubuntu4.1",
"xsltproc": "1.1.39-0exp1ubuntu0.24.04.3"
"g++-15": "15.2.0-16ubuntu1",
"gdb-multiarch": "17.1-2ubuntu1",
"ninja-build": "1.13.2-1",
"python3-pip": "25.1.1+dfsg-1ubuntu2",
"unzip": "6.0-29ubuntu1"
}
16 changes: 8 additions & 8 deletions .devcontainer/cpp/apt-requirements-clang.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"clang-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"clangd-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"clang-format-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"clang-tidy-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"clang-tools-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"libclang-rt-20-dev": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"lld-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"llvm-20": "1:20.1.8~++20250804090239+87f0227cb601-1~exp1~20250804210352.139",
"clang-20": "1:20.1.8-2ubuntu8",
"clangd-20": "1:20.1.8-2ubuntu8",
"clang-format-20": "1:20.1.8-2ubuntu8",
"clang-tidy-20": "1:20.1.8-2ubuntu8",
"clang-tools-20": "1:20.1.8-2ubuntu8",
"libclang-rt-20-dev": "1:20.1.8-2ubuntu8",
"lld-20": "1:20.1.8-2ubuntu8",
"llvm-20": "1:20.1.8-2ubuntu8",
"mull-20": "0.32.0"
}
Loading
Loading