Krolyxon
Commit 1b48cfa

Branches

Refs →

budctl1b48cfa

contrib/arch/PKGBUILD: budctl-bin from the release builds

Not on the AUR (new packages are closed for now); makepkg -si in contrib/arch
installs the v0.1.1 release tarballs as a pacman package, with bluez as a
dependency and wayland/libxkbcommon/fontconfig as optional ones for the GUI.
Author
krolyxon
Date
2026-10-28 10:57 +0530
Parent
f7d0d70
Commit
1b48cfa0f086dfbe519648a909ef9bd759f8b85a

+38 −0

4 files changed

  1. M .gitignore +5 −0
  2. M CLAUDE.md +1 −0
  3. M README.md +2 −0
  4. A contrib/arch/PKGBUILD +30 −0
M .gitignore View
@@ -1,2 +1,7 @@
11 /target
22 *.log
3+# makepkg output in contrib/arch
4+/contrib/arch/src/
5+/contrib/arch/pkg/
6+/contrib/arch/*.tar.gz
7+/contrib/arch/*.pkg.tar.*
M CLAUDE.md View
@@ -142,6 +142,7 @@ Exit codes:
142142 - One version for the whole workspace (`Cargo.toml`), with a section per release in `CHANGELOG.md`.
143143 - To release: bump the version, add its `CHANGELOG.md` section, commit, then tag `vX.Y.Z` and push the tag. `.github/workflows/release.yml` checks the tag matches `Cargo.toml`, runs the tests, builds x86_64 and aarch64 on Ubuntu 22.04 (glibc builds; Wayland is loaded at runtime), and publishes the tarballs, their `.sha256` files and `install.sh`, with that changelog section as the notes.
144144 - `install.sh` installs into `~/.local` by default: from a release download (`curl … | sh`), from the unpacked tarball it sits in, or from a checkout with `--source`. `--uninstall` removes the binaries and the launcher entry, never the user's config or log.
145+- `contrib/arch/PKGBUILD` (`budctl-bin`, not on the AUR) packages the release tarballs. After a release is published, bump its `pkgver` and take the sums from the release's `.sha256` files.
145146 - `.github/workflows/ci.yml` runs fmt, clippy and the tests on every push to master.
146147
147148 ## License
M README.md View
@@ -33,6 +33,8 @@ sh install.sh --uninstall # remove them again; your config and log st
3333
3434 To build from source instead (Rust 1.88 or newer), run `./install.sh --source` in a checkout.
3535
36+On Arch, `contrib/arch/PKGBUILD` packages the release builds: run `makepkg -si` in that directory.
37+
3638 Pair the buds and connect them in your Bluetooth settings first.
3739
3840 ## Command line
A contrib/arch/PKGBUILD View
@@ -0,0 +1,30 @@
1+# Packages the release builds (x86_64 and aarch64) from GitHub. Not on the AUR: build it here with
2+# makepkg -si
3+# For a new release, bump pkgver, reset pkgrel to 1, and take the sums from the release's
4+# .sha256 files (or run updpkgsums).
5+
6+pkgname=budctl-bin
7+pkgver=0.1.1
8+pkgrel=1
9+pkgdesc='Control wireless earbuds from Linux without the vendor app (CLI and Wayland GUI)'
10+arch=('x86_64' 'aarch64')
11+url='https://github.com/krolyxon/budctl'
12+license=('GPL-3.0-or-later')
13+depends=('glibc' 'gcc-libs' 'bluez')
14+optdepends=('wayland: for budctl-gui'
15+ 'libxkbcommon: for budctl-gui'
16+ 'fontconfig: budctl-gui uses the desktop sans-serif font')
17+provides=('budctl')
18+conflicts=('budctl')
19+options=('!strip' '!debug')
20+source_x86_64=("budctl-$pkgver-x86_64.tar.gz::$url/releases/download/v$pkgver/budctl-x86_64-unknown-linux-gnu.tar.gz")
21+source_aarch64=("budctl-$pkgver-aarch64.tar.gz::$url/releases/download/v$pkgver/budctl-aarch64-unknown-linux-gnu.tar.gz")
22+sha256sums_x86_64=('d05c8a5d3bca2c1878be36ef56acb88dcd7438db0dfdb77da894ff2c9072d0b0')
23+sha256sums_aarch64=('f02f56b274d60448fe12f939ee989b166e69ae8bc9e2b17a3b29b3361a85c02d')
24+
25+package() {
26+ cd "budctl-$CARCH-unknown-linux-gnu"
27+ install -Dm755 budctl budctl-gui -t "$pkgdir/usr/bin/"
28+ install -Dm644 budctl.desktop -t "$pkgdir/usr/share/applications/"
29+ install -Dm644 README.md -t "$pkgdir/usr/share/doc/budctl/"
30+}