diff mbox series

[09/30] package/musl-fts: new package

Message ID 20190922090646.15130-10-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series SELinux improvements | expand

Commit Message

Thomas Petazzoni Sept. 22, 2019, 9:06 a.m. UTC
This package provides a replacement implementation for <fts.h>
functions missing from musl and uClibc-ng.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 DEVELOPERS                     |  1 +
 package/Config.in              |  1 +
 package/musl-fts/Config.in     |  7 +++++++
 package/musl-fts/musl-fts.hash |  3 +++
 package/musl-fts/musl-fts.mk   | 21 +++++++++++++++++++++
 5 files changed, 33 insertions(+)
 create mode 100644 package/musl-fts/Config.in
 create mode 100644 package/musl-fts/musl-fts.hash
 create mode 100644 package/musl-fts/musl-fts.mk

Comments

Matt Weber Sept. 23, 2019, 1:12 p.m. UTC | #1
Thomas,


On Sun, Sep 22, 2019 at 4:07 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> This package provides a replacement implementation for <fts.h>
> functions missing from musl and uClibc-ng.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  DEVELOPERS                     |  1 +
>  package/Config.in              |  1 +
>  package/musl-fts/Config.in     |  7 +++++++
>  package/musl-fts/musl-fts.hash |  3 +++
>  package/musl-fts/musl-fts.mk   | 21 +++++++++++++++++++++
>  5 files changed, 33 insertions(+)
>  create mode 100644 package/musl-fts/Config.in
>  create mode 100644 package/musl-fts/musl-fts.hash
>  create mode 100644 package/musl-fts/musl-fts.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index b427fd92ae..18ef50c311 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2291,6 +2291,7 @@ F:        package/monit/
>  F:     package/mpdecimal/
>  F:     package/msmtp/
>  F:     package/musl/
> +F:     package/musl-fts/
>  F:     package/ne10/
>  F:     package/pkg-python.mk
>  F:     package/pkg-autotools.mk
> diff --git a/package/Config.in b/package/Config.in
> index 2fc11065f6..15572e7a1d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1766,6 +1766,7 @@ endif
>         source "package/msgpack/Config.in"
>         source "package/mtdev2tuio/Config.in"
>         source "package/musl-compat-headers/Config.in"
> +       source "package/musl-fts/Config.in"
>         source "package/openblas/Config.in"
>         source "package/orc/Config.in"
>         source "package/p11-kit/Config.in"
> diff --git a/package/musl-fts/Config.in b/package/musl-fts/Config.in
> new file mode 100644
> index 0000000000..a7f38c182e
> --- /dev/null
> +++ b/package/musl-fts/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_MUSL_FTS
> +       bool "musl-fts"
> +       depends on !BR2_TOOLCHAIN_USES_GLIBC
> +       help
> +         The musl-fts package implements the fts(3) functions
> +         fts_open, fts_read, fts_children, fts_set and fts_close,
> +         which are missing in musl and uClibc-ng C libraries.
> diff --git a/package/musl-fts/musl-fts.hash b/package/musl-fts/musl-fts.hash
> new file mode 100644
> index 0000000000..207fef31ad
> --- /dev/null
> +++ b/package/musl-fts/musl-fts.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256   49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6  musl-fts-v1.2.7.tar.gz
> +sha256   55af87e4017668f54467a3380e7ebbac5e672d8c763bfe95e6fc882a6fdc4046  COPYING
> diff --git a/package/musl-fts/musl-fts.mk b/package/musl-fts/musl-fts.mk
> new file mode 100644
> index 0000000000..190f3864b4
> --- /dev/null
> +++ b/package/musl-fts/musl-fts.mk
> @@ -0,0 +1,21 @@
> +################################################################################
> +#
> +# musl-fts
> +#
> +################################################################################
> +
> +MUSL_FTS_VERSION = v1.2.7

Does it make sense in this case to move the "v" to the SITE like the
other version fix-ups?  I checked release monitoring and it doesn't
look like there is an entry yet for this package (ie. no precedence
has been set yet)

> +MUSL_FTS_SITE = $(call github,void-linux,musl-fts,$(MUSL_FTS_VERSION))

