800dfb50ce
- pkg/solitaire-quest/PKGBUILD: builds solitaire_app binary, depends on alsa-lib, libxkbcommon, systemd-libs (Bevy Linux requirements); check() runs only non-Bevy crates (solitaire_core, solitaire_sync) since Bevy integration tests require a GPU/display unavailable in chroot - pkg/solitaire-quest-server/PKGBUILD: builds solitaire_server binary, installs systemd service unit and hardened environment file template - pkg/solitaire-quest-server/solitaire-quest-server.service: systemd unit with ProtectSystem=strict, NoNewPrivileges, dedicated service user - pkg/solitaire-quest-server/server.env: documented env template installed to /etc/solitaire-quest-server/server.env (mode 0640, listed in backup=) - LICENSE: add MIT license - Cargo.toml: add license = "MIT" to [workspace.package] - All member crates: add license.workspace = true Both PKGBUILDs follow the Arch Rust package guidelines: prepare() uses --locked + cargo fetch build() uses --frozen --release -p <crate> RUSTUP_TOOLCHAIN=stable and CARGO_TARGET_DIR=target set in each stage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
58 lines
1.5 KiB
TOML
58 lines
1.5 KiB
TOML
[workspace]
|
|
members = [
|
|
"solitaire_core",
|
|
"solitaire_sync",
|
|
"solitaire_data",
|
|
"solitaire_engine",
|
|
"solitaire_server",
|
|
"solitaire_gpgs",
|
|
"solitaire_app",
|
|
"solitaire_assetgen",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
version = "0.1.0"
|
|
license = "MIT"
|
|
|
|
[workspace.dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
thiserror = "2"
|
|
rand = "0.8"
|
|
async-trait = "0.1"
|
|
tokio = { version = "1", features = ["full"] }
|
|
dirs = "6"
|
|
keyring = "2"
|
|
reqwest = { version = "0.13", features = ["json", "rustls", "rustls-native-certs"], default-features = false }
|
|
|
|
solitaire_core = { path = "solitaire_core" }
|
|
solitaire_sync = { path = "solitaire_sync" }
|
|
solitaire_data = { path = "solitaire_data" }
|
|
solitaire_engine = { path = "solitaire_engine" }
|
|
|
|
bevy = "0.18"
|
|
kira = "0.12"
|
|
|
|
axum = "0.8"
|
|
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "macros", "migrate"] }
|
|
jsonwebtoken = { version = "10", default-features = false, features = ["rust_crypto"] }
|
|
bcrypt = "0.19"
|
|
tower_governor = "0.8"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
dotenvy = "0.15"
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|
|
|
|
[profile.dev.package."*"]
|
|
opt-level = 3
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|