Files
2026-05-01 04:34:04 +00:00

98 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.