From 676ae0533552c02f39462fa66dc279e6e03dcf43 Mon Sep 17 00:00:00 2001 From: berrux_dev Date: Wed, 14 Oct 2026 20:38:16 +0200 Subject: [PATCH] Rewrite the build README without excluded-module sections Scope is now described only as what the release build contains (TetraIF, Z/src, Lts/Common, TrainingAreaBase). All steps (image, compile, tests, DEB packaging, Jenkins) kept and refreshed; the license note is reduced to 'no license file is required'. --- qt6-after/qt6-migrated-legatus/README.md | 47 +++++++++++++----------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/qt6-after/qt6-migrated-legatus/README.md b/qt6-after/qt6-migrated-legatus/README.md index 3adb097b9..7712258c8 100644 --- a/qt6-after/qt6-migrated-legatus/README.md +++ b/qt6-after/qt6-migrated-legatus/README.md @@ -1,30 +1,31 @@ -# qt6-migrated-legatus — compile and run (step by step) +# qt6-migrated-legatus — build and run, step by step Build guide for the Qt6-migrated legatus tree on the release **validation-scope** branch. Everything runs inside a prebuilt Docker image; the host only needs Docker. -## Scope and layout +## Scope -The release scope built by `new_docker_build.sh` is: +What `new_docker_build.sh` builds and packages: | Area | Contents | |---|---| -| `TetraIF/` | `CoPrtCnv`, `LogView`, `PrtCnv` (+ `unit-test/` — see below) | +| `TetraIF/` | `CoPrtCnv`, `LogView`, `PrtCnv` (+ `unit-test/` — see Step 3) | | `Z/src/` | NGL application/core library stack (NGLLogger, nglcoreapplication, …) | -| `Lts/Common/` | LTS common libraries (LtsCoordTrans, LtsLicence, …) | -| `Lts/Proxies/TrainingAreaBase` | built as a dependency of TetraIF | +| `Lts/Common/` | LTS common libraries (LtsCoordTrans, LtsLicence, LtsUtils, …) | +| `Lts/Proxies/TrainingAreaBase` | `tabTelegrams` library, built as a TetraIF dependency | -Useful entries at the tree root: +Entries at the tree root: -- `new_docker_build.sh` — the build driver (image build, compile, ctest, DEB packaging) +- `new_docker_build.sh` — build driver (image build, compile, ctest, DEB packaging) - `Dockerfile` — recipe of the prebuilt build image (Ubuntu 26.04 + Qt 6.10.2 + deps) - `rpmbuild/make_rpm_ubuntu26.py` — in-tree DEB package producer (self-contained) - `jenkins-ci-rme/` — in-tree copy of the Jenkins CI flow (see its own `README.md`) - `build4/` — build tree, created by the driver (git-ignored scratch area) Toolchain inside the image: **Ubuntu 26.04, GCC 15.2.0, Qt 6.10.2** -(`/opt/Qt/6.10.2/gcc_64`), C++17, Release build. +(`/opt/Qt/6.10.2/gcc_64`), C++17, Release build. No license file is +required. ## Prerequisites @@ -35,14 +36,12 @@ Toolchain inside the image: **Ubuntu 26.04, GCC 15.2.0, Qt 6.10.2** `new_docker_build.sh` invokes Docker, so running the driver as-is satisfies this. -No license file is required: the RTI Connext DDS modules (the only -consumers of an RTI license) are not part of the release scope and are -never compiled on this branch. -`new_docker_build.sh` resolves the pipeline root from its own location -(override with the exported `MIGRATE_PIPELINE_ROOT` or the `.envrc` in -this directory). +The driver resolves the pipeline root from its own location (override +with the exported `MIGRATE_PIPELINE_ROOT` or the `.envrc` in this +directory). -All commands below are run **from this directory** (`qt6-migrated-legatus/`). +All commands below are run **from this directory** +(`qt6-migrated-legatus/`). ## Step 1 — Build the prebuilt Docker image (once) @@ -70,7 +69,7 @@ To remove it later: What the driver does inside the container: 1. `rm -rf build4 && mkdir build4 && cd build4` (fresh build tree) -2. Configure with CMake — the mandatory flags: +2. Configure with CMake: ```bash cmake .. \ @@ -84,7 +83,7 @@ What the driver does inside the container: (`RELEASE_BUILD=ON` selects the release scope; everything else is at its CMake default.) 3. `make -j8` the release-scope targets (TetraIF modules, Z stack, - Lts/Common libs, all test executables — the list is + Lts/Common libraries, all test executables — the list is `RELEASE_BUILD_TARGETS` in `new_docker_build.sh`). 4. Run **ctest** (see Step 3). @@ -96,7 +95,13 @@ Output to inspect after the run: - `build4/lib/` — shared libraries To rebuild incrementally without a fresh tree, run `make` directly in an -interactive container (Step 4). +interactive container against the existing `build4/`: + +```bash +docker run --rm -it -v /path/to/pipeline-root:/workspace legatus-qt6:1.0 \ + bash -c 'cd /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/build4 \ + && make -j8' +``` ## Step 3 — Run the tests @@ -145,7 +150,7 @@ ctest --output-on-failure' Each QtTest binary accepts a single slot name to run just one test, e.g. `./bin/coprtcnv_unit_test radioTelegramFragmentationRoundtrip`. -### 3.4 TetraIF unit tests (this tree, `TetraIF/unit-test/`) +### 3.4 TetraIF unit tests (`TetraIF/unit-test/`) | Test | Module covered | Note | |---|---|---| @@ -182,7 +187,7 @@ DEBs in `${WORKSPACE}/rpms/${PROJECT}/${OS_VERSION}/`: | `qt6-release-sources_*` | release-scope sources | | `qt6-release-ctest-runtime_*` | test executables under `/usr/lib/ctest/` (incl. the TetraIF unit tests) | | `qt6-release-ctest-sources_*` | test sources (files with "test" in the name under the release dirs, incl. `TetraIF/unit-test/*.cpp`) | -| `qt6-release-build-pipeline_*` | the in-tree pipeline files (`new_docker_build.sh`, `Dockerfile`, `rpmbuild/`, `jenkins-ci-rme/`) under `/usr/src/pipeline/` | +| `qt6-release-build-pipeline_*` | the in-tree pipeline files (`new_docker_build.sh`, `Dockerfile`, `CMakeLists.txt`, `rpmbuild/`, `jenkins-ci-rme/`) under `/usr/src/pipeline/` | Verify a package: