Keep the colleague's microbu-esp32c5 tree in this repository

obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but
that tree was gitignored, so a clone of this repository could not build the
firmware it ships. It is now committed here as ordinary files in its own
folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP
bridge's signature verification (--trust) used on the bench. Nothing is
fetched from or pushed to the colleague's repository; this repository and
its remotes carry everything. The folder's own .gitignore keeps build output,
downloaded components and private key material out, as it did there; the
committed file set is identical to that repository's tracked files.

The ESP32-C5 is still flashed from obu-firmware/, which only takes
vanetza-idf from microbu-esp32c5/, so the two stay separate folders.
FLASHING.md says how to take a newer version of the colleague's tree (copy
it over the folder, rebuild, test, commit).
This commit is contained in:
Ashin Walpola
2026-09-23 17:46:40 +02:00
parent 2f60623e18
commit 0e9525162d
9881 changed files with 1582523 additions and 17 deletions
@@ -0,0 +1,61 @@
ARG DEBIAN_VERSION=stable
ARG UBUNTU_VERSION=resolute
FROM debian:${DEBIAN_VERSION} AS debian
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
capnproto \
clang \
cmake \
git \
libboost-date-time-dev \
libboost-program-options-dev \
libboost-system-dev \
libcapnp-dev \
libcrypto++-dev \
libgeographiclib-dev \
libssl-dev \
ninja-build \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY --chmod=755 build_and_run_tests.sh build_strict_cxx14.sh /usr/local/bin/
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]
FROM debian AS strict-cxx14
ENTRYPOINT ["build_strict_cxx14.sh"]
CMD ["/home/build-user/workspace"]
FROM ubuntu:${UBUNTU_VERSION} AS ubuntu
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
COPY --chmod=755 update_cmake.sh apt_pkg_name.sh /usr/local/bin/
RUN update_cmake.sh && apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
capnproto \
cmake \
git \
libboost-date-time-dev \
libboost-program-options-dev \
libboost-system-dev \
libcapnp-dev \
libcrypto++-dev \
$(apt_pkg_name.sh geographiclib) \
libssl-dev \
ninja-build \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY build_and_run_tests.sh /usr/local/bin/build_and_run_tests.sh
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]
@@ -0,0 +1,26 @@
#!/bin/bash
set -euo pipefail
source /etc/os-release
case $VERSION_CODENAME in
bionic|focal|jammy)
GEOGRAPHICLIB=libgeographic-dev
;;
noble|resolute)
GEOGRAPHICLIB=libgeographiclib-dev
;;
*)
echo "Unsupported Ubuntu version: $VERSION_CODENAME"
exit 1
;;
esac
case $1 in
geographiclib)
echo $GEOGRAPHICLIB
;;
*)
echo "Unknown package name: $1"
exit 1
;;
esac
@@ -0,0 +1,20 @@
#!/bin/bash
set -e
SCRIPT=$(readlink -f $0)
SCRIPT_PATH=$(dirname $SCRIPT)
ROOT=${1:-$SCRIPT_PATH/../..}
ROOT_PATH=$(readlink -f ${ROOT})
BUILD_DIR=${BUILD_DIR:-$PWD/build}
mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
cmake -G Ninja \
-DVANETZA_WITH_CRYPTOPP=ON \
-DVANETZA_WITH_OPENSSL=ON \
-DBUILD_CERTIFY=ON \
-DBUILD_PKI=ON \
-DBUILD_SOCKTAP=ON \
-DBUILD_TESTS=ON \
-DGTest_BUILD_DIRECTORY_DOWNLOAD=ON \
${ROOT_PATH}
cmake --build .
ctest --output-on-failure
@@ -0,0 +1,24 @@
#!/bin/bash
# Strict C++14 compile check for the Vanetza libraries.
set -e
SCRIPT=$(readlink -f "$0")
SCRIPT_PATH=$(dirname "$SCRIPT")
ROOT=${1:-$SCRIPT_PATH/../..}
ROOT_PATH=$(readlink -f "${ROOT}")
BUILD_DIR=${BUILD_DIR:-$PWD/build}
mkdir -p "${BUILD_DIR}" && cd "${BUILD_DIR}"
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSIONS=OFF \
-DVANETZA_WITH_CRYPTOPP=ON \
-DVANETZA_WITH_OPENSSL=ON \
-DVANETZA_WITH_GEOGRAPHICLIB=ON \
-DVANETZA_WITH_RPC=OFF \
-DBUILD_TESTS=OFF \
"${ROOT_PATH}"
cmake --build .
@@ -0,0 +1,9 @@
#!/bin/bash
set -e
: ${UBUNTU_VERSION:=resolute}
SCRIPT_DIR=$(dirname ${BASH_SOURCE[0]})
ROOT_DIR=$(readlink -m "${SCRIPT_DIR}/../..")
echo "Compiling Vanetza for Ubuntu ${UBUNTU_VERSION} and running tests..."
docker build --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --tag vanetza/docker-ci:${UBUNTU_VERSION} ${SCRIPT_DIR}
docker run --rm -it -v${ROOT_DIR}:/home/build-user/workspace:ro vanetza/docker-ci:${UBUNTU_VERSION}
@@ -0,0 +1,21 @@
#!/bin/bash
source /etc/os-release
export DEBIAN_FRONTEND=noninteractive
install_kitware_repo() {
GPG_KEYFILE=/usr/share/keyrings/kitware-archive-keyring.gpg
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor > $GPG_KEYFILE
echo "deb [signed-by=$GPG_KEYFILE] https://apt.kitware.com/ubuntu/ ${UBUNTU_CODENAME} main" > /etc/apt/sources.list.d/kitware.list
echo "Added Kitware repository for Ubuntu $UBUNTU_CODENAME"
}
if [[ "${UBUNTU_CODENAME}" == "xenial" ]]; then
apt-get update && apt-get install -y apt-transport-https wget
install_kitware_repo
elif [[ "${UBUNTU_CODENAME}" == "bionic" ]]; then
apt-get update && apt-get install -y gpg wget
install_kitware_repo
else
# Ubuntu focal and later ship with a sufficiently new CMake version
echo "No need to add Kitware repository for Ubuntu $UBUNTU_CODENAME"
fi