mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-06 10:09:33 +02:00
remove client/debian and server/debian
This commit is contained in:
parent
d70b4d747b
commit
b7e5a40047
25 changed files with 0 additions and 1337 deletions
|
@ -1,342 +0,0 @@
|
||||||
snapclient (0.16.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Control server: websocket support for JSON RPC
|
|
||||||
-Control server: simple webserver integrated to host web UIs
|
|
||||||
-Control server: bind-to addresses are configurable
|
|
||||||
-Control server: streams can be added and Removed (PR #443)
|
|
||||||
-Control server: group names can be changed (PR #467)
|
|
||||||
-Librespot: add onevent parameter (PR #465)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix build on macOS (Issue #474)
|
|
||||||
* General
|
|
||||||
-Control server uses less threads (one in total, instead of 1+2n)
|
|
||||||
-Snapserver: Configuration is moved into a file
|
|
||||||
-Removed submodules "popl" and "aixlog" to ease build
|
|
||||||
-Snapcast depends on boost::asio and boost::beast (header only)
|
|
||||||
-Tidy up code base
|
|
||||||
-Makefile doesn't statically link libgcc and libstdc++
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 13 Oct 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.15.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Snapclient: make systemd dependeny to avahi-daemon optional
|
|
||||||
-cmake: fix build on FreeBSD
|
|
||||||
-Snapserver: fix occasional deadlock
|
|
||||||
* General
|
|
||||||
-additional linker flags "ADD_LDFLAGS" can be passed to makefile
|
|
||||||
-update man pages, fix lintian warning
|
|
||||||
-Support Android NDK r17
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 07 Jul 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.14.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Snapserver supports IPv4v6 dual stack and IPv4 + IPv6
|
|
||||||
* Bugfixes
|
|
||||||
-cmake: fix check for big endian (Issue #367)
|
|
||||||
-cmake: fix linking against libatomic (PR #368)
|
|
||||||
-Snapclient compiles with Android NDK API level 16 (Issue #365)
|
|
||||||
-Fix compilation errors on FreeBSD (Issue #374, PR #375)
|
|
||||||
* General
|
|
||||||
-cmake: make dependency on avahi optional (PR #378)
|
|
||||||
-cmake: Options to build snapserver and snapclient
|
|
||||||
-cmake: works on FreeBSD
|
|
||||||
-Update external libs (JSON for modern C++, ASIO, AixLog)
|
|
||||||
-Restructured source tree
|
|
||||||
-Moved Android app into separate project "snapdroid"
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Fri, 27 Apr 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.13.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support "volume" parameter for Librespot (PR #273)
|
|
||||||
-Add support for metatags (PR #319)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix overflow in timesync when the system time is many years off
|
|
||||||
-Zeroconf works with IPv6
|
|
||||||
-Snapclient unit file depends on avahi-daemon.service (PR #348)
|
|
||||||
* General
|
|
||||||
-Drop dependency to external "jsonrpc++"
|
|
||||||
-Move OpenWrt and Buildroot support into separate project "SnapOS"
|
|
||||||
-Add CMake support (not fully replacing Make yet) (PR #212)
|
|
||||||
-Remove MIPS support for Android (deprecated by Google)
|
|
||||||
-Use MAC address as default client id (override with "--hostID")
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 04 Mar 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.12.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support for IPv6 (PR #273, #279)
|
|
||||||
-Spotify plugin: onstart and onstop parameter (PR #225)
|
|
||||||
-Snapclient: configurable client id (Issue #249)
|
|
||||||
-Android: Snapclient support for ARM, MIPS and X86
|
|
||||||
-Snapserver: Play some silence before going idle (PR #284)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix linker error (Issue #255, #274)
|
|
||||||
-Snapclient: more reliable unique client id (Issue #249, #246)
|
|
||||||
-Snapserver: fix config file permissions (Issue #251)
|
|
||||||
-Snapserver: fix crash on "bye" from control client (Issue #238)
|
|
||||||
-Snapserver: fix crash on port scan (Issue #267)
|
|
||||||
-Snapserver: fix crash when a malformed message is received (Issue #264)
|
|
||||||
* General
|
|
||||||
-Improved logging: Use "--debug" for debug logging
|
|
||||||
-Log to file: Use "--debug=<filename>"
|
|
||||||
-Improved exception handling and error logging (Issue #276)
|
|
||||||
-Android: update to NDK r16 and clang++
|
|
||||||
-hide spotify credentials in json control message (Issue #282)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 17 Oct 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.11.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Snapserver produces high CPU load on some systems (Issue #174)
|
|
||||||
-Snapserver compile error on FreeBSD
|
|
||||||
* General
|
|
||||||
-Updated Markdown files (PR #216, #218)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 21 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.11.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Don't send audio to muted clients (Issue #109, #150)
|
|
||||||
* Bugfixes
|
|
||||||
-Compilation error on recent GCC versions (Issues #146, #170)
|
|
||||||
-Crash when frequently connecting to the control port (Issue #200)
|
|
||||||
-Snapcast App crashes on Android 4.x (Issue #207)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Thu, 16 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.11.0~beta-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Snapclient multi-instance support (Issue #73)
|
|
||||||
-daemon can run as different user (default: snapclient, Issue #89)
|
|
||||||
-Spotify plugin does not require username and password (PR #181)
|
|
||||||
-Spotify plugin is compatible to librespot's pipe backend (PR #158)
|
|
||||||
-Clients are organized in Groups
|
|
||||||
-JSON RPC API supports batch requests
|
|
||||||
* Bugfixes
|
|
||||||
-Resync issue on macOS (Issue #156)
|
|
||||||
-Id in JSON RPC API can be String, Number or NULL (Issue #161)
|
|
||||||
-Use "which" instead of "whereis" to find binaries (PR #196, Issue #185)
|
|
||||||
-Compiles on lede (Issue #203)
|
|
||||||
* General
|
|
||||||
-JSON RPC API is versionized (current version is 2.0.0)
|
|
||||||
-Restructured Android App to support Groups
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 04 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.10.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added support "process" streams:
|
|
||||||
Snapserver starts a process and reads PCM data from stdout
|
|
||||||
-Specialized versions for Spotify "spotify" and AirPlay "airplay"
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed crash during server shutdown
|
|
||||||
-Fixed Makefile for FreeBSD
|
|
||||||
-Fixed building of dpk (unsigned .changes file)
|
|
||||||
* General
|
|
||||||
-Speed up client and server shutdown
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 16 Nov 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.9.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added (experimental) support for macOS (make TARGET=MACOS)
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: Fixed crash on Nougat (Issue #97)
|
|
||||||
-Fixed FreeBSD compile error for Snapserver (Issue #107)
|
|
||||||
-Snapserver randomly dropped JSON control messages
|
|
||||||
-Long command line options (like --sampleformat)
|
|
||||||
didn't work on some systems (Issue #103)
|
|
||||||
* General
|
|
||||||
-Updated Android NDK to revision 13
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 22 Oct 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.8.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added support for FreeBSD (Issue #67)
|
|
||||||
-Android client: Added Japanese and German translation
|
|
||||||
-Android client: Added support for ogg (Issue #83)
|
|
||||||
* Bugfixes
|
|
||||||
-OpenWRT: makefile automatically sets correct endian (Issue #91)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 24 Jul 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.7.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support for HiRes audio (e.g. 96000:24:2) (Issue #13)
|
|
||||||
Bitdepth must be one of 8, 16, 24 (=24 bit padded to 32) or 32
|
|
||||||
-Auto start option for Android (Issue #49)
|
|
||||||
-creation mode for the fifo can be configured (Issue #52)
|
|
||||||
"-s pipe:///tmp/snapfifo?mode=[read|create]"
|
|
||||||
* Bugfixes
|
|
||||||
-Server was sometimes crashing during shutdown
|
|
||||||
-Exceptions were not properly logged (e.g. unsupported sample rates)
|
|
||||||
-Fixed default sound card detection on OpenWrt
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 07 May 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapclient (0.6.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Port to OpenWrt
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: fixed crash if more than two streams are active
|
|
||||||
* General
|
|
||||||
-Support Tremor, an integer only Ogg-Vorbis implementation
|
|
||||||
-Endian-independent code
|
|
||||||
-Cleaned up build process
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 10 Apr 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.5.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Android client: Fast switching of clients between streams
|
|
||||||
* Bugfixes
|
|
||||||
-Server: Fixed reading of server.json config file
|
|
||||||
* General
|
|
||||||
-Source code cleanups
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Fri, 25 Mar 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.5.0~beta-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Remote control API (JSON)
|
|
||||||
Added version information
|
|
||||||
Stream playing state (unknown, idle, playing, inactive) (Issue #34)
|
|
||||||
-Android client: manually configure snapserver host name
|
|
||||||
-Android client compatibility improved: armeabi and armeabi-v7 binaries
|
|
||||||
-Android client: configurable latency
|
|
||||||
-Improved compatibility to Mopidy (GStreamer) (Issue #23)
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: fixed "hide offline" on start
|
|
||||||
-Store config in /var/lib/snapcast/ when running as daemon (Issue #33)
|
|
||||||
* General
|
|
||||||
-README.md: Added resampling command to the Mopidy section (Issue #32)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 09 Mar 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.5.0~beta-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Remote control API (JSON)
|
|
||||||
Get server status, get streams, get active clients
|
|
||||||
assign volume, assign stream, rename client, ...
|
|
||||||
-Android port of the Snapclient with a remote control app (Issue #9)
|
|
||||||
-Multiple streams ("zones") can be configured (Issue #21)
|
|
||||||
Use "-s, --stream" to add a stream URI: path, name, codec, sample format
|
|
||||||
E.g. "pipe:///tmp/snapfifo?name=Radio&sampleformat=48000:16:2&codec=flac"
|
|
||||||
or "file:///home/user/some_pcm_file.wav?name=file"
|
|
||||||
-Added .default file for the service (/etc/default/snapserver).
|
|
||||||
Default program options should be configured here (e.g. streams)
|
|
||||||
* Bugfixes
|
|
||||||
-pipe reader recovers if the pipe has been reopened
|
|
||||||
* General
|
|
||||||
-SnapCast is renamed to Snapcast
|
|
||||||
SnapClient => Snapclient
|
|
||||||
SnapServer => Snapserver
|
|
||||||
-Snapcast protocol:
|
|
||||||
Less messaging: SampleFormat, Command, Ack, String, not yet final
|
|
||||||
-Removed dependency to boost
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 09 Feb 2016 13:25:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.4.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Debian packages (.deb) are linked statically against libgcc and libstdc++
|
|
||||||
to improve compatibility
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 12 Mar 2016 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.4.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Debian packages (.deb) for amd64 and armhf
|
|
||||||
-Added man pages
|
|
||||||
* Bugfixes
|
|
||||||
-Snapserver and Snapclient are started as daemon on systemd systems
|
|
||||||
(e.g. ARCH, Debian Jessie)
|
|
||||||
* General
|
|
||||||
-Snapserver is started with normal process priority
|
|
||||||
(changed nice from -3 to 0)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Mon, 28 Dec 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.3.4) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Fix synchronization bug in FLAC decoder that could cause audible dropouts
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 23 Dec 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.3.3) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Fix Segfault when ALSA device has no description
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 15 Nov 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.3.2) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Makefile uses CXX instead of CC to invoke the c++ compiler
|
|
||||||
* Bugfixes
|
|
||||||
-Time calculation for PCM chunk play-out was wrong on some gcc versions
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 30 Sep 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.3.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Improved stability over WiFi by avoiding simultaneous reads/writes on the
|
|
||||||
socket connection
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed a bug in avahi browser
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 26 Aug 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapclient (0.3.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Configurable codec options. Run snapserver -c [flac|ogg|pcm]:? to get
|
|
||||||
supported options for the codec
|
|
||||||
-Configurable buffer size for the pipe reader
|
|
||||||
(default 20ms, was 50ms before)
|
|
||||||
-Process priority can be changed as argument to the daemon option -d<proi>
|
|
||||||
Default priority is -3
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed deadlock in logger
|
|
||||||
-Fixed occasional timeouts for client to server requests
|
|
||||||
(e.g. time sync commands)
|
|
||||||
-Client didn't connect to a local server if the loopback device is the only
|
|
||||||
device with an address
|
|
||||||
* General
|
|
||||||
-Code clean up
|
|
||||||
-Refactored encoding for lower latency
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 16 Aug 2015 19:25:51 +0100
|
|
||||||
|
|
||||||
snapclient (0.2.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Arch Linux compatibility
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Fri, 24 Jul 2015 15:47:00 +0100
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
9
|
|
|
@ -1,21 +0,0 @@
|
||||||
Source: snapclient
|
|
||||||
Section: utils
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
Build-Depends: debhelper (>= 9.0.0), libc6-dev, dh-systemd, libasound2-dev, libavahi-client-dev (>= 0.6.16), libflac-dev (>= 1.3.0), libogg-dev (>= 1.0rc3), libvorbis-dev (>= 1.1.2)
|
|
||||||
Standards-Version: 3.8.4
|
|
||||||
Homepage: https://github.com/badaix/snapcast
|
|
||||||
|
|
||||||
Package: snapclient
|
|
||||||
Architecture: any
|
|
||||||
Depends: adduser, ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Snapcast client
|
|
||||||
Snapcast is a multi-room client-server audio player, where all clients are
|
|
||||||
time synchronized with the server to play perfectly synced audio. It's not a
|
|
||||||
standalone player, but an extension that turns your existing audio player into
|
|
||||||
a Sonos-like multi-room solution.
|
|
||||||
.
|
|
||||||
The server's audio input is a named pipe `/tmp/snapfifo`. All data that is fed
|
|
||||||
into this file will be send to the connected clients. One of the most generic
|
|
||||||
ways to use Snapcast is in conjunction with the music player daemon or Mopidy,
|
|
||||||
which can be configured to use a named pipe as audio output.
|
|
|
@ -1,34 +0,0 @@
|
||||||
This work was written and packaged by Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
It was downloaded from: <https://github.com/badaix/snapcast>
|
|
||||||
|
|
||||||
Upstream Author: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
Copyright:
|
|
||||||
|
|
||||||
<Copyright (C) 2014-2019 Johannes Pohl>
|
|
||||||
|
|
||||||
License:
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This package is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
On Debian systems, the complete text of the GNU General
|
|
||||||
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
|
||||||
|
|
||||||
The Debian packaging is:
|
|
||||||
|
|
||||||
Copyright (C) 2014-2019 Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
and is licensed under the GPL version 3, see above.
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
../README.md
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/usr/bin/make -f
|
|
||||||
# -*- makefile -*-
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
# This file was originally written by Joey Hess and Craig Small.
|
|
||||||
# As a special exception, when this file is copied by dh-make into a
|
|
||||||
# dh-make output file, you may use that output file without restriction.
|
|
||||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
# export DH_VERBOSE=1
|
|
||||||
|
|
||||||
%:
|
|
||||||
dh $@ --with=systemd
|
|
|
@ -1,22 +0,0 @@
|
||||||
# defaults file for snapclient
|
|
||||||
|
|
||||||
# start snapclient automatically?
|
|
||||||
START_SNAPCLIENT=true
|
|
||||||
|
|
||||||
# Allowed options:
|
|
||||||
# --help produce help message
|
|
||||||
# -v, --version show version number
|
|
||||||
# -l, --list list pcm devices
|
|
||||||
# -s, --soundcard arg (=default) index or name of the soundcard
|
|
||||||
# -e, --mstderr send metadata to stderr
|
|
||||||
# -h, --host arg server hostname or ip address
|
|
||||||
# -p, --port arg (=1704) server port
|
|
||||||
# -d, --daemon [=arg(=-3)] daemonize, optional process priority [-20..19]
|
|
||||||
# --user arg the user[:group] to run snapclient as when daemonized
|
|
||||||
# --latency arg (=0) latency of the soundcard
|
|
||||||
# -i, --instance arg (=1) instance id
|
|
||||||
# --hostID arg unique host id
|
|
||||||
|
|
||||||
USER_OPTS="--user snapclient:audio"
|
|
||||||
|
|
||||||
SNAPCLIENT_OPTS=""
|
|
|
@ -1,162 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: snapclient
|
|
||||||
# Required-Start: $remote_fs $syslog $network
|
|
||||||
# Required-Stop: $remote_fs $syslog $network
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Snapclient initscript
|
|
||||||
# Description: Snapclient - Snapcast client
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Author: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/
|
|
||||||
DESC="Snapcast client"
|
|
||||||
NAME=snapclient
|
|
||||||
DAEMON=/usr/bin/$NAME
|
|
||||||
PIDFILE=/var/run/$NAME/pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER_OPTS="--user snapclient:audio"
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
SNAPCLIENT_OPTS="-d $USER_OPTS $SNAPCLIENT_OPTS"
|
|
||||||
|
|
||||||
if [ "$START_SNAPCLIENT" != "true" ] ; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
|
||||||
# and status_of_proc is working.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
PIDDIR=$(dirname "$PIDFILE")
|
|
||||||
if [ ! -d "$PIDDIR" ]; then
|
|
||||||
mkdir -m 0755 $PIDDIR
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1
|
|
||||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" -- $SNAPCLIENT_OPTS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
# Wait for children to finish too if this is a daemon that forks
|
|
||||||
# and if the daemon is only ever run from this initscript.
|
|
||||||
# If the above conditions are not satisfied then add some other code
|
|
||||||
# that waits for the process to drop all resources that could be
|
|
||||||
# needed by services started subsequently. A last resort is to
|
|
||||||
# sleep for some time.
|
|
||||||
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
|
||||||
[ "$?" = 2 ] && return 2
|
|
||||||
# Many daemons don't delete their pidfiles when they exit.
|
|
||||||
rm -f $PIDFILE
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
#reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
#log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
#do_reload
|
|
||||||
#log_end_msg $?
|
|
||||||
#;;
|
|
||||||
restart|force-reload)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1)
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0) log_end_msg 0 ;;
|
|
||||||
1) log_end_msg 1 ;; # Old process is still running
|
|
||||||
*) log_end_msg 1 ;; # Failed to start
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Failed to stop
|
|
||||||
log_end_msg 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>Label</key>
|
|
||||||
<string>de.badaix.snapcast.snapclient</string>
|
|
||||||
<key>ProgramArguments</key>
|
|
||||||
<array>
|
|
||||||
<string>/usr/local/bin/snapclient</string>
|
|
||||||
<!-- <string>-d</string> -->
|
|
||||||
</array>
|
|
||||||
<key>RunAtLoad</key>
|
|
||||||
<true/>
|
|
||||||
<key>KeepAlive</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
umask 0022
|
|
||||||
ACTION="$1"
|
|
||||||
VERSION="$2"
|
|
||||||
|
|
||||||
if [ "$ACTION" = "configure" ]; then
|
|
||||||
# add the snapclient user
|
|
||||||
if ! getent passwd snapclient >/dev/null; then
|
|
||||||
useradd --gid audio --system --home-dir /var/lib/snapclient snapclient
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ "$1" = "purge" ]; then
|
|
||||||
# clean up all statoverrides that belonged to snapclient, so the
|
|
||||||
# snapclient system user can be removed cleanly
|
|
||||||
for i in $(dpkg-statoverride --list | awk '/^snapclient / {print $4}'); do
|
|
||||||
if dpkg-statoverride --list --quiet "$i" >/dev/null; then
|
|
||||||
dpkg-statoverride --force --quiet --remove "$i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
userdel --force snapclient > /dev/null || true
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
|
@ -1,15 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Snapcast client
|
|
||||||
After=network-online.target sound.target
|
|
||||||
Requires=network-online.target
|
|
||||||
Wants=avahi-daemon.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
EnvironmentFile=-/etc/default/snapclient
|
|
||||||
Type=forking
|
|
||||||
ExecStart=/usr/bin/snapclient -d $USER_OPTS $SNAPCLIENT_OPTS
|
|
||||||
PIDFile=/var/run/snapclient/pid
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,323 +0,0 @@
|
||||||
snapserver (0.16.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Control server: websocket support for JSON RPC
|
|
||||||
-Control server: simple webserver integrated to host web UIs
|
|
||||||
-Control server: bind-to addresses are configurable
|
|
||||||
-Control server: streams can be added and Removed (PR #443)
|
|
||||||
-Control server: group names can be changed (PR #467)
|
|
||||||
-Librespot: add onevent parameter (PR #465)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix build on macOS (Issue #474)
|
|
||||||
* General
|
|
||||||
-Control server uses less threads (one in total, instead of 1+2n)
|
|
||||||
-Snapserver: Configuration is moved into a file
|
|
||||||
-Removed submodules "popl" and "aixlog" to ease build
|
|
||||||
-Snapcast depends on boost::asio and boost::beast (header only)
|
|
||||||
-Tidy up code base
|
|
||||||
-Makefile doesn't statically link libgcc and libstdc++
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 13 Oct 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.15.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Snapclient: make systemd dependeny to avahi-daemon optional
|
|
||||||
-cmake: fix build on FreeBSD
|
|
||||||
-Snapserver: fix occasional deadlock
|
|
||||||
* General
|
|
||||||
-additional linker flags "ADD_LDFLAGS" can be passed to makefile
|
|
||||||
-update man pages, fix lintian warning
|
|
||||||
-Support Android NDK r17
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 07 Jul 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.13.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support "volume" parameter for Librespot (PR #273)
|
|
||||||
-Add support for metatags (PR #319)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix overflow in timesync when the system time is many years off
|
|
||||||
-Zeroconf works with IPv6
|
|
||||||
-Snapclient unit file depends on avahi-daemon.service (PR #348)
|
|
||||||
* General
|
|
||||||
-Drop dependency to external "jsonrpc++"
|
|
||||||
-Move OpenWrt and Buildroot support into separate project "SnapOS"
|
|
||||||
-Add CMake support (not fully replacing Make yet) (PR #212)
|
|
||||||
-Remove MIPS support for Android (deprecated by Google)
|
|
||||||
-Use MAC address as default client id (override with "--hostID")
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 04 Mar 2018 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.12.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support for IPv6 (PR #273, #279)
|
|
||||||
-Spotify plugin: onstart and onstop parameter (PR #225)
|
|
||||||
-Snapclient: configurable client id (Issue #249)
|
|
||||||
-Android: Snapclient support for ARM, MIPS and X86
|
|
||||||
-Snapserver: Play some silence before going idle (PR #284)
|
|
||||||
* Bugfixes
|
|
||||||
-Fix linker error (Issue #255, #274)
|
|
||||||
-Snapclient: more reliable unique client id (Issue #249, #246)
|
|
||||||
-Snapserver: fix config file permissions (Issue #251)
|
|
||||||
-Snapserver: fix crash on "bye" from control client (Issue #238)
|
|
||||||
-Snapserver: fix crash on port scan (Issue #267)
|
|
||||||
-Snapserver: fix crash when a malformed message is received (Issue #264)
|
|
||||||
* General
|
|
||||||
-Improved logging: Use "--debug" for debug logging
|
|
||||||
-Log to file: Use "--debug=<filename>"
|
|
||||||
-Improved exception handling and error logging (Issue #276)
|
|
||||||
-Android: update to NDK r16 and clang++
|
|
||||||
-hide spotify credentials in json control message (Issue #282)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 17 Oct 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.11.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Snapserver produces high CPU load on some systems (Issue #174)
|
|
||||||
-Snapserver compile error on FreeBSD
|
|
||||||
* General
|
|
||||||
-Updated Markdown files (PR #216, #218)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 21 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.11.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Don't send audio to muted clients (Issue #109, #150)
|
|
||||||
* Bugfixes
|
|
||||||
-Compilation error on recent GCC versions (Issues #146, #170)
|
|
||||||
-Crash when frequently connecting to the control port (Issue #200)
|
|
||||||
-Snapcast App crashes on Android 4.x (Issue #207)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Thu, 16 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.11.0~beta-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Snapclient multi-instance support (Issue #73)
|
|
||||||
-daemon can run as different user (default: snapserver, Issue #89)
|
|
||||||
-Spotify plugin does not require username and password (PR #181)
|
|
||||||
-Spotify plugin is compatible to librespot's pipe backend (PR #158)
|
|
||||||
-Clients are organized in Groups
|
|
||||||
-JSON RPC API supports batch requests
|
|
||||||
* Bugfixes
|
|
||||||
-Resync issue on macOS (Issue #156)
|
|
||||||
-Id in JSON RPC API can be String, Number or NULL (Issue #161)
|
|
||||||
-Use "which" instead of "whereis" to find binaries (PR #196, Issue #185)
|
|
||||||
-Compiles on lede (Issue #203)
|
|
||||||
* General
|
|
||||||
-JSON RPC API is versionized (current version is 2.0.0)
|
|
||||||
-Restructured Android App to support Groups
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 04 Mar 2017 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.10.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added support "process" streams:
|
|
||||||
Snapserver starts a process and reads PCM data from stdout
|
|
||||||
-Specialized versions for Spotify "spotify" and AirPlay "airplay"
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed crash during server shutdown
|
|
||||||
-Fixed Makefile for FreeBSD
|
|
||||||
-Fixed building of dpk (unsigned .changes file)
|
|
||||||
* General
|
|
||||||
-Speed up client and server shutdown
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 16 Nov 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.9.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added (experimental) support for macOS (make TARGET=MACOS)
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: Fixed crash on Nougat (Issue #97)
|
|
||||||
-Fixed FreeBSD compile error for Snapserver (Issue #107)
|
|
||||||
-Snapserver randomly dropped JSON control messages
|
|
||||||
-Long command line options (like --sampleformat)
|
|
||||||
didn't work on some systems (Issue #103)
|
|
||||||
* General
|
|
||||||
-Updated Android NDK to revision 13
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 22 Oct 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.8.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Added support for FreeBSD (Issue #67)
|
|
||||||
-Android client: Added Japanese and German translation
|
|
||||||
-Android client: Added support for ogg (Issue #83)
|
|
||||||
* Bugfixes
|
|
||||||
-OpenWRT: makefile automatically sets correct endian (Issue #91)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 24 Jul 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.7.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Support for HiRes audio (e.g. 96000:24:2) (Issue #13)
|
|
||||||
Bitdepth must be one of 8, 16, 24 (=24 bit padded to 32) or 32
|
|
||||||
-Auto start option for Android (Issue #49)
|
|
||||||
-creation mode for the fifo can be configured (Issue #52)
|
|
||||||
"-s pipe:///tmp/snapfifo?mode=[read|create]"
|
|
||||||
* Bugfixes
|
|
||||||
-Server was sometimes crashing during shutdown
|
|
||||||
-Exceptions were not properly logged (e.g. unsupported sample rates)
|
|
||||||
-Fixed default sound card detection on OpenWrt
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 07 May 2016 00:13:37 +0200
|
|
||||||
|
|
||||||
snapserver (0.6.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Port to OpenWrt
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: fixed crash if more than two streams are active
|
|
||||||
* General
|
|
||||||
-Support Tremor, an integer only Ogg-Vorbis implementation
|
|
||||||
-Endian-independent code
|
|
||||||
-Cleaned up build process
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 10 Apr 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.5.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Android client: Fast switching of clients between streams
|
|
||||||
* Bugfixes
|
|
||||||
-Server: Fixed reading of server.json config file
|
|
||||||
* General
|
|
||||||
-Source code cleanups
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Fri, 25 Mar 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.5.0~beta-2) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Remote control API (JSON)
|
|
||||||
Added version information
|
|
||||||
Stream playing state (unknown, idle, playing, inactive) (Issue #34)
|
|
||||||
-Android client: manually configure snapserver host name
|
|
||||||
-Android client compatibility improved: armeabi and armeabi-v7 binaries
|
|
||||||
-Android client: configurable latency
|
|
||||||
-Improved compatibility to Mopidy (GStreamer) (Issue #23)
|
|
||||||
* Bugfixes
|
|
||||||
-Android client: fixed "hide offline" on start
|
|
||||||
-Store config in /var/lib/snapcast/ when running as daemon (Issue #33)
|
|
||||||
* General
|
|
||||||
-README.md: Added resampling command to the Mopidy section (Issue #32)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 09 Mar 2016 00:02:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.5.0~beta-1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Remote control API (JSON)
|
|
||||||
Get server status, get streams, get active clients
|
|
||||||
assign volume, assign stream, rename client, ...
|
|
||||||
-Android port of the Snapclient with a remote control app (Issue #9)
|
|
||||||
-Multiple streams ("zones") can be configured (Issue #21)
|
|
||||||
Use "-s, --stream" to add a stream URI: path, name, codec, sample format
|
|
||||||
E.g. "pipe:///tmp/snapfifo?name=Radio&sampleformat=48000:16:2&codec=flac"
|
|
||||||
or "file:///home/user/some_pcm_file.wav?name=file"
|
|
||||||
-Added .default file for the service (/etc/default/snapserver).
|
|
||||||
Default program options should be configured here (e.g. streams)
|
|
||||||
* Bugfixes
|
|
||||||
-pipe reader recovers if the pipe has been reopened
|
|
||||||
* General
|
|
||||||
-SnapCast is renamed to Snapcast
|
|
||||||
SnapClient => Snapclient
|
|
||||||
SnapServer => Snapserver
|
|
||||||
-Snapcast protocol:
|
|
||||||
Less messaging: SampleFormat, Command, Ack, String, not yet final
|
|
||||||
-Removed dependency to boost
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Tue, 09 Feb 2016 13:25:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.4.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Debian packages (.deb) are linked statically against libgcc and libstdc++
|
|
||||||
to improve compatibility
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sat, 12 Mar 2016 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.4.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Debian packages (.deb) for amd64 and armhf
|
|
||||||
-Added man pages
|
|
||||||
* Bugfixes
|
|
||||||
-Snapserver and Snapclient are started as daemon on systemd systems
|
|
||||||
(e.g. ARCH, Debian Jessie)
|
|
||||||
* General
|
|
||||||
-Snapserver is started with normal process priority
|
|
||||||
(changed nice from -3 to 0)
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Mon, 28 Dec 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.3.4) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Fix synchronization bug in FLAC decoder that could cause audible dropouts
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 23 Dec 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.3.3) unstable; urgency=low
|
|
||||||
|
|
||||||
* Bugfixes
|
|
||||||
-Fix Segfault when ALSA device has no description
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 15 Nov 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.3.2) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Makefile uses CXX instead of CC to invoke the c++ compiler
|
|
||||||
* Bugfixes
|
|
||||||
-Time calculation for PCM chunk play-out was wrong on some gcc versions
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 30 Sep 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.3.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* General
|
|
||||||
-Improved stability over WiFi by avoiding simultaneous reads/writes on the
|
|
||||||
socket connection
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed a bug in avahi browser
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Wed, 26 Aug 2015 12:00:00 +0200
|
|
||||||
|
|
||||||
snapserver (0.3.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Configurable codec options. Run snapserver -c [flac|ogg|pcm]:? to get
|
|
||||||
supported options for the codec
|
|
||||||
-Configurable buffer size for the pipe reader
|
|
||||||
(default 20ms, was 50ms before)
|
|
||||||
-Process priority can be changed as argument to the daemon option -d<proi>
|
|
||||||
Default priority is -3
|
|
||||||
* Bugfixes
|
|
||||||
-Fixed deadlock in logger
|
|
||||||
-Fixed occasional timeouts for client to server requests
|
|
||||||
(e.g. time sync commands)
|
|
||||||
-Client didn't connect to a local server if the loopback device is the only
|
|
||||||
device with an address
|
|
||||||
* General
|
|
||||||
-Code clean up
|
|
||||||
-Refactored encoding for lower latency
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Sun, 16 Aug 2015 19:25:51 +0100
|
|
||||||
|
|
||||||
snapserver (0.2.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* Features
|
|
||||||
-Arch Linux compatibility
|
|
||||||
|
|
||||||
-- Johannes Pohl <snapcast@badaix.de> Fri, 24 Jul 2015 15:47:00 +0100
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
9
|
|
|
@ -1,21 +0,0 @@
|
||||||
Source: snapserver
|
|
||||||
Section: utils
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
Build-Depends: debhelper (>= 9.0.0), libc6-dev, dh-systemd, libavahi-client-dev (>= 0.6.16), libflac-dev (>= 1.3.0), libogg-dev (>= 1.0rc3), libvorbis-dev (>= 1.1.2)
|
|
||||||
Standards-Version: 3.8.4
|
|
||||||
Homepage: https://github.com/badaix/snapcast
|
|
||||||
|
|
||||||
Package: snapserver
|
|
||||||
Architecture: any
|
|
||||||
Depends: adduser, ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Snapcast server
|
|
||||||
Snapcast is a multi-room client-server audio player, where all clients are
|
|
||||||
time synchronized with the server to play perfectly synced audio. It's not a
|
|
||||||
standalone player, but an extension that turns your existing audio player into
|
|
||||||
a Sonos-like multi-room solution.
|
|
||||||
.
|
|
||||||
The server's audio input is a named pipe `/tmp/snapfifo`. All data that is fed
|
|
||||||
into this file will be send to the connected clients. One of the most generic
|
|
||||||
ways to use Snapcast is in conjunction with the music player daemon or Mopidy,
|
|
||||||
which can be configured to use a named pipe as audio output.
|
|
|
@ -1,34 +0,0 @@
|
||||||
This work was written and packaged by Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
It was downloaded from: <https://github.com/badaix/snapcast>
|
|
||||||
|
|
||||||
Upstream Author: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
Copyright:
|
|
||||||
|
|
||||||
<Copyright (C) 2014-2018 Johannes Pohl>
|
|
||||||
|
|
||||||
License:
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This package is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
On Debian systems, the complete text of the GNU General
|
|
||||||
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
|
||||||
|
|
||||||
The Debian packaging is:
|
|
||||||
|
|
||||||
Copyright (C) 2014-2018 Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
and is licensed under the GPL version 3, see above.
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
../README.md
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/usr/bin/make -f
|
|
||||||
# -*- makefile -*-
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
# This file was originally written by Joey Hess and Craig Small.
|
|
||||||
# As a special exception, when this file is copied by dh-make into a
|
|
||||||
# dh-make output file, you may use that output file without restriction.
|
|
||||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
# export DH_VERBOSE=1
|
|
||||||
|
|
||||||
%:
|
|
||||||
dh $@ --with=systemd
|
|
|
@ -1,36 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# PROVIDE: snapserver
|
|
||||||
# REQUIRE: DAEMON
|
|
||||||
# KEYWORD: Snapserver
|
|
||||||
#
|
|
||||||
# Snapserver - Snapcast server
|
|
||||||
#
|
|
||||||
# Add the following line to /etc/rc.conf to enable snapserver:
|
|
||||||
# snapserver_enable=YES
|
|
||||||
# Add snapserver_opts=<options> to configure command line arguments
|
|
||||||
|
|
||||||
snapserver_opts="-d"
|
|
||||||
|
|
||||||
. /etc/rc.subr
|
|
||||||
|
|
||||||
name=snapserver
|
|
||||||
rcvar=snapserver_enable
|
|
||||||
desc="Snapserver - Snapcast server"
|
|
||||||
|
|
||||||
load_rc_config $name
|
|
||||||
|
|
||||||
: ${snapserver_enable:=NO}
|
|
||||||
|
|
||||||
command=/usr/local/bin/${name}
|
|
||||||
pidfile="/var/run/${name}/pid"
|
|
||||||
|
|
||||||
start_cmd=snapserver_start
|
|
||||||
|
|
||||||
|
|
||||||
snapserver_start() {
|
|
||||||
checkyesno snapserver_enable && echo "Starting snapserver." && ${command} ${snapserver_opts}
|
|
||||||
}
|
|
||||||
|
|
||||||
run_rc_command $1
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
# defaults file for snapserver
|
|
||||||
|
|
||||||
# start snapserver automatically?
|
|
||||||
START_SNAPSERVER=true
|
|
||||||
|
|
||||||
# Allowed options:
|
|
||||||
# -h, --help Produce help message
|
|
||||||
# -v, --version Show version number
|
|
||||||
# -d, --daemon [=arg(=0)] Daemonize
|
|
||||||
# optional process priority [-20..19]
|
|
||||||
# --user arg the user[:group] to run snapserver as when daemonized
|
|
||||||
# -c, --config arg (=/etc/snapserver.conf)
|
|
||||||
# path to the configuration file
|
|
||||||
|
|
||||||
USER_OPTS="--user snapserver:snapserver"
|
|
||||||
|
|
||||||
SNAPSERVER_OPTS=""
|
|
|
@ -1,163 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: snapserver
|
|
||||||
# Required-Start: $remote_fs $syslog $network
|
|
||||||
# Required-Stop: $remote_fs $syslog $network
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Snapserver initscript
|
|
||||||
# Description: Snapserver - Snapcast server
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Author: Johannes Pohl <snapcast@badaix.de>
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/
|
|
||||||
DESC="Snapcast server"
|
|
||||||
NAME=snapserver
|
|
||||||
DAEMON=/usr/bin/$NAME
|
|
||||||
PIDFILE=/var/run/$NAME/pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER_OPTS="--user snapserver:snapserver"
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
SNAPSERVER_OPTS="-d $USER_OPTS $SNAPSERVER_OPTS"
|
|
||||||
|
|
||||||
if [ "$START_SNAPSERVER" != "true" ] ; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
|
||||||
# and status_of_proc is working.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
PIDDIR=$(dirname "$PIDFILE")
|
|
||||||
if [ ! -d "$PIDDIR" ]; then
|
|
||||||
mkdir -m 0755 $PIDDIR
|
|
||||||
chown snapserver:snapserver $PIDDIR
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1
|
|
||||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" -- $SNAPSERVER_OPTS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
# Wait for children to finish too if this is a daemon that forks
|
|
||||||
# and if the daemon is only ever run from this initscript.
|
|
||||||
# If the above conditions are not satisfied then add some other code
|
|
||||||
# that waits for the process to drop all resources that could be
|
|
||||||
# needed by services started subsequently. A last resort is to
|
|
||||||
# sleep for some time.
|
|
||||||
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
|
||||||
[ "$?" = 2 ] && return 2
|
|
||||||
# Many daemons don't delete their pidfiles when they exit.
|
|
||||||
rm -f $PIDFILE
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
#reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
#log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
#do_reload
|
|
||||||
#log_end_msg $?
|
|
||||||
#;;
|
|
||||||
restart|force-reload)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1)
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0) log_end_msg 0 ;;
|
|
||||||
1) log_end_msg 1 ;; # Old process is still running
|
|
||||||
*) log_end_msg 1 ;; # Failed to start
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Failed to stop
|
|
||||||
log_end_msg 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>Label</key>
|
|
||||||
<string>de.badaix.snapcast.snapserver</string>
|
|
||||||
<key>ProgramArguments</key>
|
|
||||||
<array>
|
|
||||||
<string>/usr/local/bin/snapserver</string>
|
|
||||||
<!-- <string>-d</string> -->
|
|
||||||
</array>
|
|
||||||
<key>RunAtLoad</key>
|
|
||||||
<true/>
|
|
||||||
<key>KeepAlive</key>
|
|
||||||
<true/>
|
|
||||||
<key>ProcessType</key>
|
|
||||||
<string>Interactive</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
umask 0022
|
|
||||||
ACTION="$1"
|
|
||||||
VERSION="$2"
|
|
||||||
|
|
||||||
if [ "$ACTION" = "configure" ]; then
|
|
||||||
# add the snapserver user
|
|
||||||
if ! getent passwd snapserver >/dev/null; then
|
|
||||||
useradd --user-group --system --home-dir /var/lib/snapserver snapserver
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ "$1" = "purge" ]; then
|
|
||||||
# clean up all statoverrides that belonged to snapserver, so the
|
|
||||||
# snapserver system user can be removed cleanly
|
|
||||||
for i in $(dpkg-statoverride --list | awk '/^snapserver / {print $4}'); do
|
|
||||||
if dpkg-statoverride --list --quiet "$i" >/dev/null; then
|
|
||||||
dpkg-statoverride --force --quiet --remove "$i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
userdel --force snapserver > /dev/null || true
|
|
||||||
groupdel snapserver > /dev/null || true
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
|
@ -1,14 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Snapcast server
|
|
||||||
After=network-online.target
|
|
||||||
Requires=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
EnvironmentFile=-/etc/default/snapserver
|
|
||||||
Type=forking
|
|
||||||
ExecStart=/usr/bin/snapserver -d $USER_OPTS $SNAPSERVER_OPTS
|
|
||||||
PIDFile=/var/run/snapserver/pid
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
Loading…
Add table
Add a link
Reference in a new issue