# spotifyd

## antonellocaroli

Sto cercando di installare spotifyd da questa ebuild

https://data.gpo.zugaina.org/rust/media-sound/spotifyd/

ma arrivato a un certo punto ottengo questo errore

```
-0.2.20/target/release/build/backtrace-sys-f4e3b339311bc86c/out -L native=/var/tmp/portage/media-sound/spotifyd-0.2.20/work/spotifyd-0.2.20/target/release/build/librespot-tremor-ff48886581ffc059/out -L native=/usr/lib64`

    Finished release [optimized] target(s) in 4m 52s

>>> Source compiled.

>>> Test phase [not enabled]: media-sound/spotifyd-0.2.20

>>> Install media-sound/spotifyd-0.2.20 into /var/tmp/portage/media-sound/spotifyd-0.2.20/image

error: The argument '--path <PATH>' was provided more than once, but cannot be used multiple times

USAGE:

    cargo install --features <FEATURES>... --no-default-features --path <PATH> --root <DIR>

For more information try --help

 * ERROR: media-sound/spotifyd-0.2.20::antonellocaroli failed (install phase):

 *   cargo install failed

 * 

 * Call stack:

 *     ebuild.sh, line  125:  Called src_install

 *   environment, line 1340:  Called cargo_src_install '--path=.' '--features' 'alsa_backend' '--no-default-features'

 *   environment, line 1089:  Called die

 * The specific snippet of code:

 *       cargo install --path ${CARGO_INSTALL_PATH} --root="${ED}/usr" $(usex debug --debug "") "$@" || die "cargo install failed";

 * 

 * If you need support, post the output of `emerge --info '=media-sound/spotifyd-0.2.20::antonellocaroli'`,

 * the complete build log and the output of `emerge -pqv '=media-sound/spotifyd-0.2.20::antonellocaroli'`.

 * The complete build log is located at '/var/tmp/portage/media-sound/spotifyd-0.2.20/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/media-sound/spotifyd-0.2.20/temp/environment'.

 * Working directory: '/var/tmp/portage/media-sound/spotifyd-0.2.20/work/spotifyd-0.2.20'

 * S: '/var/tmp/portage/media-sound/spotifyd-0.2.20/work/spotifyd-0.2.20'

>>> Failed to emerge media-sound/spotifyd-0.2.20, Log file:

>>>  '/var/tmp/portage/media-sound/spotifyd-0.2.20/temp/build.log'

 * Messages for package dev-lang/rust-1.41.1:

 * Rust installs a helper script for calling GDB and LLDB,

 * for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-1.41.1.

 * cargo is now installed from dev-lang/rust{,-bin} instead of dev-util/cargo.

 * This might have resulted in a dangling symlink for /usr/bin/cargo on some

 * systems. This can be resolved by calling 'sudo eselect rust set rust-1.41.1'.

 * Messages for package media-sound/spotifyd-0.2.20:

 * ERROR: media-sound/spotifyd-0.2.20::antonellocaroli failed (install phase):

 *   cargo install failed

 * 

 * Call stack:

 *     ebuild.sh, line  125:  Called src_install

 *   environment, line 1340:  Called cargo_src_install '--path=.' '--features' 'alsa_backend' '--no-default-features'

 *   environment, line 1089:  Called die

 * The specific snippet of code:

 *       cargo install --path ${CARGO_INSTALL_PATH} --root="${ED}/usr" $(usex debug --debug "") "$@" || die "cargo install failed";

 * 

 * If you need support, post the output of `emerge --info '=media-sound/spotifyd-0.2.20::antonellocaroli'`,

 * the complete build log and the output of `emerge -pqv '=media-sound/spotifyd-0.2.20::antonellocaroli'`.

 * The complete build log is located at '/var/tmp/portage/media-sound/spotifyd-0.2.20/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/media-sound/spotifyd-0.2.20/temp/environment'.

 * Working directory: '/var/tmp/portage/media-sound/spotifyd-0.2.20/work/spotifyd-0.2.20'

 * S: '/var/tmp/portage/media-sound/spotifyd-0.2.20/work/spotifyd-0.2.20'

 * GNU info directory index is up-to-date.

 * IMPORTANT: 13 news items need reading for repository 'gentoo'.

 * Use eselect news read to view new items.

