
Athena OS é uma distro baseada em Arch/Nix focada em Cibersegurança. Aprenda, pratique e divirta-se com qualquer ferramenta de hacking!

Os pacotes neste repositório são mantidos atualizados automaticamente por meio de um fluxo de trabalho diário do GitHub Actions alimentado pelo nvchecker.
A automação é executada todos os dias (e também pode ser acionada manualmente) e passa pelas seguintes etapas:
Geração de configuração - .nvchecker/generate-nvchecker-config.py examina cada PKGBUILD em src/ e gera automaticamente .nvchecker/nvchecker.toml. Cada pacote é classificado como um dos seguintes:
pkgver= estático e uma URL de origem remota. Rastreado pela tag/release mais recente na plataforma de hospedagem.pkgver() e uma origem git+https://. Rastreado pelo commit mais recente do upstream.Verificação de versão - nvchecker consulta o upstream de cada pacote rastreado e grava os resultados em .nvchecker/newver.json. Isso é comparado com .nvchecker/oldver.json (commitado no repositório) para encontrar pacotes que têm uma nova versão disponível.
Atualização do PKGBUILD e PR - para cada pacote desatualizado, o workflow:
auto-update/<pkgname>-<newver>.pkgver e redefine pkgrel para 1 no PKGBUILD.updpkgsums.pkgver() localmente para calcular a string de versão real no estilo Arch (por exemplo, 131.940a5d3), e mantém sha512sums=('SKIP') como está.auto-update para revisão humana antes que qualquer coisa chegue ao main.Salvamento de estado - .nvchecker/oldver.json é atualizado com as versões vistas nesta execução e commitado de volta ao main, para que a próxima execução só abra PRs para mudanças genuinamente novas.
| Plataforma | Detecção |
|---|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + auto-hospedado) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (auto-hospedado) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
O gerador de configuração e o workflow de CI resolvem referências a variáveis de shell nas linhas source= para que URLs indiretas como as seguintes sejam tratadas corretamente:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
As seguintes formas de expansão de parâmetros do bash são suportadas:
| Sintaxe | Significado | Exemplo |
|---|---|---|
$var / ${var} | Substituição simples | $pkgname → athena-settings |
${var#prefix} | Remove o prefixo correspondente mais curto | ${pkgname#athena-} → settings |
${var%suffix} | Remove o sufixo correspondente mais curto | ${pkgname%-git} → athena-settings |
As seguintes construções do bash não são resolvidas pela automação. PKGBUILDs que dependem delas serão ignorados de forma controlada com uma nota informativa - nenhum erro é gerado, e eles sempre podem ser atualizados manualmente.
| Sintaxe não suportada | Exemplo | Motivo |
|---|---|---|
Remoção gulosa de prefixo ## | ${var##*/} | Apenas o # não guloso está implementado |
Remoção gulosa de sufixo %% | ${var%%.*} | Apenas o % não guloso está implementado |
| Extração de substring | ${var:0:3} | Operador diferente, raro em PKGBUILDs |
| Substituição de padrão | ${var//foo/bar} | Operador diferente, raro em PKGBUILDs |
| Expansão aritmética | $((pkgver + 1)) | Fora do escopo do rastreamento de versões |
| Expansões aninhadas | ${${var}#prefix} | Não é POSIX válido; não usado na prática |
Se o seu PKGBUILD usa qualquer uma das construções acima e a automação o ignora, você pode reescrever a atribuição como uma linha simples var=value ou abrir um PR atualizando a versão manualmente.
LOL Omuamua