diff --git a/.github/workflows/toolshed.yml b/.github/workflows/toolshed.yml
index 15fe557..bcf93dc 100644
--- a/.github/workflows/toolshed.yml
+++ b/.github/workflows/toolshed.yml
@@ -49,13 +49,18 @@ jobs:
- name: Build and push by digest
id: build
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@v6
with:
context: toolshed
platforms: ${{ matrix.platform }}
- labels: ${{ steps.meta.outputs.labels }}
annotations: ${{ steps.meta.outputs.annotations }}
- outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
+ tags: ${{ steps.meta.outputs.tags }}
+ outputs: >
+ type=image,
+ name=${{ env.REGISTRY_IMAGE }},
+ push-by-digest=true,
+ name-canonical=true,
+ push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
- name: Export digest
if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}}
@@ -110,13 +115,18 @@ jobs:
- name: Build and push by digest
id: build
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@v6
with:
context: toolshed
platforms: ${{ matrix.platform }}
- labels: ${{ steps.meta.outputs.labels }}
annotations: ${{ steps.meta.outputs.annotations }}
- outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
+ tags: ${{ steps.meta.outputs.tags }}
+ outputs: >
+ type=image,
+ name=${{ env.REGISTRY_IMAGE }},
+ push-by-digest=true,
+ name-canonical=true,
+ push=${{ (github.event_name != 'pull_request' && !github.event.release.prerelease) && 'true' || 'false' }}
- name: Export digest
if: ${{ github.event_name != 'pull_request' && !github.event.release.prerelease}}
diff --git a/README.md b/README.md
index 3160b0f..4213f59 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,8 @@ 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.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) |
| - 13.3.0
- 12.3.0
- 11.4.0
- 10.5.0
- 7.5.0
| 13.3.1 | | 3.31.5 | | - yakut 0.13.0
- libpcap0.8-dev
- network-tools
- can-utils
- doxygen 1.13.2
- tox
- nox
- govr
- gcc-multilib (amd64 only)
|
+| [ts24.4.3](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | - 13.3.0
- 12.3.0
- 11.4.0
- 10.5.0
- 7.5.0
| 13.3.1 | | 3.31.5 | | - JLink V816
- cppcheck-2.13
- yakut 0.13.0
- libpcap0.8-dev
- network-tools
- can-utils
- doxygen 1.13.2
- tox
- nox
- govr
- gcc-multilib (amd64 only)
|
+| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | - 13.3.0
- 12.3.0
- 11.4.0
- 10.5.0
- 7.5.0
| 13.3.1 | | 3.31.5 | | - yakut 0.13.0
- libpcap0.8-dev
- network-tools
- can-utils
- doxygen 1.13.2
- gcc-multilib (amd64 only)
|
| [ts24.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | | - 13.3.0
- 12.3.0
- 11.4.0
- 10.5.0
- 7.5.0
| 13.3.1 | | 3.31.5 | | can-utilsdoxygen 1.13.2toxnoxgovrgcc-multilib (amd64 only) |
| [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 | | - qemu
- can-utils
- doxygen 1.10.0
- nvm
- node 20.x
- nox
- govr
- gcc-multilib (amd64 only)
|
| [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 | | - qemu
- can-utils
- doxygen 1.10.0
- nvm
- node 20.x
- nox
- govr
- gcc-multilib (amd64 only)
|
diff --git a/toolshed/Dockerfile b/toolshed/Dockerfile
index fe77f9f..87ad571 100644
--- a/toolshed/Dockerfile
+++ b/toolshed/Dockerfile
@@ -43,30 +43,10 @@ RUN ./post-provision.sh
# INSTALL THE PATH FOR INTERACTIVE SESSIONS
RUN echo "export PATH=$PATH" >> ~/.bashrc
-# LEAVE THE WORKDIR AS /repo
-WORKDIR /repo
-
-# +---------------------------------------------------------------------------+
-# | INSTALL PYTHON STUFF
-# +---------------------------------------------------------------------------+
-FROM provisioning AS python
-WORKDIR /tmp
-
-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
-RUN pipx install yakut
-RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types
-
-# LEAVE THE WORKDIR AS /repo
-WORKDIR /repo
-
# +---------------------------------------------------------------------------+
# | LLVM
# +---------------------------------------------------------------------------+
-FROM python AS llvm
+FROM provisioning AS llvm
WORKDIR /tmp
ADD llvm-install.sh ./llvm-install.sh
@@ -76,9 +56,6 @@ 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
-
# +---------------------------------------------------------------------------+
# | DOXYGEN BUILD (PARALLEL)
# +---------------------------------------------------------------------------+
@@ -109,9 +86,6 @@ RUN cmake --install .
WORKDIR /tmp
RUN rm -rf doxygen-Release
-# LEAVE THE WORKDIR AS /repo
-WORKDIR /repo
-
# +---------------------------------------------------------------------------+
# | GCC::native
# +---------------------------------------------------------------------------+
@@ -140,7 +114,7 @@ FROM arm-none-eabi-${TARGETARCH} AS arm-none-eabi
WORKDIR /tmp
COPY cached-download.sh .
-ARG ARM_NONE_EABI_VERSION=13.3.rel1
+ARG ARM_NONE_EABI_VERSION=14.2.rel1
ARG ARM_NONE_EABI_CHECKSUM_FILE=arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi.tar.xz.sha256asc
COPY ${ARM_NONE_EABI_CHECKSUM_FILE} .
@@ -157,5 +131,41 @@ ADD arm-none-eabi-gcc-select.sh ./arm-none-eabi-gcc-select.sh
RUN ./arm-none-eabi-gcc-select.sh 1 /opt/arm-gnu-toolchain-${ARM_NONE_EABI_VERSION}-${GCC_HOST_VERSION}-arm-none-eabi/bin/
RUN update-alternatives --display arm-none-eabi-gcc
+# +---------------------------------------------------------------------------+
+# | GCC::native
+# +---------------------------------------------------------------------------+
+FROM arm-none-eabi AS jlink
+
+WORKDIR /tmp
+
+# From the forum: https://forum.segger.com/index.php/Thread/8953-SOLVED-J-Link-Linux-installer-fails-for-Docker-containers-Error-Failed-to-update/
+ADD JLink_Linux_V816_${TARGETARCH}.deb ./JLink_Linux_V816.deb
+RUN apt-get -y install libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libxkbcommon0 libxkbcommon-x11-0
+RUN dpkg --unpack JLink_Linux_V816.deb \
+ && rm -f /var/lib/dpkg/info/jlink.postinst
+RUN dpkg --configure jlink
+RUN apt install -yf
+RUN echo "export PATH=/opt/SEGGER/JLink:$PATH" >> ~/.bashrc
+RUN rm JLink_Linux_V816.deb
+
+# +---------------------------------------------------------------------------+
+# | INSTALL PYTHON STUFF
+# +---------------------------------------------------------------------------+
+FROM jlink AS python
+WORKDIR /tmp
+
+RUN apt-get -y install pipx
+ENV PIPX_HOME=/opt/pipx
+ENV PIPX_BIN_DIR=/usr/local/bin
+RUN echo "export PATH=$PIPX_HOME:$PIPX_BIN_DIR:$PATH" >> ~/.bashrc
+RUN pipx install cowsay
+RUN pipx install tox
+RUN pipx install nox
+RUN pipx install gcovr
+RUN pipx install yakut
+RUN cowsay -t moo
+RUN git clone --depth 1 https://github.com/OpenCyphal/public_regulated_data_types.git ~/public_regulated_data_types
+
+# +---------------------------------------------------------------------------+# LEAVE THE WORKDIR AS /repo
# LEAVE THE WORKDIR AS /repo
WORKDIR /repo
diff --git a/toolshed/JLink_Linux_V816_amd64.deb b/toolshed/JLink_Linux_V816_amd64.deb
new file mode 100644
index 0000000..3b2b955
Binary files /dev/null and b/toolshed/JLink_Linux_V816_amd64.deb differ
diff --git a/toolshed/JLink_Linux_V816_arm64.deb b/toolshed/JLink_Linux_V816_arm64.deb
new file mode 100644
index 0000000..8ef808c
Binary files /dev/null and b/toolshed/JLink_Linux_V816_arm64.deb differ
diff --git a/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc
deleted file mode 100644
index 240c604..0000000
--- a/toolshed/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc
+++ /dev/null
@@ -1 +0,0 @@
-c8824bffd057afce2259f7618254e840715f33523a3d4e4294f471208f976764 arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz
diff --git a/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc
deleted file mode 100644
index fc170b3..0000000
--- a/toolshed/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc
+++ /dev/null
@@ -1 +0,0 @@
-95c011cee430e64dd6087c75c800f04b9c49832cc1000127a92a97f9c8d83af4 arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
diff --git a/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc
new file mode 100644
index 0000000..094ea28
--- /dev/null
+++ b/toolshed/arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz.sha256asc
@@ -0,0 +1 @@
+87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684 arm-gnu-toolchain-14.2.rel1-aarch64-arm-none-eabi.tar.xz
diff --git a/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc b/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc
new file mode 100644
index 0000000..43cc49c
--- /dev/null
+++ b/toolshed/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz.sha256asc
@@ -0,0 +1 @@
+62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823 arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz
diff --git a/toolshed/provision.sh b/toolshed/provision.sh
index a633526..e6e7848 100755
--- a/toolshed/provision.sh
+++ b/toolshed/provision.sh
@@ -49,3 +49,6 @@ apt-get -y install nodejs
apt-get -y install npm
apt-get -y install libpcap0.8-dev
apt-get -y install net-tools
+apt-get -y install iproute2
+apt-get -y install cppcheck
+apt-get -y install libncurses5