
Athena OS ist eine auf Arch/Nix basierende Distribution, die sich auf Cybersicherheit konzentriert. Lerne, übe und genieße mit jedem Hacking-Tool!

Die Pakete in diesem Repository werden automatisch über einen täglichen GitHub-Actions-Workflow auf dem neuesten Stand gehalten, der von nvchecker unterstützt wird.
Die Automatisierung läuft jeden Tag (und kann auch manuell ausgelöst werden) und durchläuft die folgenden Schritte:
Generierung der Konfiguration — .nvchecker/generate-nvchecker-config.py durchsucht jedes PKGBUILD unter src/ und erzeugt automatisch .nvchecker/nvchecker.toml. Jedes Paket wird einer der folgenden Kategorien zugeordnet:
pkgver= und eine Remote-Quell-URL. Wird anhand des neuesten Tags/Releases auf der Hosting-Plattform verfolgt.pkgver()-Funktion und eine git+https://-Quelle. Wird anhand des neuesten Upstream-Commits verfolgt.Versionsprüfung — nvchecker fragt den Upstream jedes verfolgten Pakets ab und schreibt die Ergebnisse in .nvchecker/newver.json. Diese werden mit .nvchecker/oldver.json (im Repo committet) verglichen, um Pakete zu finden, für die eine neue Version verfügbar ist.
Sowohl der Konfigurationsgenerator als auch der CI-Workflow lösen Shell-Variablenreferenzen in source=-Zeilen auf, sodass indirekte URLs wie die folgende korrekt verarbeitet werden:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
Die folgenden Bash-Parameterexpansionsformen werden unterstützt:
Die folgenden Bash-Konstrukte werden von der Automatisierung nicht aufgelöst. PKGBUILDs, die darauf angewiesen sind, werden mit einem informativen Hinweis sauber übersprungen – es wird kein Fehler ausgelöst, und sie können jederzeit manuell aktualisiert werden.
Wenn dein PKGBUILD eines der oben genannten Konstrukte verwendet und die Automatisierung es überspringt, kannst du die Zuweisung entweder als einfache var=value-Zeile umschreiben oder einen PR eröffnen, der die Version manuell aktualisiert.
PKGBUILD-Update & PR — für jedes veraltete Paket führt der Workflow Folgendes aus:
auto-update/<pkgname>-<newver>.pkgver und setzt pkgrel im PKGBUILD auf 1 zurück.updpkgsums neu.pkgver()-Funktion lokal aus, um die echte Arch-typische Versionszeichenfolge zu berechnen (z. B. 131.940a5d3), und lässt sha512sums=('SKIP') unverändert.auto-update zur manuellen Überprüfung, bevor etwas auf main landet.Speicherung des Status — .nvchecker/oldver.json wird mit den in diesem Lauf gesehenen Versionen aktualisiert und zurück auf main committet, sodass der nächste Lauf nur für wirklich neue Änderungen PRs eröffnet.
| Plattform | Erkennung |
|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + selbst gehostet) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (selbst gehostet) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
| Syntax | Bedeutung | Beispiel |
|---|
$var / ${var} | Einfache Ersetzung | $pkgname → athena-settings |
${var#prefix} | Kürzestes passendes Präfix entfernen | ${pkgname#athena-} → settings |
${var%suffix} | Kürzestes passendes Suffix entfernen | ${pkgname%-git} → athena-settings |
| Nicht unterstützte Syntax | Beispiel | Grund |
|---|
## gieriges Präfix-Entfernen | ${var##*/} | Nur nicht-gieriges # ist implementiert |
%% gieriges Suffix-Entfernen | ${var%%.*} | Nur nicht-gieriges % ist implementiert |
| Substring-Extraktion | ${var:0:3} | Anderer Operator, in PKGBUILDs selten |
| Musterersetzung | ${var//foo/bar} | Anderer Operator, in PKGBUILDs selten |
| Arithmetische Expansion | $((pkgver + 1)) | Nicht Teil der Versionsverfolgung |
| Verschachtelte Expansionen | ${${var}#prefix} | Nicht POSIX-konform; in der Praxis nicht verwendet |