* [Buildroot] [PATCH v2 1/1] shairplay-sync: new package
@ 2014-10-24 22:55 Jörg Krause
2014-10-25 10:29 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Jörg Krause @ 2014-10-24 22:55 UTC (permalink / raw)
To: buildroot
Signed-off-by: J?rg Krause <jkrause@posteo.de>
---
Changes v1 -> v2:
- autoselect SSL backend instead of a user choice
- autoselect zeroconf backend instead of a user choice
- fix missing select for optional package libsoxr
- fix config option for avahi (--with-avahi instead of --with-openssl)
- add comment to tinysvcmdns in shairport-sync.mk
---
package/Config.in | 1 +
package/shairport-sync/Config.in | 37 +++++++++++++++++++++++++
package/shairport-sync/S99shairport-sync | 31 +++++++++++++++++++++
package/shairport-sync/shairport-sync.mk | 47 ++++++++++++++++++++++++++++++++
4 files changed, 116 insertions(+)
create mode 100644 package/shairport-sync/Config.in
create mode 100644 package/shairport-sync/S99shairport-sync
create mode 100644 package/shairport-sync/shairport-sync.mk
diff --git a/package/Config.in b/package/Config.in
index d6cd876..b154219 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1088,6 +1088,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"
diff --git a/package/shairport-sync/Config.in b/package/shairport-sync/Config.in
new file mode 100644
index 0000000..bf40524
--- /dev/null
+++ b/package/shairport-sync/Config.in
@@ -0,0 +1,37 @@
+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
diff --git a/package/shairport-sync/S99shairport-sync b/package/shairport-sync/S99shairport-sync
new file mode 100644
index 0000000..377b0bb
--- /dev/null
+++ b/package/shairport-sync/S99shairport-sync
@@ -0,0 +1,31 @@
+#! /bin/sh
+
+NAME=shairport-sync
+DAEMON=/usr/bin/$NAME
+
+# Additional options that are passed to Shairport Sync
+OPTIONS=""
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting shairport-sync: "
+ start-stop-daemon --start --quiet --exec $DAEMON -- -d $OPTIONS
+ [ $? == 0 ] && echo "OK" || echo "FAIL"
+ ;;
+ stop)
+ echo -n "Stopping shairport-sync: "
+ start-stop-daemon --stop --quiet --name $NAME
+ [ $? == 0 ] && echo "OK" || echo "FAIL"
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
diff --git a/package/shairport-sync/shairport-sync.mk b/package/shairport-sync/shairport-sync.mk
new file mode 100644
index 0000000..c038b60
--- /dev/null
+++ b/package/shairport-sync/shairport-sync.mk
@@ -0,0 +1,47 @@
+################################################################################
+#
+# shairport-sync
+#
+################################################################################
+
+SHAIRPORT_SYNC_VERSION = 2.1.5
+SHAIRPORT_SYNC_SITE = $(call github,mikebrady,shairport-sync,$(SHAIRPORT_SYNC_VERSION))
+SHAIRPORT_SYNC_LICENSE = GPLv3+
+SHAIRPORT_SYNC_LICENSE_FILES = COPYING
+SHAIRPORT_SYNC_DEPENDENCIES = host-autoconf host-libtool 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))
--
2.1.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] shairplay-sync: new package
2014-10-24 22:55 [Buildroot] [PATCH v2 1/1] shairplay-sync: new package Jörg Krause
@ 2014-10-25 10:29 ` Thomas Petazzoni
2014-10-25 13:41 ` Jörg Krause
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2014-10-25 10:29 UTC (permalink / raw)
To: buildroot
Dear J?rg Krause,
On Sat, 25 Oct 2014 00:55:41 +0200, J?rg Krause wrote:
> Signed-off-by: J?rg Krause <jkrause@posteo.de>
> ---
> Changes v1 -> v2:
> - autoselect SSL backend instead of a user choice
> - autoselect zeroconf backend instead of a user choice
> - fix missing select for optional package libsoxr
> - fix config option for avahi (--with-avahi instead of --with-openssl)
> - add comment to tinysvcmdns in shairport-sync.mk
Applied, after doing a few tweaks:
[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.]
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] shairplay-sync: new package
2014-10-25 10:29 ` Thomas Petazzoni
@ 2014-10-25 13:41 ` Jörg Krause
2014-10-25 16:49 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Jörg Krause @ 2014-10-25 13:41 UTC (permalink / raw)
To: buildroot
Dear Thomas,
Am 25.10.2014 12:29 schrieb Thomas Petazzoni:
> Dear J?rg Krause,
>
> On Sat, 25 Oct 2014 00:55:41 +0200, J?rg Krause wrote:
>> Signed-off-by: J?rg Krause <jkrause@posteo.de>
>> ---
>> Changes v1 -> v2:
>> - autoselect SSL backend instead of a user choice
>> - autoselect zeroconf backend instead of a user choice
>> - fix missing select for optional package libsoxr
>> - fix config option for avahi (--with-avahi instead of
>> --with-openssl)
>> - add comment to tinysvcmdns in shairport-sync.mk
>
> Applied, after doing a few tweaks:
>
> [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.]
Many thanks for the thorough review! You even checked the license!
One question to the init script file: shairport-sync uses libdaemon for
creating the pidfile. Does this conflicts with the `-p` switch of
start-stop-daemon?
Best regards
J?rg
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] shairplay-sync: new package
2014-10-25 13:41 ` Jörg Krause
@ 2014-10-25 16:49 ` Thomas Petazzoni
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2014-10-25 16:49 UTC (permalink / raw)
To: buildroot
Dear J?rg Krause,
On Sat, 25 Oct 2014 15:41:02 +0200, J?rg Krause wrote:
> Many thanks for the thorough review! You even checked the license!
>
> One question to the init script file: shairport-sync uses libdaemon for
> creating the pidfile. Does this conflicts with the `-p` switch of
> start-stop-daemon?
Well, in most cases, we use the daemonization feature of
start-stop-daemon rather than the built-in capability of the program to
daemonize itself. Which is why I've removed the -d option from
shairplay-sync.
Could you check if it continues to work properly for you? On my system,
I wasn't able to run shairplay-sync properly, because it seems to
require multicast support in the kernel, which wasn't enabled in my
case.
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-10-25 16:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-24 22:55 [Buildroot] [PATCH v2 1/1] shairplay-sync: new package Jörg Krause
2014-10-25 10:29 ` Thomas Petazzoni
2014-10-25 13:41 ` Jörg Krause
2014-10-25 16:49 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox