|
RBC_Template 0.1.0 build 5fb9afb
Workspace master specification — safety-related railway software around an ERTMS Radio Block Centre (RBC), CENELEC EN 50128 / SIL 4
|
What third-party software the delivered products contain, and what tools build and verify them. Scope and method follow REQUIREMENTS.dox (the tool-installation reference): versions are taken from the projects' own build files or observed on the reference development host, never guessed, and each row names where to re-check it. Snapshot date: 2026-10-07. The EN 50128 context is the safety and quality plan, section 3 (tool classes, tier rules); the pinning gaps listed in section 4 below are tracked in TODO.dox and ISSUES.dox.
The C products are deliberately thin on third-party code: the vital tier (Platform_RTE, Platform_OS_POSIX, RBC_GP/GA/SA, Platform_Protocol_SafeComm/KM114/KM038) links no third-party library at all beyond the C runtime and the POSIX API of the host OS. Cryptography used by the vital tier (3DES/CBC-MAC for KM114/KM038, the SaF MAC) is implemented inside those products' own sources, not taken from OpenSSL.
| Component | Version constraint | Used by | Linkage | Licence | Re-check |
|---|---|---|---|---|---|
| C runtime + POSIX (libc, pthread, sockets, clock_gettime) | host OS | every C product, through Platform_OS_POSIX behind the OSA seams | dynamic (system) | system | platform/os_adapters/Platform_OS_POSIX |
| OpenSSL (libssl, libcrypto) | >= 3.0; builds against 3.x and 4.x (verified 3.6.5 and 4.0.3 on 2026-10-07) | RBC_Maintenance_Web only (TLS, client-certificate auth, update signatures) - runs inside RBC_GP's role-C Gateway process | dynamic | Apache-2.0 | application/RBC_Maintenance_Web/CMakeLists.txt:21 |
| Python standard library | Python >= 3.9 | RBC_Test_Sim_Core/Train/IL/CTC, RBC_Test_CommServer (tooling tier, not vital) | interpreter | PSF | pyproject.toml of each: no third-party dependencies entries |
The authoritative installation list with per-tool "why" is REQUIREMENTS.dox; this table records the versions in use on the reference host and in CI for the assessment record.
| Tool | Version in use | Role | Re-check |
|---|---|---|---|
| CMake | >= 3.16 (required) | build system of every C product | cmake_minimum_required in each CMakeLists.txt |
| AppleClang | 21.0 (macOS host) | compiler, macOS development builds | cc --version |
| gcc | 12.2 (osa-build:bookworm container, Docker images) | compiler, Linux/Release builds | container gcc --version |
| cppcheck + MISRA addon | 2.21/2.22 observed | MISRA C:2012 screening (reports state the exact version per run) | docs/MISRA_COMPLIANCE_REPORT.dox of each C product |
| Doxygen | 1.18.0 | documentation build (known to crash at random; reruns, see root CLAUDE.md) | doxygen --version |
| gcovr/gcov | host version | coverage of Platform_RTE (RTE_ENABLE_COVERAGE) | platform/Platform_RTE/CMakeLists.txt:76 |
| Python | 3.14 (robot venv) | test environment, web runner, generators | test/RBC_Test_Env/robot/.venv |
| Robot Framework | >=7.0 (unpinned) | system test suites | test/RBC_Test_Env/robot/requirements.txt |
| Docker + compose | host version | containerised test stack and Linux builds | docker --version |
| Conan | 2.x (optional path) | alternative package-manager build of every product | root CLAUDE.md, Conan table |
| Image | Used by | Pinned? |
|---|---|---|
| debian:bookworm-slim | RBC A/B/C runtime and build stages (application/RBC_SA/Dockerfile), RBC_Test_CommServer, the osa-build build container | tag only, not by digest |
| python:3.12-slim | simulator images (each src/Dockerfile under test/simulators/) | tag only, not by digest |