mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
939ed3d412
A character was lost when the base64-encoded minisign public key was transcribed into tauri.conf.json, producing a 41-byte decoded key instead of the required 42 bytes. Every release built against that key (v1.34.15 through v1.34.21) rejects any update manifest signature with "Invalid encoding in minisign data". Replaced with the correct pubkey read directly from ~/.tauri/psysonic-updater.key.pub. v1.34.19 installed manually for testing cannot receive auto-updates because the broken pubkey is baked into its binary; a fresh v1.34.22 install is required as the base for the updater test. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
89 lines
3.1 KiB
TOML
89 lines
3.1 KiB
TOML
[package]
|
||
name = "psysonic"
|
||
version = "1.34.22"
|
||
description = "Psysonic Desktop Music Player"
|
||
authors = []
|
||
license = ""
|
||
repository = ""
|
||
default-run = "psysonic"
|
||
edition = "2021"
|
||
rust-version = "1.89"
|
||
|
||
[lib]
|
||
name = "psysonic_lib"
|
||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||
|
||
[[bin]]
|
||
name = "psysonic"
|
||
path = "src/main.rs"
|
||
|
||
[build-dependencies]
|
||
tauri-build = { version = "2", features = [] }
|
||
|
||
[dependencies]
|
||
tauri = { version = "2", features = ["tray-icon", "image-png"] }
|
||
tauri-plugin-single-instance = "2"
|
||
tauri-plugin-shell = "2"
|
||
tauri-plugin-global-shortcut = "2"
|
||
tauri-plugin-store = "2"
|
||
tauri-plugin-dialog = "2"
|
||
tauri-plugin-fs = "2"
|
||
serde = { version = "1", features = ["derive"] }
|
||
serde_json = "1"
|
||
rodio = { version = "0.19", default-features = false, features = ["symphonia-all"] }
|
||
symphonia = { version = "0.5", default-features = false, features = ["flac", "mp3", "pcm", "aac", "alac", "isomp4", "vorbis", "ogg", "wav", "adpcm"] }
|
||
reqwest = { version = "0.12", default-features = false, features = ["stream", "json", "multipart", "rustls-tls", "rustls-tls-native-roots", "blocking"] }
|
||
futures-util = "0.3"
|
||
md5 = "0.7"
|
||
tokio = { version = "1", features = ["rt", "time", "sync"] }
|
||
biquad = "0.4"
|
||
ringbuf = "0.3"
|
||
tauri-plugin-window-state = "2.4.1"
|
||
tauri-plugin-process = "2"
|
||
tauri-plugin-updater = "2"
|
||
souvlaki = { version = "0.8", default-features = false, features = ["use_zbus"] }
|
||
discord-rich-presence = "0.2"
|
||
url = "2"
|
||
thread-priority = "1"
|
||
lofty = "0.22"
|
||
sysinfo = { version = "0.33", default-features = false, features = ["disk"] }
|
||
id3 = "1.16.4"
|
||
symphonia-adapter-libopus = "0.2.7"
|
||
|
||
[target.'cfg(unix)'.dependencies]
|
||
libc = "0.2"
|
||
|
||
[target.'cfg(target_os = "linux")'.dependencies]
|
||
zbus = { version = "5.9", default-features = false, features = ["blocking-api"] }
|
||
# Match wry/tauri’s WebKitGTK stack — used only to turn off kinetic wheel scrolling.
|
||
webkit2gtk = { version = "2.0", default-features = false, features = ["v2_40"] }
|
||
|
||
[target.'cfg(windows)'.dependencies]
|
||
windows = { version = "0.58", features = [
|
||
"Win32_Foundation",
|
||
"Win32_Graphics",
|
||
"Win32_Graphics_Gdi",
|
||
"Win32_System_Com",
|
||
"Win32_UI_Controls",
|
||
"Win32_UI_Shell",
|
||
"Win32_UI_WindowsAndMessaging",
|
||
] }
|
||
|
||
[patch.crates-io]
|
||
# Local patch for Symphonia's isomp4 demuxer:
|
||
# - Fixes descriptor.unwrap() panic on malformed esds atoms (older iTunes M4A)
|
||
# - Tolerates SL predefined=0x01 (null) used by some older iTunes-purchased files
|
||
# - Gracefully skips malformed trak atoms (e.g. MJPEG cover-art streams) instead
|
||
# of failing the entire probe
|
||
symphonia-format-isomp4 = { path = "patches/symphonia-format-isomp4" }
|
||
|
||
# Local patch for cpal's CoreAudio backend on macOS:
|
||
# - Forces IOType::DefaultOutput for all output streams so that macOS never
|
||
# triggers the TCC microphone-permission prompt. Upstream cpal uses
|
||
# IOType::HalOutput when the user pins a non-default device, which routes
|
||
# through AUHAL — that component is flagged as input-capable and triggers
|
||
# the mic consent dialog on first launch / after each update.
|
||
# - Tradeoff: output-device selection is a no-op on macOS (stream follows
|
||
# system default). Surfaced in the Settings UI.
|
||
cpal = { path = "patches/cpal-0.15.3" }
|