Skip to content
Merged
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ like [libcanard](https://github.com/OpenCyphal/libcanard) and

| tag | Python | GCC (native) | GCC (arm-none-eabi) | Clang (native) | Cmake | Host Platforms | Other Utilities |
|----------|--------|--------------|---------------------|----------------|-------|----------------|-----------------|
| [ts24.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | <ul><li>3.12</li><li>3.10</li></ul> | <ul><li>13.3.0</li><li>12.3.0</li><li>11.4.0</li><li>10.5.0</li><li>7.5.0</li></ul>| 13.3.1 | <ul><li>19.1.7</li><li>18.1.8</li></ul> | 3.31.5 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <li>can-utils</li><li>doxygen 1.13.2</li><li>tox</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
| [ts22.4.10](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | 13.3.1 | 18.1.3 | 3.30.1 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>qemu</li><li>can-utils</li><li>doxygen 1.10.0</li><li>nvm</li><li>node 20.x</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
| [ts22.4.8](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | (N/A) | 18.1.3 | 3.22.1 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>qemu</li><li>can-utils</li><li>doxygen 1.10.0</li><li>nvm</li><li>node 20.x</li><li>nox</li><li>govr</li><li>gcc-multilib (amd64 only)</li></ul> |
| [ts22.4.7](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | (N/A) | 18.1.3 | 3.22.1 | <ul><li>linux/amd64</li><li>linux/arm64</li></ul> | <ul><li>qemu</li><li>can-utils</li><li>doxygen 1.10.0</li><li>nvm</li><li>node 20.x</li><li>nox</li><li>govr</li></ul> |
Expand Down
47 changes: 21 additions & 26 deletions toolshed/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# Builds the toolshed/ubuntu-22.04 toolchain container.
#
FROM ubuntu:22.04 AS base
FROM ubuntu:24.04 AS base

LABEL org.opencontainers.image.source=https://github.com/OpenCyphal/docker_toolchains
LABEL org.opencontainers.image.description="Provides a consistent build and test environment for development, continuous-integration, and test automation of OpenCyphal C and C++ based projects."
Expand All @@ -25,48 +25,38 @@ FROM base AS provisioning
WORKDIR /tmp
ADD kitware-archive-latest.asc .
ADD pre-provision.sh ./pre-provision.sh
ADD provision-repositories.sh ./provision-repositories.sh
ADD provision-repositories-${TARGETARCH}.sh ./provision-repositories-${TARGETARCH}.sh
ADD provision.sh ./provision.sh
ADD provision-${TARGETARCH}.sh ./provision-${TARGETARCH}.sh
ADD post-provision.sh ./post-provision.sh

RUN apt update
RUN ./pre-provision.sh
RUN ./provision-repositories.sh
RUN ./provision-repositories-${TARGETARCH}.sh
RUN apt update
RUN ./provision.sh
RUN ./provision-${TARGETARCH}.sh
RUN ./post-provision.sh

# INSTALL THE PATH FOR INTERATIVE SESSIONS
# INSTALL THE PATH FOR INTERACTIVE SESSIONS
RUN echo "export PATH=$PATH" >> ~/.bashrc

# LEAVE THE WORKDIR AS /repo
WORKDIR /repo

# +---------------------------------------------------------------------------+
# | NVM/nodejs
# +---------------------------------------------------------------------------+
FROM provisioning AS node

WORKDIR /tmp
ADD nvm-install.sh ./nvm-install.sh
RUN cat ./nvm-install.sh | bash
ENV NVM_DIR="~/.nvm"
RUN . ~/.nvm/nvm.sh && nvm install v20

# LEAVE THE WORKDIR AS /repo
WORKDIR /repo

# +---------------------------------------------------------------------------+
# | INSTALL PYTHON STUFF
# +---------------------------------------------------------------------------+
FROM node AS python
FROM provisioning AS python
WORKDIR /tmp

RUN pip3 install virtualenv
RUN pip3 install tox
RUN pip3 install nox
RUN pip3 install gcovr
RUN pip3 list
RUN apt-get -y install pipx
RUN echo "export PATH=/root/.local/bin:$PATH" >> ~/.bashrc
RUN pipx install tox
RUN pipx install nox
RUN pipx install gcovr

# LEAVE THE WORKDIR AS /repo
WORKDIR /repo
Expand All @@ -80,7 +70,9 @@ WORKDIR /tmp
ADD llvm-install.sh ./llvm-install.sh
ADD llvm-select.sh ./llvm-select.sh
RUN ./llvm-install.sh 18 all
RUN ./llvm-select.sh 18
RUN ./llvm-select.sh 18 18
RUN ./llvm-install.sh 19 all
RUN ./llvm-select.sh 19 99

# LEAVE THE WORKDIR AS /repo
WORKDIR /repo
Expand All @@ -94,7 +86,7 @@ RUN mkdir doxygen-Release
RUN mkdir doxygen-Release/build
COPY cached-download.sh .

ARG DOXYGEN_VERSION=1_10_0
ARG DOXYGEN_VERSION=1_13_2

COPY doxygen-Release_${DOXYGEN_VERSION}.sha512.txt .
RUN --mount=type=cache,target=/doxygen-download \
Expand Down Expand Up @@ -126,8 +118,11 @@ FROM doxygen AS gcc-select
WORKDIR /tmp

ADD gcc-select.sh ./gcc-select.sh
RUN ./gcc-select.sh 11 1
RUN ./gcc-select.sh 12 99
RUN ./gcc-select.sh 7 7
RUN ./gcc-select.sh 10 10
RUN ./gcc-select.sh 11 11
RUN ./gcc-select.sh 12 12
RUN ./gcc-select.sh 13 99
RUN update-alternatives --display gcc

# +---------------------------------------------------------------------------+
Expand Down
1 change: 1 addition & 0 deletions toolshed/doxygen-Release_1_13_2.sha512.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ec9e0c40c87a2a9477203b6df66323ca221468013094980e17965fa5a631d97af6286a66d7010c5ed94b825dd4e7bc8db18a48f30aa48b9a2e4f0ca6d9a5ddf0 doxygen-Release_1_13_2.tar.gz
14 changes: 11 additions & 3 deletions toolshed/llvm-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,9 @@ LLVM_VERSION_PATTERNS[15]="-15"
LLVM_VERSION_PATTERNS[16]="-16"
LLVM_VERSION_PATTERNS[17]="-17"
LLVM_VERSION_PATTERNS[18]="-18"
LLVM_VERSION_PATTERNS[19]=""
LLVM_VERSION_PATTERNS[19]="-19"
LLVM_VERSION_PATTERNS[20]="-20"
LLVM_VERSION_PATTERNS[21]=""

if [ ! ${LLVM_VERSION_PATTERNS[$LLVM_VERSION]+_} ]; then
echo "This script does not support LLVM version $LLVM_VERSION"
Expand Down Expand Up @@ -161,9 +163,15 @@ fi

if [[ -z "`apt-key list 2> /dev/null | grep -i llvm`" ]]; then
# Delete the key in the old format
apt-key del AF4F7421
apt-key del AF4F7421 || true
fi
add-apt-repository "${REPO_NAME}"
if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then
# add it twice to workaround:
# https://github.com/llvm/llvm-project/issues/62475
add-apt-repository -y "${REPO_NAME}"
fi

add-apt-repository -y "${REPO_NAME}"
apt-get update
PKG="clang-$LLVM_VERSION lldb-$LLVM_VERSION lld-$LLVM_VERSION clangd-$LLVM_VERSION"
if [[ $ALL -eq 1 ]]; then
Expand Down
2 changes: 1 addition & 1 deletion toolshed/llvm-select.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ setup_llvm_alternatives()
update-alternatives ${cmdln}
}

LLVM_ALTERNATIVES_PRI=99
LLVM_ALTERNATIVES_PRI=${2}
LLVM_ALTERNATIVES_PATH="/usr/bin/"

# setup llvm-config group
Expand Down
Loading
Loading