Skip to contentSkip to conversation

package/shairport-sync: fix avahi dependency

PATCH Superseded Jörg Krause 3 participants 7 messages Oct 30, 2014 – Oct 31, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 package/shairport-sync: fix avahi dependency

Shairport-syncs avahi (zeroconf) support needs libdns_sd which is only build when BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY is selected.

Fixes autobuild errors:
- http://autobuild.buildroot.net/results/a6a/a6ab7641a3cafcdaeffe11f08d5fcacbbb882d8d/
- http://autobuild.buildroot.net/results/cb4/cb41980f2fb416d627bea0950e1dae727eae0ca6/
- http://autobuild.buildroot.net/results/009/00929df01474813be576936e80e86374efdbc327/
- http://autobuild.buildroot.net/results/a40/a40b8cf9aaa4ade4d96524219276cfad2920104c/
- http://autobuild.buildroot.net/results/03f/03fff2805b3348f2557bbef73a716eadea3add03/

---
 package/shairport-sync/shairport-sync.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/shairport-sync/shairport-sync.mk +1 -1
index 58343f4..53d7895 100644
@@ -17,7 +17,7 @@ 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)
+ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
 SHAIRPORT_SYNC_DEPENDENCIES += avahi
 SHAIRPORT_SYNC_CONF_OPTS += --with-avahi
 else
Signature · 1 line
2.1.3
#1 lore raw

PATCH 2/2 package/shairport-sync: bump to version 2.1.8

Bump to version 2.1.8:
* remove comment about COPYING (fixed upstream)
* adapt ssl configure option for openssl and polarssl

---
 package/shairport-sync/shairport-sync.mk | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
package/shairport-sync/shairport-sync.mk +3 -6
index 53d7895..7980119 100644
@@ -4,12 +4,9 @@
 #
 ################################################################################
 
-SHAIRPORT_SYNC_VERSION = 2.1.5
+SHAIRPORT_SYNC_VERSION = 2.1.8
 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
@@ -27,10 +24,10 @@ endif
 # OpenSSL or PolarSSL
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 SHAIRPORT_SYNC_DEPENDENCIES += openssl
-SHAIRPORT_SYNC_CONF_OPTS += --with-openssl
+SHAIRPORT_SYNC_CONF_OPTS += --with-ssl=openssl
 else
 SHAIRPORT_SYNC_DEPENDENCIES += polarssl
-SHAIRPORT_SYNC_CONF_OPTS += --with-polarssl
+SHAIRPORT_SYNC_CONF_OPTS += --with-ssl=polarssl
 endif
 
 ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_LIBSOXR),y)
Signature · 1 line
2.1.3
#2 lore raw

PATCH 2/2 package/shairport-sync: bump to version 2.1.8

Dear J?rg Krause,

Quoted 8 lines · J?rg Krause

Bump to version 2.1.8:
* remove comment about COPYING (fixed upstream)
* adapt ssl configure option for openssl and polarssl

---
 package/shairport-sync/shairport-sync.mk | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/2 package/shairport-sync: fix avahi dependency

In reply to Jörg Krause

Dear J?rg Krause,

Quoted 20 lines · J?rg Krause

Shairport-syncs avahi (zeroconf) support needs libdns_sd which is only build when BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY is selected.

Fixes autobuild errors:
- http://autobuild.buildroot.net/results/a6a/a6ab7641a3cafcdaeffe11f08d5fcacbbb882d8d/
- http://autobuild.buildroot.net/results/cb4/cb41980f2fb416d627bea0950e1dae727eae0ca6/
- http://autobuild.buildroot.net/results/009/00929df01474813be576936e80e86374efdbc327/
- http://autobuild.buildroot.net/results/a40/a40b8cf9aaa4ade4d96524219276cfad2920104c/
- http://autobuild.buildroot.net/results/03f/03fff2805b3348f2557bbef73a716eadea3add03/

---
 package/shairport-sync/shairport-sync.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/shairport-sync/shairport-sync.mk +0 -0
index 58343f4..53d7895 100644

package/shairport-sync/shairport-sync.mk SHAIRPORT_SYNC_AUTORECONF = YES · line 23

