Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions backend/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,10 @@ done
# (Docker crée les bind-mounts manquants en root:root, appuser ne peut pas écrire)
# REPO_BASE peut valoir /repos (mode rpm seul) ou /repos/rpm (mode both)
RPM_REPO_BASE="${REPO_BASE:-/repos}"
for DISTRO in almalinux8 almalinux9 rocky8 rocky9 centos-stream9 oraclelinux8 \
oraclelinux9 fedora opensuse-leap-15.5 opensuse-leap-15.6 \
for DISTRO in almalinux8 almalinux9 almalinux10 rocky8 rocky9 rocky10 \
centos-stream9 centos-stream10 oraclelinux8 oraclelinux9 \
oraclelinux10 fedora fedora43 fedora44 \
opensuse-leap-15.5 opensuse-leap-15.6 opensuse-leap-16.0 \
opensuse-leap opensuse-tumbleweed; do
for ARCH in x86_64 aarch64 noarch; do
mkdir -p "${RPM_REPO_BASE}/${DISTRO}/${ARCH}/repodata" 2>/dev/null || true
Expand Down
5 changes: 5 additions & 0 deletions backend/routers/distributions_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,12 +160,17 @@ def migrate(
"jammy": {"label": "Ubuntu 22.04 LTS"},
"noble": {"label": "Ubuntu 24.04 LTS"},
"focal": {"label": "Ubuntu 20.04 LTS"},
"resolute": {"label": "Ubuntu 26.04 LTS"},
"bookworm": {"label": "Debian 12"},
"trixie": {"label": "Debian 13"},
# Alpine Linux (APK — inventaire et CVE uniquement, pas de dépôt reprepro)
"alpine3.18": {"label": "Alpine Linux 3.18", "pkg_type": "apk"},
"alpine3.19": {"label": "Alpine Linux 3.19", "pkg_type": "apk"},
"alpine3.20": {"label": "Alpine Linux 3.20", "pkg_type": "apk"},
"alpine3.21": {"label": "Alpine Linux 3.21", "pkg_type": "apk"},
"alpine3.22": {"label": "Alpine Linux 3.22", "pkg_type": "apk"},
"alpine3.23": {"label": "Alpine Linux 3.23", "pkg_type": "apk"},
"alpine3.24": {"label": "Alpine Linux 3.24", "pkg_type": "apk"},
}


Expand Down
32 changes: 24 additions & 8 deletions backend/routers/scan_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,32 @@ def rescan_package(
"jammy": "ubuntu:22.04",
"noble": "ubuntu:24.04",
"focal": "ubuntu:20.04",
"resolute": "ubuntu:26.04",
"bookworm": "debian:12",
"trixie": "debian:13",
# RPM
"almalinux8": "almalinux:8",
"almalinux9": "almalinux:9",
"rocky8": "rockylinux:8",
"rocky9": "rockylinux:9",
"centos-stream9": "centos:9",
"oraclelinux8": "oraclelinux:8",
"oraclelinux9": "oraclelinux:9",
"fedora42": "fedora:42",
"almalinux8": "almalinux:8",
"almalinux9": "almalinux:9",
"almalinux10": "almalinux:10",
"rocky8": "rockylinux:8",
"rocky9": "rockylinux:9",
"rocky10": "rockylinux:10",
"centos-stream9": "centos:9",
"centos-stream10": "centos:10",
"oraclelinux8": "oraclelinux:8",
"oraclelinux9": "oraclelinux:9",
"oraclelinux10": "oraclelinux:10",
"fedora": "fedora:42",
"fedora42": "fedora:42",
"fedora43": "fedora:43",
"fedora44": "fedora:44",
"opensuse-leap-15.6": "opensuse/leap:15.6",
"opensuse-leap-16.0": "opensuse/leap:16.0",
# APK
"alpine3.21": "alpine:3.21",
"alpine3.22": "alpine:3.22",
"alpine3.23": "alpine:3.23",
"alpine3.24": "alpine:3.24",
}
grype_distro = _DISTRO_MAP.get(distribution, distribution)

Expand Down
Binary file modified backend/security-keys/upstream-archive-keyring.gpg
Binary file not shown.
3 changes: 3 additions & 0 deletions backend/services/distributions_apk.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
{"codename": "alpine3.19", "name": "Alpine Linux 3.19", "arch": ["x86_64", "aarch64"]},
{"codename": "alpine3.20", "name": "Alpine Linux 3.20", "arch": ["x86_64", "aarch64"]},
{"codename": "alpine3.21", "name": "Alpine Linux 3.21", "arch": ["x86_64", "aarch64"]},
{"codename": "alpine3.22", "name": "Alpine Linux 3.22", "arch": ["x86_64", "aarch64"]},
{"codename": "alpine3.23", "name": "Alpine Linux 3.23", "arch": ["x86_64", "aarch64"]},
{"codename": "alpine3.24", "name": "Alpine Linux 3.24", "arch": ["x86_64", "aarch64"]},
]

