Add offline dependency download scripts for air-gapped environment

- download-all-dependencies.sh: Downloads Qt6 6.10.2, source tarballs, and Ubuntu .deb packages
- download-deb-packages.sh: Downloads Ubuntu .deb packages in Docker container
- verify-offline-cache.sh: Verifies offline cache completeness
- offline-cache/README.md: Documentation for offline cache structure and usage
- .gitignore: Exclude external-dependencies/offline-cache/ from version control (2.3GB)

The offline cache must be transferred to air-gapped environment via secure media.
Excluded from git due to size and security best practices.

Co-authored-by: Copilot <2235566219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M6PFZM0GHMBF46BKYPKZC192
This commit is contained in:
torstenandCopilot committed 2026-11-05 18:36:48 +00:00
1 parent 733c7b40d1
commit 242a21c521
5 files changed
+572

No files matched your search

+78
View File
@@ -0,0 +1,78 @@
#!/bin/bash
# Verify Offline Cache Integrity
# Usage: bash verify-offline-cache.sh [offline-cache-path]
set -euo pipefail
OFFLINE_CACHE="${1:-./offline-cache}"
echo "=== Verifying Offline Cache ==="
echo "Path: $OFFLINE_CACHE"
echo ""
ERRORS=0
# Check Qt installation
echo "Checking Qt 6.10.2..."
if [ -d "$OFFLINE_CACHE/qt6/6.10.2/gcc_64" ]; then
QT_FILES=$(find "$OFFLINE_CACHE/qt6/6.10.2/gcc_64" -type f | wc -l)
if [ "$QT_FILES" -ge 12000 ]; then
echo "✓ Qt installation complete ($QT_FILES files)"
else
echo "✗ Qt installation incomplete (expected 12000+, found $QT_FILES)"
ERRORS=$((ERRORS + 1))
fi
else
echo "✗ Qt installation directory missing"
ERRORS=$((ERRORS + 1))
fi
# Check source tarballs
echo ""
echo "Checking source tarballs..."
for tarball in KDReports-2.3.0.tar.gz Log4Qt-2.0.0.tar.gz grantlee-20d415b.tar.gz; do
if [ -f "$OFFLINE_CACHE/src/$tarball" ]; then
SIZE=$(du -h "$OFFLINE_CACHE/src/$tarball" | cut -f1)
echo "✓ $tarball ($SIZE)"
else
echo "✗ $tarball missing"
ERRORS=$((ERRORS + 1))
fi
done
# Check .deb packages
echo ""
echo "Checking Ubuntu .deb packages..."
if [ -d "$OFFLINE_CACHE/deb" ]; then
DEB_COUNT=$(ls -1 "$OFFLINE_CACHE/deb"/*.deb 2>/dev/null | wc -l)
if [ "$DEB_COUNT" -ge 49 ]; then
echo "✓ Debian packages complete ($DEB_COUNT packages)"
else
echo "✗ Debian packages incomplete (expected 49+, found $DEB_COUNT)"
ERRORS=$((ERRORS + 1))
fi
else
echo "✗ Debian packages directory missing"
ERRORS=$((ERRORS + 1))
fi
# Check package list
echo ""
echo "Checking package inventory..."
if [ -f "$OFFLINE_CACHE/scripts/package-list.txt" ]; then
echo "✓ Package list present"
else
echo "✗ Package list missing"
ERRORS=$((ERRORS + 1))
fi
# Summary
echo ""
echo "=== Verification Summary ==="
if [ "$ERRORS" -eq 0 ]; then
echo "✓ All checks passed"
exit 0
else
echo "✗ $ERRORS check(s) failed"
exit 1
fi