```

[/code]

----------

## fedeliallalinea

Il pacchetto funziona finche' si scarica tutto l'overlay. Il tuo problema e' che hai scaricato solo l'ebuild e purtroppo l'eclass cargo dell'overlay differisce da quella presente in gentoo.

Per risolvere cambia la linea di cargo_src_install da

```
cargo_src_install --path=. ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features
```

a

```
cargo_src_install ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features
```

l'eclass di portage mette gia path=. e se bisogna cambiare questo si usa la variabile CARGO_INSTALL_PATH

----------

## antonellocaroli

Grazie Fedeliallalinea!!!   :Very Happy: 

ha funzionato. 

ma volevo aggiornare la ebuild all'ultima versione disponibile di spotifyd e di librespot

https://github.com/Spotifyd/spotifyd/releases

https://github.com/librespot-org/librespot/releases

ma non ho ben capito come si ottiene la prima parte della ebuild

CRATES="

....

...."

Quello che ho capito é che si dovrebbero prendere i sorgenti e poi creare la ebuild con 

```
cargo ebuild
```

Ho provato...ma ottengo risultati diversi...dall'originela

e poi qui sono due sorgenti nella ebuild Spotifyd e librespot

ne sai qualcosa tu? di come funziona?

----------

## fedeliallalinea

So che c'e' l'utility dev-util/cargo-ebuild ma non l'ho mai utilizzata.

Quello che faccio e' scaricare il sorgenete della versione desiderata e poi lancio il comando (una volta spostato nella cartella dei sorgenti)

```
$ grep checksum Cargo.lock | awk -F' ' '{print $2"-"$3}'
```

questo ti ritorna la lista di CRATES che serve a quella versione

----------

## antonellocaroli

mhhh, ci ho provato ma ottengo problemi con la patch...

https://github.com/antonellocaroli/GP-overlay/tree/master/media-sound/spotifyd

Ma alla fine posso tenermi la versione corrente....era solo per studiare un po....

```
* Applying spotifyd-0.2.24-fix-deps.patch ...

patching file Cargo.toml

Hunk #1 FAILED at 6.

Hunk #2 FAILED at 32.

2 out of 2 hunks FAILED -- saving rejects to file Cargo.toml.rej                                                                    [ !! ]

 * ERROR: media-sound/spotifyd-0.2.24::antonellocaroli failed (prepare phase):

 *   patch -p1  failed with /var/tmp/portage/media-sound/spotifyd-0.2.24/files/spotifyd-0.2.24-fix-deps.patch

 * 

 * Call stack:

```

----------

## fedeliallalinea

Prova a rimuovere la patch spotifyd-0.2.24-fix-deps.patch (commenta linea PATCHES=( "${FILESDIR}/${P}-fix-deps.patch" )) probabilmente e' stato messo a posto a monte

----------

## antonellocaroli

Alla fine senza patch ca compilazione é arrivata alla fine, ma purtroppo poi l´avvio del binario da un errore....

Probabilmente la patch é importante forse sopratutto per librespot

Ma la cosa anche strana é che io nella ebuil ho messo

```
SRC_URI="

https://github.com/Spotifyd/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz

https://github.com/librespot-org/librespot/archive/v0.1.1.tar.gz -> librespot.tar.gz

$(cargo_crate_uris ${CRATES})"
```

ma nella cartella work di portage vedo librespot-0.1.0

 :Sad: 

----------

## fedeliallalinea

Devi cambiare nel CRATES se vuoi la versione 0.1.1 ma non andrei a cambiare qualcosa che e' specificato nel package originale

----------

## antonellocaroli

Allora non mi spiego perché, anche nella versione originale della ebuild, c´é nel 

SRC_URI

https://github.com/librespot-org/librespot/archive/v0.1.0.tar.gz -> librespot.tar.gz

se lo prende da CRATES, non dovrebbe esserci l´indirizzo del sorgente li,  

Ma molto piú probabilmente é che come al solito non ho capito un c.....    :Laughing: 

----------

## fedeliallalinea

 *antonellocaroli wrote:*   

> se lo prende da CRATES, non dovrebbe esserci l´indirizzo del sorgente li,  
> 
> Ma molto piú probabilmente é che come al solito non ho capito un c.....   

 

Ci pensa poi l'eclass cargo a tramutare i CRATES in url per poi scaricarli in distfiles

----------

## antonellocaroli

Ok, adesso mi é piú chiara la cosa.

Ma ancora non capisco perché non mi applica la patch....

il file originale é questo

```
[package]