Regards,
Matt
Thomas Petazzoni Sept. 23, 2019, 1:33 p.m. UTC | #2
On Mon, 23 Sep 2019 08:12:17 -0500
Matthew Weber <matthew.weber@collins.com> wrote:

> > +MUSL_FTS_VERSION = v1.2.7  
> 
> Does it make sense in this case to move the "v" to the SITE like the
> other version fix-ups?  I checked release monitoring and it doesn't
> look like there is an entry yet for this package (ie. no precedence
> has been set yet)

It makes complete sense to move the "v" to the site of course. My bad,
this patch was sitting in a Buildroot branch for quite a while, and I
didn't rework it after the "v" cleanup in all other Buildroot packages.

I'll wait for other comments before sending a v2 (which would be
another 22 patches sent on the mailing list), unless someone applies my
patch and does the fix.

Thomas
Matthew Weber Sept. 23, 2019, 1:36 p.m. UTC | #3
Thomas,

On Mon, Sep 23, 2019 at 8:33 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> On Mon, 23 Sep 2019 08:12:17 -0500
> Matthew Weber <matthew.weber@collins.com> wrote:
>
> > > +MUSL_FTS_VERSION = v1.2.7
> >
> > Does it make sense in this case to move the "v" to the SITE like the
> > other version fix-ups?  I checked release monitoring and it doesn't
> > look like there is an entry yet for this package (ie. no precedence
> > has been set yet)
>
> It makes complete sense to move the "v" to the site of course. My bad,
> this patch was sitting in a Buildroot branch for quite a while, and I
> didn't rework it after the "v" cleanup in all other Buildroot packages.
>
> I'll wait for other comments before sending a v2 (which would be
> another 22 patches sent on the mailing list), unless someone applies my
> patch and does the fix.
>

I probably won't send a Reviewed by for the other patches individually
but I did go through them and it looks good.  (Had a few side
conversations on the host selinux dependency removal for
policycoreutils and it seems fine)

Reviewed-by: Matt Weber <matthew.weber@rockwellcollins.com>
Thomas Petazzoni Sept. 23, 2019, 1:44 p.m. UTC | #4
On Mon, 23 Sep 2019 08:36:59 -0500
Matthew Weber <matthew.weber@collins.com> wrote:

> I probably won't send a Reviewed by for the other patches individually
> but I did go through them and it looks good.  (Had a few side
> conversations on the host selinux dependency removal for
> policycoreutils and it seems fine)

Thanks!

Speaking of host python dependencies, I'm also wondering about making
the host-python dependency of host-libselinux and libsemanage optional.
Indeed, they are only needed if you want the Python bindings of
libselinux/libsemanage on the host, and you can perfectly fine have a
working SELinux stack without those.

Now the question is what should trigger the build of those Python
bindings. A visible Config.in.host option ? A hidden Config.in.host
option, but then selected by what ? I guess it's mainly host-setools
that needs the Python bindings of host-libselinux. I'm not sure what
uses the Python bindings of host-libsemanage though.

Thomas
Arnout Vandecappelle Oct. 9, 2019, 10:31 p.m. UTC | #5
On 22/09/2019 11:06, Thomas Petazzoni wrote:
> This package provides a replacement implementation for <fts.h>
> functions missing from musl and uClibc-ng.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

 Now this is applied, a couple of additional packages/options might be enabled
as well...

- clamav's --disable-fanotify might be removed;
- elfutils has a huge patch to add fts which might be removed;
- libcgroup;
- ltp-testsuite depends on !MUSL; neither the Config.in nor commit baedef979cda
explain why exactly, but it might be due to fts.


 Regards,
 Arnout
Thomas Petazzoni Oct. 10, 2019, 7:05 a.m. UTC | #6
On Thu, 10 Oct 2019 00:31:53 +0200
Arnout Vandecappelle <arnout@mind.be> wrote:

>  Now this is applied, a couple of additional packages/options might be enabled
> as well...
> 
> - clamav's --disable-fanotify might be removed;
> - elfutils has a huge patch to add fts which might be removed;
> - libcgroup;
> - ltp-testsuite depends on !MUSL; neither the Config.in nor commit baedef979cda
> explain why exactly, but it might be due to fts.

Absolutely, there's a whole bunch of stuff that can be improved thanks
to this. But the series was already 30 patches long, so I thought it
was already enough.

