111 lines
4.8 KiB
Markdown
111 lines
4.8 KiB
Markdown
# 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
|
|
- [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 |