AUR packaging for beefy-player
An AUR repository holds exactly two tracked files, PKGBUILD and .SRCINFO.
This directory is the staging area for both; the rest of the project is
irrelevant to the AUR.
Build it locally
cd aur
makepkg -si # build, run the test suite, install
makepkg -o && makepkg -e skips the download/checksum phase, and
extra-x86_64-build (devtools) builds in a clean chroot. The package builds
with base-devel plus the makedepends/checkdepends listed in the
PKGBUILD; every dependency comes from the official repositories, none from
the AUR.
Publish to the AUR
git clone ssh://[email protected]/beefy-player.git /tmp/aur-beefy-player
cp PKGBUILD .SRCINFO /tmp/aur-beefy-player/
cd /tmp/aur-beefy-player
git add PKGBUILD .SRCINFO
git commit -m "Initial import: beefy-player 1.2.2-1"
git push
Releasing a new version
-
Set
pkgverinPKGBUILDandpyproject.toml, and resetpkgrel=1. -
Point
_commitat the commit carrying that version:git rev-parse HEAD # or the tag, once one exists -
Refresh the checksum:
curl -fsSL "https://tildeforge.dev/beefcarver/beefy-player/archive/$_commit.tar.gz" | sha256sum -
Regenerate the metadata (on Arch, or inside a chroot):
makepkg --printsrcinfo > .SRCINFO -
Push to the AUR with the conventional commit message:
git commit -am "upgpkg: beefy-player <pkgver>-<pkgrel>"
Why the source is a commit archive
Upstream publishes no tags or releases, so the checksum in sha256sums
belongs to the archive of a specific commit rather than of a v$pkgver tag.
Forge archives of a commit are deterministic, so the checksum stays stable.
Once v$pkgver is tagged, replace the source line with
source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz")
Packaging notes
- The wheel is built with
hatchling;theme.tcssis force-included bypyproject.toml, so it ends up insite-packages/beefy_player/. check()runs the real test suite. It is offline by design (station catalogues are fixtures andmpv/parecare faked), which makes it safe in a build chroot with no network.mpv,ffmpeg,libpulse(parec/pactl) andtmuxareoptdepends, notdepends: the player degrades gracefully without them and says so in the UI. Users who want sound needmpv(orffmpegforffplay) and, for the output-synced spectrum,libpulse.license=('WTFPL')is an SPDX identifier shipped by Arch'slicensespackage.