
أثينا أو إس هي توزيعة تعتمد على أرش/نيكس وتركز على الأمن السيبراني. تعلم، تدرب واستمتع مع أي أداة اختراق!

تُحفظ الحزم في هذا المستودع محدَّثة تلقائيًا عبر سير عمل GitHub Actions يومي مدعوم بـ nvchecker.
تعمل الأتمتة كل يوم (ويمكن أيضًا تشغيلها يدويًا) وتمر بالخطوات التالية:
توليد الإعدادات - يفحص .nvchecker/generate-nvchecker-config.py كل ملف PKGBUILD تحت src/ ويولّد تلقائيًا .nvchecker/nvchecker.toml. تُصنَّف كل حزمة كأحد الأنواع التالية:
pkgver= ثابت ورابط مصدر بعيد. تُتبَّع عبر أحدث وسم/إصدار على منصة الاستضافة.pkgver() ومصدر git+https://. تُتبَّع عبر أحدث commit في المصدر الأصلي.فحص الإصدارات - يستعلم nvchecker عن المصدر الأصلي لكل حزمة متتبَّعة ويكتب النتائج في .nvchecker/newver.json. تُقارَن هذه النتائج بـ .nvchecker/oldver.json (المُودَع في المستودع) لتحديد الحزم التي يتوفر لها إصدار جديد.
تحديث PKGBUILD وطلب السحب (PR) - لكل حزمة قديمة يقوم سير العمل بما يلي:
auto-update/<pkgname>-<newver>.pkgver ويعيد تعيين pkgrel إلى 1 في PKGBUILD.updpkgsums.pkgver() محليًا لحساب سلسلة الإصدار الحقيقية بأسلوب Arch (مثل 131.940a5d3)، ويُبقي sha512sums=('SKIP') كما هي.auto-update للمراجعة البشرية قبل أن يصل أي شيء إلى main.حفظ الحالة - يتم تحديث .nvchecker/oldver.json بالإصدارات التي شوهدت في هذه الجولة وإيداعه مرة أخرى في main، بحيث لا يفتح التشغيل التالي طلبات سحب إلا للتغييرات الجديدة فعليًا.
| المنصة | الكشف |
|---|---|
| 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= بحيث تتم معالجة الروابط غير المباشرة مثل التالي بشكل صحيح:
_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