# Copyright 2023-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Auto-Generated by cargo-ebuild 0.5.4-r1 CRATES=" addr2line@0.19.0 adler@1.0.2 aes@0.6.0 aes@0.7.5 aes-ctr@0.6.0 aes-soft@0.6.4 aesni@0.10.0 aho-corasick@0.7.20 alsa@0.6.0 alsa-sys@0.3.1 android_system_properties@0.1.5 anyhow@1.0.69 async-broadcast@0.5.0 async-channel@1.8.0 async-executor@1.5.0 async-global-executor@2.3.1 async-io@1.12.0 async-lock@2.6.0 async-recursion@1.0.2 async-std@1.12.0 async-task@4.3.0 async-trait@0.1.64 atomic-waker@1.1.0 atty@0.2.14 autocfg@1.1.0 backtrace@0.3.67 base64@0.13.1 bindgen@0.61.0 bitflags@1.3.2 block@0.1.6 block-buffer@0.9.0 block-buffer@0.10.3 block-modes@0.8.1 block-padding@0.2.1 blocking@1.3.0 bumpalo@3.12.0 byteorder@1.4.3 bytes@1.4.0 cairo-rs@0.17.0 cairo-sys-rs@0.17.0 castaway@0.1.2 cc@1.0.79 cesu8@1.1.0 cexpr@0.6.0 cfg-expr@0.11.0 cfg-if@1.0.0 chrono@0.4.23 cipher@0.2.5 cipher@0.3.0 clang-sys@1.4.0 codespan-reporting@0.11.1 combine@4.6.6 concurrent-queue@2.1.0 core-foundation-sys@0.8.3 coreaudio-rs@0.10.0 coreaudio-sys@0.2.11 cpal@0.13.5 cpufeatures@0.2.5 crossbeam-utils@0.8.14 crypto-common@0.1.6 crypto-mac@0.11.1 ctor@0.1.26 ctr@0.6.0 curl@0.4.44 curl-sys@0.4.59+curl-7.86.0 cxx@1.0.90 cxx-build@1.0.90 cxxbridge-flags@1.0.90 cxxbridge-macro@1.0.90 darling@0.13.4 darling_core@0.13.4 darling_macro@0.13.4 derivative@2.2.0 digest@0.9.0 digest@0.10.6 dirs@4.0.0 dirs-sys@0.3.7 encoding_rs@0.8.32 enumflags2@0.7.5 enumflags2_derive@0.7.4 env_logger@0.9.3 event-listener@2.5.3 fastrand@1.8.0 field-offset@0.3.4 fixedbitset@0.4.2 fnv@1.0.7 form_urlencoded@1.1.0 futures@0.3.26 futures-channel@0.3.26 futures-core@0.3.26 futures-executor@0.3.26 futures-io@0.3.26 futures-lite@1.12.0 futures-macro@0.3.26 futures-sink@0.3.26 futures-task@0.3.26 futures-util@0.3.26 gdk-pixbuf@0.17.0 gdk-pixbuf-sys@0.17.0 gdk4@0.6.0 gdk4-sys@0.6.0 generic-array@0.14.6 getopts@0.2.21 getrandom@0.2.8 gettext-rs@0.7.0 gettext-sys@0.21.3 gimli@0.27.1 gio@0.17.0 gio-sys@0.17.0 glib@0.17.1 glib-macros@0.17.1 glib-sys@0.17.0 glob@0.3.1 gloo-timers@0.2.6 gobject-sys@0.17.0 graphene-rs@0.17.1 graphene-sys@0.17.0 gsk4@0.6.0 gsk4-sys@0.6.0 gtk4@0.6.1 gtk4-macros@0.6.0 gtk4-sys@0.6.0 hashbrown@0.12.3 headers@0.3.8 headers-core@0.2.0 heck@0.4.1 hermit-abi@0.1.19 hermit-abi@0.2.6 hex@0.4.3 hkdf@0.12.3 hmac@0.11.0 hmac@0.12.1 hostname@0.3.1 http@0.2.8 http-body@0.4.5 httparse@1.8.0 httpdate@1.0.2 humantime@2.1.0 hyper@0.14.24 hyper-proxy@0.9.1 iana-time-zone@0.1.53 iana-time-zone-haiku@0.1.1 ident_case@1.0.1 idna@0.3.0 if-addrs@0.7.0 indexmap@1.9.2 instant@0.1.12 isahc@1.7.2 itoa@1.0.5 jni@0.19.0 jni-sys@0.3.0 jobserver@0.1.25 js-sys@0.3.61 kv-log-macro@1.0.7 lazy_static@1.4.0 lazycell@1.3.0 lewton@0.10.2 libadwaita@0.3.0 libadwaita-sys@0.3.0 libc@0.2.139 libloading@0.7.4 libm@0.2.6 libmdns@0.7.4 libnghttp2-sys@0.1.7+1.45.0 libpulse-binding@2.27.1 libpulse-simple-binding@2.27.1 libpulse-simple-sys@1.20.1 libpulse-sys@1.20.1 librespot@0.4.2 librespot-audio@0.4.2 librespot-connect@0.4.2 librespot-core@0.4.2 librespot-discovery@0.4.2 librespot-metadata@0.4.2 librespot-playback@0.4.2 librespot-protocol@0.4.2 libz-sys@1.1.8 link-cplusplus@1.0.8 locale_config@0.3.0 lock_api@0.4.9 log@0.4.17 mach@0.3.2 malloc_buf@0.0.6 match_cfg@0.1.0 memchr@2.5.0 memoffset@0.6.5 mime@0.3.16 minimal-lexical@0.2.1 miniz_oxide@0.6.2 mio@0.8.5 multimap@0.8.3 ndk@0.6.0 ndk-context@0.1.1 ndk-glue@0.6.2 ndk-macro@0.3.0 ndk-sys@0.3.0 nix@0.23.2 nix@0.25.1 nom@7.1.3 nom8@0.2.0 num@0.4.0 num-bigint@0.4.3 num-complex@0.4.3 num-derive@0.3.3 num-integer@0.1.45 num-iter@0.1.43 num-rational@0.4.1 num-traits@0.2.15 num_cpus@1.15.0 num_enum@0.5.9 num_enum_derive@0.5.9 objc@0.2.7 objc-foundation@0.1.1 objc_id@0.1.1 object@0.30.3 oboe@0.4.6 oboe-sys@0.4.5 ogg@0.8.0 once_cell@1.17.0 opaque-debug@0.3.0 openssl-probe@0.1.5 openssl-sys@0.9.80 ordered-stream@0.2.0 pango@0.17.0 pango-sys@0.17.0 parking@2.0.0 parking_lot@0.11.2 parking_lot@0.12.1 parking_lot_core@0.8.6 parking_lot_core@0.9.7 pbkdf2@0.8.0 peeking_take_while@0.1.2 percent-encoding@2.2.0 pest@2.5.5 petgraph@0.6.3 pin-project@1.0.12 pin-project-internal@1.0.12 pin-project-lite@0.2.9 pin-utils@0.1.0 pkg-config@0.3.26 polling@2.5.2 ppv-lite86@0.2.17 priority-queue@1.3.1 proc-macro-crate@1.3.0 proc-macro-error@1.0.4 proc-macro-error-attr@1.0.4 proc-macro2@1.0.51 protobuf@2.28.0 protobuf-codegen@2.28.0 protobuf-codegen-pure@2.28.0 quote@1.0.23 rand@0.8.5 rand_chacha@0.3.1 rand_core@0.6.4 rand_distr@0.4.3 redox_syscall@0.2.16 redox_users@0.4.3 ref_filter_map@1.0.1 regex@1.7.1 regex-syntax@0.6.28 remove_dir_all@0.5.3 rodio@0.15.0 rpassword@6.0.1 rustc-demangle@0.1.21 rustc-hash@1.1.0 rustc_version@0.3.3 rustc_version@0.4.0 ryu@1.0.12 same-file@1.0.6 schannel@0.1.21 scopeguard@1.1.0 scratch@1.0.3 secret-service@3.0.1 semver@0.11.0 semver@1.0.16 semver-parser@0.10.2 serde@1.0.152 serde_derive@1.0.152 serde_json@1.0.93 serde_repr@0.1.10 sha-1@0.9.8 sha1@0.10.5 sha2@0.10.6 shannon@0.2.0 shell-words@1.1.0 shlex@1.1.0 signal-hook-registry@1.4.1 slab@0.4.7 sluice@0.5.5 smallvec@1.10.0 socket2@0.4.7 static_assertions@1.1.0 stdweb@0.1.3 strsim@0.10.0 subtle@2.4.1 syn@1.0.107 system-deps@6.0.3 temp-dir@0.1.11 tempfile@3.3.0 termcolor@1.2.0 thiserror@1.0.38 thiserror-impl@1.0.38 thread-id@4.0.0 time@0.1.45 tinyvec@1.6.0 tinyvec_macros@0.1.1 tokio@1.25.0 tokio-macros@1.8.2 tokio-stream@0.1.11 tokio-util@0.7.7 toml@0.5.11 toml_datetime@0.5.1 toml_edit@0.18.1 tower-service@0.3.2 tracing@0.1.37 tracing-attributes@0.1.23 tracing-core@0.1.30 tracing-futures@0.2.5 try-lock@0.2.4 typenum@1.16.0 ucd-trie@0.1.5 uds_windows@1.0.2 unicode-bidi@0.3.10 unicode-ident@1.0.6 unicode-normalization@0.1.22 unicode-width@0.1.10 url@2.3.1 uuid@1.3.0 value-bag@1.0.0-alpha.9 vcpkg@0.2.15 vergen@3.2.0 version-compare@0.1.1 version_check@0.9.4 waker-fn@1.1.0 walkdir@2.3.2 want@0.3.0 wasi@0.10.0+wasi-snapshot-preview1 wasi@0.11.0+wasi-snapshot-preview1 wasm-bindgen@0.2.84 wasm-bindgen-backend@0.2.84 wasm-bindgen-futures@0.4.34 wasm-bindgen-macro@0.2.84 wasm-bindgen-macro-support@0.2.84 wasm-bindgen-shared@0.2.84 web-sys@0.3.61 wepoll-ffi@0.1.2 winapi@0.3.9 winapi-i686-pc-windows-gnu@0.4.0 winapi-util@0.1.5 winapi-x86_64-pc-windows-gnu@0.4.0 windows-sys@0.42.0 windows-sys@0.45.0 windows-targets@0.42.1 windows_aarch64_gnullvm@0.42.1 windows_aarch64_msvc@0.42.1 windows_i686_gnu@0.42.1 windows_i686_msvc@0.42.1 windows_x86_64_gnu@0.42.1 windows_x86_64_gnullvm@0.42.1 windows_x86_64_msvc@0.42.1 zbus@3.10.0 zbus_macros@3.10.0 zbus_names@2.5.0 zerocopy@0.6.1 zerocopy-derive@0.3.2 zvariant@3.11.0 zvariant_derive@3.11.0 " inherit cargo meson xdg gnome2-utils DESCRIPTION="GTK4 Spotify (Premium) client" HOMEPAGE="https://github.com/xou816/spot" SRC_URI="https://github.com/xou816/spot/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS}" LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Boost-1.0 ISC LGPL-3 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB" SLOT="0" KEYWORDS="~amd64" IUSE="test" RESTRICT="test" DEPEND=" >=dev-libs/glib-2.76.3 >=gui-libs/gtk-4.10.4 >=gui-libs/libadwaita-1.3.3 >=media-libs/libpulse-15.0[glib] >=dev-libs/openssl-3.0.10 >=media-libs/alsa-lib-1.2.9 " RDEPEND="${DEPEND}" BDEPEND=" app-alternatives/ninja >=dev-build/meson-1.1.1 >=dev-libs/appstream-glib-0.8.2 >=virtual/rust-1.69.0 test? ( || ( dev-lang/rust[clippy] dev-lang/rust-bin[clippy] ) ) " # rust does not use *FLAGS from make.conf, silence portage warning # update with proper path to binaries this crate installs, omit leading / QA_FLAGS_IGNORED="usr/bin/${PN}" src_unpack() { cargo_src_unpack } src_configure() { # handled by xdg & gnome2-utils eclass sed -i \ -e '/^gnome.post_install(/,/)/d' \ src/meson.build \ || die # appdata dir is deprecated sed -i \ 's/appdata/metainfo/g' \ "${S}"/data/meson.build \ || die mv "${S}/data/dev.alextren.Spot.appdata.xml" \ "${S}/data/dev.alextren.Spot.metainfo.xml" \ || die # empty cargo.sh, compiling is done by cargo_src_compile echo "#!/bin/bash" > "${S}/build-aux/cargo.sh" \ meson_src_configure } src_compile() { meson_src_compile cargo_src_compile # meson_src_install won't find spot binary otherwise because cargo.sh isn't used for compiling if use debug; then mv "${WORKDIR}/${P}/target/debug/spot" \ "${WORKDIR}/${P}-build/src/spot" \ || die else mv "${WORKDIR}/${P}/target/release/spot" \ "${WORKDIR}/${P}-build/src/spot" \ || die fi } src_install() { meson_src_install } pkg_postinst() { xdg_pkg_postinst gnome2_schemas_update } pkg_postrm() { xdg_pkg_postrm gnome2_schemas_update }