head	1.43;
access;
symbols
	pkgsrc-2026Q1:1.43.0.4
	pkgsrc-2026Q1-base:1.43
	pkgsrc-2025Q4:1.43.0.2
	pkgsrc-2025Q4-base:1.43
	pkgsrc-2025Q3:1.41.0.2
	pkgsrc-2025Q3-base:1.41
	pkgsrc-2025Q2:1.38.0.2
	pkgsrc-2025Q2-base:1.38
	pkgsrc-2025Q1:1.36.0.2
	pkgsrc-2025Q1-base:1.36
	pkgsrc-2024Q4:1.35.0.2
	pkgsrc-2024Q4-base:1.35
	pkgsrc-2024Q3:1.27.0.4
	pkgsrc-2024Q3-base:1.27
	pkgsrc-2024Q2:1.27.0.2
	pkgsrc-2024Q2-base:1.27
	pkgsrc-2024Q1:1.26.0.2
	pkgsrc-2024Q1-base:1.26
	pkgsrc-2023Q4:1.25.0.6
	pkgsrc-2023Q4-base:1.25
	pkgsrc-2023Q3:1.25.0.4
	pkgsrc-2023Q3-base:1.25
	pkgsrc-2023Q2:1.25.0.2
	pkgsrc-2023Q2-base:1.25
	pkgsrc-2023Q1:1.24.0.6
	pkgsrc-2023Q1-base:1.24
	pkgsrc-2022Q4:1.24.0.4
	pkgsrc-2022Q4-base:1.24
	pkgsrc-2022Q3:1.24.0.2
	pkgsrc-2022Q3-base:1.24
	pkgsrc-2022Q2:1.20.0.2
	pkgsrc-2022Q2-base:1.20
	pkgsrc-2022Q1:1.18.0.2
	pkgsrc-2022Q1-base:1.18
	pkgsrc-2021Q4:1.17.0.2
	pkgsrc-2021Q4-base:1.17
	pkgsrc-2021Q3:1.13.0.2
	pkgsrc-2021Q3-base:1.13
	pkgsrc-2021Q2:1.9.0.2
	pkgsrc-2021Q2-base:1.9
	pkgsrc-2021Q1:1.8.0.2
	pkgsrc-2021Q1-base:1.8
	pkgsrc-2020Q4:1.4.0.2
	pkgsrc-2020Q4-base:1.4;
locks; strict;
comment	@# @;


1.43
date	2025.11.11.11.10.11;	author pin;	state Exp;
branches;
next	1.42;
commitid	EhwyLrTbw2zKS7iG;

1.42
date	2025.10.23.20.35.49;	author wiz;	state Exp;
branches;
next	1.41;
commitid	1V2hBZn9ypXaCJfG;

1.41
date	2025.09.01.09.35.30;	author pin;	state Exp;
branches;
next	1.40;
commitid	zZ5JBzVYqQDLDZ8G;

1.40
date	2025.08.26.13.18.25;	author pin;	state Exp;
branches;
next	1.39;
commitid	pWGcTY7A7C5c4f8G;

1.39
date	2025.08.17.12.39.32;	author wiz;	state Exp;
branches;
next	1.38;
commitid	t5Tslv8cp8QN857G;

1.38
date	2025.04.10.13.03.50;	author pin;	state Exp;
branches;
next	1.37;
commitid	19P9SuV3Uwz9qvQF;

1.37
date	2025.04.02.09.56.39;	author pin;	state Exp;
branches;
next	1.36;
commitid	dBpkT9ArfX8SDsPF;

1.36
date	2025.02.12.06.44.25;	author ryoon;	state Exp;
branches;
next	1.35;
commitid	wrOiT0jBBwBs99JF;

1.35
date	2024.12.12.07.26.30;	author pin;	state Exp;
branches;
next	1.34;
commitid	yFXlWLMoQeoEnbBF;

1.34
date	2024.11.14.22.18.43;	author wiz;	state Exp;
branches;
next	1.33;
commitid	JmuDYqwL4erbdFxF;

1.33
date	2024.11.01.12.51.28;	author wiz;	state Exp;
branches;
next	1.32;
commitid	QB4Wk02mZPuBuWvF;

1.32
date	2024.11.01.00.50.41;	author wiz;	state Exp;
branches;
next	1.31;
commitid	QT27BdVP362gvSvF;

1.31
date	2024.10.30.21.22.22;	author pin;	state Exp;
branches;
next	1.30;
commitid	q6IXl6mDO9X5oJvF;

1.30
date	2024.10.20.13.20.55;	author pin;	state Exp;
branches;
next	1.29;
commitid	kIw03kAjR2sJ2puF;

1.29
date	2024.10.19.15.32.44;	author pin;	state Exp;
branches;
next	1.28;
commitid	r7nim2zEzt31OhuF;

1.28
date	2024.10.16.10.05.03;	author pin;	state Exp;
branches;
next	1.27;
commitid	QLfyKHWuTNmD5StF;

1.27
date	2024.04.06.08.04.49;	author wiz;	state Exp;
branches
	1.27.4.1;
next	1.26;
commitid	xuM7fEJrv2TOC35F;

1.26
date	2024.01.30.14.21.32;	author ryoon;	state Exp;
branches;
next	1.25;
commitid	gARf2FgciecARtWE;

1.25
date	2023.05.06.19.09.01;	author ryoon;	state Exp;
branches;
next	1.24;
commitid	U0SnpK5fQpHc6WnE;

1.24
date	2022.09.11.12.51.19;	author wiz;	state Exp;
branches;
next	1.23;
commitid	5DT6DUEaifG2DrTD;

1.23
date	2022.08.11.05.08.03;	author gutteridge;	state Exp;
branches;
next	1.22;
commitid	yKydzoO42ClN3qPD;

1.22
date	2022.08.01.14.38.37;	author pin;	state Exp;
branches;
next	1.21;
commitid	HEB5tZnIZLSKxbOD;

1.21
date	2022.07.02.16.53.06;	author ryoon;	state Exp;
branches;
next	1.20;
commitid	JYhuI1Ghjd0AflKD;

1.20
date	2022.05.23.21.08.34;	author pin;	state Exp;
branches;
next	1.19;
commitid	D0f6UpVCko62XdFD;

1.19
date	2022.05.22.16.38.02;	author pin;	state Exp;
branches;
next	1.18;
commitid	0XGQuCQRcNHdu4FD;

1.18
date	2022.03.28.10.43.35;	author tnn;	state Exp;
branches;
next	1.17;
commitid	a4cavKiniSb6iYxD;

1.17
date	2021.12.08.16.03.15;	author adam;	state Exp;
branches;
next	1.16;
commitid	2PyWjHx5T8rqARjD;

1.16
date	2021.11.15.22.54.03;	author wiz;	state Exp;
branches;
next	1.15;
commitid	IwFN8B1K5bPMBWgD;

1.15
date	2021.10.24.22.03.55;	author pin;	state Exp;
branches;
next	1.14;
commitid	loSJNaCmqkBw27eD;

1.14
date	2021.10.14.08.01.37;	author pin;	state Exp;
branches;
next	1.13;
commitid	Viauk6GjcI7uHKcD;

1.13
date	2021.09.08.21.04.56;	author nia;	state Exp;
branches;
next	1.12;
commitid	6PGjeVec6yMAbc8D;

1.12
date	2021.08.05.08.41.02;	author pin;	state Exp;
branches;
next	1.11;
commitid	XMiYGPWvzz2uaL3D;

1.11
date	2021.07.30.12.26.39;	author ryoon;	state Exp;
branches;
next	1.10;
commitid	MBn4tXPvavnNB03D;

1.10
date	2021.07.22.16.16.35;	author tnn;	state Exp;
branches;
next	1.9;
commitid	SHeXfIfDOhmC802D;

1.9
date	2021.05.04.16.32.55;	author pin;	state Exp;
branches;
next	1.8;
commitid	K6OCakocZyHJLQRC;

1.8
date	2021.02.22.09.37.41;	author pin;	state Exp;
branches;
next	1.7;
commitid	238jyjMNOW6tKGIC;

1.7
date	2021.02.21.18.53.05;	author pin;	state Exp;
branches;
next	1.6;
commitid	bMJpq1UIFMwiRBIC;

1.6
date	2021.02.07.06.30.13;	author ryoon;	state Exp;
branches;
next	1.5;
commitid	o4SYSzNXY1UacKGC;

1.5
date	2021.01.01.09.52.16;	author ryoon;	state Exp;
branches;
next	1.4;
commitid	GiBA8QXmAPUfv0CC;

1.4
date	2020.10.26.08.29.15;	author pin;	state Exp;
branches;
next	1.3;
commitid	Y5pBcfQKhmnkcotC;

1.3
date	2020.10.20.23.14.11;	author tnn;	state Exp;
branches;
next	1.2;
commitid	sGg62pviWUlYhHsC;

