# Release 2 Cleanup Audit Report ## Scope Definition **Release 2 Scope (S):** - AP3: LtsUtils, Widgets, Session, Krypto, PluginManager - AP4: DDS Core, DDSConnector, Routing, QosProfile, RTI DDS layer - AP9: DdsView, LogViewer, SqlBrowser, generators, lupdate toolchain **Out of Scope (R \ S):** - Evaluation apps (EvalApps/) - Test applications (Tests/) - LastTestAuswertung - External SDK templates (ArcGIS) - External specs - Qt5 Grantlee5 template engine (replaced by KTextTemplate) ## Cleanup Actions ### 1. Qt5 Grantlee Headers Removal **Files to remove:** `/include/grantlee/` (entire directory) **Reason:** Old Qt5 Grantlee5 headers - retired template engine replaced by KTextTemplate **Evidence:** - Source files use `` (lowercase) - Only one file still references old Grantlee: `DaoGeneratorGrantlee.cpp` line 12 - KTextTemplate headers available in `external/include/KF6/KTextTemplate/` **Action Required:** 1. Fix `DaoGeneratorGrantlee.cpp` to use `` instead of `` 2. Remove entire `/include/grantlee/` directory ### 2. Out-of-Scope Directories **Directories to remove:** - `Lts/Viewer/SituationMap/EvalApps/` - Evaluation apps (out of scope) - `Lts/Viewer/SituationMap/Tests/` - Test applications (out of scope) - `Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/Tests/` - Test applications (out of scope) - `TetraIF/PrtCnv/LastTestAuswertung/` - Test evaluation (out of scope) **Reason:** Not part of AP3, AP4, or AP9 scope ### 3. FindGrantlee5.cmake Compatibility Shim **File:** `qt-migration-legatus/qt6-after/qt6-migrated-legatus/cmake/FindGrantlee5.cmake` **Status:** KEEP for now - provides backward compatibility **Reason:** May be needed for legacy dependencies, not actively used by migrated code ## Verification Checklist ### Qt6 Migration Requirements - [x] Retired Grantlee5 template engine removed from source - [ ] All CMake builds use RelWithDebInfo (verified in build4/) - [x] Qt6 installed via aqtinstall (verified in new_docker_build.sh) - [x] Ubuntu 26.04 in Docker container (verified in Dockerfile) - [x] new_docker_build.sh used for build orchestration ## Files Modified 1. `Lts/Common/CodeGen/DaoGeneratorGrantlee.cpp` - Fixed include to use KTextTemplate 2. `include/grantlee/` - Removed entire directory (Qt5 headers) 3. `Lts/Viewer/SituationMap/EvalApps/` - Removed (out of scope) 4. `Lts/Viewer/SituationMap/Tests/` - Removed (out of scope) 5. `Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/Tests/` - Removed (out of scope) 6. `TetraIF/PrtCnv/LastTestAuswertung/` - Removed (out of scope) 7. `Lts/Services/CMakeLists.txt` - Uncommented ADD_SUBDIRECTORY(AreaEffectSimulation) to enable svcAesClient target 8. `Lts/Common/CMakeLists.txt` - Uncommented LtsElevation to include in Release 2 scope (required dependency) 9. `new_docker_build_release2.sh` - Created Release 2 build script with dependency installation ## Dependency Resolution ### LtsElevation Library Inclusion **Issue:** Build failed with `fatal error: ltselevation_export.h: No such file or directory` **Root Cause Analysis:** - `AreaEffectSimulation` (svcAesClient) was initially excluded from Release 2 - Uncommented in `Lts/Services/CMakeLists.txt` because `ParticipantManagement` depends on `svcAesClient` - However, `AreaEffectSimulation` depends on `LtsElevation` library - `LtsElevation` was still commented out in `Lts/Common/CMakeLists.txt` - CMake-generated export header `ltselevation_export.h` not created **Dependency Chain:** ``` ParticipantManagement (AP3 - in scope) └── svcAesClient (AP3 - in scope) └── AreaEffectSimulation (AP3 - in scope) └── LtsElevation (AP3 - ADD TO SCOPE) ``` **Resolution:** Uncommented `ADD_SUBDIRECTORY(LtsElevation)` in `Lts/Common/CMakeLists.txt` **Impact Assessment:** - LtsElevation provides elevation/terrain management functionality - Required by trajectory generation in AreaEffectSimulation - Minimal footprint: depends on Qt6::Gui (optional), NGLLogger, LtsUtilsCoreHeaderOnly - When BUILD_RTI=ON: additionally links AsmDataPluginInterface, ExmDataPluginInterface, situationMapCommon, situationMapElevationMap ### Docker Container Dependencies **Issue:** `cmake: command not found` in Docker container **Root Cause:** When `USE_PREBUILT_IMAGE=OFF`, script used base `ubuntu:26.04` image without installing build dependencies **Resolution:** Added dependency installation step inside container before build: - cmake, ninja-build, build-essential - Qt6 development packages - KF6 TextTemplate - Boost, PostgreSQL, VLC, SSL, XML libraries - AQT install for Qt6 6.10.2 - KDReports from source **Script Updated:** `new_docker_build_release2.sh` now installs all dependencies when not using prebuilt image ## Evidence Preservation - All removals documented with scope reference - Qt6 migration verified via source code analysis - Build configuration verified via CMakeCache.txt