remove client/debian and server/debian

This commit is contained in:
badaix 2019-10-14 22:29:51 +02:00
parent d70b4d747b
commit b7e5a40047
25 changed files with 0 additions and 1337 deletions

View file

@ -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

View file

@ -1 +0,0 @@
9

View file

@ -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.

View file

@ -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.

View file

@ -1 +0,0 @@
../README.md

View file

@ -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

View file

@ -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=""

View file

@ -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
:

View file

@ -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>

View file

@ -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#

View file

@ -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#

View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
9

View file

@ -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.

View file

@ -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.

View file

@ -1 +0,0 @@
../README.md

View file

@ -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

View file

@ -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

View file

@ -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=""

View file

@ -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
:

View file

@ -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>

View file

@ -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#

View file

@ -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#

View file

@ -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