diff --git a/docker/sync.sh b/docker/sync.sh index 2383ec0..3299191 100644 --- a/docker/sync.sh +++ b/docker/sync.sh @@ -86,8 +86,25 @@ done echo "[sync] Räume veraltete Paketversionen auf" dnf repomanage --old "$DEST" 2>/dev/null | xargs -r rm -f -# --- 4. Repo-Metadaten neu erzeugen ------------------------------------- +# --- 4. Pakete mit dem Firmen-Key umsignieren --------------------------- +if [ -n "${GPG_KEY_ID:-}" ]; then + echo "[sync] Signiere Pakete mit Firmen-Key ${GPG_KEY_ID}" + find "$DEST" -name '*.rpm' -print0 \ + | xargs -0 -r rpmsign --key-id="$GPG_KEY_ID" --resign +else + echo "[sync] WARNUNG: GPG_KEY_ID nicht gesetzt, Pakete bleiben unsigniert." +fi + +# --- 5. Repo-Metadaten neu erzeugen ------------------------------------- echo "[sync] Aktualisiere Repo-Metadaten" createrepo_c --update "$DEST" +# Optional: Repo-Metadaten (repomd.xml) selbst signieren, für zusätzliche +# Integritätsprüfung mit repo_gpgcheck=1 auf Client-Seite +if [ -n "${GPG_KEY_ID:-}" ]; then + gpg --batch --yes --detach-sign --armor \ + -u "$GPG_KEY_ID" -o "$DEST/repodata/repomd.xml.asc" \ + "$DEST/repodata/repomd.xml" +fi + echo "[sync] $(date -Iseconds) Sync-Lauf abgeschlossen" \ No newline at end of file