Skip to content

Athena-OS/athena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

870 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dive into a new Pentesting Experience with
Athena OS

image

πŸ…Born for InfoSec Professionals, Bug Bounty Hunters, Passionate Students and Spicy HackersπŸ…

πŸ’ž Get Athena OS Now! πŸ’ž


Click Docker icon above to explore Athena OS Docker containers!

Click the icon above to explore Athena OS WSL in Microsoft Store App!

Automated Package Updates

Packages in this repository are kept up to date automatically via a daily GitHub Actions workflow powered by nvchecker.

How it works

The automation runs every day (and can also be triggered manually) and goes through the following steps:

  1. Config generation β€” .nvchecker/generate-nvchecker-config.py scans every PKGBUILD under src/ and auto-generates .nvchecker/nvchecker.toml. Each package is classified as one of:

    • Release package β€” has a static pkgver= and a remote source URL. Tracked by latest tag/release on the hosting platform.
    • VCS package β€” has a pkgver() function and a git+https:// source. Tracked by latest upstream commit.
    • Local-only package β€” all sources are local files. Skipped silently (no upstream to track).
  2. Version check β€” nvchecker queries the upstream of every tracked package and writes the results to .nvchecker/newver.json. This is compared against .nvchecker/oldver.json (committed in the repo) to find packages that have a new version available.

  3. PKGBUILD update & PR β€” for each outdated package the workflow:

    • Creates a dedicated branch auto-update/<pkgname>-<newver>.
    • Updates pkgver and resets pkgrel to 1 in the PKGBUILD.
    • For release packages: regenerates checksums with updpkgsums.
    • For VCS packages: clones the upstream repo, runs the pkgver() function locally to compute the real Arch-style version string (e.g. 131.940a5d3), and keeps sha512sums=('SKIP') as is.
    • Opens a pull request labelled auto-update for human review before anything lands on main.
  4. State save β€” .nvchecker/oldver.json is updated with the versions seen in this run and committed back to main, so the next run only opens PRs for genuinely new changes.

Supported hosting platforms

Platform Detection
GitHub github.com/<user>/<repo>
GitLab (gitlab.com + self-hosted) gitlab.*/<user>/<repo>
Codeberg codeberg.org/<user>/<repo>
Gitea (self-hosted) gitea.*/<user>/<repo>
Sourcehut git.sr.ht/~<user>/<repo>

Shell variable expansion in PKGBUILDs

The config generator and the CI workflow both resolve shell variable references in source= lines so that indirect URLs like the following are handled correctly:

_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")

The following bash parameter expansion forms are supported:

Syntax Meaning Example
$var / ${var} Simple substitution $pkgname β†’ athena-settings
${var#prefix} Strip shortest matching prefix ${pkgname#athena-} β†’ settings
${var%suffix} Strip shortest matching suffix ${pkgname%-git} β†’ athena-settings

Known limitations

The following bash constructs are not resolved by the automation. PKGBUILDs that rely on them will be skipped gracefully with an informational note β€” no error is raised, and they can always be updated manually.

Unsupported syntax Example Reason
## greedy prefix strip ${var##*/} Only non-greedy # is implemented
%% greedy suffix strip ${var%%.*} Only non-greedy % is implemented
Substring extraction ${var:0:3} Different operator, rare in PKGBUILDs
Pattern substitution ${var//foo/bar} Different operator, rare in PKGBUILDs
Arithmetic expansion $((pkgver + 1)) Out of scope for version tracking
Nested expansions ${${var}#prefix} Not valid POSIX; not used in practice

If your PKGBUILD uses any of the above and the automation skips it, you can either rewrite the assignment as a plain var=value line or open a PR updating the version manually.

About

Athena OS is a Arch/Nix-based distro focused on Cybersecurity. Learn, practice and enjoy with any hacking tool!

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors