diff --git a/external-dependencies/README.md b/external-dependencies/README.md index 1a12bd2cb..bb90c0392 100644 --- a/external-dependencies/README.md +++ b/external-dependencies/README.md @@ -80,6 +80,59 @@ This generates: - `-provenance.json`: SLSA v1.0 provenance - `-licenses.txt`: License compliance report +## Air-Gapped Environment Support + +For air-gapped deployment, offline dependency packages are prepared and transferred via secure media: + +### Offline Cache Structure + +``` +external-dependencies/offline-cache/ +├── qt6/6.10.2/gcc_64/ # Qt 6.10.2 installation (2.2GB) +├── src/ # Source tarballs +│ ├── KDReports-2.3.0.tar.gz +│ ├── Log4Qt-2.0.0.tar.gz +│ └── grantlee-*.tar.gz +├── deb/ # Ubuntu .deb packages (49 packages, 51MB) +└── scripts/ # Installation scripts + ├── install-offline.sh # Offline installation script + └── README.md # Package inventory +``` + +### Download Scripts + +**download-all-dependencies.sh**: Downloads all dependencies for offline use +```bash +cd external-dependencies/scripts +./download-all-dependencies.sh [output-directory] +``` + +**download-deb-packages.sh**: Downloads Ubuntu .deb packages +```bash +./download-deb-packages.sh [output-directory] +``` + +**verify-offline-cache.sh**: Verifies offline cache completeness +```bash +./verify-offline-cache.sh +``` + +### Transfer to Air-Gapped Environment + +1. Run download scripts on internet-connected machine +2. Copy `offline-cache/` directory to secure media (encrypted USB drive) +3. Transfer to air-gapped environment +4. Mount or copy to Jenkins build server +5. Use offline installation scripts in Dockerfiles + +### Important Notes + +- **Offline cache is excluded from git** (2.3GB, security best practices) +- Transfer via secure media only +- Verify checksums after transfer +- Keep offline cache updated with dependency version changes +- See `offline-cache/README.md` for detailed usage + ## Version Pinning Strategy All dependencies use **exact version pinning**: