[Buildroot] [PATCH 1/1] shairplay-sync: new package

Yann E. MORIN yann.morin.1998 at free.fr
Mon Oct 20 17:31:37 UTC 2014


Jörg, All,

On 2014-10-20 15:21 +0200, Jörg Krause spake thusly:
> Signed-off-by: Jörg Krause <jkrause at posteo.de>
[--SNIP--]
> diff --git a/package/shairport-sync/Config.in b/package/shairport-sync/Config.in
> new file mode 100644
> index 0000000..2eab88d
> --- /dev/null
> +++ b/package/shairport-sync/Config.in
> @@ -0,0 +1,72 @@
> +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_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
> +
> +choice
> +	prompt "Choose SSL encryption backend"
> +	default BR2_PACKAGE_SHAIRPORT_SYNC_OPENSSL
> +
> +config BR2_PACKAGE_SHAIRPORT_SYNC_OPENSSL
> +	bool "OpenSSL"
> +	select BR2_PACKAGE_OPENSSL
> +
> +config BR2_PACKAGE_SHAIRPORT_SYNC_POLARSSL
> +	bool "PolarSSL"
> +	select BR2_PACKAGE_POLARSSL
> +endchoice

Since this is a choice, either one is selected. Which means SSL support
seems to be not optional.

In that case I would prefer we use something like:

    config BR2_PACKAGE_SHAIRPORT_SYNC
        bool "shairport-sync"
        # Dependencies and selects as above
        select BR2_PACKAGE_POLARSSL if !BR2_PACKAGE_OPENSSL

This way, we ensure at least one SSL implementation is available, and do
not bother the user with a useless prompt.

> +choice
> +	prompt "Choose mDNS backend"
> +	default BR2_PACKAGE_SHAIRPORT_SYNC_AVAHI
> +
> +config BR2_PACKAGE_SHAIRPORT_SYNC_AVAHI
> +	bool "Avahi"
> +	depends on BR2_USE_WCHAR # avahi -> gettext
> +	depends on !BR2_PREFER_STATIC_LIB
> +	select BR2_PACKAGE_AVAHI
> +	select BR2_PACKAGE_AVAHI_DAEMON
> +	select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY
> +
> +comment "Avahi support needs a toolchain w/ wchar, dynamic library"
> +	depends on !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
> +
> +config BR2_PACKAGE_SHAIRPORT_SYNC_TINYSVCMDNS
> +	bool "tinysvcmdns"
> +	help
> +	  tinysvcmdns is a tiny mDNS responder which is only concerned with
> +	  publishing services, without a system-wide daemon like Bonjour or
> +	  Avahi. Its other goal is to be extremely small, embeddable, and have
> +	  no external dependencies.
> +endchoice

There is no tinysvcmdns packaged in Buildroot. Does shairport-sync
bundles its own version? Otherwise, I've seen there is a tinysvcmdns
package on bitbucket: https://bitbucket.org/geekman/tinysvcmdns
Maybe it would be interesting to package it in Buildroot?

If so, I would just remove the choice altogether, and just use
tinysvcmdns if avahi is not enabled.

> +config BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR
> +	bool "libsoxr support"

There, you need to select BR2_PACKAGE_LIBSOXR.

Obviously, adapt the .mk to the above comments.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list