VALID_APK_CODENAMES: set[str] = {d["codename"] for d in APK_DISTRIBUTIONS}
Expand Down
27 changes: 26 additions & 1 deletion backend/services/distributions_apt.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
Gestion des distributions reprepro (enterprise).
Distributions fixes : jammy, noble, focal, bookworm.
Distributions fixes : focal, jammy, noble, resolute, bookworm, trixie.
reprepro est exécuté directement dans le container backend (installé dans l'image).
Les volumes repos/conf, repos/dists, repos/db et repos/pool sont partagés.
"""
Expand Down Expand Up @@ -36,11 +36,27 @@
"badge": "ESM",
"color": "gray",
},
{
"codename": "resolute",
"name": "Ubuntu 26.04 LTS",
"full_name": "Ubuntu 26.04 LTS — Resolute Raccoon",
"os": "ubuntu",
"badge": "LTS",
"color": "purple",
},
{
"codename": "bookworm",
"name": "Debian 12",
"full_name": "Debian 12 — Bookworm",
"os": "debian",
"badge": "Oldstable",
"color": "red",
},
{
"codename": "trixie",
"name": "Debian 13",
"full_name": "Debian 13 — Trixie",
"os": "debian",
"badge": "Stable",
"color": "red",
},
Expand All @@ -52,6 +68,9 @@
{"codename": "alpine3.19", "name": "Alpine Linux 3.19", "os": "alpine", "pkg_type": "apk"},
{"codename": "alpine3.20", "name": "Alpine Linux 3.20", "os": "alpine", "pkg_type": "apk"},
{"codename": "alpine3.21", "name": "Alpine Linux 3.21", "os": "alpine", "pkg_type": "apk"},
{"codename": "alpine3.22", "name": "Alpine Linux 3.22", "os": "alpine", "pkg_type": "apk"},
{"codename": "alpine3.23", "name": "Alpine Linux 3.23", "os": "alpine", "pkg_type": "apk"},
{"codename": "alpine3.24", "name": "Alpine Linux 3.24", "os": "alpine", "pkg_type": "apk"},
]

VALID_CODENAMES = (
Expand All @@ -64,11 +83,17 @@
"ubuntu-jammy-updates": "jammy",
"ubuntu-noble": "noble",
"ubuntu-focal": "focal",
"ubuntu-resolute": "resolute",
"ubuntu-resolute-updates": "resolute",
"debian-bookworm": "bookworm",
"debian-trixie": "trixie",
"debian-trixie-updates": "trixie",
"ubuntu-jammy-security": "jammy",
"ubuntu-noble-security": "noble",
"ubuntu-focal-security": "focal",
"ubuntu-resolute-security": "resolute",
"debian-bookworm-security": "bookworm",
"debian-trixie-security": "trixie",
}


Expand Down
120 changes: 114 additions & 6 deletions backend/services/distributions_rpm.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
"""
Gestion des distributions RPM (createrepo_c).
Distributions : AlmaLinux 8, Rocky Linux 8, CentOS Stream 9, Oracle Linux 8,
Fedora, openSUSE Leap 15.5/15.6/Leap/Tumbleweed.
Distributions : AlmaLinux 8/9/10, Rocky Linux 8/9/10, CentOS Stream 9/10,
Oracle Linux 8/9/10, Fedora 42/43/44,
openSUSE Leap 15.6/16.0/Tumbleweed.
createrepo_c est exécuté directement dans le container backend.
"""
import os
Expand Down Expand Up @@ -37,6 +38,17 @@
"package_manager": "dnf",
"grype_distro": "almalinux:9",
},
{
"codename": "almalinux10",
"name": "AlmaLinux 10",
"full_name": "AlmaLinux 10 — Purple Lion",
"os": "almalinux",
"version": "10",
"badge": "RHEL-compat",
"color": "blue",
"package_manager": "dnf",
"grype_distro": "almalinux:10",
},
{
"codename": "rocky8",
"name": "Rocky Linux 8",
Expand All @@ -59,6 +71,17 @@
"package_manager": "dnf",
"grype_distro": "rockylinux:9",
},
{
"codename": "rocky10",
"name": "Rocky Linux 10",
"full_name": "Rocky Linux 10 — Red Quartz",
"os": "rocky",
"version": "10",
"badge": "RHEL-compat",
"color": "green",
"package_manager": "dnf",
"grype_distro": "rockylinux:10",
},
{
"codename": "centos-stream9",
"name": "CentOS Stream 9",
Expand All @@ -70,6 +93,17 @@
"package_manager": "dnf",
"grype_distro": "centos:9",
},
{
"codename": "centos-stream10",
"name": "CentOS Stream 10",
"full_name": "CentOS Stream 10",
"os": "centos",
"version": "10",
"badge": "Upstream RHEL",
"color": "purple",
"package_manager": "dnf",
"grype_distro": "centos:10",
},
{
"codename": "oraclelinux8",
"name": "Oracle Linux 8",
Expand All @@ -81,17 +115,65 @@
"package_manager": "dnf",
"grype_distro": "oraclelinux:8",
},
{
"codename": "oraclelinux9",
"name": "Oracle Linux 9",
"full_name": "Oracle Linux 9 — Red Tiger",
"os": "oraclelinux",
"version": "9",
"badge": "RHEL-compat",
"color": "red",
"package_manager": "dnf",
"grype_distro": "oraclelinux:9",
},
{
"codename": "oraclelinux10",
"name": "Oracle Linux 10",
"full_name": "Oracle Linux 10",
"os": "oraclelinux",
"version": "10",
"badge": "RHEL-compat",
"color": "red",
"package_manager": "dnf",
"grype_distro": "oraclelinux:10",
},
# ── Fedora ────────────────────────────────────────────────────────────────
# "fedora" (sans suffixe) désigne historiquement Fedora 42, désormais EOL.
# Les releases suivantes ont chacune leur codename versionné : partager un
# seul codename mélangerait leurs paquets et fausserait le --distro passé
# à Grype.
{
"codename": "fedora",
"name": "Fedora",
"full_name": "Fedora 42",
"name": "Fedora 42",
"full_name": "Fedora 42 (EOL)",
"os": "fedora",
"version": "42",
"badge": "EOL",
"color": "gray",
"package_manager": "dnf",
"grype_distro": "fedora:42",
},
{
"codename": "fedora43",
"name": "Fedora 43",
"full_name": "Fedora 43",
"os": "fedora",
"version": "43",
"badge": "Upstream",
"color": "blue",
"package_manager": "dnf",
"grype_distro": "fedora:42",
"grype_distro": "fedora:43",
},
{
"codename": "fedora44",
"name": "Fedora 44",
"full_name": "Fedora 44",
"os": "fedora",
"version": "44",
"badge": "Upstream",
"color": "blue",
"package_manager": "dnf",
"grype_distro": "fedora:44",
},
# ── openSUSE ──────────────────────────────────────────────────────────────
{
Expand All @@ -105,6 +187,17 @@
"package_manager": "zypper",
"grype_distro": "opensuse/leap:15.6",
},
{
"codename": "opensuse-leap-16.0",
"name": "openSUSE Leap 16.0",
"full_name": "openSUSE Leap 16.0",
"os": "opensuse",
"version": "16.0",
"badge": "SUSE-stable",
"color": "teal",
"package_manager": "zypper",
"grype_distro": "opensuse/leap:16.0",
},
{
"codename": "opensuse-tumbleweed",
"name": "openSUSE Tumbleweed",
Expand All @@ -130,26 +223,41 @@
"almalinux8-extras": "almalinux8",
"almalinux9-baseos": "almalinux9",
"almalinux9-appstream": "almalinux9",
"almalinux10-baseos": "almalinux10",
"almalinux10-appstream": "almalinux10",
# Rocky Linux
"rocky8-baseos": "rocky8",
"rocky8-appstream": "rocky8",
"rocky9-baseos": "rocky9",
"rocky9-appstream": "rocky9",
"rocky10-baseos": "rocky10",
"rocky10-appstream": "rocky10",
# CentOS Stream
"centos-stream9-baseos": "centos-stream9",
"centos-stream9-appstream": "centos-stream9",
"centos-stream10-baseos": "centos-stream10",
"centos-stream10-appstream": "centos-stream10",
# Oracle Linux
"oraclelinux8-baseos": "oraclelinux8",
"oraclelinux8-appstream": "oraclelinux8",
"oraclelinux9-baseos": "oraclelinux8", # pas de distro oraclelinux9 encore
"oraclelinux9-baseos": "oraclelinux9",
"oraclelinux9-appstream": "oraclelinux9",
"oraclelinux10-baseos": "oraclelinux10",
"oraclelinux10-appstream": "oraclelinux10",
# Fedora + EPEL
"fedora42": "fedora",
"fedora42-updates": "fedora",
"fedora43": "fedora43",
"fedora43-updates": "fedora43",
"fedora44": "fedora44",
"fedora44-updates": "fedora44",
"epel8": "almalinux8",
"epel9": "rocky9",
"epel10": "almalinux10",
# openSUSE
"opensuse-leap-15.6-oss": "opensuse-leap-15.6",
"opensuse-leap-15.6-updates": "opensuse-leap-15.6",
"opensuse-leap-16.0-oss": "opensuse-leap-16.0",
"opensuse-tumbleweed-oss": "opensuse-tumbleweed",
}

Expand Down
Loading
Loading