
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 angetrieben wird.
Die Automatisierung läuft täglich (und kann auch manuell ausgelöst werden) und durchläuft die folgenden Schritte:
Konfigurationserzeugung – .nvchecker/generate-nvchecker-config.py durchsucht jede PKGBUILD unter src/ und generiert automatisch .nvchecker/nvchecker.toml. Jedes Paket wird als eines der folgenden klassifiziert:
pkgver= und eine Remote-Quell-URL. Verfolgt über das neueste Tag/Release auf der Hosting-Plattform.pkgver()-Funktion und eine git+https://-Quelle. Verfolgt über den neuesten Upstream-Commit.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 Repository committet) verglichen, um Pakete zu finden, für die eine neue Version verfügbar ist.
PKGBUILD-Aktualisierung & 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() lokal aus, um die echte Versionszeichenkette im Arch-Stil zu berechnen (z. B. 131.940a5d3), und behält sha512sums=('SKIP') unverändert bei.auto-update zur menschlichen Prüfung, bevor irgendetwas auf main landet.Status speichern – .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 tatsächlich neue Änderungen PRs ö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> |
Der Konfigurationsgenerator und der CI-Workflow lösen beide Shell-Variablenreferenzen in source=-Zeilen auf, sodass indirekte URLs wie die folgenden korrekt verarbeitet werden:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
Die folgenden Formen der Bash-Parametererweiterung werden unterstützt:
| Syntax | Bedeutung | Beispiel |
|---|---|---|
$var / ${var} | Einfache Substitution | $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 |
Die folgenden Bash-Konstrukte werden von der Automatisierung nicht aufgelöst. PKGBUILDs, die darauf angewiesen sind, werden mit einem informativen Hinweis übersprungen – es wird kein Fehler ausgelöst, und sie können jederzeit manuell aktualisiert werden.
| Nicht unterstützte Syntax | Beispiel | Grund |
|---|---|---|
Gieriges Präfix-Entfernen mit ## | ${var##*/} | Es ist nur das nicht-gierige # implementiert |
Gieriges Suffix-Entfernen mit %% | ${var%%.*} | Es ist nur das nicht-gierige % implementiert |
| Teilstring-Extraktion | ${var:0:3} | Anderer Operator, selten in PKGBUILDs |
| Muster-Substitution | ${var//foo/bar} | Anderer Operator, selten in PKGBUILDs |
| Arithmetische Erweiterung | $((pkgver + 1)) | Außerhalb des Umfangs der Versionsverfolgung |
| Verschachtelte Erweiterungen | ${${var}#prefix} | Kein gültiges POSIX; in der Praxis nicht verwendet |
Wenn Ihr PKGBUILD eines der oben genannten Konstrukte verwendet und die Automatisierung es überspringt, können Sie entweder die Zuweisung als einfache Zeile var=value umschreiben oder einen PR einreichen, der die Version manuell aktualisiert.
LOL Omuamua