Skip to content

v0.4.0

Compare
Choose a tag to compare
@roderickvd roderickvd released this 22 May 18:30
· 565 commits to dev since this release
dff1937

Note: This version was yanked, because a corrupt package was uploaded and failed to install.

This is a polishing release, adding a few little extras and improving on many others. We had to break a couple of API's to do so, and therefore bumped the minor version number. v0.4.x may be the last in series before we migrate from the current channel-based Spotify backend to a more HTTP-based backend. Targeting that major effort for a v0.5 release sometime, we intend to maintain v0.4.x as a stable branch until then.

Changelog

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