
Athena OS est une distribution basée sur Arch/Nix, axée sur la cybersécurité. Apprenez, pratiquez et amusez-vous avec n’importe quel outil de hacking !

Les paquets de ce dépôt sont maintenus à jour automatiquement via un workflow GitHub Actions quotidien propulsé par nvchecker.
L'automatisation s'exécute chaque jour (et peut également être déclenchée manuellement) et suit les étapes suivantes :
Génération de la configuration — .nvchecker/generate-nvchecker-config.py analyse chaque PKGBUILD sous src/ et génère automatiquement .nvchecker/nvchecker.toml. Chaque paquet est classé dans l'une des catégories suivantes :
pkgver= statique et une URL de source distante. Suivi par le dernier tag/release sur la plateforme d'hébergement.pkgver() et une source git+https://. Suivi par le dernier commit upstream.Vérification des versions — nvchecker interroge l'upstream de chaque paquet suivi et écrit les résultats dans .nvchecker/newver.json. Ceux-ci sont comparés à .nvchecker/oldver.json (commité dans le dépôt) pour identifier les paquets pour lesquels une nouvelle version est disponible.
Mise à jour du PKGBUILD & PR — pour chaque paquet obsolète, le workflow :
auto-update/<pkgname>-<newver>.pkgver et réinitialise pkgrel à 1 dans le PKGBUILD.updpkgsums.pkgver() localement pour calculer la véritable chaîne de version de style Arch (par ex. 131.940a5d3), et conserve sha512sums=('SKIP') tel quel.auto-update pour une revue humaine avant que quoi que ce soit n'atterrisse sur main.Sauvegarde de l'état — .nvchecker/oldver.json est mis à jour avec les versions vues lors de cette exécution et commité sur main, afin que l'exécution suivante n'ouvre des PR que pour de véritables nouveaux changements.
| Plateforme | Détection |
|---|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + auto-hébergé) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (auto-hébergé) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
Le générateur de configuration et le workflow CI résolvent tous deux les références aux variables shell dans les lignes source= afin que les URLs indirectes comme la suivante soient correctement gérées :
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
Les formes d'expansion de paramètres bash suivantes sont prises en charge :
| Syntaxe | Signification | Exemple |
|---|---|---|
$var / ${var} | Substitution simple | $pkgname → athena-settings |
${var#prefix} | Supprime le plus court préfixe correspondant | ${pkgname#athena-} → settings |
${var%suffix} | Supprime le plus court suffixe correspondant | ${pkgname%-git} → athena-settings |
Les constructions bash suivantes ne sont pas résolues par l'automatisation. Les PKGBUILDs qui en dépendent seront ignorés proprement avec une note informative — aucune erreur n'est levée, et ils peuvent toujours être mis à jour manuellement.
| Syntaxe non prise en charge | Exemple | Raison |
|---|---|---|
Suppression de préfixe glouton ## | ${var##*/} | Seul le # non glouton est implémenté |
Suppression de suffixe glouton %% | ${var%%.*} | Seul le % non glouton est implémenté |
| Extraction de sous-chaîne | ${var:0:3} | Opérateur différent, rare dans les PKGBUILDs |
| Substitution de motif | ${var//foo/bar} | Opérateur différent, rare dans les PKGBUILDs |
| Expansion arithmétique | $((pkgver + 1)) | Hors périmètre pour le suivi de version |
| Expansions imbriquées | ${${var}#prefix} | Non valide POSIX ; non utilisé en pratique |
Si votre PKGBUILD utilise l'une des constructions ci-dessus et que l'automatisation l'ignore, vous pouvez soit réécrire l'affectation sous forme de ligne simple var=value, soit ouvrir une PR mettant à jour la version manuellement.
LOL Omuamua