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>
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>
new_docker_build_release2.sh and the Release 2 README reference
rpmbuild/make_rpm_ubuntu26_release2.py, but only make_rpm_ubuntu26.py
existed (used by the jenkins-ci-rme builder). The Release 2 producer is
the same general 5-DEB builder (runtime, sources, ctest-runtime,
ctest-sources, build-pipeline), so add it under the expected name.
make_rpm_ubuntu26.py is kept for the jenkins-ci-rme flow.
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Merge build_single_deb and build_single_deb_nobuild into one build_deb()
- Add build_nobuild_package() factory for the 4 no-build packages
- Extract run(), prune_dirs() and write_deb_file() helpers
- Drop the unreachable release_scope copy branch (all call sites used the
full-tree copy; the --release_scope CLI flag is kept)
- Trim pipeline_files to the 8 files that actually exist and are packaged
- Remove unused imports (configparser, getpass, re, datetime, Path, stat),
unused vars (test_patterns, script_extensions) and a duplicated write block
- Jenkinsfile: guez-only release pipeline; the prebuilt build image is
built from the in-tree Dockerfile (via new_docker_build.sh
--build-prebuilt-image) instead of a pre-pulled harbor image; the
builder runs inside the container with the workspace mounted at
/workspace; the post-publish cleanup stage was dropped so the DEBs
stay under ${WORKSPACE}/rpms/... (the documented output location)
- jenkins_builder_ubuntu26.sh: uses the in-tree rpmbuild/
make_rpm_ubuntu26.py instead of the outer-repo copy; same-file guard
on the packages-out copy (host output dir == make_rpm output dir)
- jenkins_publisher_ubuntu26.sh: uploads rpms/${PROJECT}/${OS_VERSION}/
directly - make_rpm_ubuntu26.py writes the DEBs there without a TDS
subfolder
- release-16-10-2026.sh: local driver adapted to the current
new_docker_build.sh interface (drops the no-longer-existing
--use-prebuilt-image option, builds the image on demand, outputs to
${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/)
- make_rpm_ubuntu26.py: stage the new jenkins-ci-rme/ files (Jenkinsfile,
builder, publisher) into the build-pipeline DEB (release-16-10-2026.sh
was already listed)
Not copied (superseded): openSUSE builder/publisher, the old Dockerfile
recipes (replaced by the in-tree Dockerfile), Bitbucket notification
(jenkins_notifier.sh is not part of this project)
Keep make_rpm_ubuntu26.py (byte-identical to the validated working tree,
including the package-content validator fixes). It is self-contained
(standard library only, no helpers.py import) and its staging artifacts
land in the workspace root, so nothing else from the outer rpmbuild/
directory is needed:
- helpers.py: zero references from the Ubuntu 26 script (belongs to the
other platform variants)
- make_rpm.py / make_rpm7.py / make_rpm15.1.py / make_rpm15.2.py:
other platform packaging (base, RHEL7, CentOS 15.x)
- make_rpmModule.py / make_rpmModule7.py: module packaging
- make_rpmSVOnly.py: SV-only packaging
- make_rpm_extfw.py: external framework packaging
- make_tag.py: release tagging tool
- make_license_rpm.sh + ctc_TDS_license.spec.in + ctc_WMS_license.spec.in:
CTC license RPM flow
- .git (submodule pointer) and .gitignore (no artifacts are created in
this directory)