Commit c3d9cd9b authored by Jörg Krause's avatar Jörg Krause Committed by Thomas Petazzoni
Browse files

shairplay-sync: new package



[Thomas:
 - rework init script to be more like other Buildroot init scripts,
   and fix indentation.
 - fix indentation in the .mk file
 - remove dependencies on host-autoconf and host-libtool, since the
   package has AUTORECONF = YES, this is not needed.
 - fix licensing informations.]

Signed-off-by: default avatarJörg Krause <jkrause@posteo.de>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 8c42816d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1091,6 +1091,7 @@ endif
	source "package/samba4/Config.in"
	source "package/sconeserver/Config.in"
	source "package/ser2net/Config.in"
	source "package/shairport-sync/Config.in"
	source "package/smcroute/Config.in"
	source "package/socat/Config.in"
	source "package/socketcand/Config.in"
+37 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_SHAIRPORT_SYNC
	bool "shairport-sync"
	depends on BR2_USE_MMU # libdaemon
	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa_lib
	select BR2_PACKAGE_ALSA_LIB
	select BR2_PACKAGE_LIBDAEMON
	select BR2_PACKAGE_POLARSSL if !BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_POPT
	help
	  Shairport Sync emulates an AirPort Express for the purpose of
	  streaming audio from iTunes, iPods, iPhones, iPads and AppleTVs.
	  Audio played by a Shairport Sync-powered device stays in synchrony
	  with the source and thus with other devices that are playing the same
	  source synchronously. Thus, for example, synchronised multi-room
	  audio is possible without difficulty.

	  https://github.com/mikebrady/shairport-sync

if BR2_PACKAGE_SHAIRPORT_SYNC

config BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR
	bool "libsoxr support"
	select BR2_PACKAGE_LIBSOXR
	help
	  Enable support for libsoxr, the SoX Resampler library.

	  Briefly, Shairport Sync keeps in step with the audio source by
	  deleting or inserting frames of audio into the stream as needed. This
	  "interpolation" is normally inaudible, but it can be heard in some
	  circumstances. Libsoxr allows this interpolation to be done much more
	  smoothly and subtly.

endif

comment "shairport-sync needs a toolchain w/ threads"
	depends on BR2_USE_MMU
	depends on !BR2_TOOLCHAIN_HAS_THREADS
+25 −0
Original line number Diff line number Diff line
#! /bin/sh

# Additional options that are passed to Shairport Sync
OPTIONS=""

case "$1" in
    start)
	echo -n "Starting shairport-sync: "
	start-stop-daemon -S -q -m -b -p /var/run/shairport-sync.pid --exec /usr/bin/shairport-sync -- $OPTIONS
	[ $? == 0 ] && echo "OK" || echo "FAIL"
	;;
    stop)
	echo -n "Stopping shairport-sync: "
	start-stop-daemon -K -q -p /var/run/shairport-sync.pid
	[ $? == 0 ] && echo "OK" || echo "FAIL"
	;;
    restart)
	$0 stop
	$0 start
	;;
    *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
	;;
esac
+51 −0
Original line number Diff line number Diff line
################################################################################
#
# shairport-sync
#
################################################################################

SHAIRPORT_SYNC_VERSION = 2.1.5
SHAIRPORT_SYNC_SITE = $(call github,mikebrady,shairport-sync,$(SHAIRPORT_SYNC_VERSION))

# Note: the COPYING file contains the text of GPLv3, but none of the
# code is under this license. Bug reported upstream at
# https://github.com/mikebrady/shairport-sync/issues/13.
SHAIRPORT_SYNC_LICENSE = MIT, BSD-3c
SHAIRPORT_SYNC_LICENSE_FILES = LICENSES
SHAIRPORT_SYNC_DEPENDENCIES = alsa-lib libdaemon popt
SHAIRPORT_SYNC_AUTORECONF = YES
SHAIRPORT_SYNC_CONF_OPTS = --with-alsa # required

# Avahi or tinysvcmdns (shaiport-sync bundles its own version of tinysvcmdns)
ifeq ($(BR2_PACKAGE_AVAHI),y)
SHAIRPORT_SYNC_DEPENDENCIES += avahi
SHAIRPORT_SYNC_CONF_OPTS += --with-avahi
else
SHAIRPORT_SYNC_CONF_OPTS += --with-tinysvcmdns
endif

# OpenSSL or PolarSSL
ifeq ($(BR2_PACKAGE_OPENSSL),y)
SHAIRPORT_SYNC_DEPENDENCIES += openssl
SHAIRPORT_SYNC_CONF_OPTS += --with-openssl
else
SHAIRPORT_SYNC_DEPENDENCIES += polarssl
SHAIRPORT_SYNC_CONF_OPTS += --with-polarssl
endif

ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR),y)
SHAIRPORT_SYNC_DEPENDENCIES += libsoxr
SHAIRPORT_SYNC_CONF_OPTS += --with-soxr
endif

define SHAIRPORT_SYNC_INSTALL_TARGET_CMDS
	$(INSTALL) -D -m 0755 $(@D)/shairport-sync \
		$(TARGET_DIR)/usr/bin/shairport-sync
endef

define SHAIRPORT_SYNC_INSTALL_INIT_SYSV
	$(INSTALL) -D -m 0755 package/shairport-sync/S99shairport-sync \
		$(TARGET_DIR)/etc/init.d/S99shairport-sync
endef

$(eval $(autotools-package))