diff mbox

package/eudev: add libselinux dependency

Message ID 1438262864-6073-1-git-send-email-romain.naour@openwide.fr
State Changes Requested
Headers show

Commit Message

Romain Naour July 30, 2015, 1:27 p.m. UTC
Disable libselinux support with musl toolchains which doesn't have
struct mallinfo.

selinux-util.c: In function ‘mac_selinux_init’:
selinux-util.c:70:25: error: storage size of ‘before_mallinfo’ isn’t known
         struct mallinfo before_mallinfo, after_mallinfo;

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Cc: Clayton Shotwell <clshotwe@rockwellcollins.com>
---
 package/eudev/eudev.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Thomas Petazzoni July 30, 2015, 1:48 p.m. UTC | #1
Dear Romain Naour,

On Thu, 30 Jul 2015 15:27:44 +0200, Romain Naour wrote:
> Disable libselinux support with musl toolchains which doesn't have
> struct mallinfo.
> 
> selinux-util.c: In function ‘mac_selinux_init’:
> selinux-util.c:70:25: error: storage size of ‘before_mallinfo’ isn’t known
>          struct mallinfo before_mallinfo, after_mallinfo;
> 
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> Cc: Clayton Shotwell <clshotwe@rockwellcollins.com>

Thanks for the patch, however I am not sure this is really the right
fix. mallinfo() is only used to display some statistics about the heap
consumption of the SELinux database, so it could be disabled.

So the right fix would be to add a configure.ac check for mallinfo(),
and if available, use it, and if not, remove this useless debug message.

Like in configure.ac:

AC_CHECK_FUNCS([mallinfo])

and then use #ifdef HAVE_MALLINFO in the code.

Now the question is whether something like that would be accepted
upstream. If eudev accepts its own patches that are not in systemd,
then I'd say yes. If however they are really only a copy of the udev
sources from systemd, we would have to get this upstream in systemd,
which has no chance to happen.

Thomas
Romain Naour July 30, 2015, 2:49 p.m. UTC | #2
Hi Thomas, All,

Le 30/07/2015 15:48, Thomas Petazzoni a écrit :
> Dear Romain Naour,
> 
> On Thu, 30 Jul 2015 15:27:44 +0200, Romain Naour wrote:
>> Disable libselinux support with musl toolchains which doesn't have
>> struct mallinfo.
>>
>> selinux-util.c: In function ‘mac_selinux_init’:
>> selinux-util.c:70:25: error: storage size of ‘before_mallinfo’ isn’t known
>>          struct mallinfo before_mallinfo, after_mallinfo;
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>> Cc: Clayton Shotwell <clshotwe@rockwellcollins.com>
> 
> Thanks for the patch, however I am not sure this is really the right
> fix. mallinfo() is only used to display some statistics about the heap
> consumption of the SELinux database, so it could be disabled.
> 
> So the right fix would be to add a configure.ac check for mallinfo(),
> and if available, use it, and if not, remove this useless debug message.
> 
> Like in configure.ac:
> 
> AC_CHECK_FUNCS([mallinfo])
> 
> and then use #ifdef HAVE_MALLINFO in the code.

Ok, I'll try that.
It's true that my patch is a bit rude... ;-)

> 
> Now the question is whether something like that would be accepted
> upstream. If eudev accepts its own patches that are not in systemd,
> then I'd say yes. If however they are really only a copy of the udev
> sources from systemd, we would have to get this upstream in systemd,
> which has no chance to happen.

I don't know, I'm adding Anthony G. Basile in Cc.
Anthony, what do you think about Thomas's proposal ?

Best regards,
Romain

> 
> Thomas
>
Romain Naour July 30, 2015, 6:45 p.m. UTC | #3
Hi,

Le 30/07/2015 20:23, Anthony G. Basile a écrit :
> On 7/30/15 10:49 AM, Romain Naour wrote:
>> Hi Thomas, All,

[snip]

>>>
> Yeah something like that would be acceptable.  I definitely support musl. 
> Submit it and we'll work at getting it in.
> 

Done, see the pull request on github:
https://github.com/gentoo/eudev/pull/122

Thanks!

Best regards,
Romain Naour
diff mbox

Patch

diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 87bce3e..f904cdd 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -44,6 +44,15 @@  else
 EUDEV_CONF_OPTS += --disable-gudev
 endif
 
+# Disable selinux support with musl toolchains which doesn't have
+# struct mallinfo.
+ifeq ($(BR2_PACKAGE_LIBSELINUX)x$(BR2_TOOLCHAIN_USES_MUSL),yx)
+EUDEV_CONF_OPTS += --enable-selinux
+EUDEV_DEPENDENCIES += libselinux
+else
+EUDEV_CONF_OPTS += --disable-selinux
+endif
+
 define EUDEV_INSTALL_INIT_SYSV
 	$(INSTALL) -m 0755 package/eudev/S10udev $(TARGET_DIR)/etc/init.d/S10udev
 endef