
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 pasa por 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 como uno de los siguientes:
pkgver= estático y una URL de origen remota. Se rastrea por la última etiqueta/versión en la plataforma de alojamiento.pkgver() y una fuente git+https://. Se rastrea por 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 (por ejemplo, 131.940a5d3), y mantiene sha512sums=('SKIP') tal cual.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 compatible | 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 subcadena | ${var:0:3} | Operador diferente, poco frecuente en PKGBUILDs |
| Sustitución de patrones | ${var//foo/bar} | Operador diferente, 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 anteriores y la automatización lo omite, puedes reescribir la asignación como una línea simple var=value o abrir una PR actualizando la versión manualmente.
LOL Omuamua