diff mbox

[v2,1/1] package/avahi: add optional support for libcap

Message ID 1456077439-26606-1-git-send-email-bernd.kuhls@t-online.de
State Accepted
Headers show

Commit Message

Bernd Kuhls Feb. 21, 2016, 5:57 p.m. UTC
When libcap was compiled before, avahi daemon will use it as optional
dependency:

$ output/host/usr/bin/x86_64-linux-readelf -a output/target/usr/sbin/avahi-daemon | grep NEEDED | sort
 0x0000000000000001 (NEEDED)             Shared library: [libavahi-common.so.3]
 0x0000000000000001 (NEEDED)             Shared library: [libavahi-core.so.7]
 0x0000000000000001 (NEEDED)             Shared library: [libcap.so.2]
[...]

The build system offers no option to en-/disable libcap support:
http://git.0pointer.net/avahi.git/tree/configure.ac#n382

The check for libcap was placed inside the BR2_PACKAGE_AVAHI_DAEMON
because only avahi-daemon uses libcap, it provides chroot support.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
v2: moved the new code block a bit and added more notes about the usage
    of libcap (Thomas)

 package/avahi/avahi.mk | 3 +++
 1 file changed, 3 insertions(+)

Comments

Thomas Petazzoni Feb. 21, 2016, 8:35 p.m. UTC | #1
Dear Bernd Kuhls,

On Sun, 21 Feb 2016 18:57:19 +0100, Bernd Kuhls wrote:
> When libcap was compiled before, avahi daemon will use it as optional
> dependency:
> 
> $ output/host/usr/bin/x86_64-linux-readelf -a output/target/usr/sbin/avahi-daemon | grep NEEDED | sort
>  0x0000000000000001 (NEEDED)             Shared library: [libavahi-common.so.3]
>  0x0000000000000001 (NEEDED)             Shared library: [libavahi-core.so.7]
>  0x0000000000000001 (NEEDED)             Shared library: [libcap.so.2]
> [...]
> 
> The build system offers no option to en-/disable libcap support:
> http://git.0pointer.net/avahi.git/tree/configure.ac#n382
> 
> The check for libcap was placed inside the BR2_PACKAGE_AVAHI_DAEMON
> because only avahi-daemon uses libcap, it provides chroot support.

Still, the configure.ac test is done unconditionally (i.e regardless
of whether the daemon is enabled or not), so I believe we should also
do the same.

Peter, Yann, Arnout, your thoughts?

Thanks,

Thomas
Peter Korsgaard Feb. 21, 2016, 8:43 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Dear Bernd Kuhls,
 > On Sun, 21 Feb 2016 18:57:19 +0100, Bernd Kuhls wrote:
 >> When libcap was compiled before, avahi daemon will use it as optional
 >> dependency:
 >> 
 >> $ output/host/usr/bin/x86_64-linux-readelf -a output/target/usr/sbin/avahi-daemon | grep NEEDED | sort
 >> 0x0000000000000001 (NEEDED)             Shared library: [libavahi-common.so.3]
 >> 0x0000000000000001 (NEEDED)             Shared library: [libavahi-core.so.7]
 >> 0x0000000000000001 (NEEDED)             Shared library: [libcap.so.2]
 >> [...]
 >> 
 >> The build system offers no option to en-/disable libcap support:
 >> http://git.0pointer.net/avahi.git/tree/configure.ac#n382
 >> 
 >> The check for libcap was placed inside the BR2_PACKAGE_AVAHI_DAEMON
 >> because only avahi-daemon uses libcap, it provides chroot support.

 > Still, the configure.ac test is done unconditionally (i.e regardless
 > of whether the daemon is enabled or not), so I believe we should also
 > do the same.

 > Peter, Yann, Arnout, your thoughts?

It's safer to do it unconditionally (and we are unlikely to have
problems with dependency loops with avahi/libcap, so that's not an issue
either).

So I would prefer to have it outside the _DAEMON conditional as well.
Yann E. MORIN Feb. 21, 2016, 9:46 p.m. UTC | #3
Bernd, Thomas, Peter, All,

On 2016-02-21 21:43 +0100, Peter Korsgaard spake thusly:
> >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> 
>  > Dear Bernd Kuhls,
>  > On Sun, 21 Feb 2016 18:57:19 +0100, Bernd Kuhls wrote:
>  >> When libcap was compiled before, avahi daemon will use it as optional
>  >> dependency:
>  >> 
>  >> $ output/host/usr/bin/x86_64-linux-readelf -a output/target/usr/sbin/avahi-daemon | grep NEEDED | sort
>  >> 0x0000000000000001 (NEEDED)             Shared library: [libavahi-common.so.3]
>  >> 0x0000000000000001 (NEEDED)             Shared library: [libavahi-core.so.7]
>  >> 0x0000000000000001 (NEEDED)             Shared library: [libcap.so.2]
>  >> [...]
>  >> 
>  >> The build system offers no option to en-/disable libcap support:
>  >> http://git.0pointer.net/avahi.git/tree/configure.ac#n382
>  >> 
>  >> The check for libcap was placed inside the BR2_PACKAGE_AVAHI_DAEMON
>  >> because only avahi-daemon uses libcap, it provides chroot support.
> 
>  > Still, the configure.ac test is done unconditionally (i.e regardless
>  > of whether the daemon is enabled or not), so I believe we should also
>  > do the same.
> 
>  > Peter, Yann, Arnout, your thoughts?
> 
> It's safer to do it unconditionally (and we are unlikely to have
> problems with dependency loops with avahi/libcap, so that's not an issue
> either).
> 
> So I would prefer to have it outside the _DAEMON conditional as well.

Yes, agreed.

With a comment explaining so, of course.

Regards,
Yann E. MORIN.
Thomas Petazzoni Feb. 25, 2016, 10:12 p.m. UTC | #4
Bernd,

On Sun, 21 Feb 2016 18:57:19 +0100, Bernd Kuhls wrote:
> When libcap was compiled before, avahi daemon will use it as optional
> dependency:
> 
> $ output/host/usr/bin/x86_64-linux-readelf -a output/target/usr/sbin/avahi-daemon | grep NEEDED | sort
>  0x0000000000000001 (NEEDED)             Shared library: [libavahi-common.so.3]
>  0x0000000000000001 (NEEDED)             Shared library: [libavahi-core.so.7]
>  0x0000000000000001 (NEEDED)             Shared library: [libcap.so.2]
> [...]
> 
> The build system offers no option to en-/disable libcap support:
> http://git.0pointer.net/avahi.git/tree/configure.ac#n382
> 
> The check for libcap was placed inside the BR2_PACKAGE_AVAHI_DAEMON
> because only avahi-daemon uses libcap, it provides chroot support.
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
> v2: moved the new code block a bit and added more notes about the usage
>     of libcap (Thomas)

I've changed the patch to have the libcap condition outside of the
avahi daemon condition, as discussed during the review, and applied to
master.

Thanks!

Thomas
diff mbox

Patch

diff --git a/package/avahi/avahi.mk b/package/avahi/avahi.mk
index 5d6e6a8..e84a69e 100644
--- a/package/avahi/avahi.mk
+++ b/package/avahi/avahi.mk
@@ -118,6 +118,9 @@  endif
 ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
 AVAHI_DEPENDENCIES += expat
 AVAHI_CONF_OPTS += --with-xml=expat
+ifeq ($(BR2_PACKAGE_LIBCAP),y)
+AVAHI_DEPENDENCIES += libcap
+endif
 else
 AVAHI_CONF_OPTS += --with-xml=none
 endif