Files
guru/media-sound/goxlr-utility/goxlr-utility-1.2.3.ebuild
2025-10-13 17:20:13 +02:00

755 lines
15 KiB
Bash

# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
ab_glyph@0.2.32
ab_glyph_rasterizer@0.1.10
actix-codec@0.5.2
actix-cors@0.7.1
actix-http@3.11.2
actix-macros@0.2.4
actix-multipart-derive@0.7.0
actix-multipart@0.7.2
actix-router@0.5.3
actix-rt@2.11.0
actix-server@2.6.0
actix-service@2.0.3
actix-utils@3.0.1
actix-web-codegen@4.3.0
actix-web@4.11.0
actix-ws@0.3.0
addr2line@0.25.1
adler2@2.0.1
ahash@0.7.8
aho-corasick@1.1.3
aligned-vec@0.6.4
alloc-no-stdlib@2.0.4
alloc-stdlib@0.2.2
alsa-sys@0.3.1
alsa@0.9.1
android_system_properties@0.1.5
ansi_term@0.12.1
anstream@0.6.21
anstyle-parse@0.2.7
anstyle-query@1.1.4
anstyle-wincon@3.0.10
anstyle@1.0.13
anyhow@1.0.100
approx@0.5.1
arbitrary@1.4.2
arg_enum_proc_macro@0.3.4
arrayvec@0.7.6
async-broadcast@0.7.2
async-channel@2.5.0
async-executor@1.13.3
async-io@2.6.0
async-lock@3.4.1
async-process@2.5.0
async-recursion@1.1.1
async-signal@0.2.13
async-task@4.7.1
async-trait@0.1.89
atomic-waker@1.1.2
atty@0.2.14
autocfg@1.5.0
av1-grain@0.2.4
avif-serialize@0.8.6
backtrace@0.3.76
base64@0.22.1
bincode@1.3.3
bindgen@0.58.1
bindgen@0.72.1
bit-set@0.8.0
bit-vec@0.8.0
bit_field@0.10.3
bitflags@1.3.2
bitflags@2.9.4
bitstream-io@2.6.0
block-buffer@0.10.4
block2@0.6.2
block@0.1.6
blocking@1.6.2
brotli-decompressor@5.0.0
brotli@8.0.2
bstr@1.12.0
built@0.7.7
bumpalo@3.19.0
bytemuck@1.24.0
byteorder-lite@0.1.0
byteorder@1.5.0
bytes@1.10.1
bytestring@1.5.0
cc@1.2.41
cesu8@1.1.0
cexpr@0.4.0
cexpr@0.6.0
cfg-expr@0.15.8
cfg-if@1.0.3
cfg_aliases@0.2.1
chrono@0.4.42
clang-sys@1.8.1
clap@2.34.0
clap@4.5.48
clap_builder@4.5.48
clap_complete@4.5.58
clap_derive@4.5.47
clap_lex@0.7.5
cocoa-foundation@0.1.2
color_quant@1.1.0
colorchoice@1.0.4
combine@4.6.7
concat-string@1.0.1
concurrent-queue@2.5.0
const-random-macro@0.1.16
const-random@0.1.18
convert_case@0.4.0
core-foundation-sys@0.8.7
core-foundation@0.10.1
core-foundation@0.9.4
core-graphics-types@0.1.3
coreaudio-rs@0.13.0
coreaudio-sys@0.2.17
cpal@0.16.0
cpufeatures@0.2.17
crc32fast@1.5.0
crossbeam-deque@0.8.6
crossbeam-epoch@0.9.18
crossbeam-utils@0.8.21
crunchy@0.2.4
crypto-common@0.1.6
darling@0.20.11
darling@0.21.3
darling_core@0.20.11
darling_core@0.21.3
darling_macro@0.20.11
darling_macro@0.21.3
dasp_frame@0.11.0
dasp_sample@0.11.0
deranged@0.5.4
derivative@2.2.0
derive_arbitrary@1.4.2
derive_more-impl@2.0.1
derive_more@0.99.20
derive_more@2.0.1
digest@0.10.7
directories@6.0.0
dirs-sys@0.5.0
dispatch2@0.3.0
displaydoc@0.2.5
dlv-list@0.5.2
doctest-file@1.0.0
dunce@1.0.5
dyn-clonable-impl@0.9.2
dyn-clonable@0.9.2
dyn-clone@1.0.20
ebur128@0.1.10
educe@0.5.11
either@1.15.0
encoding_rs@0.8.35
endi@1.1.0
enum-map-derive@0.17.0
enum-map@2.7.3
enum-ordinalize-derive@4.3.1
enum-ordinalize@4.3.0
enumflags2@0.7.12
enumflags2_derive@0.7.12
enumset@1.1.10
enumset_derive@0.14.0
env_home@0.1.0
env_logger@0.8.4
equator-macro@0.4.2
equator@0.4.2
equivalent@1.0.2
errno@0.3.14
event-listener-strategy@0.5.4
event-listener@5.4.1
exr@1.73.0
extended@0.1.0
fancy-regex@0.16.2
fastrand@2.3.0
fax@0.2.6
fax_derive@0.2.0
fdeflate@0.3.7
file-rotate@0.8.0
find-msvc-tools@0.1.4
find-winsdk@0.2.0
flate2@1.1.4
fnv@1.0.7
foldhash@0.1.5
form_urlencoded@1.2.2
fsevent-sys@4.1.0
futures-channel@0.3.31
futures-core@0.3.31
futures-executor@0.3.31
futures-io@0.3.31
futures-lite@2.6.1
futures-macro@0.3.31
futures-sink@0.3.31
futures-task@0.3.31
futures-util@0.3.31
futures@0.3.31
generic-array@0.14.7
getrandom@0.2.16
getrandom@0.3.3
gif@0.13.3
gimli@0.32.3
glob@0.3.3
griddle@0.5.2
half@2.7.0
hashbrown@0.11.2
hashbrown@0.14.5
hashbrown@0.16.0
heck@0.5.0
hermit-abi@0.1.19
hermit-abi@0.5.2
hex@0.4.3
hound@3.5.1
http-body-util@0.1.3
http-body@1.0.1
http@0.2.12
http@1.3.1
httparse@1.10.1
httpdate@1.0.3
humantime@2.3.0
hyper-rustls@0.27.7
hyper-util@0.1.17
hyper@1.7.0
iana-time-zone-haiku@0.1.2
iana-time-zone@0.1.64
icu_collections@2.0.0
icu_locale_core@2.0.0
icu_normalizer@2.0.0
icu_normalizer_data@2.0.0
icu_properties@2.0.1
icu_properties_data@2.0.1
icu_provider@2.0.0
ident_case@1.0.1
idna@1.1.0
idna_adapter@1.2.1
image-webp@0.2.4
image@0.25.8
imageproc@0.25.0
imgref@1.12.0
impl-more@0.1.9
include_dir@0.7.4
include_dir_macros@0.7.4
indexmap@2.11.4
inotify-sys@0.1.5
inotify@0.11.0
interpolate_name@0.2.4
interprocess@2.2.3
io-kit-sys@0.4.1
io-uring@0.7.10
ipnet@2.11.0
iri-string@0.7.8
is_terminal_polyfill@1.70.1
itertools@0.12.1
itertools@0.13.0
itoa@1.0.15
jni-sys@0.3.0
jni@0.21.1
jobserver@0.1.34
js-sys@0.3.81
json-patch@4.1.0
jsonpath-rust@1.0.4
jsonptr@0.7.1
kqueue-sys@1.0.4
kqueue@1.1.1
ksni@0.3.1
language-tags@0.3.2
lazy_static@1.5.0
lazycell@1.3.0
lebe@0.5.3
libc@0.2.177
libfuzzer-sys@0.4.10
libloading@0.8.9
libm@0.2.15
libpulse-binding@2.30.1
libpulse-simple-binding@2.29.0
libpulse-simple-sys@1.22.0
libpulse-sys@1.23.0
libredox@0.1.10
libusb1-sys@0.7.0
libz-rs-sys@0.5.2
linux-raw-sys@0.11.0
litemap@0.8.0
local-channel@0.1.5
local-waker@0.1.4
lock_api@0.4.14
log-panics@2.1.0
log@0.4.28
loop9@0.1.5
lru-slab@0.1.2
mach2@0.4.3
malloc_buf@0.0.6
matrixmultiply@0.3.10
maybe-rayon@0.1.1
memchr@2.7.6
memoffset@0.9.1
mime@0.3.17
mime_guess@2.0.5
minimal-lexical@0.2.1
miniz_oxide@0.8.9
mio@1.0.4
moxcms@0.7.6
mslnk@0.1.8
nalgebra@0.32.6
ndk-context@0.1.1
ndk-sys@0.6.0+11769913
ndk@0.9.0
new_debug_unreachable@1.0.6
nix@0.30.1
nom@5.1.3
nom@7.1.3
noop_proc_macro@0.3.0
normpath@1.5.0
notify-types@2.0.0
notify@8.2.0
ntapi@0.4.1
num-bigint@0.4.6
num-complex@0.4.6
num-conv@0.1.0
num-derive@0.4.2
num-integer@0.1.46
num-iter@0.1.45
num-rational@0.4.2
num-traits@0.2.19
num@0.4.3
num_enum@0.7.4
num_enum_derive@0.7.4
num_threads@0.1.7
objc2-app-kit@0.3.2
objc2-audio-toolbox@0.3.2
objc2-cloud-kit@0.3.2
objc2-core-audio-types@0.3.2
objc2-core-audio@0.3.2
objc2-core-data@0.3.2
objc2-core-foundation@0.3.2
objc2-core-graphics@0.3.2
objc2-core-image@0.3.2
objc2-core-text@0.3.2
objc2-core-video@0.3.2
objc2-encode@4.1.0
objc2-foundation@0.3.2
objc2-io-kit@0.3.2
objc2-io-surface@0.3.2
objc2-quartz-core@0.3.2
objc2@0.6.3
objc@0.2.7
objc_exception@0.1.2
object@0.37.3
once_cell@1.21.3
once_cell_polyfill@1.70.1
opener@0.8.3
option-ext@0.2.0
ordered-multimap@0.7.3
ordered-stream@0.2.0
owned_ttf_parser@0.25.1
oxilangtag@0.1.5
parking@2.2.1
parking_lot@0.12.5
parking_lot_core@0.9.12
parse-size@1.1.0
paste@1.0.15
peeking_take_while@0.1.2
percent-encoding@2.3.2
pest@2.8.3
pest_derive@2.8.3
pest_generator@2.8.3
pest_meta@2.8.3
pin-project-internal@1.1.10
pin-project-lite@0.2.16
pin-project@1.1.10
pin-utils@0.1.0
piper@0.2.4
pkg-config@0.3.32
png@0.18.0
polling@3.11.0
potential_utf@0.1.3
powerfmt@0.2.0
ppv-lite86@0.2.21
prettyplease@0.2.37
primal-check@0.3.4
proc-macro-crate@3.4.0
proc-macro2@1.0.101
profiling-procmacros@1.0.17
profiling@1.0.17
pxfm@0.1.25
qoi@0.4.1
quick-error@2.0.1
quick-xml@0.38.3
quinn-proto@0.11.13
quinn-udp@0.5.14
quinn@0.11.9
quote@1.0.41
r-efi@5.3.0
rand@0.8.5
rand@0.9.2
rand_chacha@0.3.1
rand_chacha@0.9.0
rand_core@0.6.4
rand_core@0.9.3
rand_distr@0.4.3
rav1e@0.7.1
ravif@0.11.20
rawpointer@0.2.1
rayon-core@1.13.0
rayon@1.11.0
rb@0.4.1
realfft@3.5.0
recvmsg@1.0.0
redox_syscall@0.5.18
redox_users@0.5.2
regex-automata@0.4.12
regex-lite@0.1.8
regex-syntax@0.8.7
regex@1.12.1
reqwest@0.12.23
rgb@0.8.52
ring@0.17.14
ritelinked@0.3.2
rubato@0.16.2
rusb@0.9.4
rust-ini@0.21.3
rustc-demangle@0.1.26
rustc-hash@1.1.0
rustc-hash@2.1.1
rustc_version@0.4.1
rustfft@6.4.1
rustix@1.1.2
rustls-pki-types@1.12.0
rustls-webpki@0.103.7
rustls@0.23.32
rustversion@1.0.22
ryu@1.0.20
safe_arch@0.7.4
same-file@1.0.6
scopeguard@1.2.0
semver@1.0.27
serde@1.0.228
serde_core@1.0.228
serde_derive@1.0.228
serde_json@1.0.145
serde_plain@1.0.2
serde_repr@0.1.20
serde_spanned@0.6.9
serde_urlencoded@0.7.1
sha1@0.10.6
sha2@0.10.9
shell-words@1.1.0
shlex@1.3.0
signal-hook-registry@1.4.6
simba@0.8.1
simd-adler32@0.3.7
simd_helpers@0.1.0
simplelog@0.12.2
slab@0.4.11
smallvec@1.15.1
socket2@0.5.10
socket2@0.6.0
speech-dispatcher-sys@0.7.0
speech-dispatcher@0.16.0
stable_deref_trait@1.2.1
static_assertions@1.1.0
strength_reduce@0.2.4
strsim@0.11.1
strsim@0.8.0
strum@0.27.2
strum_macros@0.27.2
subtle@2.6.1
symphonia-bundle-flac@0.5.4
symphonia-bundle-mp3@0.5.4
symphonia-codec-adpcm@0.5.4
symphonia-codec-pcm@0.5.4
symphonia-codec-vorbis@0.5.4
symphonia-core@0.5.4
symphonia-format-mkv@0.5.4
symphonia-format-ogg@0.5.4
symphonia-format-riff@0.5.4
symphonia-metadata@0.5.4
symphonia-utils-xiph@0.5.4
symphonia@0.5.4
syn@1.0.109
syn@2.0.106
sync_wrapper@1.0.2
synstructure@0.13.2
sys-locale@0.3.2
sysinfo@0.37.2
system-deps@6.2.2
target-lexicon@0.12.16
tempfile@3.23.0
termcolor@1.4.1
textwrap@0.11.0
thiserror-impl@1.0.69
thiserror-impl@2.0.17
thiserror@1.0.69
thiserror@2.0.17
tiff@0.10.3
time-core@0.1.6
time-macros@0.2.24
time@0.3.44
tiny-keccak@2.0.2
tinystr@0.8.1
tinyvec@1.10.0
tinyvec_macros@0.1.1
tokio-macros@2.5.0
tokio-rustls@0.26.4
tokio-serde@0.9.0
tokio-util@0.7.16
tokio@1.47.1
tolk-sys@0.2.2
tolk@0.5.0
toml@0.8.23
toml_datetime@0.6.11
toml_datetime@0.7.3
toml_edit@0.22.27
toml_edit@0.23.7
toml_parser@1.0.4
tower-http@0.6.6
tower-layer@0.3.3
tower-service@0.3.3
tower@0.5.2
tracing-attributes@0.1.30
tracing-core@0.1.34
tracing@0.1.41
transpose@0.2.3
try-lock@0.2.5
ttf-parser@0.25.1
tts@0.26.3
typenum@1.19.0
ucd-trie@0.1.7
uds_windows@1.1.0
unicase@2.8.1
unicode-ident@1.0.19
unicode-width@0.1.14
unicode-xid@0.2.6
untrusted@0.9.0
url@2.5.7
utf8_iter@1.0.4
utf8parse@0.2.2
v_frame@0.3.9
vcpkg@0.2.15
vec_map@0.8.2
version-compare@0.2.0
version_check@0.9.5
walkdir@2.5.0
want@0.3.1
wasi@0.11.1+wasi-snapshot-preview1
wasi@0.14.7+wasi-0.2.4
wasip2@1.0.1+wasi-0.2.4
wasm-bindgen-backend@0.2.104
wasm-bindgen-futures@0.4.54
wasm-bindgen-macro-support@0.2.104
wasm-bindgen-macro@0.2.104
wasm-bindgen-shared@0.2.104
wasm-bindgen@0.2.104
wasm-streams@0.4.2
web-sys@0.3.81
web-time@1.1.0
webpki-roots@1.0.3
weezl@0.1.10
which@3.1.1
which@8.0.0
wide@0.7.33
widestring@0.4.3
widestring@1.2.1
winapi-i686-pc-windows-gnu@0.4.0
winapi-util@0.1.11
winapi-x86_64-pc-windows-gnu@0.4.0
winapi@0.3.9
windows-args@0.2.0
windows-collections@0.2.0
windows-collections@0.3.2
windows-core@0.54.0
windows-core@0.58.0
windows-core@0.61.2
windows-core@0.62.2
windows-future@0.2.1
windows-future@0.3.2
windows-implement@0.58.0
windows-implement@0.60.2
windows-interface@0.58.0
windows-interface@0.59.3
windows-link@0.1.3
windows-link@0.2.1
windows-numerics@0.2.0
windows-numerics@0.3.1
windows-result@0.1.2
windows-result@0.2.0
windows-result@0.3.4
windows-result@0.4.1
windows-strings@0.1.0
windows-strings@0.4.2
windows-strings@0.5.1
windows-sys@0.45.0
windows-sys@0.52.0
windows-sys@0.59.0
windows-sys@0.60.2
windows-sys@0.61.2
windows-targets@0.42.2
windows-targets@0.52.6
windows-targets@0.53.5
windows-threading@0.1.0
windows-threading@0.2.1
windows@0.54.0
windows@0.58.0
windows@0.61.3
windows@0.62.2
windows_aarch64_gnullvm@0.42.2
windows_aarch64_gnullvm@0.52.6
windows_aarch64_gnullvm@0.53.1
windows_aarch64_msvc@0.42.2
windows_aarch64_msvc@0.52.6
windows_aarch64_msvc@0.53.1
windows_i686_gnu@0.42.2
windows_i686_gnu@0.52.6
windows_i686_gnu@0.53.1
windows_i686_gnullvm@0.52.6
windows_i686_gnullvm@0.53.1
windows_i686_msvc@0.42.2
windows_i686_msvc@0.52.6
windows_i686_msvc@0.53.1
windows_x86_64_gnu@0.42.2
windows_x86_64_gnu@0.52.6
windows_x86_64_gnu@0.53.1
windows_x86_64_gnullvm@0.42.2
windows_x86_64_gnullvm@0.52.6
windows_x86_64_gnullvm@0.53.1
windows_x86_64_msvc@0.42.2
windows_x86_64_msvc@0.52.6
windows_x86_64_msvc@0.53.1
windres@0.2.2
winnow@0.7.13
winreg@0.5.1
winreg@0.55.0
winrt-toast-reborn@0.3.8
winsafe@0.0.19
wit-bindgen@0.46.0
writeable@0.6.1
wtf8@0.0.3
xml-rs@0.8.27
xmltree@0.11.0
yoke-derive@0.8.0
yoke@0.8.0
zbus@5.11.0
zbus_macros@5.11.0
zbus_names@4.2.0
zerocopy-derive@0.8.27
zerocopy@0.8.27
zerofrom-derive@0.1.6
zerofrom@0.1.6
zeroize@1.8.2
zerotrie@0.2.2
zerovec-derive@0.11.1
zerovec@0.11.4
zip@6.0.0
zlib-rs@0.5.2
zopfli@0.8.2
zune-core@0.4.12
zune-inflate@0.2.54
zune-jpeg@0.4.21
zvariant@5.7.0
zvariant_derive@5.7.0
zvariant_utils@3.2.1
"
declare -A GIT_CRATES=(
[xpc-connection-sys]='https://github.com/dfrankland/xpc-connection-rs;cd4fb3d05edb4292ccb9566ae27cdeb874222d2a;xpc-connection-rs-%commit%/xpc-connection-sys'
)
DESCRIPTION="A utility for monitoring and controlling a TC-Helicon GoXLR or GoXLR Mini"
HOMEPAGE="https://github.com/GoXLR-on-Linux/goxlr-utility"
inherit cargo udev shell-completion desktop xdg
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/GoXLR-on-Linux/${PN}.git"
inherit git-r3
else
SRC_URI="
https://github.com/GoXLR-on-Linux/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
${CARGO_CRATE_URIS}
"
KEYWORDS="~amd64"
fi
LICENSE="MIT Music-Tribe"
LICENSE+="
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
CDLA-Permissive-2.0 ISC MIT MPL-2.0 UoI-NCSA Unicode-3.0 Unlicense
ZLIB
"
SLOT="0"
IUSE="tts"
RDEPEND="
media-libs/libpulse
dev-util/pkgconf
sys-apps/dbus
tts? (
app-accessibility/speech-dispatcher
llvm-core/clang
)
"
src_unpack() {
if [[ "${PV}" == *9999* ]]; then
git-r3_src_unpack
cargo_live_src_unpack
else
cargo_src_unpack
fi
}
src_configure() {
local myfeatures=(
$(usev tts)
)
cargo_src_configure --no-default-features
}
src_install() {
dobin "${WORKDIR}"/${P}/target/release/goxlr-daemon
dobin "${WORKDIR}"/${P}/target/release/goxlr-client
dobin "${WORKDIR}"/${P}/target/release/goxlr-defaults
dobin "${WORKDIR}"/${P}/target/release/goxlr-launcher
udev_dorules 50-goxlr.rules
doicon -s 48 "${WORKDIR}"/${P}/daemon/resources/goxlr-utility.png
doicon -s scalable "${WORKDIR}"/${P}/daemon/resources/goxlr-utility.svg
newicon "${WORKDIR}"/${P}/daemon/resources/goxlr-utility-large.png goxlr-utility.png
domenu "${WORKDIR}"/${P}/daemon/resources/goxlr-utility.desktop
# Grab the Path where the AutoComplete scripts are..
AUTOCOMPLETE=$("${WORKDIR}"/${P}/ci/cargo-out-dir target/release/ client-stamp)
dobashcomp $AUTOCOMPLETE/goxlr-client.bash
dofishcomp $AUTOCOMPLETE/goxlr-client.fish
dozshcomp $AUTOCOMPLETE/_goxlr-client
dodoc README.md
}
pkg_postinst() {
udev_reload
xdg_icon_cache_update
elog ""
elog "If you use systemd, make sure Pulseaudio is running for the GoXLR utility to work."
elog ""
elog "It's recommended to start pulseaudio via its systemd user units:"
elog ""
elog " systemctl --user enable pulseaudio.service pulseaudio.socket"
elog ""
elog "Root user can change system default configuration for all users:"
elog ""
elog " systemctl --global enable pulseaudio.service pulseaudio.socket"
elog ""
}
pkg_postrm() {
udev_reload
xdg_icon_cache_update
}