Nextcloud Native (https://github.com/Obiente/nc-native), an adaptive native Nextcloud client built with Kotlin/Compose Multiplatform. Upstream publishes a jpackage .deb per release, which the PKGBUILD repackages unchanged. Every upstream release is a prerelease and the release list is dominated by per-build nightly-* releases plus rolling channel-* pointers, so pkg.sh tracks only the versioned v* tags and syncs the build-numbered asset name along with the checksum.
7.7 KiB
PKGBUILDS
Automated AUR packages, kept up to date by GitHub Actions.
Every 6 hours the update workflow checks each package's upstream for a new release. When one is found it:
- updates the
PKGBUILD(pkgver/pkgrel/sha256sums), - test-builds it with
makepkgand regenerates.SRCINFO, - commits the changes back to this repository, and
- pushes the package files to the AUR.
Ground rule
This repository never hosts a binary. Every PKGBUILD sources what
upstream published — a release tarball, .deb, wheel or AppImage — and
either repackages it (-bin) or builds it (no suffix), exactly like any
hand-written AUR package would. CI only bumps pkgver and the checksums.
This is not a style preference. The AUR submission guidelines say:
Packages that use prebuilt deliverables, when the sources are available, must use the
-binsuffix. […] The AUR should not contain the binary tarball created by makepkg
A -bin package repackages what upstream ships. Building the software
yourself, publishing the result as a release asset and having the AUR
PKGBUILD download that makes this repository an unofficial binary
repository — users can no longer verify that the package matches what
upstream released. Packages set up that way were removed from the AUR in
July 2026; do not reintroduce the pattern.
If upstream ships no Linux binary, there are exactly two options: build from
source in the PKGBUILD (and drop the -bin suffix), or don't package it.
Packages
| Package | Upstream | Upstream deliverable | AUR |
|---|---|---|---|
bt-volume-step |
Felitendo/bt-volume-step — corrects the coarse internal volume grid of Bluetooth audio devices on PipeWire | built from source | bt-volume-step |
cachy-auto-update |
Felitendo/cachy-auto-update — unattended background updates for CachyOS (pacman, AUR, Flatpak, AppImages) | built from source | cachy-auto-update |
chiaki-ng-bin |
streetpea/chiaki-ng — PlayStation Remote Play client (Qt6) | AppImage | chiaki-ng-bin |
chromium-widevine-helper |
GloriousEggroll/chromium-widevine-helper — extension + native helper installing Google's Widevine CDM into Chromium-based browser profiles | no build step | chromium-widevine-helper |
faugus-launcher-bin |
Faugus/faugus-launcher — launcher for Windows games via UMU-Launcher | .deb (all) |
faugus-launcher-bin |
fluxer-bin |
fluxer.app — Fluxer desktop client (Electron) | tarball | fluxer-bin |
lunar-client-bin |
lunarclient.com — Minecraft PvP modpack launcher | AppImage | lunar-client-bin |
middleclick-autoscroll |
Felitendo/middleclick-autoscroll — enables middle-click autoscroll in every application that supports it | built from source | middleclick-autoscroll |
modrinth-app-bin |
modrinth/code — Minecraft mod manager/launcher | .deb |
modrinth-app-bin |
nextcloud-native-bin |
Obiente/nc-native — adaptive native Nextcloud client for files, media and installed server apps (Compose Multiplatform, unofficial) | .deb |
nextcloud-native-bin |
sharpemu-bin |
sharpemu/sharpemu — experimental PlayStation 5 emulator | tarball | sharpemu-bin |
snapx-bin |
SnapXL/SnapX — ShareX-fork screenshot/sharing tool | self-contained tarball | snapx-bin |
timetable |
ostfriese4/untis — "Timetable", a GTK4 + LibAdwaita client for WebUntis | built from source | timetable |
vacuumtube-bin |
shy1132/VacuumTube — YouTube Leanback (TV UI) with built-in adblocker | .deb |
vacuumtube-bin |
waydroid-helper-bin |
ayasa520/waydroid-helper — GTK4 GUI for Waydroid configuration and extensions | AppImage | waydroid-helper-bin |
wiiudownloader-bin |
Xpl0itU/WiiUDownloader — Wii U title downloader (Go + GTK3) | AppImage | wiiudownloader-bin |
zapzap-bin |
rafatosta/zapzap — WhatsApp desktop client (PyQt6 + WebEngine) | wheel | zapzap-bin |
Setup (one-time)
- Create an AUR account and add an SSH public key to it (AUR account settings).
- Add the matching private key as a repository secret named
AUR_SSH_PRIVATE_KEY(Settings → Secrets and variables → Actions → New repository secret). - Optionally set the repository variable
AUR_GIT_NAMEand the repository secretAUR_GIT_EMAILto control the commit identity used on the AUR (defaults:Felitendo/ the maintainer's GitHub noreply address).
The first push to ssh://aur@aur.archlinux.org/<pkgname>.git creates the AUR
package automatically.
Adding a package
Check first that upstream actually publishes a Linux binary, that the package
is not already in the official repositories (the AUR rejects the push
outright: "package already provided by [extra]"), and that the AUR does not
already carry an equivalent package — a -bin next to a maintained
source package is fine, a second copy of the same thing is not.
Then create a directory named after the AUR package containing:
-
PKGBUILD— sources upstream's release URLs directly.pkgver,pkgrelandsha256sumsare maintained by CI, so keepsha256sumson a single line. -
pkg.sh— bash sourced by scripts/update-package.sh, defining:latest_version— prints the latest upstream version, novprefix.refresh_checksums <version> <pkgbuild-path>— updates thesha256sums*lines for that version. If the asset name carries build metadata that does not follow frompkgver(seesnapx-bin,faugus-launcher-bin), resolve it via the GitHub API here and sync an_assetvariable in thePKGBUILDtoo.BUILD_DEPS— optional array of Arch packages to install before the CI test build; only needed by packages that build from source.
Other local source files in the directory (
.desktopfiles, patches, …) are pushed to the AUR alongsidePKGBUILDand.SRCINFO.
The workflow discovers package directories automatically. Trigger a run manually via Actions → Update AUR packages → Run workflow to publish it immediately.