authors = ["Simon Persson <simon@flaskpost.org>", "Sven Lechner <sven.lechner@rwth-aachen.de>"]

edition = "2018"

name = "spotifyd"

version = "0.2.24"

[dependencies]

alsa = { version = "0.3", optional = true }

chrono = "0.4"

daemonize = "0.4"

dbus = { version = "0.6", optional = true }

dbus-tokio = { version = "0.2", optional = true }

failure = "0.1.6"

fern = { version = "0.5.9", features = ["syslog-4"] }

futures = "0.1"

gethostname = "0.2.0"

hex = "0.4"

keyring = { version = "0.7.1", optional = true }

lazy_static = "1.4.0"

libc = "0.2"

log = "0.4.6"

percent-encoding = "2.1.0"

rspotify = "0.7.0"

serde = { version = "1.0.103", features = ["derive"] }

serde_ini = "0.2.0"

sha-1 = "0.8"

structopt = "0.3.8"

syslog = "4"

tokio-core = "0.1"

tokio-io = "0.1"

tokio-signal = "0.1"

url = "1.7"

xdg = "2.2"

whoami = "0.7.0"

librespot = { version = "0.1", default-features = false, features = ["with-tremor"] }

[dev-dependencies]

env_logger = "0.7"

[features]

alsa_backend = ["librespot/alsa-backend", "alsa"]

dbus_keyring = ["keyring"]

dbus_mpris = ["dbus", "dbus-tokio"]

default = ["alsa_backend"]

portaudio_backend = ["librespot/portaudio-backend"]

pulseaudio_backend = ["librespot/pulseaudio-backend"]

rodio_backend = ["librespot/rodio-backend"]

```

questo come dovrebbe essere

```
[package]

authors = ["Simon Persson <simon@flaskpost.org>", "Sven Lechner <sven.lechner@rwth-aachen.de>"]

edition = "2018"

name = "spotifyd"

version = "0.2.24"

[dependencies]

alsa = { version = "0.3", optional = true }

cc = "1.0.47"

chrono = "0.4"

daemonize = "0.4"

dbus = { version = "0.6", optional = true }

dbus-tokio = { version = "0.2", optional = true }

failure = "0.1.6"

fern = { version = "0.5.9", features = ["syslog-4"] }

futures = "0.1"

gethostname = "0.2.0"

hex = "0.4"

keyring = { version = "0.7.1", optional = true }

lazy_static = "1.4.0"

libc = "0.2"

log = "0.4.6"

percent-encoding = "2.1.0"

rspotify = "0.7.0"

serde = { version = "1.0.103", features = ["derive"] }

serde_ini = "0.2.0"

sha-1 = "0.8"

structopt = "0.3.8"

syslog = "4"

tokio-core = "0.1"

tokio-io = "0.1"

tokio-signal = "0.1"

url = "1.7"

xdg = "2.2"

whoami = "0.7.0"

[dependencies.librespot]

path = "../librespot-0.1.0"

default-features = false

features = ["with-tremor"]

version = "0.1.0"

[dependencies.structopt]

features = ["color"]

version = "0.3.2"

[dev-dependencies]

env_logger = "0.7"

[features]

alsa_backend = ["librespot/alsa-backend", "alsa"]

dbus_keyring = ["keyring"]

dbus_mpris = ["dbus", "dbus-tokio"]

default = ["alsa_backend"]

portaudio_backend = ["librespot/portaudio-backend"]

pulseaudio_backend = ["librespot/pulseaudio-backend"]

rodio_backend = ["librespot/rodio-backend"]

```

questa la patch

```
diff --git a/Cargo.toml b/Cargo.toml

index 4cf6e8f..d131318 100644

--- a/Cargo.toml

+++ b/Cargo.toml

@@ -6,6 +6,7 @@ version = "0.2.24"

 [dependencies]

 alsa = { version = "0.3", optional = true }

