98 lines
3.1 KiB
Markdown
98 lines
3.1 KiB
Markdown
# 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.
|