# Ubuntu 26.04 Qt6 Build Container Base build container for Qt6-migrated Legatus project on Ubuntu 26.04 with Qt 6.10.2. ## Components - **Base Image:** Ubuntu 26.04 (resolute) - **Qt Version:** 6.10.2 - **Compiler:** GCC 13 (Ubuntu default) - **Build Tools:** CMake, Ninja, Clang ## Included Dependencies ### Qt6 Modules (via aqtinstall) - Qt6 Core - Qt6 Multimedia - Qt6 SerialPort - Qt6 ImageFormats - Qt6 WebSockets - Qt6 WebEngine - Qt6 PDF - Qt6 WebView - Qt5 Compatibility - Qt6 WebChannel - Qt6 Positioning - Qt6 Location - Qt6 Sensors - Qt6 SVG (via apt: libqt6svg6-dev) ### Third-Party Libraries - KDReports 2.3.0 - Log4Qt 2.0.0 - Grantlee (Qt6 build) - GoogleTest (Ubuntu package) ### Development Tools - build-essential - cmake - ninja-build - clang - pkg-config - git - python3 + pip - aqtinstall ### System Libraries - PostgreSQL 18 (client libraries) - VLC media library - Boost - Botan cryptography - GeographicLib - Poppler PDF - KDE Frameworks 6 (text template) ## Usage ### Pull Pre-built Image ```bash docker pull harbor.sl.defence-elec.de/proxydockerhub/legatus-build-container:ubuntu26-qt6.10.2 ``` ### Build Locally ```bash docker build -t legatus-build-container:ubuntu26-qt6.10.2 . ``` ### Run Container ```bash docker run -it --rm \ -v $(pwd):/repo \ -v /repo/external/rti_connext_dds-7.7.0:/opt/RTI \ -v /repo/external/ArcGIS:/opt/ArcGIS \ -e DDS_PATH=/opt/RTI \ -e ARCGIS_SDK_ROOT=/opt/ArcGIS/MapsSDK_Qt_300.0.0 \ legatus-build-container:ubuntu26-qt6.10.2 \ bash ``` ## Environment Variables | Variable | Purpose | Example | |----------|---------|---------| | `DDS_PATH` | RTI Connext DDS installation | `/opt/RTI` | | `ARCGIS_SDK_ROOT` | ArcGIS Maps SDK root | `/opt/ArcGIS/MapsSDK_Qt_300.0.0` | | `QT_QPA_PLATFORM` | Qt platform plugin | `offscreen` (for headless) | | `CMAKE_PREFIX_PATH` | Qt6 installation path | `/opt/Qt/6.10.2/gcc_64` | ## Proxy Configuration For air-gapped environments, set: ```bash export http_proxy=http://proxy.internal:8080 export https_proxy=http://proxy.internal:8080 export no_proxy=localhost,127.0.0.1,.sl.defence-elec.de ``` ## Verification ```bash # Check Qt6 version qmake6 --version # Check KDReports pkg-config --modversion KDReports-qt6 # Check Log4Qt pkg-config --modversion Log4Qt # Check Grantlee grantlee-view --version ``` ## SBOM Software Bill of Materials available at: - `sbom/ubuntu26-qt6-build-container-sbom.json` (CycloneDX) - `sbom/ubuntu26-qt6-build-container-provenance.json` (SLSA) - `sbom/ubuntu26-qt6-build-container-licenses.md` ## License - Ubuntu: GPL - Qt6: LGPL/GPL/Commercial - KDReports: GPL/Commercial - Log4Qt: LGPL - Grantlee: LGPL See individual component licenses for details.