# Copyright 2017-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Auto-Generated by cargo-ebuild 0.3.1 EAPI=8 CRATES=" adler2-2.0.1 aes-0.8.4 aho-corasick-1.1.4 allocator-api2-0.2.21 alsa-0.10.0 alsa-0.9.1 alsa-sys-0.3.1 android_system_properties-0.1.5 anstream-0.6.21 anstyle-1.0.13 anstyle-parse-0.2.7 anstyle-query-1.1.4 anstyle-wincon-3.0.10 anyhow-1.0.100 arrayvec-0.7.6 async-broadcast-0.7.2 async-recursion-1.1.1 async-trait-0.1.89 atomic-waker-1.1.2 atomic_refcell-0.1.13 autocfg-1.5.0 base64-0.22.1 base64ct-1.8.0 bitflags-1.3.2 bitflags-2.10.0 block-buffer-0.10.4 bumpalo-3.19.0 bytemuck-1.24.0 byteorder-1.5.0 bytes-1.10.1 cc-1.2.45 cesu8-1.1.0 cfg-expr-0.20.4 cfg-if-1.0.4 cfg_aliases-0.2.1 chrono-0.4.42 cipher-0.4.4 colorchoice-1.0.4 combine-4.6.7 concurrent-queue-2.5.0 const-oid-0.9.6 core-foundation-0.10.1 core-foundation-0.9.4 core-foundation-sys-0.8.7 coreaudio-rs-0.13.0 cpal-0.16.0 cpufeatures-0.2.17 crc32fast-1.5.0 crossbeam-utils-0.8.21 crypto-common-0.1.6 ctr-0.9.2 darling-0.20.11 darling_core-0.20.11 darling_macro-0.20.11 dasp_sample-0.11.0 data-encoding-2.9.0 der-0.7.10 deranged-0.5.5 derive_builder-0.20.2 derive_builder_core-0.20.2 derive_builder_macro-0.20.2 digest-0.10.7 dispatch2-0.3.0 displaydoc-0.2.5 dns-sd-0.1.3 either-1.15.0 encoding_rs-0.8.35 endi-1.1.0 enumflags2-0.7.12 enumflags2_derive-0.7.12 env_filter-0.1.4 env_logger-0.11.8 equivalent-1.0.2 errno-0.3.14 event-listener-5.4.1 event-listener-strategy-0.5.4 fastrand-2.3.0 find-msvc-tools-0.1.4 flate2-1.1.5 fnv-1.0.7 foldhash-0.1.5 foreign-types-0.3.2 foreign-types-shared-0.1.1 form_urlencoded-1.2.2 futures-0.3.31 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-timer-3.0.3 futures-util-0.3.31 generic-array-0.14.9 getopts-0.2.24 getrandom-0.2.16 getrandom-0.3.4 gio-sys-0.21.2 glib-0.21.4 glib-macros-0.21.4 glib-sys-0.21.2 gobject-sys-0.21.2 governor-0.10.1 gstreamer-0.24.3 gstreamer-app-0.24.2 gstreamer-app-sys-0.24.0 gstreamer-audio-0.24.2 gstreamer-audio-sys-0.24.0 gstreamer-base-0.24.2 gstreamer-base-sys-0.24.2 gstreamer-sys-0.24.2 h2-0.4.12 hashbrown-0.15.5 hashbrown-0.16.0 headers-0.4.1 headers-core-0.3.0 heck-0.5.0 hex-0.4.3 hmac-0.12.1 home-0.5.11 hostname-0.4.1 http-1.3.1 http-body-1.0.1 http-body-util-0.1.3 httparse-1.10.1 httpdate-1.0.3 hyper-1.7.0 hyper-proxy2-0.1.0 hyper-rustls-0.26.0 hyper-rustls-0.27.7 hyper-tls-0.6.0 hyper-util-0.1.17 iana-time-zone-0.1.64 iana-time-zone-haiku-0.1.2 icu_collections-2.1.1 icu_locale_core-2.1.1 icu_normalizer-2.1.1 icu_normalizer_data-2.1.1 icu_properties-2.1.1 icu_properties_data-2.1.1 icu_provider-2.1.1 ident_case-1.0.1 idna-1.1.0 idna_adapter-1.2.1 if-addrs-0.14.0 indexmap-2.12.0 inout-0.1.4 ipnet-2.11.0 iri-string-0.7.9 is-docker-0.2.0 is-wsl-0.4.0 is_terminal_polyfill-1.70.2 itertools-0.14.0 itoa-1.0.15 jack-0.13.3 jack-sys-0.5.1 jiff-0.2.16 jiff-static-0.2.16 jni-0.21.1 jni-sys-0.3.0 js-sys-0.3.82 kstring-2.0.2 lazy_static-1.5.0 libc-0.2.177 libloading-0.7.4 libm-0.2.15 libmdns-0.10.1 libpulse-binding-2.30.1 libpulse-simple-binding-2.29.0 libpulse-simple-sys-1.22.0 libpulse-sys-1.23.0 linux-raw-sys-0.11.0 linux-raw-sys-0.4.15 litemap-0.8.1 lock_api-0.4.14 log-0.4.28 lru-slab-0.1.2 mach2-0.4.3 memchr-2.7.6 memoffset-0.9.1 mime-0.3.17 miniz_oxide-0.8.9 mio-1.1.0 muldiv-1.0.1 multimap-0.10.1 native-tls-0.2.14 ndk-0.9.0 ndk-context-0.1.1 ndk-sys-0.6.0+11769913 nix-0.30.1 nonzero_ext-0.3.0 ntapi-0.4.1 num-bigint-0.4.6 num-bigint-dig-0.8.5 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_enum-0.7.5 num_enum_derive-0.7.5 num_threads-0.1.7 oauth2-5.0.0 objc2-0.6.3 objc2-audio-toolbox-0.3.2 objc2-core-audio-0.3.2 objc2-core-audio-types-0.3.2 objc2-core-foundation-0.3.2 objc2-encode-4.1.0 objc2-foundation-0.3.2 objc2-io-kit-0.3.2 ogg-0.9.2 once_cell-1.21.3 once_cell_polyfill-1.70.2 open-5.3.2 openssl-0.10.75 openssl-macros-0.1.1 openssl-probe-0.1.6 openssl-sys-0.9.111 option-operations-0.6.0 ordered-stream-0.2.0 parking-2.2.1 parking_lot-0.12.5 parking_lot_core-0.9.12 pastey-0.1.1 pathdiff-0.2.3 pbkdf2-0.12.2 pem-rfc7468-0.7.0 percent-encoding-2.3.2 pin-project-lite-0.2.16 pin-utils-0.1.0 pkcs1-0.7.5 pkcs8-0.10.2 pkg-config-0.3.32 portable-atomic-1.11.1 portable-atomic-util-0.2.4 portaudio-rs-0.3.2 portaudio-sys-0.1.1 potential_utf-0.1.4 powerfmt-0.2.0 ppv-lite86-0.2.21 priority-queue-2.7.0 proc-macro-crate-3.4.0 proc-macro2-1.0.103 protobuf-3.7.2 protobuf-codegen-3.7.2 protobuf-json-mapping-3.7.2 protobuf-parse-3.7.2 protobuf-support-3.7.2 quick-xml-0.38.3 quinn-0.11.9 quinn-proto-0.11.13 quinn-udp-0.5.14 quote-1.0.42 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.5.1 redox_syscall-0.5.18 regex-1.12.2 regex-automata-0.4.13 regex-syntax-0.8.8 reqwest-0.12.24 ring-0.17.14 rodio-0.21.1 rsa-0.9.8 rustc-hash-2.1.1 rustix-0.38.44 rustix-1.1.2 rustls-0.22.4 rustls-0.23.35 rustls-native-certs-0.7.3 rustls-native-certs-0.8.2 rustls-pemfile-2.2.0 rustls-pki-types-1.13.0 rustls-webpki-0.102.8 rustls-webpki-0.103.8 rustversion-1.0.22 ryu-1.0.20 same-file-1.0.6 schannel-0.1.28 scopeguard-1.2.0 sdl2-0.38.0 sdl2-sys-0.38.0 security-framework-2.11.1 security-framework-3.5.1 security-framework-sys-2.15.0 serde-1.0.228 serde_core-1.0.228 serde_derive-1.0.228 serde_json-1.0.145 serde_path_to_error-0.1.20 serde_repr-0.1.20 serde_spanned-1.0.3 serde_urlencoded-0.7.1 sha1-0.10.6 sha2-0.10.9 shannon-0.2.0 shell-words-1.1.0 shlex-1.3.0 signal-hook-registry-1.4.6 signature-2.2.0 simd-adler32-0.3.7 slab-0.4.11 smallvec-1.15.1 socket2-0.6.1 spin-0.9.8 spinning_top-0.3.0 spki-0.7.3 stable_deref_trait-1.2.1 static_assertions-1.1.0 strsim-0.11.1 subtle-2.6.1 symphonia-0.5.5 symphonia-bundle-flac-0.5.5 symphonia-bundle-mp3-0.5.5 symphonia-codec-vorbis-0.5.5 symphonia-core-0.5.5 symphonia-format-ogg-0.5.5 symphonia-metadata-0.5.5 symphonia-utils-xiph-0.5.5 syn-2.0.109 sync_wrapper-1.0.2 synstructure-0.13.2 sysinfo-0.36.1 system-configuration-0.6.1 system-configuration-sys-0.6.0 system-deps-7.0.7 target-lexicon-0.13.3 tempfile-3.23.0 thiserror-1.0.69 thiserror-2.0.17 thiserror-impl-1.0.69 thiserror-impl-2.0.17 time-0.3.44 time-core-0.1.6 time-macros-0.2.24 tinystr-0.8.2 tinyvec-1.10.0 tinyvec_macros-0.1.1 tokio-1.48.0 tokio-macros-2.6.0 tokio-native-tls-0.3.1 tokio-rustls-0.25.0 tokio-rustls-0.26.4 tokio-stream-0.1.17 tokio-tungstenite-0.28.0 tokio-util-0.7.17 toml-0.9.8 toml_datetime-0.7.3 toml_edit-0.23.7 toml_parser-1.0.4 toml_writer-1.0.4 tower-0.5.2 tower-http-0.6.6 tower-layer-0.3.3 tower-service-0.3.3 tracing-0.1.41 tracing-attributes-0.1.30 tracing-core-0.1.34 try-lock-0.2.5 tungstenite-0.28.0 typenum-1.19.0 uds_windows-1.1.0 unicode-ident-1.0.22 unicode-width-0.2.2 untrusted-0.9.0 url-2.5.7 utf-8-0.7.6 utf8_iter-1.0.4 utf8parse-0.2.2 uuid-1.18.1 vcpkg-0.2.15 vergen-9.0.6 vergen-gitcl-1.0.8 vergen-lib-0.1.6 version-compare-0.1.1 version-compare-0.2.1 version_check-0.9.5 walkdir-2.5.0 want-0.3.1 wasi-0.11.1+wasi-snapshot-preview1 wasip2-1.0.1+wasi-0.2.4 wasm-bindgen-0.2.105 wasm-bindgen-futures-0.4.55 wasm-bindgen-macro-0.2.105 wasm-bindgen-macro-support-0.2.105 wasm-bindgen-shared-0.2.105 web-sys-0.3.82 web-time-1.1.0 webpki-0.22.4 webpki-roots-0.26.11 webpki-roots-1.0.4 which-4.4.2 winapi-0.3.9 winapi-i686-pc-windows-gnu-0.4.0 winapi-util-0.1.11 winapi-x86_64-pc-windows-gnu-0.4.0 windows-0.54.0 windows-0.61.3 windows-collections-0.2.0 windows-core-0.54.0 windows-core-0.61.2 windows-core-0.62.2 windows-future-0.2.1 windows-implement-0.60.2 windows-interface-0.59.3 windows-link-0.1.3 windows-link-0.2.1 windows-numerics-0.2.0 windows-registry-0.5.3 windows-result-0.1.2 windows-result-0.3.4 windows-result-0.4.1 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_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 winnow-0.7.13 wit-bindgen-0.46.0 writeable-0.6.2 yoke-0.8.1 yoke-derive-0.8.1 zbus-5.12.0 zbus_macros-5.12.0 zbus_names-4.2.0 zerocopy-0.8.27 zerocopy-derive-0.8.27 zerofrom-0.1.6 zerofrom-derive-0.1.6 zeroize-1.8.2 zerotrie-0.2.3 zerovec-0.11.5 zerovec-derive-0.11.2 zvariant-5.8.0 zvariant_derive-5.8.0 zvariant_utils-3.2.1 " inherit cargo systemd DESCRIPTION="An open source client library for Spotify, with support for Spotify Connect" # Double check the homepage as the cargo_metadata crate # does not provide this value so instead repository is used HOMEPAGE="https://github.com/librespot-org/librespot" if [[ ${PV} == 9999 ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/librespot-org/librespot.git" EGIT_BRANCH="dev" SRC_URI="${CARGO_CRATE_URIS}" else SRC_URI="https://github.com/librespot-org/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz ${CARGO_CRATE_URIS}" KEYWORDS="~amd64 ~arm64" fi # License set may be more restrictive as OR is not respected # use cargo-license for a more accurate license picture LICENSE="MIT" SLOT="0" IUSE="alsa pulseaudio portaudio jack sdl" RESTRICT="mirror" get_features() { local out=( ) if use alsa; then out+=( "alsa-backend" ) fi if use pulseaudio; then out+=( "pulseaudio-backend" ) fi if use portaudio; then out+=( "portaudio-backend" ) fi if use jack; then out+=( "jackaudio-backend" ) fi if use sdl; then out+=( "sdl-backend" ) fi printf "%s," "${out[@]}" | sed 's/,$//g' } DEPEND=" media-libs/alsa-lib pulseaudio? ( media-libs/libpulse ) portaudio? ( media-libs/portaudio ) jack? ( virtual/jack ) sdl? ( media-libs/libsdl2 ) " src_unpack() { if [[ ${PV} == 9999 ]] ; then git-r3_src_unpack cargo_live_src_unpack else cargo_src_unpack fi } src_compile() { debug-print-function "${FUNCNAME[*]}" "$@" local features features="$(get_features)" if [[ "${features}" ]]; then cargo_src_compile --features "${features}" else cargo_src_compile fi } src_install() { debug-print-function "${FUNCNAME[*]}" "$@" local features features="$(get_features)" if [[ "${features}" ]]; then cargo_src_install --features "${features}" else cargo_src_install fi systemd_dounit "${FILESDIR}"/"${PN}".service systemd_install_serviced "${FILESDIR}"/"${PN}".service.conf }