Initial PKGBUILD for solitaire-quest 0.1.0-1

This commit is contained in:
funman300
2026-05-01 04:34:04 +00:00
commit 69d60ede2e
4 changed files with 217 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
# solitaire-quest (Arch packaging)
PKGBUILD for [Solitaire Quest](https://git.aleshym.co/funman300/Rusty_Solitare),
a cross-platform Klondike Solitaire in Rust + Bevy.
This repo is intentionally separate from the upstream source so the same
PKGBUILD can be submitted to the AUR and to any third-party Arch
repository (Chaotic-AUR, ALA, etc.) without polluting the upstream
project history.
---
## Files
| File | Purpose |
|---|---|
| `PKGBUILD` | Build script — pulls the v0.1.0 source tarball, builds with `cargo`, installs binary + assets + desktop entry. |
| `solitaire-quest.desktop` | XDG desktop entry installed to `/usr/share/applications/`. |
| `solitaire-quest.png` | Application icon (TODO — drop a 256×256 PNG here). |
| `.SRCINFO` | Auto-generated by `makepkg --printsrcinfo`. |
---
## Building locally
```bash
# 1. Update the sha256 once the v0.1.0 tarball is published.
updpkgsums
# 2. Build the package.
makepkg -si
# 3. Verify it installed.
solitaire-quest --help # or just launch from the application menu
```
`-s` installs missing makedeps; `-i` installs the resulting `.pkg.tar.zst`
after the build succeeds. Drop `-i` if you only want the artefact.
---
## Submitting to the AUR
```bash
# Generate the .SRCINFO required by the AUR.
makepkg --printsrcinfo > .SRCINFO
# Commit both files to the AUR git remote.
git add PKGBUILD .SRCINFO
git commit -m "Initial release: 0.1.0-1"
git push aur master
```
The AUR remote is `ssh://aur@aur.archlinux.org/solitaire-quest.git`. You
need an SSH key registered on your AUR account.
---
## Updating for a new release
For each new upstream tag:
1. Bump `pkgver` in `PKGBUILD` to match the new upstream tag.
2. Reset `pkgrel=1` (only bump `pkgrel` for packaging-only changes).
3. `updpkgsums` to refresh the sha256 hash.
4. `makepkg --printsrcinfo > .SRCINFO`.
5. Test build: `makepkg -si`.
6. `git commit -am "upgpkg: $pkgname $pkgver-1"` and push.
---
## Runtime layout (where things land)
| Path | Contents |
|---|---|
| `/usr/bin/solitaire-quest` | Symlink to the real binary. |
| `/usr/lib/solitaire-quest/bin/solitaire-quest` | The compiled binary. |
| `/usr/lib/solitaire-quest/assets/` | Card art, fonts, audio, backgrounds. |
| `/usr/share/applications/solitaire-quest.desktop` | App-menu entry. |
| `/usr/share/icons/hicolor/256x256/apps/solitaire-quest.png` | Icon (when supplied). |
| `/usr/share/licenses/solitaire-quest/LICENSE` | MIT license text. |
| `/usr/share/licenses/solitaire-quest/CREDITS.md` | Full attribution table. |
| `/usr/share/doc/solitaire-quest/README.md` | Upstream README. |
The unusual `/usr/lib/solitaire-quest/bin/` placement exists so Bevy's
`current_exe()` resolves `../assets` to the bundled assets directory
without a wrapper script. The `/usr/bin` symlink keeps the binary in
`PATH` while preserving that resolution.
---
## License
The PKGBUILD and supporting files in this repo are MIT-licensed (matching
upstream). The packaged binary itself is MIT + LGPL-3.0 (xCards art) +
OFL-1.1 (FiraMono); see `/usr/share/licenses/solitaire-quest/CREDITS.md`
on an installed system for the full table.