Drop the rti_license.dat requirement from the release scope build

The release validation scope (TetraIF, Z/src, Lts/Common +
TrainingAreaBase) never consumes an RTI license: no CMake file or
build step reads RTI_LICENSE_FILE, and the only RTI Connext DDS
consumers are all behind BUILD_RTI (OFF for this branch, stubs
compiled instead). The license was pure plumbing:

- new_docker_build.sh: remove the require_file validation, the
  bind mount and the in-container RTI_LICENSE_FILE export
- jenkins-ci-rme: remove the RTI_LICENSE_FILE export and the
  Jenkinsfile workspace-layout comment
- README: document that no license file is needed

Verified with a full pipeline rebuild (scope-rebuild12) run while
rti_license.dat was absent: 0 warnings, ctest baseline unchanged,
all 5 DEBs produced, none of them containing the license.
This commit is contained in:
berrux-dev committed 2026-10-14 16:28:03 +02:00
1 parent 59f0c025e5
commit 11501ff7bb
4 files changed
+9 -29

No files matched your search

+8 -9
View File
@@ -29,17 +29,19 @@ Toolchain inside the image: **Ubuntu 26.04, GCC 15.2.0, Qt 6.10.2**
## Prerequisites
1. **Docker** available on the host.
2. **License file** `rti_license.dat` at the *pipeline root* — the
directory **three levels above** this tree
(`<pipeline-root>/rti_license.dat`). `new_docker_build.sh` derives the
pipeline root from its own location (override with the exported
`MIGRATE_PIPELINE_ROOT` or the `.envrc` in this directory).
3. The tree must be reachable inside the container at
2. The tree must be reachable inside the container at
`/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus`, i.e.
mount the pipeline root on `/workspace` — this is how
`new_docker_build.sh` invokes Docker, so running the driver as-is
satisfies this.
No license file is required: this branch builds the release scope only
(TetraIF, Z/src, Lts/Common) with `BUILD_RTI=OFF`, so the RTI Connext
DDS modules (the only consumers of an RTI license) are not compiled.
`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).
All commands below are run **from this directory** (`qt6-migrated-legatus/`).
## Step 1 — Build the prebuilt Docker image (once)
@@ -233,9 +235,6 @@ Environment overrides: `DOCKER_IMAGE`, `RUN_JENKINS_BUILDER`,
binary by hand → `export QT_QPA_PLATFORM=offscreen`.
- **ctest fails with `nglcomp_test (Not Run)`** → expected baseline
(pre-existing Qt6 compression issue); the pipeline continues.
- **License error at startup** → `rti_license.dat` must exist at
`<pipeline-root>/rti_license.dat` and be visible in the container at
`/workspace/rti_license.dat`.
- **Stale build tree** → the driver always recreates `build4/`; for
manual builds delete `build4/` and rerun Step 2 if CMake behaves oddly.
- **DEBs not on the host** → the output dir must be a path that exists
@@ -4,7 +4,6 @@
//
// Workspace layout (checked out by Jenkins, outer pipeline repo):
// <WORKSPACE>/
// rti_license.dat
// external/
// qt-migration-legatus/qt6-after/qt6-migrated-legatus/ <- LEGATUS_ROOT
// Dockerfile (prebuilt build image recipe)
@@ -35,11 +35,7 @@ set -eo pipefail
echo "Building LTS ${LTS_VERSION}-${BUILD_NUMBER:-?} DEB for project '${PROJECT}' (Ubuntu ${OS_VERSION})."
echo "PROJECT_BASE_DIR=${PROJECT_BASE_DIR}"
export RTI_LICENSE_FILE="${WORKSPACE}/rti_license.dat"
# Stage workspace as a clean copy under PROJECT_BASE_DIR/deb_stage.
# Only the staging subdirectory is removed — never the workspace itself,
# which contains git-managed source files that must not be deleted.
STAGE_DIR="${PROJECT_BASE_DIR}/deb_stage"
rm -rf "${STAGE_DIR}"
mkdir -p "${STAGE_DIR}"
@@ -69,12 +65,6 @@ python3 make_rpm_ubuntu26.py -c LTS \
--build_number "${BUILD_NUMBER:-1}" \
--release_scope
# Copy produced DEB packages to the packages-out mount (host:
# ${PACKAGE_OUTPUT_DIR}, container: /workspace/packages-out) so they are
# available on the host after the container exits.
# make_rpm already writes to ${WORKSPACE}/rpms/... (the host workspace
# mount), so when the host's PACKAGE_OUTPUT_DIR is that same directory the
# packages are already in place - skip copying onto themselves.
PACKAGE_OUT_DIR=/workspace/packages-out
mkdir -p "${PACKAGE_OUT_DIR}"
shopt -s nullglob
@@ -9,7 +9,7 @@ set -euo pipefail
# optionally runs the Jenkins builder to produce the release DEB packages.
#
# - Resolves MIGRATE_PIPELINE_ROOT (exported variable, .envrc, or derived
# from the script location) and validates rti_license.dat
# from the script location) for the workspace and external mounts
# - Uses a prebuilt Docker image with all build dependencies installed
# (build it from ./Dockerfile via --build-prebuilt-image)
# - Optional deletion of the prebuilt Docker image via --delete-prebuilt-image
@@ -60,9 +60,6 @@ MIGRATE_PIPELINE_ROOT resolution (highest precedence first):
2. MIGRATE_PIPELINE_ROOT set by .envrc in this directory
3. derived from the script location (three levels up)
Expected file:
${MIGRATE_PIPELINE_ROOT}/rti_license.dat
Examples:
./new_docker_build.sh --build-prebuilt-image --docker-image legatus-qt6:1.0
./new_docker_build.sh --docker-image legatus-qt6:1.0
@@ -383,11 +380,9 @@ fi
require_non_empty "${MIGRATE_PIPELINE_ROOT:-}" "MIGRATE_PIPELINE_ROOT"
require_directory "${MIGRATE_PIPELINE_ROOT}" "MIGRATE_PIPELINE_ROOT"
RTI_LICENSE_FILE_HOST="${MIGRATE_PIPELINE_ROOT}/rti_license.dat"
WORKSPACE_ROOT_HOST="${MIGRATE_PIPELINE_ROOT}"
PROJECT_DIR_HOST="${WORKSPACE_ROOT_HOST}/qt-migration-legatus/qt6-after/qt6-migrated-legatus"
require_file "${RTI_LICENSE_FILE_HOST}" "RTI license file"
require_directory "${PROJECT_DIR_HOST}" "Project directory"
log_info "RELEASE_BUILD=${RELEASE_BUILD}"
@@ -403,7 +398,6 @@ log_info "GUEZ_MODE=${GUEZ_MODE}"
log_info "BUILD_NUMBER=${BUILD_NUMBER}"
log_info "BUILD_TAG=${BUILD_TAG}"
log_info "MIGRATE_PIPELINE_ROOT=${MIGRATE_PIPELINE_ROOT}"
log_info "RTI_LICENSE_FILE_HOST=${RTI_LICENSE_FILE_HOST}"
log_info "PROJECT_DIR_HOST=${PROJECT_DIR_HOST}"
if [[ "${BUILD_PREBUILT_IMAGE}" == "ON" ]]; then
@@ -454,7 +448,6 @@ log_error() {
log_info "Using prebuilt Docker image: all build dependencies are baked in"
export RTI_LICENSE_FILE=/workspace/rti_license.dat
export QT_QPA_PLATFORM=offscreen
cd /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus
@@ -584,7 +577,6 @@ docker run --rm \
-e QT_BASE_DIR \
-e RELEASE_BUILD_TARGETS="${RELEASE_BUILD_TARGETS_STRING}" \
-v "${WORKSPACE_ROOT_HOST}:/workspace" \
-v "${RTI_LICENSE_FILE_HOST}:/workspace/rti_license.dat" \
-v "${MIGRATE_PIPELINE_ROOT}/external:/workspace/external:ro" \
-v "${CONTAINER_SCRIPT_HOST}:/tmp/run-build-inside-container.sh:ro" \
-v "${PACKAGE_OUTPUT_DIR}:/workspace/packages-out" \