Files
beefy-player/aur

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

  1. Set pkgver in PKGBUILD and pyproject.toml, and reset pkgrel=1.

  2. Point _commit at the commit carrying that version:

    git rev-parse HEAD          # or the tag, once one exists
    
  3. Refresh the checksum:

    curl -fsSL "https://tildeforge.dev/beefcarver/beefy-player/archive/$_commit.tar.gz" | sha256sum
    
  4. Regenerate the metadata (on Arch, or inside a chroot):

    makepkg --printsrcinfo > .SRCINFO
    
  5. 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.tcss is force-included by pyproject.toml, so it ends up in site-packages/beefy_player/.
  • check() runs the real test suite. It is offline by design (station catalogues are fixtures and mpv/parec are faked), which makes it safe in a build chroot with no network.
  • mpv, ffmpeg, libpulse (parec/pactl) and tmux are optdepends, not depends: the player degrades gracefully without them and says so in the UI. Users who want sound need mpv (or ffmpeg for ffplay) and, for the output-synced spectrum, libpulse.
  • license=('WTFPL') is an SPDX identifier shipped by Arch's licenses package.