Skip to content

TwoWells/pkgbuilds

Repository files navigation

pkgbuilds

Build packages Check for Updates

Personal Arch Linux package repository with automated builds, version tracking, and AUR publishing.

Usage

# 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>

Packages

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.

Publish Targets

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).

How It Works

  • PKGBUILDs are stored in this repo
  • Versions are checked every 30 minutes and updated automatically
  • GitHub Actions builds only changed .local packages in a clean Arch Linux container
  • Packages are signed with GPG and published atomically to GitHub Releases
  • AUR packages (.aur marker) are pushed to aur.archlinux.org on every push to main — including watcher-dispatched version bumps — with .SRCINFO generated in CI
  • pacman syncs directly from the release assets

For CI/CD pipeline details, see the wiki.

Adding a New Package

  1. Create a directory in pkgs/ with a PKGBUILD (directory name must match pkgname):

    pkgs/my-package/
    └── PKGBUILD    # pkgname=my-package
    
  2. Add an update script in scripts/packages/<pkgname>.sh:

check_pkgname() {

  # check logic here, call perform_update

}

check_pkgname

Common datasources:

  • npm - for npm packages
  • github-releases - for GitHub releases
  1. Add a target marker (.local, .aur, or both — see Publish Targets); .local packages should also carry a check.sh smoke test

  2. Commit and push - the package will be automatically detected and built

Known Issues

rpi-imager URL opening

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.

Contributing

For detailed instructions on how to add new packages, build them locally, and understand the project structure, please see CONTRIBUTING.md.

About

Arch Linux packages with automated CI builds

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors