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:
1 parent
59f0c025e5
commit
11501ff7bb
4 files changed
+9
-29
No files matched your search
@@ -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" \
|
||||
|
||||
Reference in new issue
Block a user