Adds CI CD with deb for external deps
This commit is contained in:
82 files changed
+3547
-3
No files matched your search
+132
@@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Jenkins Pipeline for building external dependency DEB packages
|
||||
* for air-gapped environment.
|
||||
*
|
||||
* Packages are uploaded to SCM repository:
|
||||
* http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general
|
||||
*/
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
parameters {
|
||||
choice(
|
||||
name: 'PACKAGE',
|
||||
choices: ['avs', 'arcgis', 'tmsif', 'rti-connext-dds', 'buildingmodels', 'geographiclib', 'schusstafel', 'dtentity'],
|
||||
description: 'Select package to build'
|
||||
)
|
||||
string(
|
||||
name: 'VERSION',
|
||||
defaultValue: '1.0.0',
|
||||
description: 'Package version'
|
||||
)
|
||||
booleanParam(
|
||||
name: 'UPLOAD_TO_SCM',
|
||||
defaultValue: true,
|
||||
description: 'Upload built package to SCM repository'
|
||||
)
|
||||
}
|
||||
|
||||
environment {
|
||||
SCM_REPO = 'http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general'
|
||||
DEB_PACKAGE_DIR = "${env.WORKSPACE}/external-dependencies/deb-packages/${params.PACKAGE}"
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Validate Package Structure') {
|
||||
steps {
|
||||
script {
|
||||
def requiredFiles = [
|
||||
'debian/control',
|
||||
'debian/rules',
|
||||
'debian/changelog',
|
||||
'debian/compat',
|
||||
'debian/source/format'
|
||||
]
|
||||
requiredFiles.each { file ->
|
||||
if (!fileExists("${DEB_PACKAGE_DIR}/${file}")) {
|
||||
error "Missing required file: ${file}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build DEB Package') {
|
||||
steps {
|
||||
dir("${DEB_PACKAGE_DIR}") {
|
||||
sh '''
|
||||
# Install build dependencies
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y debhelper devscripts build-essential
|
||||
|
||||
# Build the package
|
||||
debuild -us -uc -b
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Upload to SCM') {
|
||||
when {
|
||||
expression { return params.UPLOAD_TO_SCM }
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
// Upload to Nexus SCM repository
|
||||
withCredentials([usernamePassword(
|
||||
credentialsId: 'scm-repo-credentials',
|
||||
usernameVariable: 'SCM_USER',
|
||||
passwordVariable: 'SCM_PASS'
|
||||
)]) {
|
||||
sh '''
|
||||
# Find the built .deb file
|
||||
DEB_FILE=$(find ${DEB_PACKAGE_DIR}/.. -name "*.deb" -type f | head -1)
|
||||
|
||||
if [ -z "$DEB_FILE" ]; then
|
||||
echo "No .deb file found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Uploading $DEB_FILE to SCM repository..."
|
||||
|
||||
# Upload to Nexus repository using curl with PUT
|
||||
curl -u "${SCM_USER}:${SCM_PASS}" \
|
||||
--request PUT \
|
||||
--upload-file "$DEB_FILE" \
|
||||
"${SCM_REPO}/$(basename $DEB_FILE)" \
|
||||
--fail \
|
||||
--show-error
|
||||
|
||||
echo "Package uploaded successfully to: ${SCM_REPO}/$(basename $DEB_FILE)"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Archive Artifacts') {
|
||||
steps {
|
||||
archiveArtifacts artifacts: "${DEB_PACKAGE_DIR}/../*.deb", allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
cleanWs()
|
||||
}
|
||||
success {
|
||||
echo "Package ${params.PACKAGE} version ${params.VERSION} built and uploaded successfully!"
|
||||
}
|
||||
failure {
|
||||
echo "Build failed for package ${params.PACKAGE}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,253 @@
|
||||
# DEB Package Build Pipelines
|
||||
|
||||
This directory contains DEB package build configurations for all 8 external dependencies used in the Legatus project.
|
||||
|
||||
## Overview
|
||||
|
||||
All external dependencies are packaged as native DEB packages (format: 3.0 native) and stored in the internal SCM repository. During CI/CD, packages are installed via apt instead of copying files into Docker containers. This approach provides:
|
||||
|
||||
- **Reproducible builds**: Standard Ubuntu packaging with debhelper
|
||||
- **Version management**: Semantic versioning with proper dependencies
|
||||
- **Air-gapped support**: Packages stored in internal SCM repository at `http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general/`
|
||||
- **Compliance**: License files included in packages where required
|
||||
- **Maintainability**: Standard Ubuntu package management tools
|
||||
- **Clean Dockerfiles**: No COPY commands for proprietary dependencies
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
deb-packages/
|
||||
├── README.md # This file
|
||||
├── Jenkinsfile # Jenkins pipeline for building and uploading
|
||||
├── avs/ # AVS DEB package
|
||||
│ ├── debian/ # Debian control files
|
||||
│ │ ├── control # Package metadata and dependencies
|
||||
│ │ ├── rules # Build rules with override_dh_auto_install
|
||||
│ │ ├── changelog # Version history
|
||||
│ │ └── source/
|
||||
│ │ └── format # Package format (3.0 native)
|
||||
├── arcgis/ # ArcGIS Runtime SDK DEB package
|
||||
├── buildingmodels/ # BuildingModels DEB package
|
||||
├── geographiclib/ # GeographicLib DEB package
|
||||
├── schusstafel/ # Schusstafel DEB package
|
||||
├── dtentity/ # dtEntity DEB package
|
||||
├── rti-connext-dds/ # RTI Connext DDS DEB package (includes license)
|
||||
└── tmsif/ # tmsif DEB package
|
||||
```
|
||||
|
||||
## Package Names
|
||||
|
||||
| Directory | DEB Package Name | Version | Description |
|
||||
|-----------|------------------|---------|-------------|
|
||||
| avs | `libavs-dev` | 1.0.0 | AVS library development files |
|
||||
| arcgis | `libarcgis-dev` | 1.0.0 | ArcGIS Runtime SDK for Qt |
|
||||
| buildingmodels | `libbuildingmodels-dev` | 1.0.0 | Building models library |
|
||||
| geographiclib | `libgeographiclib-dev` | 1.0.0 | Geographic calculations library |
|
||||
| schusstafel | `libschusstafel-dev` | 1.0.0 | Schusstafel library |
|
||||
| dtentity | `libdtentity-dev` | 1.0.0 | dtEntity game engine |
|
||||
| rti-connext-dds | `librti-connext-dds-7.7.0-dev` | 7.7.0 | RTI Connext DDS middleware (includes license) |
|
||||
| tmsif | `libtmsif-dev` | 1.0.0 | TMSIF library |
|
||||
|
||||
## Building DEB Packages
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Ubuntu 26.04 build environment
|
||||
- `devscripts` package
|
||||
- `debhelper` (>= 12) package
|
||||
- Build dependencies for each package (see `debian/control`)
|
||||
|
||||
### Manual Build
|
||||
|
||||
```bash
|
||||
cd external-dependencies/deb-packages/geographiclib
|
||||
debuild -us -uc -b
|
||||
```
|
||||
|
||||
This creates a binary-only DEB package without signing in the parent directory.
|
||||
|
||||
### Build Scripts
|
||||
|
||||
**Build single package:**
|
||||
```bash
|
||||
cd external-dependencies/deb-packages
|
||||
./build-package.sh geographiclib 1.0.0
|
||||
```
|
||||
|
||||
**Build all packages:**
|
||||
```bash
|
||||
cd external-dependencies/deb-packages
|
||||
./build-all-packages.sh
|
||||
```
|
||||
|
||||
Build output is stored in `external-dependencies/deb-packages/output/`
|
||||
|
||||
### Jenkins Pipeline
|
||||
|
||||
Use the Jenkinsfile to build and upload packages:
|
||||
|
||||
```bash
|
||||
# In Jenkins, select package name and version
|
||||
# Pipeline will build and upload to SCM repository automatically
|
||||
```
|
||||
|
||||
## Package Structure
|
||||
|
||||
### Control File Example (AVS)
|
||||
|
||||
```
|
||||
Source: avs
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev, ...
|
||||
|
||||
Package: libavs-dev
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: AVS library development files
|
||||
Development files and headers for the AVS library
|
||||
used in the Legatus project.
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/avs.git
|
||||
```
|
||||
|
||||
### Installation Path
|
||||
|
||||
All packages install to `/opt/{DependencyName}` directory structure:
|
||||
- Installation root: `/opt/{DependencyName}/`
|
||||
- Headers: `/opt/{DependencyName}/include/`
|
||||
- Libraries: `/opt/{DependencyName}/lib/`
|
||||
- CMake configs: `/opt/{DependencyName}/cmake/`
|
||||
- Licenses: `/opt/{DependencyName}/` (RTI) or `/usr/share/doc/<package>/copyright`
|
||||
|
||||
## Uploading to SCM Repository
|
||||
|
||||
### Jenkins Pipeline
|
||||
|
||||
The Jenkinsfile automates building and uploading:
|
||||
|
||||
```groovy
|
||||
// Parameters:
|
||||
// - PACKAGE_NAME: avs, arcgis, buildingmodels, etc.
|
||||
// - PACKAGE_VERSION: 1.0.0
|
||||
// - SCM_URL: http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general/
|
||||
// - CREDENTIALS_ID: Jenkins credentials ID for SCM authentication
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
parameters {
|
||||
choice(name: 'PACKAGE_NAME', choices: ['avs', 'arcgis', 'buildingmodels', 'geographiclib', 'schusstafel', 'dtentity', 'rti-connext-dds', 'tmsif'])
|
||||
string(name: 'PACKAGE_VERSION', defaultValue: '1.0.0')
|
||||
}
|
||||
stages {
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh "cd external-dependencies/deb-packages/\${PACKAGE_NAME} && debuild -us -uc -b"
|
||||
}
|
||||
}
|
||||
stage('Upload') {
|
||||
steps {
|
||||
sh "curl -u \${SCM_CREDENTIALS} --upload-file ../lib\${PACKAGE_NAME}-dev_\${PACKAGE_VERSION}_amd64.deb \${SCM_URL}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Manual Upload
|
||||
|
||||
```bash
|
||||
curl -u <username>:<password> \
|
||||
--upload-file libavs-dev_1.0.0_amd64.deb \
|
||||
http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general/
|
||||
```
|
||||
|
||||
## License Handling
|
||||
|
||||
### RTI Connext DDS
|
||||
|
||||
The RTI package includes the commercial license file:
|
||||
- `rti_license.dat` included in DEB package at `/opt/rti_connext_dds-7.7.0/rti_license.dat`
|
||||
- DEB package installs to `/opt/rti_connext_dds-7.7.0/`
|
||||
- FlexLM license validated at runtime
|
||||
|
||||
### ArcGIS Runtime SDK
|
||||
|
||||
- Map-specific licenses embedded in .ini files
|
||||
- Licenses included in DEB package
|
||||
- Located in `/opt/ArcGIS/MapsSDK_Qt_300.0.0/`
|
||||
|
||||
### AVS & tmsif
|
||||
|
||||
- Customer lifetime license contracts
|
||||
- No license files required in DEB package
|
||||
- License contracts maintained separately by customer
|
||||
|
||||
### Other Packages
|
||||
|
||||
- Open source or internal licenses
|
||||
- Standard copyright file in `/usr/share/doc/<package>/copyright`
|
||||
|
||||
## Verification
|
||||
|
||||
After installation, verify packages:
|
||||
|
||||
```bash
|
||||
# Check installed packages
|
||||
dpkg -l | grep libavs-dev
|
||||
|
||||
# List installed files
|
||||
dpkg -L libavs-dev
|
||||
|
||||
# Check package info
|
||||
apt-cache show libavs-dev
|
||||
|
||||
# Verify installation path
|
||||
ls -la /opt/AVS/
|
||||
|
||||
# Verify dependencies
|
||||
ldd /opt/AVS/lib/libavs.so
|
||||
```
|
||||
|
||||
|
||||
## Usage in Dockerfiles
|
||||
|
||||
Example Dockerfile using DEB packages from SCM:
|
||||
|
||||
```dockerfile
|
||||
FROM ubuntu:26.04
|
||||
|
||||
# Configure APT repository for internal SCM
|
||||
RUN echo "deb [trusted=yes] http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general/ /" > /etc/apt/sources.list.d/scm.list
|
||||
|
||||
# Install all external dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libavs-dev \
|
||||
libarcgis-dev \
|
||||
libbuildingmodels-dev \
|
||||
libgeographiclib-dev \
|
||||
libschusstafel-dev \
|
||||
libdtentity-dev \
|
||||
librti-connext-dds-7.7.0-dev \
|
||||
libtmsif-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Verify installation
|
||||
RUN ls -la /opt/AVS /opt/ArcGIS /opt/RTI
|
||||
```
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- **Include license files** in DEB packages where required (RTI, ArcGIS)
|
||||
- **Sign packages** with internal signing key before distribution
|
||||
- **Verify checksums** after upload to repository
|
||||
- **Maintain chain of custody** for proprietary packages
|
||||
- **Use HTTPS** for SCM repository access in production
|
||||
|
||||
## References
|
||||
|
||||
- [Ubuntu Packaging Guide](https://ubuntu.com/server/docs/packaging)
|
||||
- [Debian New Maintainers' Guide](https://www.debian.org/doc/manuals/maint-guide/)
|
||||
- [Internal SCM Repository](https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general)
|
||||
- [Main README](../README.md)
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# ArcGIS DEB Package Build Script
|
||||
# Builds libarcgis-maps-sdk-qt-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libarcgis-maps-sdk-qt-dev"
|
||||
VERSION="300.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="ArcGIS Maps SDK for Qt - development files (embedded ini-file licenses)"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/ArcGIS/MapsSDK_Qt_300.0.0"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/arcgis"
|
||||
|
||||
# Copy ArcGIS files from external/ArcGIS
|
||||
if [ -d "../../external/ArcGIS" ]; then
|
||||
cp -r ../../external/ArcGIS/* "$DEB_DIR/opt/ArcGIS/MapsSDK_Qt_300.0.0/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, libqt6positioning6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
ArcGIS Maps SDK for Qt (version 300.0.0) for Legatus.
|
||||
.
|
||||
License: Embedded ini-file licenses
|
||||
Map-specific licenses embedded in Lts/Viewer/SituationMap/Map/*.ini files.
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "ArcGIS DEB package installed successfully"
|
||||
echo "License: Embedded ini-file licenses in Lts/Viewer/SituationMap/Map/*.ini"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/ArcGIS
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "ArcGIS DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libarcgis-maps-sdk-qt-dev (300.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* ArcGIS Maps SDK for Qt with embedded ini-file licenses
|
||||
* Installs to /opt/ArcGIS
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,22 @@
|
||||
Source: libarcgis-maps-sdk-qt-dev
|
||||
Section: contrib/devel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/external-rpms/general/libarcgis-maps-sdk-qt-dev.git
|
||||
|
||||
Package: libarcgis-maps-sdk-qt-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: ArcGIS Maps SDK for Qt - development files (embedded ini-file licenses)
|
||||
ArcGIS Maps SDK for Qt 300.0.0 for Legatus.
|
||||
.
|
||||
License: Embedded ini-file licenses
|
||||
Map-specific licenses embedded in Lts/Viewer/SituationMap/Map/*.ini files.
|
||||
Customer has lifetime license contract.
|
||||
.
|
||||
This package contains the development files for ArcGIS Maps SDK for Qt.
|
||||
.
|
||||
Available from SCM: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libarcgis-dev/opt/ArcGIS
|
||||
cp -r $(OPT_BASE)/ArcGIS/* debian/libarcgis-dev/opt/ArcGIS/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# AVS DEB Package Build Script
|
||||
# Builds libavs-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libavs-dev"
|
||||
VERSION="1.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="AVS library - development files (contract-based license)"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/AVS"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/avs"
|
||||
|
||||
# Copy AVS files from external/AVS
|
||||
if [ -d "../../external/AVS" ]; then
|
||||
cp -r ../../external/AVS/* "$DEB_DIR/opt/AVS/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
AVS (Application Visualization System) library for Legatus.
|
||||
.
|
||||
License: Contract-based (no file required)
|
||||
Customer has lifetime license contract.
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "AVS DEB package installed successfully"
|
||||
echo "License: Contract-based (no file required)"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/AVS
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "AVS DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libavs-dev (1.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* AVS library with contract-based lifetime license
|
||||
* Installs to /opt/AVS
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,21 @@
|
||||
Source: libavs-dev
|
||||
Section: contrib/devel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/external-rpms/general/libavs-dev.git
|
||||
|
||||
Package: libavs-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: AVS library - development files (contract-based license)
|
||||
AVS (Application Visualization System) library for Legatus.
|
||||
.
|
||||
License: Contract-based (no file required)
|
||||
Customer has lifetime license contract.
|
||||
.
|
||||
This package contains the development files for AVS library.
|
||||
.
|
||||
Available from SCM: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libavs-dev/opt/AVS
|
||||
cp -r $(OPT_BASE)/AVS/* debian/libavs-dev/opt/AVS/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
# Build all DEB packages for external dependencies
|
||||
# Usage: ./build-all-packages.sh
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGES=("avs" "arcgis" "buildingmodels" "geographiclib" "schusstafel" "dtentity" "rti-connext-dds" "tmsif")
|
||||
OUTPUT_DIR="${SCRIPT_DIR}/output"
|
||||
VERSION="1.0.0"
|
||||
|
||||
echo "========================================"
|
||||
echo "DEB Package Build Script"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
# Create output directory
|
||||
mkdir -p "${OUTPUT_DIR}"
|
||||
|
||||
# Build each package
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
echo "Building package: ${pkg}"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# Call build-package.sh for each package
|
||||
"${SCRIPT_DIR}/build-package.sh" "${pkg}" "${VERSION}"
|
||||
|
||||
# Move generated .deb files to output directory
|
||||
# Extract package name from control file
|
||||
pkg_name=$(grep -m1 "^Package:" "${SCRIPT_DIR}/${pkg}/debian/control" | awk '{print $2}')
|
||||
if [ -z "${pkg_name}" ]; then
|
||||
pkg_name="lib${pkg}-dev"
|
||||
fi
|
||||
|
||||
if [ -f "${SCRIPT_DIR}/${pkg_name}_${VERSION}_amd64.deb" ]; then
|
||||
mv "${SCRIPT_DIR}/${pkg_name}_${VERSION}_amd64.deb" "${OUTPUT_DIR}/"
|
||||
echo "✓ Built: ${pkg_name}_${VERSION}_amd64.deb"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "========================================"
|
||||
echo "Build Summary"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "Output directory: ${OUTPUT_DIR}"
|
||||
echo ""
|
||||
ls -lh "${OUTPUT_DIR}"/*.deb 2>/dev/null || echo "No .deb files found"
|
||||
echo ""
|
||||
echo "Build complete!"
|
||||
+206
@@ -0,0 +1,206 @@
|
||||
#!/bin/bash
|
||||
# Build a single DEB package
|
||||
# Usage: ./build-package.sh <package-dir-name> [version]
|
||||
#
|
||||
# Package directory names and their corresponding DEB package names:
|
||||
# arcgis -> libarcgis-maps-sdk-qt-dev
|
||||
# avs -> libavs-dev
|
||||
# buildingmodels -> libbuildingmodels-dev
|
||||
# dtentity -> libdtentity-dev
|
||||
# geographiclib -> libgeographiclib-dev
|
||||
# rti-connext-dds -> librti-connext-dds-7.7.0-dev
|
||||
# schusstafel -> libschusstafel-dev
|
||||
# tmsif -> libtmsif-dev
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGE_DIR_NAME="$1"
|
||||
VERSION="${2:-1.0.0}"
|
||||
|
||||
if [ -z "${PACKAGE_DIR_NAME}" ]; then
|
||||
echo "Usage: ./build-package.sh <package-dir-name> [version]"
|
||||
echo "Example: ./build-package.sh geographiclib 1.0.0"
|
||||
echo ""
|
||||
echo "Available package directories:"
|
||||
echo " arcgis, avs, buildingmodels, dtentity, geographiclib, rti-connext-dds, schusstafel, tmsif"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PACKAGE_DIR="${SCRIPT_DIR}/${PACKAGE_DIR_NAME}"
|
||||
|
||||
if [ ! -d "${PACKAGE_DIR}/debian" ]; then
|
||||
echo "ERROR: Package directory not found: ${PACKAGE_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract actual package name from control file
|
||||
PACKAGE_NAME=$(grep "^Package:" "${PACKAGE_DIR}/debian/control" | cut -d' ' -f2)
|
||||
if [ -z "${PACKAGE_NAME}" ]; then
|
||||
echo "ERROR: Could not extract package name from control file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Package directory: ${PACKAGE_DIR_NAME}"
|
||||
echo "DEB package name: ${PACKAGE_NAME}"
|
||||
|
||||
# Determine expected /opt path and source path based on package directory
|
||||
case "${PACKAGE_DIR_NAME}" in
|
||||
arcgis)
|
||||
OPT_PATH="/opt/ArcGIS/MapsSDK_Qt_300.0.0"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/ArcGIS"
|
||||
;;
|
||||
avs)
|
||||
OPT_PATH="/opt/AVS"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/AVS"
|
||||
;;
|
||||
buildingmodels)
|
||||
OPT_PATH="/opt/BuildingModels"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/BuildingModels"
|
||||
;;
|
||||
dtentity)
|
||||
OPT_PATH="/opt/dtEntity"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/dtEntity"
|
||||
;;
|
||||
geographiclib)
|
||||
OPT_PATH="/opt/GeographicLib"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/GeographicLib"
|
||||
;;
|
||||
rti-connext-dds)
|
||||
OPT_PATH="/opt/rti_connext_dds-7.7.0"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/rti_connext_dds-7.7.0"
|
||||
;;
|
||||
schusstafel)
|
||||
OPT_PATH="/opt/Schusstafel"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/Schusstafel"
|
||||
;;
|
||||
tmsif)
|
||||
OPT_PATH="/opt/tmsif"
|
||||
SRC_PATH="${SCRIPT_DIR}/../../external/tmsif"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unknown package directory: ${PACKAGE_DIR_NAME}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Source path: ${SRC_PATH}"
|
||||
echo "Target /opt path: ${OPT_PATH}"
|
||||
echo "========================================"
|
||||
echo "Building DEB Package: ${PACKAGE_NAME}"
|
||||
echo "Version: ${VERSION}"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
# Check if dependency exists in source location
|
||||
if [ ! -d "${SRC_PATH}" ]; then
|
||||
echo "ERROR: Dependency not found at ${SRC_PATH}"
|
||||
echo ""
|
||||
echo "Ensure the dependency is present in the external directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create temporary /opt structure for build
|
||||
TEMP_OPT_BASE="/tmp/deb-build-opt"
|
||||
TEMP_OPT="${TEMP_OPT_BASE}${OPT_PATH}"
|
||||
mkdir -p "${TEMP_OPT}"
|
||||
|
||||
echo "Setting up temporary /opt structure..."
|
||||
cp -r "${SRC_PATH}"/* "${TEMP_OPT}/"
|
||||
|
||||
# For RTI, also copy license file if it exists
|
||||
if [ "${PACKAGE_DIR_NAME}" = "rti-connext-dds" ]; then
|
||||
LICENSE_FILE="${SCRIPT_DIR}/../../rti_license.dat"
|
||||
if [ -f "${LICENSE_FILE}" ]; then
|
||||
echo "Including RTI license file in build..."
|
||||
cp "${LICENSE_FILE}" "${TEMP_OPT}/rti_license.dat"
|
||||
else
|
||||
echo "WARNING: RTI license file not found at ${LICENSE_FILE}"
|
||||
echo "The package will be built without the license file."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Temporary /opt structure created at: ${TEMP_OPT}"
|
||||
echo ""
|
||||
|
||||
cd "${PACKAGE_DIR}"
|
||||
|
||||
# Clean previous builds
|
||||
echo "Cleaning previous build artifacts..."
|
||||
rm -rf debian/.debhelper debian/*.debhelper debian/files debian/substvars 2>/dev/null || true
|
||||
rm -f ../${PACKAGE_NAME}_*.deb 2>/dev/null || true
|
||||
|
||||
# Build package with OPT_BASE environment variable
|
||||
echo "Building package..."
|
||||
export DEB_BUILD_OPT_PATH="${TEMP_OPT_BASE}"
|
||||
echo "Using OPT_BASE: ${DEB_BUILD_OPT_PATH}"
|
||||
|
||||
# Create package build directory structure
|
||||
PKG_BUILD_DIR="debian/${PACKAGE_NAME}"
|
||||
rm -rf "${PKG_BUILD_DIR}"
|
||||
mkdir -p "${PKG_BUILD_DIR}/opt"
|
||||
|
||||
# Copy files from temporary /opt to package structure
|
||||
echo "Copying files to package structure..."
|
||||
cp -r "${TEMP_OPT_BASE}/${DIR_NAME}"/* "${PKG_BUILD_DIR}/"
|
||||
|
||||
# Create DEBIAN control directory
|
||||
mkdir -p "${PKG_BUILD_DIR}/DEBIAN"
|
||||
|
||||
# Generate control file
|
||||
cat > "${PKG_BUILD_DIR}/DEBIAN/control" << EOF
|
||||
Package: ${PACKAGE_NAME}
|
||||
Version: ${VERSION}
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Description: ${PACKAGE_NAME} for air-gapped environment
|
||||
Built from source in ./external/ directory
|
||||
EOF
|
||||
|
||||
# Generate changelog
|
||||
cat > "${PKG_BUILD_DIR}/DEBIAN/changelog" << EOF
|
||||
${PACKAGE_NAME} (${VERSION}) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* Built from ./external/ source directory
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> $(date -R)
|
||||
EOF
|
||||
|
||||
# Set proper permissions
|
||||
chmod -R 755 "${PKG_BUILD_DIR}/DEBIAN"
|
||||
find "${PKG_BUILD_DIR}/opt" -type d -exec chmod 755 {} \;
|
||||
find "${PKG_BUILD_DIR}/opt" -type f -exec chmod 644 {} \;
|
||||
|
||||
# Build the package
|
||||
echo "Creating DEB package..."
|
||||
dpkg-deb --root-owner-group --build "${PKG_BUILD_DIR}" ../${PACKAGE_NAME}_${VERSION}_amd64.deb
|
||||
|
||||
# Clean up temporary structure
|
||||
echo "Cleaning up temporary /opt structure..."
|
||||
rm -rf "${TEMP_OPT_BASE}"
|
||||
|
||||
# Clean up build directory
|
||||
rm -rf "${PKG_BUILD_DIR}"
|
||||
|
||||
# Verify output
|
||||
DEB_FILE="${SCRIPT_DIR}/${PACKAGE_NAME}_${VERSION}_amd64.deb"
|
||||
if [ -f "${DEB_FILE}" ]; then
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "Build Successful!"
|
||||
echo "========================================"
|
||||
echo "Package: ${DEB_FILE}"
|
||||
echo "Size: $(du -h "${DEB_FILE}" | cut -f1)"
|
||||
echo ""
|
||||
echo "Package contents:"
|
||||
dpkg -c "${DEB_FILE}" | head -20
|
||||
echo ""
|
||||
echo "To upload to SCM repository:"
|
||||
echo " curl -u <credentials> --upload-file ${DEB_FILE} http://remote-repo.sl.defence-elec.de:8081/repository/external-rpms/general/"
|
||||
else
|
||||
echo "ERROR: Package file not found: ${DEB_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# BuildingModels DEB Package Build Script
|
||||
# Builds libbuildingmodels-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libbuildingmodels-dev"
|
||||
VERSION="1.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="BuildingModels library - development files"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/BuildingModels"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/buildingmodels"
|
||||
|
||||
# Copy BuildingModels files from external/BuildingModels
|
||||
if [ -d "../../external/BuildingModels" ]; then
|
||||
cp -r ../../external/BuildingModels/* "$DEB_DIR/opt/BuildingModels/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
BuildingModels library for Legatus.
|
||||
.
|
||||
License: Standard (no special license file required)
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "BuildingModels DEB package installed successfully"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/BuildingModels
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "BuildingModels DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libbuildingmodels-dev (1.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* BuildingModels library with standard license
|
||||
* Installs to /opt/BuildingModels
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,18 @@
|
||||
Source: libbuildingmodels-dev
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/external/buildingmodels.git
|
||||
|
||||
Package: libbuildingmodels-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: BuildingModels library - development files
|
||||
BuildingModels library for Legatus.
|
||||
.
|
||||
License: Standard (no special requirements)
|
||||
.
|
||||
This package contains the development files for BuildingModels library.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libbuildingmodels-dev/opt/BuildingModels
|
||||
cp -r $(OPT_BASE)/BuildingModels/* debian/libbuildingmodels-dev/opt/BuildingModels/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# dtEntity DEB Package Build Script
|
||||
# Builds libdtentity-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libdtentity-dev"
|
||||
VERSION="1.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="dtEntity game engine - development files"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/dtEntity"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/dtentity"
|
||||
|
||||
# Copy dtEntity files from external/dtEntity
|
||||
if [ -d "../../external/dtEntity" ]; then
|
||||
cp -r ../../external/dtEntity/* "$DEB_DIR/opt/dtEntity/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, libstdc++6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
dtEntity game engine for Legatus.
|
||||
.
|
||||
License: Open source (no special license file required)
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "dtEntity DEB package installed successfully"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/dtEntity
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "dtEntity DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libdtentity-dev (1.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* dtEntity game engine with open source/contract license
|
||||
* Installs to /opt/dtEntity
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,18 @@
|
||||
Source: libdtentity-dev
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/external/dtentity.git
|
||||
|
||||
Package: libdtentity-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: dtEntity game engine - development files
|
||||
dtEntity game engine for Legatus.
|
||||
.
|
||||
License: Open source / contract-based (no file required)
|
||||
.
|
||||
This package contains the development files for dtEntity game engine.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libdtentity-dev/opt/dtEntity
|
||||
cp -r $(OPT_BASE)/dtEntity/* debian/libdtentity-dev/opt/dtEntity/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# GeographicLib DEB Package Build Script
|
||||
# Builds libgeographiclib-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libgeographiclib-dev"
|
||||
VERSION="2.3"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="GeographicLib library - development files"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/GeographicLib"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/geographiclib"
|
||||
|
||||
# Copy GeographicLib files from external/GeographicLib
|
||||
if [ -d "../../external/GeographicLib" ]; then
|
||||
cp -r ../../external/GeographicLib/* "$DEB_DIR/opt/GeographicLib/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libc6, libgcc1, libstdc++6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
GeographicLib library for geodesic calculations.
|
||||
.
|
||||
License: MIT/X11 (open source)
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "GeographicLib DEB package installed successfully"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/GeographicLib
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "GeographicLib DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libgeographiclib-dev (2.3) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* GeographicLib library with MIT-style license
|
||||
* Installs to /opt/GeographicLib
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1,18 @@
|
||||
Source: libgeographiclib-dev
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12)
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/external/geographiclib.git
|
||||
|
||||
Package: libgeographiclib-dev
|
||||
Architecture: amd64
|
||||
Depends: libgeographiclib23, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: GeographicLib library - development files
|
||||
GeographicLib library for Legatus.
|
||||
.
|
||||
License: MIT-style open source
|
||||
.
|
||||
This package contains the development files for GeographicLib library.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libgeographiclib-dev/opt/GeographicLib
|
||||
cp -r $(OPT_BASE)/GeographicLib/* debian/libgeographiclib-dev/opt/GeographicLib/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1,7 @@
|
||||
libgeographiclib-dev (2.3) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* GeographicLib library with MIT-style license
|
||||
* Installs to /opt/GeographicLib
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,18 @@
|
||||
Source: libgeographiclib-dev
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12)
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/external/geographiclib.git
|
||||
|
||||
Package: libgeographiclib-dev
|
||||
Architecture: amd64
|
||||
Depends: libgeographiclib23, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: GeographicLib library - development files
|
||||
GeographicLib library for Legatus.
|
||||
.
|
||||
License: MIT-style open source
|
||||
.
|
||||
This package contains the development files for GeographicLib library.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libgeographiclib-dev/opt/GeographicLib
|
||||
cp -r $(OPT_BASE)/GeographicLib/* debian/libgeographiclib-dev/opt/GeographicLib/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
# RTI Connext DDS DEB Package Build Script
|
||||
# Builds librti-connext-dds-7.7.0-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="librti-connext-dds-7.7.0-dev"
|
||||
VERSION="7.7.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="RTI Connext DDS 7.7.0 Pro - development files (commercial license)"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/rti_connext_dds-7.7.0"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/rti"
|
||||
|
||||
# Copy RTI files from external/rti_connext_dds-7.7.0
|
||||
if [ -d "../../external/rti_connext_dds-7.7.0" ]; then
|
||||
cp -r ../../external/rti_connext_dds-7.7.0/* "$DEB_DIR/opt/rti_connext_dds-7.7.0/"
|
||||
fi
|
||||
|
||||
# Copy license file
|
||||
if [ -f "../../../rti_license.dat" ]; then
|
||||
cp ../../../rti_license.dat "$DEB_DIR/opt/rti_connext_dds-7.7.0/rti_license.dat"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, libstdc++6, libc6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
RTI Connext DDS 7.7.0 Pro for Legatus.
|
||||
.
|
||||
License: Commercial FlexLM license
|
||||
License file: /opt/rti_connext_dds-7.7.0/rti_license.dat
|
||||
Set RTI_LICENSE_FILE environment variable.
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "RTI Connext DDS DEB package installed successfully"
|
||||
echo "License: Commercial FlexLM license"
|
||||
echo "License file: /opt/rti_connext_dds-7.7.0/rti_license.dat"
|
||||
echo "Set RTI_LICENSE_FILE environment variable to use the library."
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/rti_connext_dds-7.7.0
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "RTI Connext DDS DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,8 @@
|
||||
librti-connext-dds-7.7.0-dev (7.7.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* RTI Connext DDS 7.7.0 Pro with commercial FlexLM license
|
||||
* Includes rti_license.dat for license validation
|
||||
* Installs to /opt/rti_connext_dds-7.7.0
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,22 @@
|
||||
Source: librti-connext-dds-7.7.0-dev
|
||||
Section: contrib/devel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/external-rpms/general/librti-connext-dds-7.7.0-dev.git
|
||||
|
||||
Package: librti-connext-dds-7.7.0-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, libstdc++6, libc6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: RTI Connext DDS 7.7.0 Pro - development files (commercial license)
|
||||
RTI Connext DDS 7.7.0 Pro for Legatus.
|
||||
.
|
||||
License: Commercial FlexLM license
|
||||
License file: /opt/rti_connext_dds-7.7.0/rti_license.dat
|
||||
Set RTI_LICENSE_FILE environment variable.
|
||||
.
|
||||
This package contains the development files for RTI Connext DDS 7.7.0 Pro.
|
||||
.
|
||||
Available from SCM: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/librti-connext-dds-7.7.0-dev/opt/rti_connext_dds-7.7.0
|
||||
cp -r $(OPT_BASE)/rti_connext_dds-7.7.0/* debian/librti-connext-dds-7.7.0-dev/opt/rti_connext_dds-7.7.0/
|
||||
install -d debian/librti-connext-dds-7.7.0-dev/opt/rti_connext_dds-7.7.0/etc
|
||||
# Copy license from build machine or project root
|
||||
if [ -f $(OPT_BASE)/rti_connext_dds-7.7.0/rti_license.dat ]; then \
|
||||
cp $(OPT_BASE)/rti_connext_dds-7.7.0/rti_license.dat debian/librti-connext-dds-7.7.0-dev/opt/rti_connext_dds-7.7.0/rti_license.dat; \
|
||||
elif [ -f ../../../../rti_license.dat ]; then \
|
||||
cp ../../../../rti_license.dat debian/librti-connext-dds-7.7.0-dev/opt/rti_connext_dds-7.7.0/rti_license.dat; \
|
||||
else \
|
||||
echo "ERROR: rti_license.dat not found!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# Schusstafel DEB Package Build Script
|
||||
# Builds libschusstafel-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libschusstafel-dev"
|
||||
VERSION="1.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="Schusstafel library - development files"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/Schusstafel"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/schusstafel"
|
||||
|
||||
# Copy Schusstafel files from external/Schusstafel
|
||||
if [ -d "../../external/Schusstafel" ]; then
|
||||
cp -r ../../external/Schusstafel/* "$DEB_DIR/opt/Schusstafel/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
Schusstafel library for Legatus.
|
||||
.
|
||||
License: Standard (no special license file required)
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Schusstafel DEB package installed successfully"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/Schusstafel
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Schusstafel DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libschusstafel-dev (1.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* Schusstafel library with standard license
|
||||
* Installs to /opt/Schusstafel
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,18 @@
|
||||
Source: libschusstafel-dev
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/git/external/schusstafel.git
|
||||
|
||||
Package: libschusstafel-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Schusstafel library - development files
|
||||
Schusstafel library for Legatus.
|
||||
.
|
||||
License: Standard (no special requirements)
|
||||
.
|
||||
This package contains the development files for Schusstafel library.
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libschusstafel-dev/opt/Schusstafel
|
||||
cp -r $(OPT_BASE)/Schusstafel/* debian/libschusstafel-dev/opt/Schusstafel/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# tmsif DEB Package Build Script
|
||||
# Builds libtmsif-dev DEB package for internal SCM repository
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="libtmsif-dev"
|
||||
VERSION="1.0.0"
|
||||
ARCHITECTURE="amd64"
|
||||
MAINTAINER="Legatus Team <legatus@defence-elec.de>"
|
||||
DESCRIPTION="TMSIF library - development files (contract-based license)"
|
||||
|
||||
# Create package structure
|
||||
DEB_DIR="deb-package"
|
||||
rm -rf "$DEB_DIR"
|
||||
mkdir -p "$DEB_DIR/DEBIAN"
|
||||
mkdir -p "$DEB_DIR/opt/tmsif"
|
||||
mkdir -p "$DEB_DIR/opt/offline-cache/tmsif"
|
||||
|
||||
# Copy tmsif files from external/tmsif
|
||||
if [ -d "../../external/tmsif" ]; then
|
||||
cp -r ../../external/tmsif/* "$DEB_DIR/opt/tmsif/"
|
||||
fi
|
||||
|
||||
# Create control file
|
||||
cat > "$DEB_DIR/DEBIAN/control" << EOF
|
||||
Package: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Architecture: $ARCHITECTURE
|
||||
Maintainer: $MAINTAINER
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
Description: $DESCRIPTION
|
||||
TMSIF library for Legatus.
|
||||
.
|
||||
License: Contract-based (no file required)
|
||||
Customer has lifetime license contract.
|
||||
EOF
|
||||
|
||||
# Create postinst script
|
||||
cat > "$DEB_DIR/DEBIAN/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "TMSIF DEB package installed successfully"
|
||||
echo "License: Contract-based (no file required)"
|
||||
|
||||
# Set permissions
|
||||
chmod -R 755 /opt/tmsif
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postinst"
|
||||
|
||||
# Create postrm script
|
||||
cat > "$DEB_DIR/DEBIAN/postrm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "TMSIF DEB package removed"
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
chmod 755 "$DEB_DIR/DEBIAN/postrm"
|
||||
|
||||
# Build DEB package
|
||||
echo "Building DEB package: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd "$DEB_DIR"
|
||||
dpkg-deb --build . "../${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
cd ..
|
||||
|
||||
echo "DEB package created: ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
||||
echo "Size: $(du -h ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb | cut -f1)"
|
||||
@@ -0,0 +1,7 @@
|
||||
libtmsif-dev (1.0.0) stable; urgency=medium
|
||||
|
||||
* Initial release for air-gapped environment
|
||||
* TMSIF library with contract-based lifetime license
|
||||
* Installs to /opt/tmsif
|
||||
|
||||
-- Legatus Team <legatus@defence-elec.de> Mon, 01 Jan 2024 00:00:00 +0000
|
||||
@@ -0,0 +1 @@
|
||||
12
|
||||
@@ -0,0 +1,21 @@
|
||||
Source: libtmsif-dev
|
||||
Section: contrib/devel
|
||||
Priority: optional
|
||||
Maintainer: Legatus Team <legatus@defence-elec.de>
|
||||
Build-Depends: debhelper (>= 12), qt6-base-dev
|
||||
Standards-Version: 4.6.0
|
||||
Vcs-Browser: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
Vcs-Git: https://internal-repo.sl.defence-elec.de/external-rpms/general/libtmsif-dev.git
|
||||
|
||||
Package: libtmsif-dev
|
||||
Architecture: amd64
|
||||
Depends: libqt6core6, libqt6gui6, libqt6widgets6, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: TMSIF library - development files (contract-based license)
|
||||
TMSIF library for Legatus.
|
||||
.
|
||||
License: Contract-based (no file required)
|
||||
Customer has lifetime license contract.
|
||||
.
|
||||
This package contains the development files for TMSIF library.
|
||||
.
|
||||
Available from SCM: https://internal-repo.sl.defence-elec.de/#browse/browse:external-rpms:general
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Allow override of source path for building in CI/CD or local environments
|
||||
# Default: /opt (production build machine)
|
||||
# Can be overridden via DEB_BUILD_OPT_PATH environment variable
|
||||
OPT_BASE ?= /opt
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install
|
||||
install -d debian/libtmsif-dev/opt/tmsif
|
||||
cp -r $(OPT_BASE)/tmsif/* debian/libtmsif-dev/opt/tmsif/
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --no-automatic-dbgsym
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
Reference in new issue
Block a user