1.2
date	2020.10.20.19.06.59;	author tnn;	state Exp;
branches;
next	1.1;
commitid	JS0kTrb9ZyobVFsC;

1.1
date	2020.10.11.13.19.42;	author pin;	state Exp;
branches;
next	;
commitid	70jMQ3vZhtGMhurC;

1.27.4.1
date	2024.10.28.14.05.10;	author bsiegert;	state Exp;
branches;
next	;
commitid	LNyEAY23N9n72rvF;


desc
@@


1.43
log
@audio/librespot: update to 0.8.0

Added

    [connect] Add method transfer to Spirc to automatically transfer the playback to ourselves
    [core] Add method transfer to SpClient
    [core] Add SpotifyUri type to represent more types of URI than SpotifyId can
    [discovery] Add support for device aliases
    [main] --local-file-dir / -l option added to binary to specify local file directories to pull from
    [metadata] Local variant added to UniqueFields enum (breaking)
    [playback] Local files can now be played with the following caveats:
        They must be sampled at 44,100 Hz
        They cannot be played from a Connect device using the dedicated 'Local Files' playlist; they must be added to another playlist first
    [playback] local_file_directories field added to PlayerConfig struct (breaking)

Changed

    [contrib] Switched contrib/Dockerfile to new Debian stable (trixie)
    [core] get_radio_for_track function changed from accepting a SpotifyId to accepting a SpotifyUri (breaking)
    [core] Changed return type of get_extended_metadata to return BatchedExtensionResponse (breaking)
    [core] Changed parameter of get_<item>_metadata from SpotifyId to SpotifyUri (breaking)
    [metadata] Changed arguments for Metadata trait from &SpotifyId to &SpotifyUri (breaking)
    [playback] Changed type of SpotifyId fields in PlayerEvent members to SpotifyUri (breaking)
    [playback] load function changed from accepting a SpotifyId to accepting a SpotifyUri (breaking)
    [playback] preload function changed from accepting a SpotifyId to accepting a SpotifyUri (breaking)

Fixed

    [connect] Fixed failed transferring with transfer data that had an empty context uri and no tracks
    [connect] Use the provided index or the first as fallback value to always play a track on loading
    [core] Fixed a problem where the metadata didn't include the audio file by switching to get_extended_metadata
    [core] Fixed connection issues after system suspend on Linux

Removed

    [core] Removed SpotifyItemType enum; the new SpotifyUri is an enum over all item types and so which variant it is
    describes its item type (breaking)
    [core] Removed NamedSpotifyId struct; it was made obsolete by SpotifyUri (breaking)
    [core] The following methods have been removed from SpotifyId and moved to SpotifyUri (breaking):
        is_playable
        from_uri
        to_uri
@
text
@# $NetBSD: Makefile,v 1.42 2025/10/23 20:35:49 wiz Exp $

DISTNAME=	librespot-0.8.0
CATEGORIES=	audio
MASTER_SITES=	${MASTER_SITE_GITHUB:=librespot-org/}
GITHUB_TAG=	v${PKGVERSION_NOREV}

MAINTAINER=	pin@@NetBSD.org
HOMEPAGE=	https://github.com/librespot-org/librespot/
COMMENT=	Open Source Spotify client library
LICENSE=	mit

# See, https://github.com/briansmith/ring/issues/1999
.include "../../mk/compiler/i386-sse2.mk"

.include "cargo-depends.mk"

RUST_REQ=		1.85.0
USE_LANGUAGES+=		c c++
USE_TOOLS+=		pkg-config

INSTALLATION_DIRS=	bin