Thanks for reviewing and merging!

Thomas
Petr Vorel Oct. 10, 2019, 11:22 a.m. UTC | #7
Hi Arnout,

>  Now this is applied, a couple of additional packages/options might be enabled
> as well...

> - clamav's --disable-fanotify might be removed;
> - elfutils has a huge patch to add fts which might be removed;
> - libcgroup;
> - ltp-testsuite depends on !MUSL; neither the Config.in nor commit baedef979cda
> explain why exactly, but it might be due to fts.
Thanks for adding musl-fts, I was thinking about it.

ATM LTP on musl is not blocked by missing fts.h (I need to update that comment
in ltp-testsuite.mk), just cpuset tests aren't compiled if it's not available.
But it'd be nice to select it for uclibc to have these tests compiled.
Feel free to do it or I'll do it (hopefully soon).

LTP under musl itself has more problems. These are mainly caused by some old and
dirty code which depends on glibc specific features (we're slowly rewriting
these tests which fixes it). Some of these problems are on uclibc as well,
Waldemar Brodkorb solved it with just deleting problematic parts. For previous
release I enabled LTP for musl using the same way (more tests needed to be
deleted). I thought I posted it, but it looks like I didn't. I'll update the
patch and send it again.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index b427fd92ae..18ef50c311 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2291,6 +2291,7 @@  F:	package/monit/
 F:	package/mpdecimal/
 F:	package/msmtp/
 F:	package/musl/
+F:	package/musl-fts/
 F:	package/ne10/
 F:	package/pkg-python.mk
 F:	package/pkg-autotools.mk
diff --git a/package/Config.in b/package/Config.in
index 2fc11065f6..15572e7a1d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1766,6 +1766,7 @@  endif
 	source "package/msgpack/Config.in"
 	source "package/mtdev2tuio/Config.in"
 	source "package/musl-compat-headers/Config.in"
+	source "package/musl-fts/Config.in"
 	source "package/openblas/Config.in"
 	source "package/orc/Config.in"
 	source "package/p11-kit/Config.in"
diff --git a/package/musl-fts/Config.in b/package/musl-fts/Config.in
new file mode 100644
index 0000000000..a7f38c182e
--- /dev/null
+++ b/package/musl-fts/Config.in
@@ -0,0 +1,7 @@ 
+config BR2_PACKAGE_MUSL_FTS
+	bool "musl-fts"
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
+	help
+	  The musl-fts package implements the fts(3) functions
+	  fts_open, fts_read, fts_children, fts_set and fts_close,
+	  which are missing in musl and uClibc-ng C libraries.
diff --git a/package/musl-fts/musl-fts.hash b/package/musl-fts/musl-fts.hash
new file mode 100644
index 0000000000..207fef31ad
--- /dev/null
+++ b/package/musl-fts/musl-fts.hash
@@ -0,0 +1,3 @@ 
+# Locally calculated
+sha256	  49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6  musl-fts-v1.2.7.tar.gz
+sha256	  55af87e4017668f54467a3380e7ebbac5e672d8c763bfe95e6fc882a6fdc4046  COPYING
diff --git a/package/musl-fts/musl-fts.mk b/package/musl-fts/musl-fts.mk
new file mode 100644
index 0000000000..190f3864b4
--- /dev/null
+++ b/package/musl-fts/musl-fts.mk
@@ -0,0 +1,21 @@ 
+################################################################################
+#
+# musl-fts
+#
+################################################################################
+
+MUSL_FTS_VERSION = v1.2.7
+MUSL_FTS_SITE = $(call github,void-linux,musl-fts,$(MUSL_FTS_VERSION))
+MUSL_FTS_AUTORECONF = YES
+MUSL_FTS_LICENSE = BSD-3-Clause
+MUSL_FTS_LICENSE_FILES = COPYING
+# pkg-config needed for autoreconf
+MUSL_FTS_DEPENDENCIES = host-pkgconf
+MUSL_FTS_INSTALL_STAGING = YES
+
+define MUSL_FTS_CREATE_M4_DIR
+	mkdir -p $(@D)/m4
+endef
+MUSL_FTS_POST_PATCH_HOOKS += MUSL_FTS_CREATE_M4_DIR
+
+$(eval $(autotools-package))