
Athena OS es una distribución basada en Arch/Nix enfocada en ciberseguridad. ¡Aprende, practica y disfruta con cualquier herramienta de hacking!

Los paquetes de este repositorio se mantienen actualizados automáticamente mediante un flujo de trabajo diario de GitHub Actions impulsado por nvchecker.
La automatización se ejecuta todos los días (y también puede activarse manualmente) y sigue los siguientes pasos:
Generación de configuración - .nvchecker/generate-nvchecker-config.py escanea cada PKGBUILD bajo src/ y autogenera .nvchecker/nvchecker.toml. Cada paquete se clasifica en una de las siguientes categorías:
pkgver= estático y una URL de origen remota. Se rastrea mediante la última etiqueta/versión en la plataforma de alojamiento.pkgver() y una fuente git+https://. Se rastrea mediante el último commit upstream.Verificación de versión - nvchecker consulta el upstream de cada paquete rastreado y escribe los resultados en .nvchecker/newver.json. Esto se compara con .nvchecker/oldver.json (confirmado en el repositorio) para encontrar paquetes que tienen una nueva versión disponible.
Actualización de PKGBUILD y PR - para cada paquete desactualizado, el flujo de trabajo:
auto-update/<pkgname>-<newver>.pkgver y restablece pkgrel a 1 en el PKGBUILD.updpkgsums.pkgver() localmente para calcular la cadena de versión real al estilo Arch (p. ej., 131.940a5d3), y mantiene sha512sums=('SKIP') tal como está.auto-update para revisión humana antes de que algo llegue a main.Guardado de estado - .nvchecker/oldver.json se actualiza con las versiones vistas en esta ejecución y se confirma de vuelta en main, de modo que la siguiente ejecución solo abra PRs para cambios genuinamente nuevos.
| Plataforma | Detección |
|---|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + autoalojado) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (autoalojado) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
Tanto el generador de configuración como el flujo de trabajo de CI resuelven las referencias a variables de shell en las líneas source= para que las URL indirectas como la siguiente se manejen correctamente:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
Se admiten las siguientes formas de expansión de parámetros de bash:
| Sintaxis | Significado | Ejemplo |
|---|---|---|
$var / ${var} | Sustitución simple | $pkgname → athena-settings |
${var#prefix} | Elimina el prefijo coincidente más corto | ${pkgname#athena-} → settings |
${var%suffix} | Elimina el sufijo coincidente más corto | ${pkgname%-git} → athena-settings |
Las siguientes construcciones de bash no son resueltas por la automatización. Los PKGBUILDs que dependen de ellas se omitirán de forma controlada con una nota informativa: no se genera ningún error y siempre se pueden actualizar manualmente.
| Sintaxis no admitida | Ejemplo | Motivo |
|---|---|---|
Eliminación de prefijo codiciosa ## | ${var##*/} | Solo se implementa # no codicioso |
Eliminación de sufijo codiciosa %% | ${var%%.*} | Solo se implementa % no codicioso |
| Extracción de subcadenas | ${var:0:3} | Operador distinto, poco frecuente en PKGBUILDs |
| Sustitución de patrones | ${var//foo/bar} | Operador distinto, poco frecuente en PKGBUILDs |
| Expansión aritmética | $((pkgver + 1)) | Fuera del alcance del seguimiento de versiones |
| Expansiones anidadas | ${${var}#prefix} | No es POSIX válido; no se usa en la práctica |
Si tu PKGBUILD usa alguna de las construcciones anteriores y la automatización lo omite, puedes reescribir la asignación como una línea simple var=value o abrir un PR actualizando la versión manualmente.
LOL Omuamua