Quoted 8 lines
package/shairport-sync/shairport-sync.mk +1 -1
@@ -17,7 +17,7 @@ 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)
+ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
 SHAIRPORT_SYNC_DEPENDENCIES += avahi
 SHAIRPORT_SYNC_CONF_OPTS += --with-avahi
 else

I'm not sure about this one. Automatic dependencies are OK when they are relatively obvious: it's relatively obvious that if you want Avahi support in package "foo", then you should enable Avahi. However, it's clearly not obvious that if you want Avahi support in Shairport-sync, you should have this libdnssd compatibility option of Avahi enabled.

Therefore, my feeling is that this is the sort of case where we should instead introduce a sub-option of Shairport-sync to enable Avahi support, which would select both BR2_PACKAGE_AVAHI and BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY.

Peter, Arnout, Gustavo, an opinion?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/2 package/shairport-sync: fix avahi dependency

Quoted 38 lines · Thomas Petazzoni

Dear J?rg Krause,

Quoted 20 lines · J?rg Krause

Shairport-syncs avahi (zeroconf) support needs libdns_sd which is only build when BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY is selected.

Fixes autobuild errors:
- http://autobuild.buildroot.net/results/a6a/a6ab7641a3cafcdaeffe11f08d5fcacbbb882d8d/
- http://autobuild.buildroot.net/results/cb4/cb41980f2fb416d627bea0950e1dae727eae0ca6/
- http://autobuild.buildroot.net/results/009/00929df01474813be576936e80e86374efdbc327/
- http://autobuild.buildroot.net/results/a40/a40b8cf9aaa4ade4d96524219276cfad2920104c/
- http://autobuild.buildroot.net/results/03f/03fff2805b3348f2557bbef73a716eadea3add03/

---
 package/shairport-sync/shairport-sync.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/shairport-sync/shairport-sync.mk +0 -0
index 58343f4..53d7895 100644

package/shairport-sync/shairport-sync.mk SHAIRPORT_SYNC_AUTORECONF = YES · line 23

Quoted 8 lines
package/shairport-sync/shairport-sync.mk +1 -1
@@ -17,7 +17,7 @@ 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)
+ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
 SHAIRPORT_SYNC_DEPENDENCIES += avahi
 SHAIRPORT_SYNC_CONF_OPTS += --with-avahi
 else

I'm not sure about this one. Automatic dependencies are OK when they are relatively obvious: it's relatively obvious that if you want Avahi support in package "foo", then you should enable Avahi. However, it's clearly not obvious that if you want Avahi support in Shairport-sync, you should have this libdnssd compatibility option of Avahi enabled.

Quoted 6 lines

Therefore, my feeling is that this is the sort of case where we should instead introduce a sub-option of Shairport-sync to enable Avahi support, which would select both BR2_PACKAGE_AVAHI and BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY.

Peter, Arnout, Gustavo, an opinion?

I agree with your theory. However, in this particular case, what you really
want is the DNS-SD support. In case BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY, you'll still get DNS-SD support, just not through avahi but instead through the bundled tinysvcmdns. So I don't think adding a config option for it is really needed.

However, it would still be useful to use avahi when avahi is available. So
instead I'd add to Config.in:

select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY if BR2_PACKAGE_AVAHI_DAEMON

(with the appropriate explanatory comment).

Regards,
Arnout

Quoted 3 lines

Thomas

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH 1/2 package/shairport-sync: fix avahi dependency

Thomas, Arnout, All,

Quoted 52 lines · Arnout Vandecappelle
Quoted 38 lines · Thomas Petazzoni

Dear J?rg Krause,

Quoted 20 lines · J?rg Krause

Shairport-syncs avahi (zeroconf) support needs libdns_sd which is only build when BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY is selected.

