From 28061dffe29963c0aa48619d54f1b9287133575d Mon Sep 17 00:00:00 2001 From: Lyndon Brown Date: Fri, 27 Nov 2020 00:06:16 +0000 Subject: [PATCH] upgrade to newer PulseAudio crate dependency requires adding dependency on libpulse-simple-sys since the PulseAudio simple components were moved to their own crate (the original version did not stick to the one crate per one system library rule). this fixes the licensing compatibility issue discussed in #539 ([1]) (the original v0.0.0 was LGPL-3.0 licensed, while v1.11 onwards are 'MIT OR Apache-2.0'). [1]: https://github.com/librespot-org/librespot/issues/539 --- Cargo.lock | 21 ++++++++++++++++++--- playback/Cargo.toml | 5 +++-- playback/src/audio_backend/pulseaudio.rs | 1 + playback/src/lib.rs | 2 ++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3789f16..23a90a73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1189,12 +1189,25 @@ dependencies = [ "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "libpulse-simple-sys" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libpulse-sys 1.15.3 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "libpulse-sys" -version = "0.0.0" +version = "1.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", + "num-derive 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1334,7 +1347,8 @@ dependencies = [ "gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)", "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", - "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libpulse-simple-sys 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libpulse-sys 1.15.3 (registry+https://github.com/rust-lang/crates.io-index)", "librespot-audio 0.1.3", "librespot-core 0.1.3", "librespot-metadata 0.1.3", @@ -3310,7 +3324,8 @@ dependencies = [ "checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" "checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" "checksum libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e" -"checksum libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac" +"checksum libpulse-simple-sys 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9b72cb239bc4de6858fa0bbad27419e72cd4466f079ca56f21d94b0a712ab02e" +"checksum libpulse-sys 1.15.3 (registry+https://github.com/rust-lang/crates.io-index)" = "706e95c4b87ebb81c1e7763c74bf7d5ba897208f1a8aa5fc7bea8298dee8f2ca" "checksum librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b155a7dc4e4d272e01c37a1b85c1ee1bee7f04980ad4a7784c1a6e0f2de5929b" "checksum linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" "checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" diff --git a/playback/Cargo.toml b/playback/Cargo.toml index df380078..0392ac8a 100644 --- a/playback/Cargo.toml +++ b/playback/Cargo.toml @@ -25,7 +25,8 @@ shell-words = "0.1.0" alsa = { version = "0.2", optional = true } portaudio-rs = { version = "0.3", optional = true } -libpulse-sys = { version = "0.0.0", optional = true } +libpulse-sys = { version = "1.11", optional = true, default-features = false } +libpulse-simple-sys = { version = "1.11", optional = true, default-features = false } jack = { version = "0.5", optional = true } libc = { version = "0.2", optional = true } rodio = { version = "0.13", optional = true, default-features = false } @@ -39,7 +40,7 @@ zerocopy = { version = "0.2", optional = true } [features] alsa-backend = ["alsa"] portaudio-backend = ["portaudio-rs"] -pulseaudio-backend = ["libpulse-sys", "libc"] +pulseaudio-backend = ["libpulse-sys", "libpulse-simple-sys", "libc"] jackaudio-backend = ["jack"] rodio-backend = ["rodio", "cpal"] sdl-backend = ["sdl2"] diff --git a/playback/src/audio_backend/pulseaudio.rs b/playback/src/audio_backend/pulseaudio.rs index 8a833d65..80faa439 100644 --- a/playback/src/audio_backend/pulseaudio.rs +++ b/playback/src/audio_backend/pulseaudio.rs @@ -1,6 +1,7 @@ use super::{Open, Sink}; use libc; use libpulse_sys::*; +use libpulse_simple_sys::*; use std::ffi::CStr; use std::ffi::CString; use std::io; diff --git a/playback/src/lib.rs b/playback/src/lib.rs index 79b9856d..08cbd400 100644 --- a/playback/src/lib.rs +++ b/playback/src/lib.rs @@ -13,6 +13,8 @@ extern crate portaudio_rs; #[cfg(feature = "pulseaudio-backend")] extern crate libpulse_sys; +#[cfg(feature = "pulseaudio-backend")] +extern crate libpulse_simple_sys; #[cfg(feature = "jackaudio-backend")] extern crate jack;