Skip to content

feat(sources): add Debian 13, Ubuntu 26.04, Fedora 43/44, EL10 and Alpine 3.22–3.24 sources - #2

Open
TiotBenjy wants to merge 8 commits into
repod-ce:mainfrom
TiotBenjy:fix/add-missing-sources
Open

TiotBenjy wants to merge 8 commits into
repod-ce:mainfrom
TiotBenjy:fix/add-missing-sources

Conversation

@TiotBenjy

Copy link
Copy Markdown
Contributor

Le catalogue de sources upstream s'était décalé des releases actuelles : Debian 13 (stable depuis août 2025), Ubuntu 26.04 LTS, Fedora 43/44, la famille EL10 et les branches Alpine 3.22–3.24 n'étaient pas indexables. Cette PR ajoute les sources
manquantes et les câble de bout en bout (distributions, mirroir, Grype, UI).

Toutes les URLs ajoutées ont été vérifiées en direct, et pas seulement en HTTP 200 : chaque source a été passée dans la chaîne de confiance que le code applique réellement (voir « Vérification » plus bas).

Sources ajoutées

Format Avant Après Ajouts
APT 46 72 +26
RPM 58 77 +19
APK 16 28 +12

APT : amd64 + arm64 pour chaque entrée

  • Debian 13 (Trixie) : main, contrib, non-free, non-free-firmware, security, updates
  • Ubuntu 26.04 LTS (Resolute) : main, universe, updates, security
  • Debian 12 (Bookworm) : ajout de non-free-firmware, composant introduit par Debian 12 et jusqu'ici absent du catalogue

RPM : x86_64 + aarch64 pour chaque entrée

  • Fedora 43 et 44 (Everything + Updates)
  • CentOS Stream 10 (BaseOS, AppStream)
  • Oracle Linux 10 (BaseOS, AppStream)
  • EPEL 10
  • openSUSE Leap 16.0 (OSS)

APK : x86_64 + aarch64

  • Alpine 3.22, 3.23, 3.24 (main + community)

Points d'attention relevés en route

  • Clés Debian trixie ajoutées au trousseau. L'InRelease de trixie est aujourd'hui encore co-signé par les clés bookworm, donc la vérification passait mais par accident de transition. Debian retirera cette co-signature et, la vérification APT étant fail-closed, trixie aurait alors cessé de se synchroniser sans rien changer par ailleurs. Les clés trixie (-automatic, -security-automatic, -stable) sont donc importées dès maintenant, ainsi que bookworm-stable par symétrie.
    scripts/gen-upstream-keyring.sh sait désormais aussi récupérer le paquet ubuntu-keyring officiel quand il tourne hors d'une machine Ubuntu, pour rester rejouable depuis n'importe quel poste.
  • openSUSE Leap saute 15.7. Il n'existe aucun 15.7 sur download.opensuse.org : le listing enchaîne 15.6 puis 16.0. Leap 16.0 a par ailleurs deux particularités cumentées dans le code, dépôt multi-architecture unique (/ports/aarch64/ s'arrête à 15.6, d'où l'absence d'entrée aarch64 séparée) et aucun dépôt d'updates publié (/update/leap/16.0/ renvoie 404). Leap 16.1 est volontairement écartée : encore en développement (Build41.1 contre Build178.139 pour 16.0).
  • Fedora : un codename par release. Les nouvelles releases utilisent fedora43 / fedora44 au lieu de partager le codename fedora (qui désigne historiquement Fedora 42). Les mélanger aurait fusionné leurs inventaires et faussé le --distro passé à Grype.
  • Distributions manquantes comblées. almalinux10, rocky10 et oraclelinux9 avaient déjà des sources d'index mais aucune distribution correspondante oraclelinux9-baseos était même routé vers oraclelinux8. Ces distributions sont
    ajoutées et le mapping corrigé.
  • Ubuntu 26.10 (« stonking ») et Debian 14 (« forky ») sont écartées : encore en développement, cohérent avec le catalogue existant qui ne liste que des releases publiées.

Câblage

Les nouvelles sources ne sont pas seulement déclarées, elles sont utilisables : distributions (distributions_apt/rpm/apk), mappings SOURCE_TO_DISTRIB, bascules par défaut dans settings.py, correspondances Grype (validator_apt/rpm/apk, scan_router),création des répertoires dans entrypoint.sh, et listes côté UI (Settings, PackageList, Import, ClientSetup, Dockerfile, UploadForm, Promotions).

Vérification

Chaque URL ajoutée a été passée dans la chaîne de confiance réellement appliquée par le code, pas seulement testée en HTTP :

  • APT (26/26) : Packages joignable + InRelease de la suite vérifiée GPG contre upstream-archive-keyring.gpg + chemin relatif exact présent dans cet InRelease authentifié (donc URL canonique, pas devinée). Les suites existantes ont été re-vérifiées après régénération du trousseau : aucune régression.
  • RPM (19/19) : politique de _verify_repomd_gpg() rejouée à l'identique : CentOS Stream 10 => GOODSIG ; Leap 16.0 → EXPKEYSIG (toléré, comme Leap 15.6) ; Fedora 43/44, EPEL 10, Oracle Linux 10 → pas de repomd.xml.asc publié (toléré, comme les Fedora/EPEL/Oracle déjà présents). Aucun ajout de clé RPM nécessaire. La présence d'un primary.xml a aussi été confirmée sur chacun.
  • APK (12/12) : signature RSA de chaque APKINDEX validée contre le trousseau déjà embarqué : les branches 3.22–3.24 utilisent les mêmes clés que 3.18–3.21, aucun ajout nécessaire. La vérification APK étant fail-closed, ce point conditionnait la faisabilité de l'ajout.

Un contrôle de cohérence a également été passé sur l'ensemble du catalogue : aucun id dupliqué, aucune bascule settings.py orpheline, aucun SOURCE_TO_DISTRIB pointant vers un codename inexistant, et chaque codename de distribution résout vers une chaîne Grype.

Impact au déploiement

Les nouvelles sources APT/RPM sont activées par défaut (les variantes non-free, non-free-firmware et EPEL restent désactivées, cohérent avec l'existant), et le mirroir reste opt-in. Un déploiement existant régénère automatiquement son conf/distributions au prochain démarrage pour y faire apparaître trixie et resolute.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant