diff mbox

rabbitmq-c: needs a toolchain with posix_spawn support

Message ID 1452516753-1555-1-git-send-email-joris.lijssens@gmail.com
State Changes Requested
Headers show

Commit Message

Joris Lijssens Jan. 11, 2016, 12:52 p.m. UTC
Fixes:
http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
Signed-off-by: Joris Lijssens <joris.lijssens@gmail.com>
---
 package/rabbitmq-c/Config.in | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni Jan. 12, 2016, 8:39 p.m. UTC | #1
Hello Joris,

On Mon, 11 Jan 2016 13:52:33 +0100, Joris Lijssens wrote:
> Fixes:
> http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
> Signed-off-by: Joris Lijssens <joris.lijssens@gmail.com>

Missing empty line before your SoB line.

> ---
>  package/rabbitmq-c/Config.in | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/package/rabbitmq-c/Config.in b/package/rabbitmq-c/Config.in
> index b330c90..ec72f82 100644
> --- a/package/rabbitmq-c/Config.in
> +++ b/package/rabbitmq-c/Config.in
> @@ -1,11 +1,15 @@
>  config BR2_PACKAGE_RABBITMQ_C
>  	bool "rabbitmq-c"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on (BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> +		|| BR2_TOOLCHAIN_USES_GLIBC) # spawn.h
>  	help
>  	  This is a C-language AMQP client library for use with v2.0+
>  	  of the RabbitMQ broker.
>  
>  	  https://github.com/alanxz/rabbitmq-c
>  
> -comment "rabbitmq-c needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "rabbitmq-c needs a uclibc snapshot, uclibc-ng or (e)glibc toolchain w/ threads"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS \
> +		|| !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> +		|| BR2_TOOLCHAIN_USES_GLIBC) 

I know that the vlc package is doing the same for its spawn.h
dependency, but I don't like this: the comment says that you need a
"uclibc snapshot or uclibc-ng toolchain", but in practice, if you use
an external toolchain that uses uClibc-ng, you still won't be able to
enable the rabbitmq-c package because BR2_UCLIBC_VERSION_NG is a symbol
that is specific to the internal toolchain backend.

So I see a few options here:

 1/ We do like the blktrace package is doing (for the same reason),
    which is allowing the package only on glibc and musl
    configurations. This is a bit sad because modern uClibc version are
    perfectly capable of handling this package.

 2/ We assume that all uClibc versions are now sufficiently recent and
    we allow the package with uClibc, with a special exception for the
    Blackfin toolchain (which was the reason of the failure).

(If we chose either (1) or (2), then we should align vlc and blktrace
on the chosen solution)

Peter, Yann, what do you think ?

Best regards,

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

Hi,

 > I know that the vlc package is doing the same for its spawn.h
 > dependency, but I don't like this: the comment says that you need a
 > "uclibc snapshot or uclibc-ng toolchain", but in practice, if you use
 > an external toolchain that uses uClibc-ng, you still won't be able to
 > enable the rabbitmq-c package because BR2_UCLIBC_VERSION_NG is a symbol
 > that is specific to the internal toolchain backend.

 > So I see a few options here:

 >  1/ We do like the blktrace package is doing (for the same reason),
 >     which is allowing the package only on glibc and musl
 >     configurations. This is a bit sad because modern uClibc version are
 >     perfectly capable of handling this package.

 >  2/ We assume that all uClibc versions are now sufficiently recent and
 >     we allow the package with uClibc, with a special exception for the
 >     Blackfin toolchain (which was the reason of the failure).

 > (If we chose either (1) or (2), then we should align vlc and blktrace
 > on the chosen solution)

 > Peter, Yann, what do you think ?

Hmm, difficult. We have only defaulted to uClibc-NG since the 2015.08
release, so that's not that long ago (and people can build uClibc based
external toolchains outside Buildroot), but on the other hand you are
basically on your own if you use a custom uClibc based toolchain that
isn't in sync with how we build them - So I would say, go for option 2.

Yann, do you agree?
Yann E. MORIN Jan. 12, 2016, 8:50 p.m. UTC | #3
Joris, thomas, All,

On 2016-01-12 21:39 +0100, Thomas Petazzoni spake thusly:
> On Mon, 11 Jan 2016 13:52:33 +0100, Joris Lijssens wrote:
> > Fixes:
> > http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
> > Signed-off-by: Joris Lijssens <joris.lijssens@gmail.com>
[--SNIP--]
> > diff --git a/package/rabbitmq-c/Config.in b/package/rabbitmq-c/Config.in
> > index b330c90..ec72f82 100644
> > --- a/package/rabbitmq-c/Config.in
> > +++ b/package/rabbitmq-c/Config.in
> > @@ -1,11 +1,15 @@
> >  config BR2_PACKAGE_RABBITMQ_C
> >  	bool "rabbitmq-c"
> >  	depends on BR2_TOOLCHAIN_HAS_THREADS
> > +	depends on (BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> > +		|| BR2_TOOLCHAIN_USES_GLIBC) # spawn.h
> >  	help
> >  	  This is a C-language AMQP client library for use with v2.0+
> >  	  of the RabbitMQ broker.
> >  
> >  	  https://github.com/alanxz/rabbitmq-c
> >  
> > -comment "rabbitmq-c needs a toolchain w/ threads"
> > -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> > +comment "rabbitmq-c needs a uclibc snapshot, uclibc-ng or (e)glibc toolchain w/ threads"
> > +	depends on !BR2_TOOLCHAIN_HAS_THREADS \
> > +		|| !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> > +		|| BR2_TOOLCHAIN_USES_GLIBC) 
> 
> I know that the vlc package is doing the same for its spawn.h
> dependency, but I don't like this: the comment says that you need a
> "uclibc snapshot or uclibc-ng toolchain", but in practice, if you use
> an external toolchain that uses uClibc-ng, you still won't be able to
> enable the rabbitmq-c package because BR2_UCLIBC_VERSION_NG is a symbol
> that is specific to the internal toolchain backend.
> 
> So I see a few options here:
> 
>  1/ We do like the blktrace package is doing (for the same reason),
>     which is allowing the package only on glibc and musl
>     configurations. This is a bit sad because modern uClibc version are
>     perfectly capable of handling this package.
> 
>  2/ We assume that all uClibc versions are now sufficiently recent and
>     we allow the package with uClibc, with a special exception for the
>     Blackfin toolchain (which was the reason of the failure).
> 
> (If we chose either (1) or (2), then we should align vlc and blktrace
> on the chosen solution)
> 
> Peter, Yann, what do you think ?

Well:
  - I don't care much about bfin, 

  - last uClibc verison was ~3 years ago, uClibc snapshot is OK,
    uClibc-ng is capable.

So we can consider that ancient uClibc missing spawn.h is too old, and
we don't support that.

So I'm fine with #2. And of course, we must propagate that decision ot
other similarly-impacted packages, yes.

Regards,
Yann E. MORIN.
Joris Lijssens Jan. 13, 2016, 7:56 a.m. UTC | #4
Hello Thomas, All,

So I will send a new patch excluding the blackfin. are there still other
configurations that use an ancient uClibc without spawn support, or is the
blackfin the only one?

regards
Joris

On 12 January 2016 at 21:50, Yann E. MORIN <yann.morin.1998@free.fr> wrote:

> Joris, thomas, All,
>
> On 2016-01-12 21:39 +0100, Thomas Petazzoni spake thusly:
> > On Mon, 11 Jan 2016 13:52:33 +0100, Joris Lijssens wrote:
> > > Fixes:
> > >
> http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
> > > Signed-off-by: Joris Lijssens <joris.lijssens@gmail.com>
> [--SNIP--]
> > > diff --git a/package/rabbitmq-c/Config.in
> b/package/rabbitmq-c/Config.in
> > > index b330c90..ec72f82 100644
> > > --- a/package/rabbitmq-c/Config.in
> > > +++ b/package/rabbitmq-c/Config.in
> > > @@ -1,11 +1,15 @@
> > >  config BR2_PACKAGE_RABBITMQ_C
> > >     bool "rabbitmq-c"
> > >     depends on BR2_TOOLCHAIN_HAS_THREADS
> > > +   depends on (BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> > > +           || BR2_TOOLCHAIN_USES_GLIBC) # spawn.h
> > >     help
> > >       This is a C-language AMQP client library for use with v2.0+
> > >       of the RabbitMQ broker.
> > >
> > >       https://github.com/alanxz/rabbitmq-c
> > >
> > > -comment "rabbitmq-c needs a toolchain w/ threads"
> > > -   depends on !BR2_TOOLCHAIN_HAS_THREADS
> > > +comment "rabbitmq-c needs a uclibc snapshot, uclibc-ng or (e)glibc
> toolchain w/ threads"
> > > +   depends on !BR2_TOOLCHAIN_HAS_THREADS \
> > > +           || !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
> > > +           || BR2_TOOLCHAIN_USES_GLIBC)
> >
> > I know that the vlc package is doing the same for its spawn.h
> > dependency, but I don't like this: the comment says that you need a
> > "uclibc snapshot or uclibc-ng toolchain", but in practice, if you use
> > an external toolchain that uses uClibc-ng, you still won't be able to
> > enable the rabbitmq-c package because BR2_UCLIBC_VERSION_NG is a symbol
> > that is specific to the internal toolchain backend.
> >
> > So I see a few options here:
> >
> >  1/ We do like the blktrace package is doing (for the same reason),
> >     which is allowing the package only on glibc and musl
> >     configurations. This is a bit sad because modern uClibc version are
> >     perfectly capable of handling this package.
> >
> >  2/ We assume that all uClibc versions are now sufficiently recent and
> >     we allow the package with uClibc, with a special exception for the
> >     Blackfin toolchain (which was the reason of the failure).
> >
> > (If we chose either (1) or (2), then we should align vlc and blktrace
> > on the chosen solution)
> >
> > Peter, Yann, what do you think ?
>
> Well:
>   - I don't care much about bfin,
>
>   - last uClibc verison was ~3 years ago, uClibc snapshot is OK,
>     uClibc-ng is capable.
>
> So we can consider that ancient uClibc missing spawn.h is too old, and
> we don't support that.
>
> So I'm fine with #2. And of course, we must propagate that decision ot
> other similarly-impacted packages, yes.
>
> 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.  |
>
> '------------------------------^-------^------------------^--------------------'
>
Thomas Petazzoni Jan. 13, 2016, 8:17 a.m. UTC | #5
Dear Joris Lijssens,

On Wed, 13 Jan 2016 08:56:33 +0100, Joris Lijssens wrote:

> So I will send a new patch excluding the blackfin. are there still other
> configurations that use an ancient uClibc without spawn support, or is the
> blackfin the only one?

As far as I remember, Blackfin is the only one.

Best regards,

Thomas
diff mbox

Patch

diff --git a/package/rabbitmq-c/Config.in b/package/rabbitmq-c/Config.in
index b330c90..ec72f82 100644
--- a/package/rabbitmq-c/Config.in
+++ b/package/rabbitmq-c/Config.in
@@ -1,11 +1,15 @@ 
 config BR2_PACKAGE_RABBITMQ_C
 	bool "rabbitmq-c"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on (BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
+		|| BR2_TOOLCHAIN_USES_GLIBC) # spawn.h
 	help
 	  This is a C-language AMQP client library for use with v2.0+
 	  of the RabbitMQ broker.
 
 	  https://github.com/alanxz/rabbitmq-c
 
-comment "rabbitmq-c needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+comment "rabbitmq-c needs a uclibc snapshot, uclibc-ng or (e)glibc toolchain w/ threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_UCLIBC_VERSION_NG \
+		|| BR2_TOOLCHAIN_USES_GLIBC)