
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