A full-tree build (ninja all) is not possible on the Release 2 tree:
out-of-scope modules reference modules excluded from the scope
(e.g. TopicEditorBase -> LtsScriptTimeline; 100+ CMakeLists references),
and cmake --install hard-fails on targets that were never built. Align
the DEB pipeline with its own description (binaries and libraries from
release scope S):
- make_rpm_ubuntu26_release2.py: new --build_targets option
(space-separated CMake/Ninja targets; empty = legacy full tree).
Step 1 builds only those targets; the runtime DEB is staged from the
scoped build artifacts (bin/ + lib/) and packaged with build_deb
nobuild, replacing the full-tree debuild/cmake-buildsystem path.
- new_docker_build_release2.sh: pass the Release 2 group targets via
--build_targets; exclude the driver build4* dirs from the staging tar
(the DEB step builds its own tree; nothing consumes the driver build
output). Fix two comments inside the single-quoted docker bash -c
string that contained apostrophes, which broke word construction and
failed bash -n.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Run 3 exposed two driver bugs in the DEB step:
- A '#' comment line placed inside the backslash-continued python3
invocation terminated the logical command early: python ran without
--cmake_build_flags (hence the empty cmake flags and the recurring
pdm_enums.hpp failure) and bash then tried to execute
'--cmake_build_flags' as a command (exit 127). Moved the comment
above the statement.
- GUEZ_MODE was defaulted on the host but never passed to the container
(-e GUEZ_MODE missing), so the DEB cmake flags expanded -DGUEZ_MODE=
(empty -> false in CMake).
Co-Authored-By: Claude Code <noreply@anthropic.com>
- The DEB cmake flags lacked BUILD_RTI: the full-tree DEB build compiles
RTI codegen consumers (svcPdmCommon -> ProjectDataManagement/pdm_enums.hpp)
whose BUILD_RTI=OFF stubs were removed as 'forbidden OFF variants', so the
deb_stage build failed with 'pdm_enums.hpp: No such file or directory'.
RTI_INSTALL_DIR still resolves in-container via DOCKER_MOUNT_ROOT.
- ctest: GUI test executables (coprtcnv/prtcnv unit tests, test_nglpdfwidget)
aborted in the headless container ('no Qt platform plugin could be
initialized' - xcb needs a display); export QT_QPA_PLATFORM=offscreen
(the offscreen plugin is present in the image).
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Host-side check now also accepts the license at the source tree root
(checked-in location) instead of only MIGRATE_PIPELINE_ROOT, where it
does not exist in this checkout
- In-container: export RTI_LICENSE pointing at the mounted license file so
RTI Connext DDS processes (build tools, ctest) can find it at runtime
Co-Authored-By: Claude Code <noreply@anthropic.com>
The full-module import merge (097e5b488) replaced the validated Release 2
test wiring with the full-tree CMake files, leaving 5 targets referenced by
new_docker_build_release2.sh / README undefined:
- Restore LogViewLogger library in TetraIF/LogView/CMakeLists.txt
(pre-merge file defined both LogViewLogger lib and LogView exe)
- Re-add ADD_SUBDIRECTORY(unit-test) in TetraIF/CMakeLists.txt
(coprtcnv_unit_test, logview_unit_test, prtcnv_unit_test)
- Add CommonUnitTestsPlaceholder to Lts/Common/CMakeLists.txt (MockCoordTrans)
Driver (new_docker_build_release2.sh):
- Pass -DBUILD_TESTING=ON: TetraIF/unit-test is gated on BUILD_TESTING
- Default GUEZ_MODE=ON: the DEB step expanded ${GUEZ_MODE} in-container
where it was unset, producing -DGUEZ_MODE= (false in CMake)
rpmbuild/make_rpm_ubuntu26_release2.py:
- Use the Ninja generator (cmake -G Ninja / dh_auto_configure -GNinja):
with CMake 4.2.3 in the legatus-qt6:1.0 image the Unix Makefiles
generator emits no rule for AUTOMOC <target>_autogen/mocs_compilation.cpp
("No rule to make target") and every Qt target fails; Ninja handles
automoc correctly (verified: ninja -n of all 39 Release 2 targets passes)
- Add ninja-build to debian Build-Depends
Verified inside legatus-qt6:1.0 (mount /repo, BUILD_RTI=ON, BUILD_TESTING=ON,
Ninja): cmake configure exit 0 and ninja -n of the full Release 2 target
list (GROUP1/3/5/6, 39 targets) exit 0.
Co-Authored-By: Claude Code <noreply@anthropic.com>