Skip to content

Commit 094efc5

Browse files
authored
chore: verify checksum for arm-gcc toolchain (#1108)
* chore: verify signature for arm-gcc toolchain * chore: remove unused apt mounts * chore: update hashes * chore: revert checksums * chore: switch to manual download as ADD leads to 403 * feat: don't overwrite bin lib * fix: don't move from r/o filesystem * fix: use recursive copy * chore: align bash settings * chore: switch shell to bash * fix: use cp -a to preserve links and permissions
1 parent 987ba93 commit 094efc5

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

.devcontainer/base/Dockerfile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ ARG DEBIAN_FRONTEND=noninteractive
2626

2727
HEALTHCHECK NONE
2828

29-
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
29+
SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]
3030

3131
# hadolint ignore=DL3008
3232
RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tmp/apt-requirements.json \
@@ -35,8 +35,6 @@ RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tm
3535
--mount=type=cache,target=/var/log,sharing=locked \
3636
--mount=from=extractor,target=/src <<EOF
3737

38-
set -e
39-
4038
# Install the base system with all tool dependencies
4139
apt-get update && apt-get install -y --no-install-recommends jq
4240
jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements.json | \

.devcontainer/cpp/Dockerfile

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,24 @@ FROM ${BASE_IMAGE} AS extractor
4343
ARG CCACHE_VERSION
4444
ARG XWIN_VERSION
4545

46+
SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]
47+
4648
WORKDIR /
4749

4850
RUN --mount=from=downloader,target=/dl <<EOF
49-
set -e
51+
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"
52+
ARM_GNU_TOOLCHAIN_TAR="/tmp/arm-gnu-toolchain.tar.xz"
53+
54+
if [[ "$(uname -m)" == "x86_64" ]]; then
55+
ARM_GNU_TOOLCHAIN_SHA256="62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823"
56+
elif [[ "$(uname -m)" == "aarch64" ]]; then
57+
ARM_GNU_TOOLCHAIN_SHA256="87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684"
58+
fi
59+
60+
wget --no-hsts -qO "${ARM_GNU_TOOLCHAIN_TAR}" "${ARM_GNU_TOOLCHAIN_URL}"
61+
echo "${ARM_GNU_TOOLCHAIN_SHA256} ${ARM_GNU_TOOLCHAIN_TAR}" | sha256sum -c -
62+
63+
tar xJf "${ARM_GNU_TOOLCHAIN_TAR}" --exclude="*arm-none-eabi-gdb*" --exclude="share"
5064
tar xJf /dl/ccache.tar.xz --strip-components=1 "ccache-${CCACHE_VERSION}-linux-$(uname -m)/ccache"
5165
tar xzf /dl/xwin.tar.gz --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin"
5266
cp /dl/llvm.gpg.key /llvm.gpg.key
@@ -64,7 +78,7 @@ ARG DEBIAN_FRONTEND=noninteractive
6478

6579
HEALTHCHECK NONE
6680

67-
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
81+
SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]
6882

6983
# Set default environment options
7084
ENV CCACHE_DIR=/cache/.ccache \
@@ -86,8 +100,6 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
86100
--mount=type=cache,target=/var/log,sharing=locked \
87101
--mount=from=extractor,target=/src <<EOF
88102

89-
set -e
90-
91103
# Install the base system with all tool dependencies
92104
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-base.json | \
93105
xargs apt-get install -y --no-install-recommends
@@ -111,11 +123,10 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
111123
echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences
112124
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | \
113125
xargs apt-get install -y --no-install-recommends
114-
EOF
115126

116-
# Install arm-gcc toolchain
117-
RUN mkdir /opt/gcc-arm-none-eabi \
118-
&& wget --no-hsts -qO - "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" | tar --exclude='*arm-none-eabi-gdb*' --exclude='share' --strip-components=1 -xJC /opt/gcc-arm-none-eabi
127+
# Install arm-gcc toolchain
128+
cp -a /src/arm-gnu-toolchain-*-arm-none-eabi /opt/gcc-arm-none-eabi
129+
EOF
119130

120131
# Install include-what-you-use (iwyu) from source
121132
# hadolint ignore=DL3008

0 commit comments

Comments
 (0)