Files
qt6-migration-pipeline/RELEASE2_CLEANUP_AUDIT.md
T

4.8 KiB

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 <ktexttemplate/...> (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 <ktexttemplate/context.h> instead of <grantlee/context.h>
  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

  • Retired Grantlee5 template engine removed from source
  • All CMake builds use RelWithDebInfo (verified in build4/)
  • Qt6 installed via aqtinstall (verified in new_docker_build.sh)
  • Ubuntu 26.04 in Docker container (verified in Dockerfile)
  • 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