MAKE_ENV+=	OPENSSL_DIR=${BUILDLINK_PREFIX.openssl:Q}
RUSTFLAGS+=	-C link-arg=${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib

CARGO_NO_DEFAULT_FEATURES=	yes
CARGO_FEATURES+=		native-tls with-libmdns

.include "options.mk"

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/target/release/librespot \
		${DESTDIR}${PREFIX}/bin

.include "../../lang/rust/cargo.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@


1.42
log
@*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by /usr/pkg/lib/libglib-2.0.so.0 not defined
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.41 2025/09/01 09:35:30 pin Exp $
d3 1
a3 2
DISTNAME=	librespot-0.7.1
PKGREVISION=	1
@


1.41
log
@audio/librespot: update to 0.7.1

Changed

    [connect] Shuffling was adjusted, so that shuffle and repeat can be used combined

Fixed

    [connect] Repeat context will not go into autoplay anymore and triggering autoplay while shuffling shouldn't reshuffle anymore
    [connect] Only deletes the connect state on dealer shutdown instead on disconnecting
    [core] Fixed a problem where in spclient where an HTTP/411 error was thrown because the header was set wrong
    [main] Use the config instead of the type default for values that are not provided by the user
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.40 2025/08/26 13:18:25 pin Exp $
d4 1
@


1.40
log
@audio/librespot: update to 0.7.0

Changed

    [core] MSRV is now 1.85 with Rust edition 2024 (breaking)
    [core] AP connect and handshake have a combined 5 second timeout.
    [core] stream_from_cdn now accepts the URL as TryInto<Uri> instead of CdnUrl (breaking)
    [core] Add TLS backend selection with native-tls and rustls-tls options, defaulting to native-tls
    [connect] Replaced has_volume_ctrl with disable_volume in ConnectConfig (breaking)
    [connect] Changed initial_volume from Option<u16> to u16 in ConnectConfig (breaking)
    [connect] Replaced SpircLoadCommand with LoadRequest, LoadRequestOptions and LoadContextOptions (breaking)
    [connect] Moved all public items to the highest level (breaking)
    [connect] Replaced Mercury usage in Spirc with Dealer
    [metadata] Replaced AudioFileFormat with own enum. (breaking)
    [playback] Changed trait Mixer::open to return Result<Self, Error> instead of Self (breaking)
    [playback] Changed type alias MixerFn to return Result<Arc<dyn Mixer>, Error> instead of Arc<dyn Mixer> (breaking)
    [playback] Optimize audio conversion to always dither at 16-bit level, and improve performance
    [playback] Normalizer maintains better stereo imaging, while also being faster
    [oauth] Remove loopback address requirement from redirect_uri when spawning callback handling server versus using stdin.

Added

    [connect] Add command line parameter for setting volume steps.
    [connect] Add support for seek_to, repeat_track and autoplay for Spirc loading
    [connect] Add pause parameter to Spirc::disconnect method (breaking)
    [connect] Add volume_steps to ConnectConfig (breaking)
    [connect] Add and enforce rustdoc
    [playback] Add track field to PlayerEvent::RepeatChanged (breaking)
    [playback] Add PlayerEvent::PositionChanged event to notify about the current playback position
    [core] Add request_with_options and request_with_protobuf_and_options to SpClient
    [core] Add try_get_urls to CdnUrl
    [oauth] Add OAuthClient and OAuthClientBuilder structs to achieve a more customizable login process

Fixed

    [test] Missing bindgen breaks crossbuild on recent runners. Now installing latest bindgen in addition.
    [core] Fix "no native root CA certificates found" on platforms unsupported
    by rustls-native-certs.
    [core] Fix all APs rejecting with "TryAnotherAP" when connecting session
    on Android platform.
    [core] Fix "Invalid Credentials" when using a Keymaster access token and
    client ID on Android platform.
    [connect] Fix "play" command not handled if missing "offset" property
    [discovery] Fix libmdns zerconf setup errors not propagating to the main task.
    [metadata] Show::trailer_uri is now optional since it isn't always present (breaking)
    [metadata] Fix incorrect parsing of audio format
    [connect] Handle transfer of playback with empty "uri" field
    [connect] Correctly apply playing/paused state when transferring playback
    [player] Saturate invalid seek positions to track duration
    [audio] Fall back to other URLs in case of a failure when downloading from CDN
    [core] Metadata requests failing with 500 Internal Server Error
    [player] Rodio backend did not honor audio output format request

Deprecated

    [oauth] get_access_token() function marked for deprecation
    [core] try_get_url() function marked for deprecation

Removed

    [core] Removed get_canvases from SpClient (breaking)
    [core] DeviceType homething removed due to crashes on Android (breaking)
    [metadata] Removed genres from Album (breaking)
    [metadata] Removed genre from Artists (breaking)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.39 2025/08/17 12:39:32 wiz Exp $
d3 1
a3 1
DISTNAME=	librespot-0.7.0
@


1.39
log
@librespot: fix build with cmake 4
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.38 2025/04/10 13:03:50 pin Exp $
d3 1
a3 2
DISTNAME=	librespot-0.6.0
PKGREVISION=	5
a15 3
TOOL_DEPENDS+=	cmake-[0-9]*:../../devel/cmake
TOOL_DEPENDS+=	clang-[0-9]*:../../lang/clang

d18 1
a18 1
RUST_REQ=		1.75.0
d24 3
d28 1
d37 1
@


1.38
log
@audio/librespot: needs sse2 on i386
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.37 2025/04/02 09:56:39 pin Exp $
d17 1
a17 1
TOOL_DEPENDS+=  cmake-[0-9]*:../../devel/cmake
@


1.37
log
@audio/librespot: not for 32bits
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.36 2025/02/12 06:44:25 ryoon Exp $
d15 1
a15 1
NOT_FOR_PLATFORM+=	*-*-i386
@


1.36
log
@*: Recursive revbump from audio/flac-1.5.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.35 2024/12/12 07:26:30 pin Exp $
d14 3
@


1.35
log
@audio/librespot: use clang as TOOL_DEPENDS

It's only needed at build time and not at runtime.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.34 2024/11/14 22:18:43 wiz Exp $
d4 1
a4 1
PKGREVISION=	4
@


1.34
log
@*: recursive bump for icu 76 shlib major version bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.33 2024/11/01 12:51:28 wiz Exp $
d4 1
a4 1
PKGREVISION=	3
d15 1
a24 2
RUSTFLAGS+=     -C link-arg=${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.clang}/lib

a33 1
.include "../../lang/clang/buildlink3.mk"
@


1.33
log
@*: revbump for icu downgrade
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.32 2024/11/01 00:50:41 wiz Exp $
d4 1
a4 1
PKGREVISION=	2
@


1.32
log
@*: recursive bump for icu 76.1 shlib bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.31 2024/10/30 21:22:22 pin Exp $
d4 1
a4 1
PKGREVISION=	1
@


1.31
log
@audio/librespot: update to 0.6.0

This version takes another step into the direction of the HTTP API, fixes a couple of bugs, and makes it easier for developers to mock a certain platform.
Also it adds the option to choose avahi, dnssd or libmdns as your zeroconf backend for Spotify Connect discovery.

Changed
    [core] The access_token for http requests is now acquired by login5
    [core] MSRV is now 1.75 (breaking)
    [discovery] librespot can now be compiled with multiple MDNS/DNS-SD backends (avahi, dns_sd, libmdns) which can be selected using a CLI flag. The defaults are unchanged (breaking).

Added
    [core] Add get_token_with_client_id() to get a token for a specific client ID
    [core] Add login (mobile) and auth_token retrieval via login5
    [core] Add OS and os_version to config.rs
    [discovery] Added a new MDNS/DNS-SD backend which connects to Avahi via D-Bus.

Fixed
    [connect] Fixes initial volume showing zero despite playing in full volume instead
    [core] Fix "source slice length (16) does not match destination slice length (20)" panic on some tracks
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.30 2024/10/20 13:20:55 pin Exp $
d4 1
@


1.30
log
@audio/librespot: attempt to fix broken build
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.29 2024/10/19 15:32:44 pin Exp $
d3 1
a3 1
DISTNAME=	librespot-0.5.0
d17 1
a17 1
RUST_REQ=		1.74.0
@


1.29
log
@audio/librespot: fix broken build
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.28 2024/10/16 10:05:03 pin Exp $
d23 2
d34 1
@


1.28
log
@audio/librespot: update to 0.5.0

This version is be a major departure from the architecture up until now. It focuses on implementing the "new Spotify API". This means moving large parts of the Spotify protocol from Mercury to HTTP. A lot of this was reverse engineered before by @@devgianlu of librespot-java. It was long overdue that we started implementing it too, not in the least because new features like the hopefully upcoming Spotify HiFi depend on it.

Splitting up the work on the new Spotify API, v0.5.0 brings HTTP-based file downloads and metadata access. Implementing the "dealer" (replacing the current Mercury-based SPIRC message bus with WebSockets, also required for social plays) is a large and separate effort, slated for some later release.

While at it, we are taking the liberty to do some major refactoring to make librespot more robust. Consequently not only the Spotify API changed but large parts of the librespot API too. For downstream maintainers, we realise that it can be a lot to move from the current codebase to this one, but believe us it will be well worth it.

All these changes are likely to introduce new bugs as well as some regressions. We appreciate all your testing and contributions to the repository: https://github.com/librespot-org/librespot
Changed
    [all] Assertions were changed into Result or removed (breaking)
    [all] Purge use of unwrap, expect and return Result (breaking)
    [all] chrono replaced with time (breaking)
    [all] time updated (CVE-2020-26235)
    [all] Improve lock contention and performance (breaking)
    [all] Use a single player instance. Eliminates occasional player and audio backend restarts, which can cause issues with some playback configurations.
    [all] Updated and removed unused dependencies
    [audio] Files are now downloaded over the HTTPS CDN (breaking)
    [audio] Improve file opening and seeking performance (breaking)
    [core] MSRV is now 1.74 (breaking)
    [connect] DeviceType moved out of connect into core (breaking)
    [connect] Update and expose all spirc context fields (breaking)
    [connect] Add Clone, Default traits to spirc contexts
    [connect] Autoplay contexts are now retrieved with the spclient (breaking)
    [contrib] Updated Docker image
    [core] Message listeners are registered before authenticating. As a result there now is a separate Session::new and subsequent session.connect. (breaking)
    [core] ConnectConfig moved out of core into connect (breaking)
    [core] client_id for get_token moved to SessionConfig (breaking)
    [core] Mercury code has been refactored for better legibility (breaking)
    [core] Cache resolved access points during runtime (breaking)
    [core] FileId is moved out of SpotifyId. For now it will be re-exported.
    [core] Report actual platform data on login
    [core] Support Session authentication with a Spotify access token
    [core] Credentials.username is now an Option (breaking)
    [core] Session::connect tries multiple access points, retrying each one.
    [core] Each access point connection now timeout after 3 seconds.
    [core] Listen on both IPV4 and IPV6 on non-windows hosts
    [main] autoplay {on|off}now acts as an override. If unspecified, librespot now follows the setting in the Connect client that controls it. (breaking)
    [metadata] Most metadata is now retrieved with the spclient (breaking)
    [metadata] Playlists are moved to the playlist4_external protobuf (breaking)
    [metadata] Handle playlists that are sent with microsecond-based timestamps
    [playback] The audio decoder has been switched from lewton to Symphonia. This improves the Vorbis sound quality, adds support for MP3 as well as for FLAC in the future. (breaking)
    [playback] Improve reporting of actual playback cursor
    [playback] The passthrough decoder is now feature-gated (breaking)
    [playback] rodio: call play and pause
    [protocol] protobufs have been updated

Added
    [all] Check that array indexes are within bounds (panic safety)
    [all] Wrap errors in librespot Error type (breaking)
    [audio] Make audio fetch parameters tunable
    [connect] Add option on which zeroconf will bind. Defaults to all interfaces. Ignored by DNS-SD.
    [connect] Add session events
    [connect] Add repeat, set_position_ms and set_volume to spirc.rs
    [contrib] Add event_handler_example.py
    [core] Send metrics with metadata queries: client ID, country & product
    [core] Verify Spotify server certificates (prevents man-in-the-middle attacks)
    [core] User attributes are stored in Session upon login, accessible with a getter and setter, and automatically updated as changes are pushed by the Spotify infrastructure (breaking)
    [core] HTTPS is now supported, including for proxies (breaking)
    [core] Resolve spclient and dealer access points (breaking)
    [core] Get and cache tokens through new token provider (breaking)
    [core] spclient is the API for HTTP-based calls to the Spotify servers. It supports a lot of functionality, including audio previews and image downloads even if librespot doesn't use that for playback itself.
    [core] Support downloading of lyrics
    [core] Support parsing SpotifyId for local files
    [core] Support parsing SpotifyId for named playlists
    [core] Add checks and handling for stale server connections.
    [core] Fix potential deadlock waiting for audio decryption keys.
    [discovery] Add option to show playback device as a group
    [main] Add all player events to player_event_handler.rs
    [main] Add an event worker thread that runs async to the main thread(s) but sync to itself to prevent potential data races for event consumers
    [metadata] All metadata fields in the protobufs are now exposed (breaking)
    [oauth] Standalone module to obtain Spotify access token using OAuth authorization code flow.
    [playback] Explicit tracks are skipped if the controlling Connect client has disabled such content. Applications that use librespot as a library without Connect should use the 'filter-explicit-content' user attribute in the session.
    [playback] Add metadata support via a TrackChanged event
    [connect] Add activate and load functions to Spirc, allowing control over local connect sessions
    [metadata] Add Lyrics
    [discovery] Add discovery initialisation retries if within the 1st min of uptime

Fixed
    [connect] Set PlayStatus to the correct value when Player is loading to avoid blanking out the controls when self.play_status is LoadingPlay or LoadingPause in spirc.rs
    [connect] Handle attempts to play local files better by basically ignoring attempts to load them in handle_remote_update in spirc.rs
    [connect] Loading previous or next tracks, or looping back on repeat, will only start playback when we were already playing
    [connect, playback] Clean up and de-noise events and event firing
    [core] Fixed frequent disconnections for some users
    [core] More strict Spotify ID parsing
    [discovery] Update active user field upon connection
    [playback] Handle invalid track start positions by just starting the track from the beginning
    [playback] Handle disappearing and invalid devices better
    [playback] Handle seek, pause, and play commands while loading
    [playback] Handle disabled normalisation correctly when using fixed volume
    [playback] Do not stop sink in gapless mode
    [metadata] Fix missing colon when converting named spotify IDs to URIs
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.27 2024/04/06 08:04:49 wiz Exp $
d13 2
@


1.27
log
@* recursive bump for libxkbcommon 1.7.0

Marc Baudoin reported problems with using old binary packages
with the new libkxbcommon, so force everything to 1.7.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.26 2024/01/30 14:21:32 ryoon Exp $
d3 1
a3 2
DISTNAME=	librespot-0.4.2
PKGREVISION=	5
d15 2
@


1.27.4.1
log
@Pullup ticket #6908 - requested by pin
audio/librespot: update to restore functionality

Revisions pulled up:
- audio/librespot/Makefile                                      1.30,1.29,1.28
- audio/librespot/cargo-depends.mk                              1.10
- audio/librespot/distinfo                                      1.12

---
   Module Name:    pkgsrc
   Committed By:   pin
   Date:           Sun Oct 20 13:20:55 UTC 2024

   Modified Files:
           pkgsrc/audio/librespot: Makefile

   Log Message:
   audio/librespot: attempt to fix broken build

---
   Module Name:    pkgsrc
   Committed By:   pin
   Date:           Sat Oct 19 15:32:44 UTC 2024

   Modified Files:
           pkgsrc/audio/librespot: Makefile

   Log Message:
   audio/librespot: fix broken build

---
   Module Name:    pkgsrc
   Committed By:   pin
   Date:           Wed Oct 16 10:05:03 UTC 2024

   Modified Files:
           pkgsrc/audio/librespot: Makefile cargo-depends.mk distinfo

   Log Message:
   audio/librespot: update to 0.5.0

   This version is be a major departure from the architecture up until now. It focuses on implementing the "new Spotify API". This means moving large parts of the Spotify protocol from Mercury to HTTP.
   A lot of this was reverse engineered before by @@devgianlu of librespot-java. It was long overdue that we started implementing it too, not in the least because new features like the hopefully upcoming
   Spotify HiFi depend on it.

   Splitting up the work on the new Spotify API, v0.5.0 brings HTTP-based file downloads and metadata access. Implementing the "dealer" (replacing the current Mercury-based SPIRC message bus with
   WebSockets, also required for social plays) is a large and separate effort, slated for some later release.

   While at it, we are taking the liberty to do some major refactoring to make librespot more robust. Consequently not only the Spotify API changed but large parts of the librespot API too. For
   downstream maintainers, we realise that it can be a lot to move from the current codebase to this one, but believe us it will be well worth it.

   All these changes are likely to introduce new bugs as well as some regressions. We appreciate all your testing and contributions to the repository: https://github.com/librespot-org/librespot
   Changed
       [all] Assertions were changed into Result or removed (breaking)
       [all] Purge use of unwrap, expect and return Result (breaking)
       [all] chrono replaced with time (breaking)
       [all] time updated (CVE-2020-26235)
       [all] Improve lock contention and performance (breaking)
       [all] Use a single player instance. Eliminates occasional player and audio backend restarts, which can cause issues with some playback configurations.
       [all] Updated and removed unused dependencies
       [audio] Files are now downloaded over the HTTPS CDN (breaking)
       [audio] Improve file opening and seeking performance (breaking)
       [core] MSRV is now 1.74 (breaking)
       [connect] DeviceType moved out of connect into core (breaking)
       [connect] Update and expose all spirc context fields (breaking)
       [connect] Add Clone, Default traits to spirc contexts
       [connect] Autoplay contexts are now retrieved with the spclient (breaking)
       [contrib] Updated Docker image
       [core] Message listeners are registered before authenticating. As a result there now is a separate Session::new and subsequent session.connect. (breaking)
       [core] ConnectConfig moved out of core into connect (breaking)
       [core] client_id for get_token moved to SessionConfig (breaking)
       [core] Mercury code has been refactored for better legibility (breaking)
       [core] Cache resolved access points during runtime (breaking)
       [core] FileId is moved out of SpotifyId. For now it will be re-exported.
       [core] Report actual platform data on login
       [core] Support Session authentication with a Spotify access token
       [core] Credentials.username is now an Option (breaking)
       [core] Session::connect tries multiple access points, retrying each one.
       [core] Each access point connection now timeout after 3 seconds.
       [core] Listen on both IPV4 and IPV6 on non-windows hosts
       [main] autoplay {on|off}now acts as an override. If unspecified, librespot now follows the setting in the Connect client that controls it. (breaking)
       [metadata] Most metadata is now retrieved with the spclient (breaking)
       [metadata] Playlists are moved to the playlist4_external protobuf (breaking)
       [metadata] Handle playlists that are sent with microsecond-based timestamps
       [playback] The audio decoder has been switched from lewton to Symphonia. This improves the Vorbis sound quality, adds support for MP3 as well as for FLAC in the future. (breaking)
       [playback] Improve reporting of actual playback cursor
       [playback] The passthrough decoder is now feature-gated (breaking)
       [playback] rodio: call play and pause
       [protocol] protobufs have been updated

   Added
       [all] Check that array indexes are within bounds (panic safety)
       [all] Wrap errors in librespot Error type (breaking)
       [audio] Make audio fetch parameters tunable
       [connect] Add option on which zeroconf will bind. Defaults to all interfaces. Ignored by DNS-SD.
       [connect] Add session events
       [connect] Add repeat, set_position_ms and set_volume to spirc.rs
       [contrib] Add event_handler_example.py
       [core] Send metrics with metadata queries: client ID, country & product
       [core] Verify Spotify server certificates (prevents man-in-the-middle attacks)
       [core] User attributes are stored in Session upon login, accessible with a getter and setter, and automatically updated as changes are pushed by the Spotify infrastructure (breaking)
       [core] HTTPS is now supported, including for proxies (breaking)
       [core] Resolve spclient and dealer access points (breaking)
       [core] Get and cache tokens through new token provider (breaking)
       [core] spclient is the API for HTTP-based calls to the Spotify servers. It supports a lot of functionality, including audio previews and image downloads even if librespot doesn't use that for
   playback itself.
       [core] Support downloading of lyrics
       [core] Support parsing SpotifyId for local files
       [core] Support parsing SpotifyId for named playlists
       [core] Add checks and handling for stale server connections.
       [core] Fix potential deadlock waiting for audio decryption keys.
       [discovery] Add option to show playback device as a group
       [main] Add all player events to player_event_handler.rs
       [main] Add an event worker thread that runs async to the main thread(s) but sync to itself to prevent potential data races for event consumers
       [metadata] All metadata fields in the protobufs are now exposed (breaking)
       [oauth] Standalone module to obtain Spotify access token using OAuth authorization code flow.
       [playback] Explicit tracks are skipped if the controlling Connect client has disabled such content. Applications that use librespot as a library without Connect should use the
   'filter-explicit-content' user attribute in the session.
       [playback] Add metadata support via a TrackChanged event
       [connect] Add activate and load functions to Spirc, allowing control over local connect sessions
       [metadata] Add Lyrics
       [discovery] Add discovery initialisation retries if within the 1st min of uptime

   Fixed
       [connect] Set PlayStatus to the correct value when Player is loading to avoid blanking out the controls when self.play_status is LoadingPlay or LoadingPause in spirc.rs
       [connect] Handle attempts to play local files better by basically ignoring attempts to load them in handle_remote_update in spirc.rs
       [connect] Loading previous or next tracks, or looping back on repeat, will only start playback when we were already playing
       [connect, playback] Clean up and de-noise events and event firing
       [core] Fixed frequent disconnections for some users
       [core] More strict Spotify ID parsing
       [discovery] Update active user field upon connection
       [playback] Handle invalid track start positions by just starting the track from the beginning
       [playback] Handle disappearing and invalid devices better
       [playback] Handle seek, pause, and play commands while loading
       [playback] Handle disabled normalisation correctly when using fixed volume
       [playback] Do not stop sink in gapless mode
       [metadata] Fix missing colon when converting named spotify IDs to URIs
@
text
@d1 1
a1 1
# $NetBSD$
d3 2
a4 1
DISTNAME=	librespot-0.5.0
a13 2
TOOL_DEPENDS+=  cmake-[0-9]*:../../devel/cmake

a15 2
RUST_REQ=		1.74.0
USE_LANGUAGES+=		c c++
a19 2
RUSTFLAGS+=     -C link-arg=${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.clang}/lib

a28 1
.include "../../lang/clang/buildlink3.mk"
@


1.26
log
@*: Recursive revbump from audio/pulseaudio-17.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.25 2023/05/06 19:09:01 ryoon Exp $
d4 1
a4 1
PKGREVISION=	4
@


1.25
log
@*: Recursive revbump from audio/libopus 1.4
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.24 2022/09/11 12:51:19 wiz Exp $
d4 1
a4 1
PKGREVISION=	3
@


1.24
log
@*: bump PKGREVISION for flac shlib bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.23 2022/08/11 05:08:03 gutteridge Exp $
d4 1
a4 1
PKGREVISION=	2
@


1.23
log
@Bump all dependent packages of wayland (belatedly)

The package changed with the addition of its libepoll-shim dependency.
Otherwise, we can get:
ERROR: libepoll-shim>=0.0.20210418 is not installed; can't buildlink files.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.22 2022/08/01 14:38:37 pin Exp $
d4 1
a4 1
PKGREVISION=	1
@


1.22
log
@audio/librespot: update to 0.4.2

Besides a couple of small fixes, this point release is mainly to blacklist the
ap-gew4 and ap-gue1 access points that caused librespot to fail to playback
anything.

Development will now shift to the new HTTP-based API, targeted for a future
v0.5.0 release. The new-api branch will therefore be promoted to dev.
This is a major departure from the old API and although it brings many exciting
new things, it is also likely to introduce new bugs and some regressions.

Long story short, this v0.4.2 release is the most stable that librespot has yet
to offer. But, unless anything big comes up, it is also intended as the last
release to be based on the old API. Happy listening.

Changed
    [playback] pipe: Better error handling
    [playback] subprocess: Better error handling

Added
    [core] apresolve: Blacklist ap-gew4 and ap-gue1 access points that cause
    channel errors
    [playback] pipe: Implement stop

Fixed
    [main] fix --opt=value line argument logging
    [playback] alsamixer: make --volume-ctrl fixed work as expected when
    combined with --mixer alsa
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.21 2022/07/02 16:53:06 ryoon Exp $
d4 1
@


1.21
log
@*: Recursive revbump from audio/pulseaudio
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.20 2022/05/23 21:08:34 pin Exp $
d3 1
a3 2
DISTNAME=	librespot-0.4.1
PKGREVISION=	1
@


1.20
log
@audio/librespot: update to 0.4.1

0.4.1 - 2022-05-23
Changed
    [chore] The MSRV is now 1.56

Fixed
    [playback] Fixed dependency issues when installing from crate
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2022/05/22 16:38:02 pin Exp $
d4 1
@


1.19
log
@audio/librespot: update to 0.4.0

0.4.0 - 2022-05-21
Changed
 [chore] The MSRV is now 1.53
 [contrib] Hardened security of the systemd service units
 [core] Session: connect() now returns the long-term credentials
 [core] Session: connect() now accepts a flag if the credentails should be
  stored via the cache
 [main] Different option descriptions and error messages based on what
  backends are enabled at build time
 [playback] More robust dynamic limiter for very wide dynamic range (breaking)
 [playback] alsa: improve --device ? output for the Alsa backend
 [playback] gstreamer: create own context, set correct states and use sync
  handler
 [playback] pipe: create file if it doesn't already exist
 [playback] Sink: write() now receives ownership of the packet (breaking)

Added
 [main] Enforce reasonable ranges for option values (breaking)
 [main] Add the ability to parse environment variables
 [main] Log now emits warning when trying to use options that would otherwise
  have no effect
 [main] Verbose logging now logs all parsed environment variables and command
  line arguments (credentials are redacted)
 [main] Add a -q, --quiet option that changes the logging level to WARN
 [main] Add disable-credential-cache flag (breaking)
 [main] Add a short name for every flag and option
 [playback] pulseaudio: set the PulseAudio name to match librespot's device
  name via PULSE_PROP_application.name environment variable (user set env var
  value takes precedence) (breaking)
 [playback] pulseaudio: set icon to audio-x-generic so we get an icon instead
  of a placeholder via PULSE_PROP_application.icon_name environment variable
  (user set env var value takes precedence) (breaking)
 [playback] pulseaudio: set values to: PULSE_PROP_application.version,
  PULSE_PROP_application.process.binary, PULSE_PROP_stream.description,
  PULSE_PROP_media.software and PULSE_PROP_media.role environment variables
  (user set env var values take precedence) (breaking)

Fixed
 [connect] Don't panic when activating shuffle without previous interaction
 [core] Removed unsafe code (breaking)
 [main] Fix crash when built with Avahi support but Avahi is locally unavailable
 [main] Prevent hang when discovery is disabled and there are no credentials
  or when bad credentials are given
 [main] Don't panic when parsing options, instead list valid values and exit
 [main] --alsa-mixer-device and --alsa-mixer-index now fallback to the card and
  index specified in --device.
 [playback] Adhere to ReplayGain spec when calculating gain normalisation factor
 [playback] alsa: make --volume-range overrides apply to Alsa softvol controls

Removed
 [playback] alsamixer: previously deprecated options mixer-card, mixer-name and
  mixer-index have been removed
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2022/03/28 10:43:35 tnn Exp $
d3 1
a3 1
DISTNAME=	librespot-0.4.0
@


1.18
log
@a*/*: revbump(1) for libsndfile
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2021/12/08 16:03:15 adam Exp $
d3 1
a3 2
DISTNAME=	librespot-0.3.1
PKGREVISION=	3
d24 2
a25 1
	${INSTALL_PROGRAM} ${WRKSRC}/target/release/librespot ${DESTDIR}${PREFIX}/bin
@


1.17
log
@revbump for icu and libffi
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2021/11/15 22:54:03 wiz Exp $
d4 1
a4 1
PKGREVISION=	2
@


1.16
log
@*: recursive bump for gstreamer 1.18.5
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2021/10/24 22:03:55 pin Exp $
d4 1
a4 1
PKGREVISION=	1
@


1.15
log
@audio/librespot: update to 0.3.1

Changed
-Include build profile in the displayed version information
-[playback] Improve dithering CPU usage by about 33%

Fixed
-[connect] Partly fix behavior after last track of an album/playlist
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2021/10/14 08:01:37 pin Exp $
d4 1
@


1.14
log
@audio/librespot: update to 0.3.0


Added:
- [discovery] The crate `librespot-discovery` for discovery in LAN was created.
Its functionality was previously part of `librespot-connect`.
- [playback] Add support for dithering with `--dither` for lower requantization
error (breaking)
- [playback] Add `--volume-range` option to set dB range and control `log` and
`cubic` volume control curves
- [playback] `alsamixer`: support for querying dB range from Alsa softvol
- [playback] Add `--format F64` (supported by Alsa and GStreamer only)
- [playback] Add `--normalisation-gain-type auto` that switches between album
and track automatically

Changed:
- [audio, playback] Moved `VorbisDecoder`, `VorbisError`, `AudioPacket`,
`PassthroughDecoder`, `PassthroughError`, `DecoderError`, `AudioDecoder` and the
`convert` module from `librespot-audio` to `librespot-playback`. The underlying
crates `vorbis`, `librespot-tremor`, `lewton` and `ogg` should be used directly.
(breaking)
- [audio, playback] Use `Duration` for time constants and functions (breaking)
- [connect, playback] Moved volume controls from `librespot-connect` to
`librespot-playback` crate
- [connect] Synchronize player volume with mixer volume on playback
- [playback] Store and pass samples in 64-bit floating point
- [playback] Make cubic volume control available to all mixers with
`--volume-ctrl cubic`
- [playback] Normalize volumes to `[0.0..1.0]` instead of `[0..65535]` for
greater precision and performance (breaking)
- [playback] `alsamixer`: complete rewrite (breaking)
- [playback] `alsamixer`: query card dB range for the volume control unless
specified otherwise
- [playback] `alsamixer`: use `--device` name for `--mixer-card` unless
specified otherwise
- [playback] `player`: consider errors in `sink.start`, `sink.stop` and
`sink.write` fatal and `exit(1)` (breaking)
- [playback] `player`: make `convert` and `decoder` public so you can implement
your own `Sink`
- [playback] `player`: update default normalisation threshold to -2 dBFS
- [playback] `player`: default normalisation type is now `auto`

Deprecated:
- [connect] The `discovery` module was deprecated in favor of the
`librespot-discovery` crate
- [playback] `alsamixer`: renamed `mixer-card` to `alsa-mixer-device`
- [playback] `alsamixer`: renamed `mixer-name` to `alsa-mixer-control`
- [playback] `alsamixer`: renamed `mixer-index` to `alsa-mixer-index`

Removed:
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed `with-vorbis` and `with-tremor` features
- [playback] `alsamixer`: removed `--mixer-linear-volume` option, now that
`--volume-ctrl {linear|log}` work as expected on Alsa

Fixed:
- [connect] Fix step size on volume up/down events
- [connect] Fix looping back to the first track after the last track of an album
or playlist
- [playback] Incorrect `PlayerConfig::default().normalisation_threshold` caused
distortion when using dynamic volume normalisation downstream
- [playback] Fix `log` and `cubic` volume controls to be mute at zero volume
- [playback] Fix `S24_3` format on big-endian systems
- [playback] `alsamixer`: make `cubic` consistent between cards that report
minimum volume as mute, and cards that report some dB value
- [playback] `alsamixer`: make `--volume-ctrl {linear|log}` work as expected
- [playback] `alsa`, `gstreamer`, `pulseaudio`: always output in native
endianness
- [playback] `alsa`: revert buffer size to ~500 ms
- [playback] `alsa`, `pipe`, `pulseaudio`: better error handling
- [metadata] Skip tracks whose Spotify ID's can't be found (e.g. local files,
which aren't supported)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2021/09/08 21:04:56 nia Exp $
d3 1
a3 1
DISTNAME=	librespot-0.3.0
@


1.13
log
@Recursive revbump for audio/jack
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2021/08/05 08:41:02 pin Exp $
d3 1
a3 2
DISTNAME=	librespot-0.2.0
PKGREVISION=	2
@


1.12
log
@audio/librespot: simplify Makefile
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2021/07/30 12:26:39 ryoon Exp $
d4 1
a4 1
PKGREVISION=	1
@


1.11
log
@*: Recursive revbump from audio/pulseaudio-15.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2021/07/22 16:16:35 tnn Exp $
a15 1
USE_LANGUAGES+=		c # rust, but needs a toolchain to link
@


1.10
log
@g/c RUSTFLAGS from individual package Makefiles. Handled by cargo.mk.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2021/05/04 16:32:55 pin Exp $
d4 1
@


1.9
log
@audio/librespot: update to 0.2.0

BREAKING CHANGES

-Migrate to tokio 1.0. This required a wholesale refactor of the librespot
codebase (#606 #649 #658 #665 #674 #687 #691)
-Replaced fn instances with const in version.rs (#595)
-Option to choose between track and album normalisation added. Defaults to
album, was previously disabled by default (#573)

Features:
-Add preload event for new track playing soon (#546)
-Ogg passthrough support (#569 #664)
-Add high resolution audio control & normalisation (#660)
-Add shuffle command handling (#666 #708)
-Add cache size limit (#675)

Bug fixes:
-Fix streaming mode (#693)
-Fix normalisation (#698)
-Fix rodio warning for alsa (#696)

Maintenance:
-Bump MSRV to 1.48
-Bump dependencies (#710)
-Clean up imports (#652 #667 #668)
-Update examples (#663)
-Change panic! to error! when child process fails to start (onevent program)
(#684)
-Reduce boilerplate (#699)
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2021/02/22 09:37:41 pin Exp $
a19 2
MAKE_ENV+=	RUSTFLAGS=${RUSTFLAGS:Q}

@


1.8
log
@audio/librespot: update to 0.1.6

Upstream responded to my request.
We no longer need the patch and a new release is out.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2021/02/21 18:53:05 pin Exp $
d3 1
a3 1
DISTNAME=	librespot-0.1.6
@


1.7
log
@audio/librespot: update to 0.1.5

Upstream does not provide a ChangeLog and, with six months since the previous
release, changes are too many to pick manually.

Unfortunately, the commit we have been pulling from, and that made it possible
to build without patches (a2f832dff171914935f7e1a98a5da3d7c8a0b789), has been
reverted.

The package again depends on get_if_addrs instead of if-addrs. get_if_addrs is
as an archived crate and needs to be patched to build on NetBSD.
It's not either possible to upstream patches. Actually, the needed patch has
already been upstremed and merged but, it didn't make it into the final release.
On the other hand, if-addrs is actively maintained and would be a better option.

I've contacted the developers by e-mail and asked for the revert reason.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2021/02/07 06:30:13 ryoon Exp $
d3 1
a3 1
DISTNAME=	librespot-0.1.5
@


1.6
log
@*: Recursive revbump from audio/pulseaudio-14.2.nb1
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2021/01/01 09:52:16 ryoon Exp $
d3 1
a3 2
DISTNAME=	librespot-0.1.3
PKGREVISION=	3
d6 1
a6 4
#GITHUB_TAG=	v${PKGVERSION_NOREV}
#Track a specific commit until upstream provides a new release
GITHUB_PROJECT=	librespot
GITHUB_TAG=	a2f832dff171914935f7e1a98a5da3d7c8a0b789
@


1.5
log
@*: Recursive revbump from audio/pulseaudio-14.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2020/10/26 08:29:15 pin Exp $
d4 1
a4 1
PKGREVISION=	2
@


1.4
log
@audio/librespot: simplify Makefile

add cargo-depends.mk
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2020/10/20 23:14:11 tnn Exp $
d4 1
@


1.3
log
@librespot: add options for other audio backends. Leave default as portaudio.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2020/10/20 19:06:59 tnn Exp $
d16 2
a20 269
CARGO_CRATE_DEPENDS+=	aes-0.3.2
CARGO_CRATE_DEPENDS+=	aes-ctr-0.3.0
CARGO_CRATE_DEPENDS+=	aes-soft-0.3.3
CARGO_CRATE_DEPENDS+=	aesni-0.6.0
CARGO_CRATE_DEPENDS+=	alga-0.9.3
CARGO_CRATE_DEPENDS+=	alsa-0.2.2
CARGO_CRATE_DEPENDS+=	alsa-sys-0.1.2
CARGO_CRATE_DEPENDS+=	approx-0.3.2
CARGO_CRATE_DEPENDS+=	arc-swap-0.4.7
CARGO_CRATE_DEPENDS+=	atty-0.2.14
CARGO_CRATE_DEPENDS+=	autocfg-0.1.7
CARGO_CRATE_DEPENDS+=	autocfg-1.0.0
CARGO_CRATE_DEPENDS+=	base64-0.10.1
CARGO_CRATE_DEPENDS+=	base64-0.9.3
CARGO_CRATE_DEPENDS+=	bindgen-0.53.3
CARGO_CRATE_DEPENDS+=	bit-set-0.5.2
CARGO_CRATE_DEPENDS+=	bit-vec-0.6.2
CARGO_CRATE_DEPENDS+=	bitflags-0.7.0
CARGO_CRATE_DEPENDS+=	bitflags-0.9.1
CARGO_CRATE_DEPENDS+=	bitflags-1.2.1
CARGO_CRATE_DEPENDS+=	block-buffer-0.7.3
CARGO_CRATE_DEPENDS+=	block-cipher-trait-0.6.2
CARGO_CRATE_DEPENDS+=	block-modes-0.3.3
CARGO_CRATE_DEPENDS+=	block-padding-0.1.5
CARGO_CRATE_DEPENDS+=	byte-tools-0.3.1
CARGO_CRATE_DEPENDS+=	byteorder-1.3.4
CARGO_CRATE_DEPENDS+=	bytes-0.4.12
CARGO_CRATE_DEPENDS+=	cc-1.0.58
CARGO_CRATE_DEPENDS+=	cexpr-0.4.0
CARGO_CRATE_DEPENDS+=	cfg-if-0.1.10
CARGO_CRATE_DEPENDS+=	chrono-0.4.13
CARGO_CRATE_DEPENDS+=	clang-sys-0.29.3
CARGO_CRATE_DEPENDS+=	cloudabi-0.0.3
CARGO_CRATE_DEPENDS+=	core-foundation-sys-0.5.1
CARGO_CRATE_DEPENDS+=	coreaudio-rs-0.9.1
CARGO_CRATE_DEPENDS+=	coreaudio-sys-0.2.5
CARGO_CRATE_DEPENDS+=	cpal-0.8.2
CARGO_CRATE_DEPENDS+=	crossbeam-deque-0.7.3
CARGO_CRATE_DEPENDS+=	crossbeam-epoch-0.8.2
CARGO_CRATE_DEPENDS+=	crossbeam-queue-0.1.2
CARGO_CRATE_DEPENDS+=	crossbeam-queue-0.2.3
CARGO_CRATE_DEPENDS+=	crossbeam-utils-0.6.6
CARGO_CRATE_DEPENDS+=	crossbeam-utils-0.7.2
CARGO_CRATE_DEPENDS+=	crypto-mac-0.7.0
CARGO_CRATE_DEPENDS+=	ctr-0.3.2
CARGO_CRATE_DEPENDS+=	digest-0.8.1
CARGO_CRATE_DEPENDS+=	dns-sd-0.1.3
CARGO_CRATE_DEPENDS+=	env_logger-0.6.2
CARGO_CRATE_DEPENDS+=	error-chain-0.12.2
CARGO_CRATE_DEPENDS+=	fake-simd-0.1.2
CARGO_CRATE_DEPENDS+=	fnv-1.0.7
CARGO_CRATE_DEPENDS+=	fuchsia-cprng-0.1.1
CARGO_CRATE_DEPENDS+=	fuchsia-zircon-0.3.3
CARGO_CRATE_DEPENDS+=	fuchsia-zircon-sys-0.3.3
CARGO_CRATE_DEPENDS+=	futures-0.1.29
CARGO_CRATE_DEPENDS+=	futures-channel-0.3.5
CARGO_CRATE_DEPENDS+=	futures-core-0.3.5
CARGO_CRATE_DEPENDS+=	futures-cpupool-0.1.8
CARGO_CRATE_DEPENDS+=	futures-executor-0.3.5
CARGO_CRATE_DEPENDS+=	futures-macro-0.3.5
CARGO_CRATE_DEPENDS+=	futures-sink-0.3.5
CARGO_CRATE_DEPENDS+=	futures-task-0.3.5
CARGO_CRATE_DEPENDS+=	futures-util-0.3.5
CARGO_CRATE_DEPENDS+=	gcc-0.3.55
CARGO_CRATE_DEPENDS+=	generic-array-0.12.3
CARGO_CRATE_DEPENDS+=	getopts-0.2.21
CARGO_CRATE_DEPENDS+=	getrandom-0.1.14
CARGO_CRATE_DEPENDS+=	glib-0.9.3
CARGO_CRATE_DEPENDS+=	glib-sys-0.9.1
CARGO_CRATE_DEPENDS+=	glob-0.3.0
CARGO_CRATE_DEPENDS+=	gobject-sys-0.9.1
CARGO_CRATE_DEPENDS+=	gstreamer-0.15.7
CARGO_CRATE_DEPENDS+=	gstreamer-app-0.15.6
CARGO_CRATE_DEPENDS+=	gstreamer-app-sys-0.8.1
CARGO_CRATE_DEPENDS+=	gstreamer-base-0.15.4
CARGO_CRATE_DEPENDS+=	gstreamer-base-sys-0.8.1
CARGO_CRATE_DEPENDS+=	gstreamer-sys-0.8.1
CARGO_CRATE_DEPENDS+=	hermit-abi-0.1.15
CARGO_CRATE_DEPENDS+=	hex-0.3.2
CARGO_CRATE_DEPENDS+=	hmac-0.7.1
CARGO_CRATE_DEPENDS+=	hostname-0.3.1
CARGO_CRATE_DEPENDS+=	httparse-1.3.4
CARGO_CRATE_DEPENDS+=	humantime-1.3.0
CARGO_CRATE_DEPENDS+=	hyper-0.11.27
CARGO_CRATE_DEPENDS+=	hyper-proxy-0.4.1
CARGO_CRATE_DEPENDS+=	idna-0.1.5
CARGO_CRATE_DEPENDS+=	if-addrs-0.6.4
CARGO_CRATE_DEPENDS+=	if-addrs-sys-0.3.1
CARGO_CRATE_DEPENDS+=	iovec-0.1.4
CARGO_CRATE_DEPENDS+=	itoa-0.4.6
CARGO_CRATE_DEPENDS+=	jack-0.5.7
CARGO_CRATE_DEPENDS+=	jack-sys-0.2.0
CARGO_CRATE_DEPENDS+=	kernel32-sys-0.2.2
CARGO_CRATE_DEPENDS+=	language-tags-0.2.2
CARGO_CRATE_DEPENDS+=	lazy_static-1.4.0
CARGO_CRATE_DEPENDS+=	lazycell-1.2.1
CARGO_CRATE_DEPENDS+=	lewton-0.9.4
CARGO_CRATE_DEPENDS+=	libc-0.2.73
CARGO_CRATE_DEPENDS+=	libloading-0.4.3
CARGO_CRATE_DEPENDS+=	libloading-0.5.2
CARGO_CRATE_DEPENDS+=	libm-0.2.1
CARGO_CRATE_DEPENDS+=	libmdns-0.2.7
CARGO_CRATE_DEPENDS+=	libpulse-sys-0.0.0
CARGO_CRATE_DEPENDS+=	librespot-tremor-0.1.0
CARGO_CRATE_DEPENDS+=	linear-map-1.2.0
CARGO_CRATE_DEPENDS+=	lock_api-0.3.4
CARGO_CRATE_DEPENDS+=	log-0.3.9
CARGO_CRATE_DEPENDS+=	log-0.4.11
CARGO_CRATE_DEPENDS+=	match_cfg-0.1.0
CARGO_CRATE_DEPENDS+=	matches-0.1.8
CARGO_CRATE_DEPENDS+=	matrixmultiply-0.2.3
CARGO_CRATE_DEPENDS+=	maybe-uninit-2.0.0
CARGO_CRATE_DEPENDS+=	memchr-2.3.3
CARGO_CRATE_DEPENDS+=	memoffset-0.5.5
CARGO_CRATE_DEPENDS+=	mime-0.3.16
CARGO_CRATE_DEPENDS+=	mio-0.6.22
CARGO_CRATE_DEPENDS+=	mio-named-pipes-0.1.7
CARGO_CRATE_DEPENDS+=	mio-uds-0.6.8
CARGO_CRATE_DEPENDS+=	miow-0.2.1
CARGO_CRATE_DEPENDS+=	miow-0.3.5
CARGO_CRATE_DEPENDS+=	muldiv-0.2.1
CARGO_CRATE_DEPENDS+=	multimap-0.8.1
CARGO_CRATE_DEPENDS+=	nalgebra-0.18.1
CARGO_CRATE_DEPENDS+=	net2-0.2.34
CARGO_CRATE_DEPENDS+=	nix-0.9.0
CARGO_CRATE_DEPENDS+=	nom-5.1.2
CARGO_CRATE_DEPENDS+=	num-0.1.42
CARGO_CRATE_DEPENDS+=	num-bigint-0.2.6
CARGO_CRATE_DEPENDS+=	num-complex-0.2.4
CARGO_CRATE_DEPENDS+=	num-integer-0.1.43
CARGO_CRATE_DEPENDS+=	num-iter-0.1.41
CARGO_CRATE_DEPENDS+=	num-rational-0.2.4
CARGO_CRATE_DEPENDS+=	num-traits-0.2.12
CARGO_CRATE_DEPENDS+=	num_cpus-1.13.0
CARGO_CRATE_DEPENDS+=	ogg-0.7.0
CARGO_CRATE_DEPENDS+=	ogg-sys-0.0.9
CARGO_CRATE_DEPENDS+=	once_cell-1.4.0
CARGO_CRATE_DEPENDS+=	opaque-debug-0.2.3
CARGO_CRATE_DEPENDS+=	parking_lot-0.9.0
CARGO_CRATE_DEPENDS+=	parking_lot_core-0.6.2
CARGO_CRATE_DEPENDS+=	paste-0.1.18
CARGO_CRATE_DEPENDS+=	paste-impl-0.1.18
CARGO_CRATE_DEPENDS+=	pbkdf2-0.3.0
CARGO_CRATE_DEPENDS+=	peeking_take_while-0.1.2
CARGO_CRATE_DEPENDS+=	percent-encoding-1.0.1
CARGO_CRATE_DEPENDS+=	pin-project-0.4.22
CARGO_CRATE_DEPENDS+=	pin-project-internal-0.4.22
CARGO_CRATE_DEPENDS+=	pin-utils-0.1.0
CARGO_CRATE_DEPENDS+=	pkg-config-0.3.18
CARGO_CRATE_DEPENDS+=	portaudio-rs-0.3.2
CARGO_CRATE_DEPENDS+=	portaudio-sys-0.1.1
CARGO_CRATE_DEPENDS+=	ppv-lite86-0.2.8
CARGO_CRATE_DEPENDS+=	proc-macro-hack-0.5.16
CARGO_CRATE_DEPENDS+=	proc-macro-nested-0.1.6
CARGO_CRATE_DEPENDS+=	proc-macro2-0.4.30
CARGO_CRATE_DEPENDS+=	proc-macro2-1.0.19
CARGO_CRATE_DEPENDS+=	protobuf-2.14.0
CARGO_CRATE_DEPENDS+=	protobuf-codegen-2.14.0
CARGO_CRATE_DEPENDS+=	protobuf-codegen-pure-2.14.0
CARGO_CRATE_DEPENDS+=	quick-error-1.2.3
CARGO_CRATE_DEPENDS+=	quote-0.6.13
CARGO_CRATE_DEPENDS+=	quote-1.0.7
CARGO_CRATE_DEPENDS+=	rand-0.3.23
CARGO_CRATE_DEPENDS+=	rand-0.4.6
CARGO_CRATE_DEPENDS+=	rand-0.5.6
CARGO_CRATE_DEPENDS+=	rand-0.6.5
CARGO_CRATE_DEPENDS+=	rand-0.7.3
CARGO_CRATE_DEPENDS+=	rand_chacha-0.1.1
CARGO_CRATE_DEPENDS+=	rand_chacha-0.2.2
CARGO_CRATE_DEPENDS+=	rand_core-0.3.1
CARGO_CRATE_DEPENDS+=	rand_core-0.4.2
CARGO_CRATE_DEPENDS+=	rand_core-0.5.1
CARGO_CRATE_DEPENDS+=	rand_hc-0.1.0
CARGO_CRATE_DEPENDS+=	rand_hc-0.2.0
CARGO_CRATE_DEPENDS+=	rand_isaac-0.1.1
CARGO_CRATE_DEPENDS+=	rand_jitter-0.1.4
CARGO_CRATE_DEPENDS+=	rand_os-0.1.3
CARGO_CRATE_DEPENDS+=	rand_pcg-0.1.2
CARGO_CRATE_DEPENDS+=	rand_xorshift-0.1.1
CARGO_CRATE_DEPENDS+=	rawpointer-0.2.1
CARGO_CRATE_DEPENDS+=	rdrand-0.4.0
CARGO_CRATE_DEPENDS+=	redox_syscall-0.1.57
CARGO_CRATE_DEPENDS+=	regex-1.3.9
CARGO_CRATE_DEPENDS+=	regex-syntax-0.6.18
CARGO_CRATE_DEPENDS+=	relay-0.1.1
CARGO_CRATE_DEPENDS+=	remove_dir_all-0.5.3
CARGO_CRATE_DEPENDS+=	rodio-0.9.0
CARGO_CRATE_DEPENDS+=	rpassword-3.0.2
CARGO_CRATE_DEPENDS+=	rustc-hash-1.1.0
CARGO_CRATE_DEPENDS+=	rustc_version-0.2.3
CARGO_CRATE_DEPENDS+=	ryu-1.0.5
CARGO_CRATE_DEPENDS+=	safemem-0.3.3
CARGO_CRATE_DEPENDS+=	scoped-tls-0.1.2
CARGO_CRATE_DEPENDS+=	scopeguard-1.1.0
CARGO_CRATE_DEPENDS+=	sdl2-0.32.2
CARGO_CRATE_DEPENDS+=	sdl2-sys-0.32.6
CARGO_CRATE_DEPENDS+=	semver-0.9.0
CARGO_CRATE_DEPENDS+=	semver-parser-0.7.0
CARGO_CRATE_DEPENDS+=	serde-1.0.114
CARGO_CRATE_DEPENDS+=	serde_derive-1.0.114
CARGO_CRATE_DEPENDS+=	serde_json-1.0.56
CARGO_CRATE_DEPENDS+=	sha-1-0.8.2
CARGO_CRATE_DEPENDS+=	sha2-0.8.2
CARGO_CRATE_DEPENDS+=	shannon-0.2.0
CARGO_CRATE_DEPENDS+=	shell-words-0.1.0
CARGO_CRATE_DEPENDS+=	shlex-0.1.1
CARGO_CRATE_DEPENDS+=	signal-hook-registry-1.2.0
CARGO_CRATE_DEPENDS+=	slab-0.3.0
CARGO_CRATE_DEPENDS+=	slab-0.4.2
CARGO_CRATE_DEPENDS+=	smallvec-0.2.1
CARGO_CRATE_DEPENDS+=	smallvec-0.6.13
CARGO_CRATE_DEPENDS+=	socket2-0.3.12
CARGO_CRATE_DEPENDS+=	stdweb-0.1.3
CARGO_CRATE_DEPENDS+=	stream-cipher-0.3.2
CARGO_CRATE_DEPENDS+=	subtle-1.0.0
CARGO_CRATE_DEPENDS+=	syn-0.15.44
CARGO_CRATE_DEPENDS+=	syn-1.0.35
CARGO_CRATE_DEPENDS+=	synstructure-0.10.2
CARGO_CRATE_DEPENDS+=	take-0.1.0
CARGO_CRATE_DEPENDS+=	tempfile-3.1.0
CARGO_CRATE_DEPENDS+=	termcolor-1.1.0
CARGO_CRATE_DEPENDS+=	time-0.1.43
CARGO_CRATE_DEPENDS+=	tinyvec-0.3.3
CARGO_CRATE_DEPENDS+=	tokio-0.1.22
CARGO_CRATE_DEPENDS+=	tokio-codec-0.1.2
CARGO_CRATE_DEPENDS+=	tokio-core-0.1.17
CARGO_CRATE_DEPENDS+=	tokio-current-thread-0.1.7
CARGO_CRATE_DEPENDS+=	tokio-executor-0.1.10
CARGO_CRATE_DEPENDS+=	tokio-fs-0.1.7
CARGO_CRATE_DEPENDS+=	tokio-io-0.1.13
CARGO_CRATE_DEPENDS+=	tokio-process-0.2.5
CARGO_CRATE_DEPENDS+=	tokio-proto-0.1.1
CARGO_CRATE_DEPENDS+=	tokio-reactor-0.1.12
CARGO_CRATE_DEPENDS+=	tokio-service-0.1.0
CARGO_CRATE_DEPENDS+=	tokio-signal-0.2.9
CARGO_CRATE_DEPENDS+=	tokio-sync-0.1.8
CARGO_CRATE_DEPENDS+=	tokio-tcp-0.1.4
CARGO_CRATE_DEPENDS+=	tokio-threadpool-0.1.18
CARGO_CRATE_DEPENDS+=	tokio-timer-0.2.13
CARGO_CRATE_DEPENDS+=	tokio-udp-0.1.6
CARGO_CRATE_DEPENDS+=	tokio-uds-0.2.7
CARGO_CRATE_DEPENDS+=	try-lock-0.1.0
CARGO_CRATE_DEPENDS+=	typenum-1.12.0
CARGO_CRATE_DEPENDS+=	unicase-2.6.0
CARGO_CRATE_DEPENDS+=	unicode-bidi-0.3.4
CARGO_CRATE_DEPENDS+=	unicode-normalization-0.1.13
CARGO_CRATE_DEPENDS+=	unicode-width-0.1.8
CARGO_CRATE_DEPENDS+=	unicode-xid-0.1.0
CARGO_CRATE_DEPENDS+=	unicode-xid-0.2.1
CARGO_CRATE_DEPENDS+=	url-1.7.2
CARGO_CRATE_DEPENDS+=	uuid-0.7.4
CARGO_CRATE_DEPENDS+=	vergen-3.1.0
CARGO_CRATE_DEPENDS+=	version_check-0.9.2
CARGO_CRATE_DEPENDS+=	void-1.0.2
CARGO_CRATE_DEPENDS+=	vorbis-0.0.14
CARGO_CRATE_DEPENDS+=	vorbis-sys-0.1.0
CARGO_CRATE_DEPENDS+=	vorbisfile-sys-0.0.8
CARGO_CRATE_DEPENDS+=	want-0.0.4
CARGO_CRATE_DEPENDS+=	wasi-0.9.0+wasi-snapshot-preview1
CARGO_CRATE_DEPENDS+=	winapi-0.2.8
CARGO_CRATE_DEPENDS+=	winapi-0.3.9
CARGO_CRATE_DEPENDS+=	winapi-build-0.1.1
CARGO_CRATE_DEPENDS+=	winapi-i686-pc-windows-gnu-0.4.0
CARGO_CRATE_DEPENDS+=	winapi-util-0.1.5
CARGO_CRATE_DEPENDS+=	winapi-x86_64-pc-windows-gnu-0.4.0
CARGO_CRATE_DEPENDS+=	ws2_32-sys-0.2.1
CARGO_CRATE_DEPENDS+=	zerocopy-0.2.8
CARGO_CRATE_DEPENDS+=	zerocopy-derive-0.1.4

@


1.2
log
@librespot: convert to CARGO_FEATURES
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2020/10/11 13:19:42 pin Exp $
a289 1
RUSTFLAGS+=	-C link-arg=${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.portaudio}/${BUILDLINK_LIBDIRS.portaudio}
d293 2
a294 1
CARGO_FEATURES=			portaudio-backend
a298 1
.include "../../audio/portaudio/buildlink3.mk"
@


1.1
log
@audio/librespot: import

Open source client library for Spotify. It enables applications to use Spotify's
service to contol and play music via various backends, and to act as a Spotify
Connect receiver.
It is an alternative to the official and deprecated closed-source libspotify.
Additionally, it will provide extra features which are not available in the
official library.

Note: librespot only works with Spotify Premium. This will remain the case for
the foreseeable future, as we are unlikely to work on implementing the features
such as limited skips and adverts that would be required to make librespot
compliant with free accounts.
@
text
@d1 1
a1 1
# $NetBSD$
a289 1
CARGO_ARGS+=	${DEFAULT_CARGO_ARGS} --no-default-features --features portaudio-backend
d293 3
@

