Build armv8-a packages for Arch Linux
- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| build | ||
| pkglist | ||
| .gitignore | ||
| check.py | ||
| core.py | ||
| dispatcher.py | ||
| fetch.py | ||
| LICENSE | ||
| prune.py | ||
| README.md | ||
| release.py | ||
| requirements.txt | ||
| stage.py | ||
| status.py | ||
| sync.py | ||
Arch Linux AArch64 Builder (arch-armv8)
Build pipeline for tracking, synchronizing, and building Arch Linux packages for the aarch64 (armv8-a instruction set) architecture. We compare an x86_64 package database ("upstream") with a local aarch64 repository ("downstream") to identify outdated and missing packages.
Project Structure
dispatcher.py— The core build orchestrator. Analyzes the state, determines the build order, and executes the Git/build pipeline.status.py— A CLI dashboard that calculates database age and provides a tabulated breakdown of package states.sync.py— Generates and refreshes the downstream state database.pkglist/— Configuration directory containing plain-text files to manage package targeting:haskell: Rules to isolate Haskell packages.ignored: Packages to completely ignore.hold: Packages that are intentionally held back from building.
Requirements
- Python 3.9+
- Python Packages:
pyalpm - System Tools:
devtools(forpkgctl),pacman(forrepo-add,vercmp),git,gpg
Workflow
- State Generation:
./fetch.pygeneratesupstream.json - Review Status: Run
./status.pyto view a breakdown of packages that are outdated, missing, or staged. - Execute Build: Run
./dispatcher.py. The dispatcher will:- Sync architecture-independent (
any) packages directly to staging. - Determine the build order for architecture-dependent packages.
- Pull the
PKGBUILD, injectaarch64, build the package in a chroot, and move the artifacts to a{repo}-stagingdirectory.
- Sync architecture-independent (
- Release: Run
./release.pyto promote packages from staging.