+cc = "1.0.47"

 chrono = "0.4"

 daemonize = "0.4"

 dbus = { version = "0.6", optional = true }

@@ -32,7 +33,16 @@ tokio-signal = "0.1"

 url = "1.7"

 xdg = "2.2"

 whoami = "0.7.0"

-librespot = { version = "0.1", default-features = false, features = ["with-tre>

+

+[dependencies.librespot]

+path = "../librespot-0.1.0"

+default-features = false

+features = ["with-tremor"]

+version = "0.1.0"

+

+[dependencies.structopt]

+features = ["color"]

+version = "0.3.2"

 [dev-dependencies]

 env_logger = "0.7"
```

----------

## fedeliallalinea

Come l'hai creata la patch?

----------

## antonellocaroli

Se non ricordo male

```
git diff file1 file2 > patchfile
```

----------

## fedeliallalinea

Prova con questa patch e' per la versione 0.2.24.

Ora che ho visto la patch ho capito perche' devi mettere  https://github.com/librespot-org/librespot/archive/v0.1.1.tar.gz -> librespot.tar.gz in SRC_URI, quindi quello che ho detto prima non vale lascia questa linea nell'ebuild.

----------

## antonellocaroli

adesso ottengo questo

 *Quote:*   

> >>> Compiling source in /var/tmp/portage/media-sound/spotifyd-0.2.24/work/spotifyd-0.2.24 ...
> 
> error: failed to parse manifest at `/var/tmp/portage/media-sound/spotifyd-0.2.24/work/spotifyd-0.2.24/Cargo.toml`
> 
> Caused by:
> ...

 

----------

## fedeliallalinea

Puoi postare l'ebuild che da questo errore cosi' da poterlo provare?

----------

## antonellocaroli

```
# Copyright 2017-2019 Gentoo Authors

# Distributed under the terms of the GNU General Public License v2

# Auto-Generated by cargo-ebuild 0.2.0

EAPI=7

CRATES="

shlex-0.1.1

rustc-hash-1.0.1

portaudio-sys-0.1.1

bitflags-0.3.3

num-rational-0.2.3

num-iter-0.1.40

same-file-1.0.6

portaudio-rs-0.3.1

libpulse-sys-0.0.0

adler32-1.0.4

advapi32-sys-0.2.0

aes-0.3.2

aes-ctr-0.3.0

aes-soft-0.3.3

aesni-0.6.0

aho-corasick-0.6.10

aho-corasick-0.7.6

alga-0.9.2

alsa-0.2.2

alsa-0.3.0

alsa-sys-0.1.2

ansi_term-0.11.0

approx-0.3.2

arc-swap-0.3.11

arc-swap-0.4.4

arrayvec-0.4.11

atty-0.2.13

atty-0.2.14

autocfg-0.1.5

autocfg-0.1.7

autocfg-1.0.0

backtrace-0.3.33

backtrace-0.3.40

backtrace-sys-0.1.31

backtrace-sys-0.1.32

base64-0.10.1

base64-0.9.3

bindgen-0.51.1

bit-set-0.5.1

bit-vec-0.5.1

bitflags-0.9.1

bitflags-1.1.0

bitflags-1.2.1

block-buffer-0.7.3

block-cipher-trait-0.6.2

block-modes-0.3.3

block-padding-0.1.4

block-padding-0.1.5

boxfnonce-0.1.1

byte-tools-0.3.1

byteorder-1.3.2

bytes-0.4.12

c2-chacha-0.2.2

c2-chacha-0.2.3

c_linked_list-1.1.1

cargo_metadata-0.6.4

cc-1.0.47

cc-1.0.50

cexpr-0.2.3

cexpr-0.3.6

cfg-if-0.1.10

cfg-if-0.1.9

chrono-0.4.10

chrono-0.4.7

clang-sys-0.28.1

clap-2.33.0

cloudabi-0.0.3

constant_time_eq-0.1.4

cookie-0.12.0

cookie_store-0.7.0

core-foundation-0.6.4

core-foundation-sys-0.5.1

core-foundation-sys-0.6.2

coreaudio-rs-0.9.1

coreaudio-sys-0.2.3

cpal-0.8.2

crc32fast-1.2.0

crossbeam-deque-0.7.1

crossbeam-deque-0.7.2

crossbeam-epoch-0.7.2

crossbeam-epoch-0.8.0

crossbeam-queue-0.1.2

crossbeam-utils-0.6.6

crossbeam-utils-0.7.0

crypto-mac-0.7.0

ctr-0.3.2

daemonize-0.4.1

darling-0.9.0

darling_core-0.9.0

darling_macro-0.9.0

dbus-0.2.3

dbus-0.6.5

dbus-tokio-0.2.1

derive_builder-0.7.2

derive_builder_core-0.5.0

digest-0.8.1

dirs-2.0.2

dirs-sys-0.3.4

dns-parser-0.3.2

dotenv-0.13.0

dtoa-0.4.4

either-1.5.3

encoding_rs-0.8.22

env_logger-0.4.3

env_logger-0.6.2

env_logger-0.7.1

error-chain-0.11.0

error-chain-0.12.1

extprim-1.7.0

failure-0.1.5

failure-0.1.6

failure_derive-0.1.5

failure_derive-0.1.6

fake-simd-0.1.2

fern-0.5.9

flate2-1.0.13

fnv-1.0.6

foreign-types-0.3.2

foreign-types-shared-0.1.1

fuchsia-cprng-0.1.1

fuchsia-zircon-0.3.3

fuchsia-zircon-sys-0.3.3

futures-0.1.28

futures-0.1.29

futures-cpupool-0.1.8

gcc-0.3.55

generic-array-0.12.3

get_if_addrs-0.5.3

get_if_addrs-sys-0.1.1

gethostname-0.2.1

getopts-0.2.19

getopts-0.2.21

getrandom-0.1.14

getrandom-0.1.6

glob-0.2.11

glob-0.3.0

h2-0.1.26

heck-0.3.1

hermit-abi-0.1.6

hkdf-0.7.1

hex-0.3.2

hex-0.4.0

hmac-0.7.1

http-0.1.21

http-body-0.1.0

httparse-1.3.4

humantime-1.2.0

humantime-1.3.0

hyper-0.11.27

hyper-0.12.35

hyper-proxy-0.4.1

hyper-tls-0.3.2

ident_case-1.0.1

idna-0.1.5

idna-0.2.0

indexmap-1.3.0

iovec-0.1.2

iovec-0.1.4

itertools-0.8.2

itoa-0.4.4

kernel32-sys-0.2.2

keyring-0.7.1

language-tags-0.2.2

lazy_static-1.3.0

lazy_static-1.4.0

lewton-0.9.4

libc-0.2.65

libc-0.2.66

libdbus-sys-0.2.1

libloading-0.5.2

libm-0.1.4

libmdns-0.2.4

librespot-0.1.0

librespot-0.1.1

librespot-audio-0.1.0

librespot-audio-0.1.1

librespot-connect-0.1.0

librespot-connect-0.1.1

librespot-core-0.1.0

librespot-core-0.1.1

librespot-metadata-0.1.0

librespot-metadata-0.1.1

librespot-playback-0.1.0

librespot-playback-0.1.1

librespot-protocol-0.1.0

librespot-protocol-0.1.1

librespot-tremor-0.1.0

linear-map-1.2.0

lock_api-0.1.5

lock_api-0.3.3

log-0.3.9

log-0.4.7

log-0.4.8

matches-0.1.8

matrixmultiply-0.2.3

maybe-uninit-2.0.0

memchr-1.0.2

memchr-2.2.1

memchr-2.3.0

memoffset-0.5.1

memoffset-0.5.3

mime-0.3.13

mime-0.3.16

mime_guess-2.0.1

miniz_oxide-0.3.5

mio-0.6.19

mio-0.6.21

mio-named-pipes-0.1.6

mio-uds-0.6.7

miow-0.2.1

miow-0.3.3

multimap-0.4.0

nalgebra-0.18.1

native-tls-0.2.3

net2-0.2.33

nix-0.10.0

nix-0.14.1

nix-0.9.0

nodrop-0.1.13

nom-4.2.3

num-0.2.1

num-bigint-0.2.2

num-bigint-0.2.5

num-complex-0.2.4

num-integer-0.1.41

num-integer-0.1.42

num-traits-0.2.11

num-traits-0.2.8

num_cpus-1.10.1

num_cpus-1.11.1

ogg-0.7.0

ogg-sys-0.0.9

opaque-debug-0.2.2

opaque-debug-0.2.3

openssl-0.10.26

openssl-probe-0.1.2

openssl-sys-0.9.53

owning_ref-0.4.0

parking_lot-0.7.1

parking_lot-0.9.0

parking_lot_core-0.4.0

parking_lot_core-0.6.2

pbkdf2-0.3.0

peeking_take_while-0.1.2

percent-encoding-1.0.1

percent-encoding-2.1.0

pkg-config-0.3.15

pkg-config-0.3.17

ppv-lite86-0.2.5

ppv-lite86-0.2.6

proc-macro-error-0.4.4

proc-macro-error-attr-0.4.3

proc-macro2-0.2.3

proc-macro2-0.4.30

proc-macro2-1.0.7

protobuf-2.10.0

protobuf-2.8.1

protobuf-codegen-2.10.0

protobuf-codegen-2.8.1

protobuf-codegen-pure-2.10.0

protobuf-codegen-pure-2.8.1

publicsuffix-1.5.4

quick-error-1.2.2

quick-error-1.2.3

quote-0.4.2

quote-0.6.13

quote-1.0.2

rand-0.3.23

rand-0.4.6

rand-0.5.6

rand-0.6.5

rand-0.7.0

rand-0.7.3

rand_chacha-0.1.1

rand_chacha-0.2.1

rand_core-0.3.1

rand_core-0.4.0

rand_core-0.4.2

rand_core-0.5.0

rand_core-0.5.1

rand_hc-0.1.0

rand_hc-0.2.0

rand_isaac-0.1.1

rand_jitter-0.1.4

rand_os-0.1.3

rand_pcg-0.1.2

rand_xorshift-0.1.1

random-0.12.2

rawpointer-0.2.1

rdrand-0.4.0

redox_syscall-0.1.56

regex-0.2.11

regex-1.3.3

regex-syntax-0.5.6

regex-syntax-0.6.13

relay-0.1.1

remove_dir_all-0.5.2

reqwest-0.9.17

result-1.0.0

rodio-0.9.0

rpassword-3.0.2

rspotify-0.7.0

rustc-demangle-0.1.15

rustc-demangle-0.1.16

rustc-serialize-0.3.24

rustc_version-0.2.3

rustversion-1.0.1

ryu-1.0.0

ryu-1.0.2

safemem-0.3.0

safemem-0.3.3

schannel-0.1.16

scoped-tls-0.1.2

scopeguard-0.3.3

scopeguard-1.0.0

security-framework-0.3.4

security-framework-sys-0.3.3

semver-0.9.0

semver-parser-0.7.0

serde-1.0.104

serde-1.0.97

serde_derive-1.0.104

serde_derive-1.0.97

serde_ini-0.2.0

serde_json-1.0.40

serde_json-1.0.44

serde_urlencoded-0.5.5

sha-1-0.8.1

sha-1-0.8.2

sha2-0.8.0

sha2-0.8.1

shannon-0.2.0

shell-words-0.1.0

signal-hook-0.1.10

signal-hook-0.1.12

signal-hook-registry-1.1.0

signal-hook-registry-1.2.0

slab-0.3.0

slab-0.4.2

smallvec-0.2.1

smallvec-0.6.10

smallvec-0.6.13

smallvec-1.1.0

socket2-0.2.4

socket2-0.3.10

socket2-0.3.11

spin-0.5.0

stable_deref_trait-1.1.1

stdweb-0.1.3

stream-cipher-0.3.0

stream-cipher-0.3.2

string-0.2.1

strsim-0.7.0

strsim-0.8.0

structopt-0.3.8

structopt-derive-0.4.1

subtle-1.0.0

syn-0.15.42

syn-0.15.44

syn-1.0.13

syn-mid-0.4.0

synstructure-0.10.2

synstructure-0.12.3

syslog-4.0.1

skeptic-0.13.4

take-0.1.0

tempfile-3.1.0

termcolor-1.0.5

termcolor-1.1.0

textwrap-0.11.0

thread_local-0.3.6

thread_local-1.0.1

time-0.1.42

tokio-0.1.22

tokio-buf-0.1.1

tokio-codec-0.1.1

tokio-core-0.1.17

tokio-current-thread-0.1.6

tokio-executor-0.1.8

tokio-executor-0.1.9

tokio-fs-0.1.6

tokio-io-0.1.12

tokio-process-0.2.4

tokio-proto-0.1.1

tokio-reactor-0.1.11

tokio-reactor-0.1.9

tokio-service-0.1.0

tokio-signal-0.1.5

tokio-signal-0.2.7

tokio-sync-0.1.6

tokio-sync-0.1.7

tokio-tcp-0.1.3

tokio-threadpool-0.1.15

tokio-threadpool-0.1.17

tokio-timer-0.2.11

tokio-timer-0.2.12

tokio-udp-0.1.3

tokio-udp-0.1.5

tokio-uds-0.2.5

try-lock-0.1.0

try-lock-0.2.2

try_from-0.3.2

typenum-1.10.0

typenum-1.11.2

ucd-util-0.1.5

unicase-2.4.0

unicase-2.6.0

unicode-bidi-0.3.4

unicode-normalization-0.1.11

unicode-normalization-0.1.8

unicode-segmentation-1.6.0

unicode-width-0.1.5

unicode-width-0.1.7

unicode-xid-0.1.0

unicode-xid-0.2.0

url-1.7.2

url-2.1.1

utf8-ranges-1.0.3

uuid-0.7.4

vcpkg-0.2.8

vec_map-0.8.1

vergen-3.0.4

version_check-0.1.5

version_check-0.9.1

void-1.0.2

want-0.0.4

want-0.2.0

wasi-0.9.0+wasi-snapshot-preview1

webbrowser-0.5.2

which-1.0.5

whoami-0.7.0

widestring-0.4.0

winapi-0.2.8

winapi-0.3.7

winapi-0.3.8

winapi-build-0.1.1

winapi-i686-pc-windows-gnu-0.4.0

winapi-util-0.1.2

winapi-util-0.1.3

winapi-x86_64-pc-windows-gnu-0.4.0

wincolor-1.0.1

ws2_32-sys-0.2.1

xdg-2.2.0

secret-service-1.0.0

bytecount-0.4.0

pulldown-cmark-0.2.0

tempdir-0.3.7

walkdir-2.3.0

"

inherit cargo

DESCRIPTION="A Spotify daemon"

HOMEPAGE="https://github.com/Spotifyd/spotifyd/"

SRC_URI="

https://github.com/Spotifyd/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz

https://github.com/librespot-org/librespot/archive/v0.1.1.tar.gz -> librespot.tar.gz

$(cargo_crate_uris ${CRATES})"

RESTRICT="mirror"

LICENSE="GPL-3+"

SLOT="0"

KEYWORDS="~amd64"

IUSE="alsa dbus libressl portaudio pulseaudio rodio"

REQUIRED_USE="|| ( alsa portaudio pulseaudio rodio )"

RDEPEND="

alsa? ( media-libs/alsa-lib )

dbus? ( sys-apps/dbus )

!libressl? ( dev-libs/openssl:0= )

libressl? ( dev-libs/libressl:0= )

portaudio? ( media-libs/portaudio )

pulseaudio? ( media-sound/pulseaudio )

"

DEPEND="${RDEPEND}"

PATCHES=( "${FILESDIR}/${P}-fix-deps.patch" )

src_configure() {

   myfeatures=(

      $(usex alsa alsa_backend "")

      $(usex dbus "dbus_keyring dbus_mpris" "")

      $(usex portaudio portaudio_backend "")

      $(usex pulseaudio pulseaudio_backend "")

      $(usex rodio rodio_backend "")

   )

}

src_compile() {

   cargo_src_compile ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features

}

src_install() {

   cargo_src_install ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features

   keepdir /etc/xdg/spotifyd

}

src_test() {

   cargo_src_test ${myfeatures:+--features "${myfeatures[*]}"} --no-default-features

}
```

----------

## fedeliallalinea

Purtroppo non conosco affatto bene cargo e non saprei dirti cosa sia l'errore.

Potresti provare a creare l'ebuild 9999 visto che la versione upstream usa librespot-0.1.1

----------

