
Athena OSは、Arch/NixベースのCybersecurityに特化したディストリビューションです。あらゆるハッキングツールを使って学び、練習し、楽しみましょう!

このリポジトリのパッケージは、nvcheckerを利用した毎日のGitHub Actionsワークフローによって自動的に最新の状態に保たれています。
この自動化は毎日実行され(手動でトリガーすることも可能)、以下の手順を踏みます:
設定の生成 - .nvchecker/generate-nvchecker-config.pyがsrc/以下のすべてのPKGBUILDをスキャンし、.nvchecker/nvchecker.tomlを自動生成します。各パッケージは以下のいずれかに分類されます:
pkgver=とリモートソースURLを持ちます。ホスティングプラットフォーム上の最新タグ/リリースによって追跡されます。pkgver()関数とgit+https://ソースを持ちます。上流の最新コミットによって追跡されます。バージョンチェック - nvcheckerが追跡対象のすべてのパッケージの上流に問い合わせ、結果を.nvchecker/newver.jsonに書き込みます。これは.nvchecker/oldver.json(リポジトリにコミット済み)と比較され、新しいバージョンが利用可能なパッケージが特定されます。
PKGBUILD の更新と PR - 古くなった各パッケージに対して、ワークフローは次の処理を行います:
auto-update/<pkgname>-<newver> を作成します。PKGBUILD 内の pkgver を更新し、pkgrel を 1 にリセットします。updpkgsums でチェックサムを再生成します。pkgver() 関数をローカルで実行して実際の Arch 形式のバージョン文字列(例: 131.940a5d3)を計算し、sha512sums=('SKIP') はそのまま維持します。main にマージされる前に、人間によるレビューのため auto-update ラベルを付けたプルリクエストを作成します。状態の保存 - .nvchecker/oldver.json がこの実行で確認されたバージョンで更新され、main にコミットされます。これにより、次回の実行では本当に新しい変更に対してのみ PR が作成されます。
| プラットフォーム | 検出方法 |
|---|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + セルフホスト) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (セルフホスト) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
設定ジェネレーターと CI ワークフローの両方が source= 行内のシェル変数参照を解決するため、次のような間接的な URL も正しく処理されます:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
以下の bash パラメータ展開形式がサポートされています:
| 構文 | 意味 | 例 |
|---|---|---|
$var / ${var} | 単純置換 | $pkgname → athena-settings |
${var#prefix} | 最短一致の接頭辞を削除 | ${pkgname#athena-} → settings |
${var%suffix} | 最短一致の接尾辞を削除 | ${pkgname%-git} → athena-settings |
以下の bash 構文は自動化によって解決されません。これらに依存する PKGBUILD は情報提供の注記とともに安全にスキップされます - エラーは発生せず、いつでも手動で更新できます。
| 未サポートの構文 | 例 | 理由 |
|---|---|---|
## 最長一致の接頭辞削除 | ${var##*/} | 最短一致の # のみ実装済み |
%% 最長一致の接尾辞削除 | ${var%%.*} | 最短一致の % のみ実装済み |
| 部分文字列の抽出 | ${var:0:3} | 異なる演算子であり、PKGBUILD では稀 |
| パターン置換 | ${var//foo/bar} | 異なる演算子であり、PKGBUILD では稀 |
| 算術展開 | $((pkgver + 1)) | バージョン追跡の範囲外 |
| ネストされた展開 | ${${var}#prefix} | 有効な POSIX ではなく、実際には使用されない |
PKGBUILD が上記のいずれかを使用していて自動化がスキップする場合、代入を単純な var=value 行として書き直すか、バージョンを手動で更新する PR を開くことができます。
LOL Omuamua