Personal Arch Linux package repository with automated builds, version tracking, and AUR publishing.
# Import the maintainer's signing key
sudo pacman-key --keyserver keys.openpgp.org --recv-keys ED9FEE0BB96D6A5E
sudo pacman-key --lsign-key ED9FEE0BB96D6A5E
# Add to /etc/pacman.conf (before [core] for priority over official packages)
[markwells-dev]
SigLevel = Required DatabaseOptional
Server = https://github.com/TwoWells/pkgbuilds/releases/latest/download
# Sync and install
sudo pacman -Sy
sudo pacman -S <package-name>See the pkgs/ directory for the current list — each subdirectory is
one package, named after its pkgname. Its PKGBUILD records the upstream
source and version.
Each package opts into one or both distribution channels via empty marker files in its directory:
| Marker | Behavior |
|---|---|
.local |
Build, sign, and publish to the [markwells-dev] pacman repo |
.aur |
Push PKGBUILD + generated .SRCINFO to the AUR |
A package may carry both markers — e.g. a -bin package served from the
pacman repo and mirrored to the AUR. Source packages usually carry .aur
only: the AUR builds from source by design, while the pacman repo ships
binaries. A package with no marker is inert (kept in-tree but published
nowhere).
- PKGBUILDs are stored in this repo
- Versions are checked every 30 minutes and updated automatically
- GitHub Actions builds only changed
.localpackages in a clean Arch Linux container - Packages are signed with GPG and published atomically to GitHub Releases
- AUR packages (
.aurmarker) are pushed to aur.archlinux.org on every push tomain— including watcher-dispatched version bumps — with.SRCINFOgenerated in CI - pacman syncs directly from the release assets
For CI/CD pipeline details, see the wiki.
-
Create a directory in
pkgs/with aPKGBUILD(directory name must matchpkgname):pkgs/my-package/ └── PKGBUILD # pkgname=my-package -
Add an update script in
scripts/packages/<pkgname>.sh:
check_pkgname() {
# check logic here, call perform_update
}
check_pkgnameCommon datasources:
npm- for npm packagesgithub-releases- for GitHub releases
-
Add a target marker (
.local,.aur, or both — see Publish Targets);.localpackages should also carry acheck.shsmoke test -
Commit and push - the package will be automatically detected and built
Clicking links within the rpi-imager application may fail. This occurs because the AppImage's bundled libraries can break PAM when calling runuser to launch a browser. This is an upstream issue; avoid attempting downstream fixes in the wrapper script as they have proven unreliable.
For detailed instructions on how to add new packages, build them locally, and understand the project structure, please see CONTRIBUTING.md.