# 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.