Fixes autobuild errors:
- http://autobuild.buildroot.net/results/a6a/a6ab7641a3cafcdaeffe11f08d5fcacbbb882d8d/
- http://autobuild.buildroot.net/results/cb4/cb41980f2fb416d627bea0950e1dae727eae0ca6/
- http://autobuild.buildroot.net/results/009/00929df01474813be576936e80e86374efdbc327/
- http://autobuild.buildroot.net/results/a40/a40b8cf9aaa4ade4d96524219276cfad2920104c/
- http://autobuild.buildroot.net/results/03f/03fff2805b3348f2557bbef73a716eadea3add03/

---
 package/shairport-sync/shairport-sync.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/shairport-sync/shairport-sync.mk +0 -0
index 58343f4..53d7895 100644

package/shairport-sync/shairport-sync.mk SHAIRPORT_SYNC_AUTORECONF = YES · line 23

Quoted 8 lines
package/shairport-sync/shairport-sync.mk +1 -1
@@ -17,7 +17,7 @@ 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)
+ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y)
 SHAIRPORT_SYNC_DEPENDENCIES += avahi
 SHAIRPORT_SYNC_CONF_OPTS += --with-avahi
 else

I'm not sure about this one. Automatic dependencies are OK when they are relatively obvious: it's relatively obvious that if you want Avahi support in package "foo", then you should enable Avahi. However, it's clearly not obvious that if you want Avahi support in Shairport-sync, you should have this libdnssd compatibility option of Avahi enabled.

Quoted 6 lines

Therefore, my feeling is that this is the sort of case where we should instead introduce a sub-option of Shairport-sync to enable Avahi support, which would select both BR2_PACKAGE_AVAHI and BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY.

Peter, Arnout, Gustavo, an opinion?

I agree with your theory. However, in this particular case, what you really
want is the DNS-SD support. In case BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY, you'll still get DNS-SD support, just not through avahi but instead through the bundled tinysvcmdns. So I don't think adding a config option for it is really needed.

Quoted 6 lines

However, it would still be useful to use avahi when avahi is available. So
instead I'd add to Config.in:

select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY if BR2_PACKAGE_AVAHI_DAEMON

(with the appropriate explanatory comment).

shairport-sync uses mDNS to pubish its service. This task is implemented (among others) in avahi and tinysvcmdns.

To use avahi as the mDNS backend, shairport-sync requires libavahi-client, and not necessarily libdns_sd as I thought. Both will work, but libavahi-client is enough.

Before submitting this patch I have run a test with BR2_PACKAGE_AVAHI_DAEMON enabled, which gaves my the same error about the missing libavahi-client.

I've checked the sources of avahi and noticed that libavahi-client depends not only on avahi-daemon, but also on dbus, which was not selected.

Selecting BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY selects BR2_PACKAGE_DBUS, that's why it builds successfully.

To get libavahi-client support shairport-sync needs to select BR2_PACKAGE_AVAHI_DAEMON and BR2_PACKAGE_DBUS which is not quite obvious if you've not checked avahis configure file.

How about a patch for avahi to add BR2_PACKAGE_LIBAVAHI_CLIENT?

Best regards
J?rg Krause

#6 lore raw

PATCH 1/2 package/shairport-sync: fix avahi dependency

On 31/10/14 00:42, J?rg Krause wrote:

[snip]

Quoted 15 lines

shairport-sync uses mDNS to pubish its service. This task is implemented (among others) in avahi and tinysvcmdns.

To use avahi as the mDNS backend, shairport-sync requires libavahi-client, and not necessarily libdns_sd as I thought. Both will work, but libavahi-client is enough.

Before submitting this patch I have run a test with BR2_PACKAGE_AVAHI_DAEMON enabled, which gaves my the same error about the missing libavahi-client.

I've checked the sources of avahi and noticed that libavahi-client depends not only on avahi-daemon, but also on dbus, which was not selected.

Quoted 8 lines

Selecting BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY selects BR2_PACKAGE_DBUS, that's why it builds successfully.

To get libavahi-client support shairport-sync needs to select BR2_PACKAGE_AVAHI_DAEMON and BR2_PACKAGE_DBUS which is not quite obvious if you've not checked avahis configure file.

How about a patch for avahi to add BR2_PACKAGE_LIBAVAHI_CLIENT?

Sounds good to me!

Thanks for the detailed analysis.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F