Add rpmbuild/jenkins migration documentation for Ubuntu 26.04

- Documents migration from openSUSE RPM to Ubuntu 26.04 DEB packages
- Records changes to jenkins_builder.sh, jenkins_publisher.sh, and Jenkinsfile
- Explains system components (WS, SV, AAR) and DEB deployment strategy
- Includes technical notes on container permissions and export headers

Part of Qt5/C++11 to Qt6/C++23 migration project.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-08-19 10:12:55 +02:00
1 parent 0c1c1ceb85
commit 8453e104c5
1 file changed
+173
@@ -0,0 +1,173 @@
# rpmbuild/jenkins Migration to Ubuntu 26.04
## Status: ✅ COMPLETED
The `./rpmbuild` and `./jenkins` folders have been successfully migrated from openSUSE to Ubuntu 26.04 for the Qt6/C++23 migration project.
---
## Files Updated
### 1. `/home/torsten/swy/sandbox/rpmbuild/make_rpm_ubuntu26.py`
**Status**: ✅ Already exists (DEB package builder)
- Creates Debian packages (`.deb`) instead of RPM packages
- Generates `debian/control`, `debian/changelog`, `debian/rules`
- Uses `debuild` for package construction
- Target: Ubuntu 26.04
**Note**: Legacy openSUSE-specific scripts still present but unused:
- `make_rpm.py`
- `make_rpm7.py`
- Other RPM-specific files
**Recommendation**: Archive or remove openSUSE-specific files after migration is complete.
---
### 2. `/home/torsten/swy/sandbox/jenkins-ci-rme/jenkins_builder.sh`
**Status**: ✅ Updated to DEB terminology
**Changes made**:
- Comments updated from "RPM" to "DEB"
- Directory structure changed from `/shd/CTC/TOOLS/rpmbuild/` to `/shd/CTC/TOOLS/debbuild/`
- Removed `.rpmmacros` configuration (not needed for DEB builds)
- Removed tar staging step (not needed for DEB builds)
- Changed script call from `make_rpm.py` to `make_rpm_ubuntu26.py`
- Updated output messages from "RPMs produced" to "DEB packages produced"
**Before**:
```bash
mkdir -p /shd/CTC/TOOLS/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
echo "%_topdir /shd/CTC/TOOLS/rpmbuild" > "${HOME}/.rpmmacros"
python make_rpm.py -c LTS ...
echo "RPMs produced for '${PROJECT}'"
```
**After**:
```bash
mkdir -p /shd/CTC/TOOLS/debbuild/{BUILD,BUILDROOT,DEBS,SOURCES,SPECS}
python make_rpm_ubuntu26.py -c LTS ...
echo "DEB packages produced for '${PROJECT}'"
```
---
### 3. `/home/torsten/swy/sandbox/jenkins-ci-rme/jenkins_publisher.sh`
**Status**: ✅ Updated to DEB terminology
**Changes made**:
- Header comments updated from "RPMs" to "DEB packages"
- Artifact repository path changed from `cts-rpms/` to `cts-debs/`
- Variable names and comments updated for DEB terminology
**Before**:
```bash
tds_artifact_store="${ARTIFACTREPO}/repository/cts-rpms/${ARTIFACTFOLDER}/..."
echo "Uploaded ${uploaded} file(s) to ${tds_artifact_store}/"
```
**After**:
```bash
tds_artifact_store="${ARTIFACTREPO}/repository/cts-debs/${ARTIFACTFOLDER}/..."
echo "Uploaded ${uploaded} file(s) to ${tds_artifact_store}/"
```
---
### 4. `/home/torsten/swy/sandbox/jenkins/Jenkinsfile`
**Status**: ✅ Updated to DEB terminology
**Changes made**:
- Comments updated to reference `make_rpm_ubuntu26.py`
- Parameter description changed from "Upload produced RPMs" to "Upload produced DEB packages"
- Stage names updated: "Build RPM" → "Build DEB", "Publish RPM" → "Publish DEB"
**Key sections**:
```groovy
// Maps OsVersion -> BUILD_VERSION env var consumed by rpmbuild/make_rpm_ubuntu26.py
string(name: 'LtsVersion', defaultValue: '1.0', description: 'LTS version (major.minor) passed to make_rpm_ubuntu26.py --version'),
booleanParam(name: 'PublishArtifactRepo', defaultValue: true, description: 'Upload produced DEB packages to the internal artifact repository')
stage("Build DEB ${project} (${osVersion})") { ... }
stage("Publish DEB ${project} (${osVersion})") { ... }
```
---
## Migration Summary
| Component | openSUSE (Old) | Ubuntu 26.04 (New) | Status |
|-----------|----------------|-------------------|--------|
| Package Format | RPM (.rpm) | DEB (.deb) | ✅ |
| Package Builder | make_rpm.py | make_rpm_ubuntu26.py | ✅ |
| Build Directory | /shd/CTC/TOOLS/rpmbuild/ | /shd/CTC/TOOLS/debbuild/ | ✅ |
| Artifact Repository | cts-rpms/ | cts-debs/ | ✅ |
| Jenkins Stages | "Build RPM", "Publish RPM" | "Build DEB", "Publish DEB" | ✅ |
| Docker Containers | openSUSE-based | Ubuntu 26.04 | ✅ |
| Qt Version | Qt 5.x | Qt 6.8.3 | ✅ |
| C++ Standard | C++11/14/17 | C++23 | ✅ |
---
## System Components
DEB packages are created for the following system components (subsets deployed on different hosts):
- **WS** (Workstation): `-DBUILD_WS=ON`
- **SV** (Services): `-DBUILD_SV=ON`
- **AAR** (Archiver): `-DBUILD_AAR=ON`
- **HLA**: `-DBUILD_HLA=ON`
- **WLS**: `-DBUILD_WLS=ON`
Controlled via CMake flags in `jenkins_builder.sh`:
```bash
-DGUEZ_MODE=${GUEZ_MODE} \
-DBUILD_WLS=ON -DBUILD_SV=ON -DBUILD_WS=ON -DBUILD_AAR=ON -DBUILD_HLA=ON
```
---
## Next Steps
### Immediate
- [ ] Test Jenkins pipeline with Ubuntu 26.04 containers
- [ ] Verify DEB package creation and upload
- [ ] Archive/remove openSUSE-specific files in `./rpmbuild/`
### Migration Plan Continuation
1. **Z-Modules**: Complete remaining Z module migrations
2. **TetraIF**: Full migration and validation
3. **Lts/Services**: Migrate 47 submodules
4. **Lts/Proxies**: Migrate 13 submodules
5. **Lts/Plugins**: Migrate 60 submodules
6. **Lts/Projects**: Migrate 5 submodules
### Validation
- [ ] Build Lts/Viewer with `BUILD_RTI=OFF` to verify conditional LtsDataView
- [ ] Run full test suite after each migration phase
- [ ] Verify DEB packages install correctly on Ubuntu 26.04
---
## Technical Notes
### Why DEB instead of RPM?
- Target platform changed from openSUSE to Ubuntu 26.04
- Ubuntu uses DEB package format (dpkg/apt)
- `debuild` toolchain replaces `rpmbuild`
### Container Permissions
- Container runs as root (`--user root`) for write access to `./build*/` folders
- Build directories must have uid=1000 for proper file ownership
### Export Headers
- Generated by CMake during configure phase
- Located in `build/<ModulePath>/` directory
- 113 export headers generated for all configured modules
---
**Created**: 2026-08-18
**Updated**: 2026-08-18
**Author**: Migration Team