All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl
@ 2019-09-27 13:54 André Draszik
  2019-09-27 13:54 ` [PATCH 2/2] ruby: fix non-IPv6 support André Draszik
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: André Draszik @ 2019-09-27 13:54 UTC (permalink / raw)
  To: openembedded-core

From: André Draszik <andre.draszik@jci.com>

The configure script does not detect isnan/isinf as macros
as is the case in musl.

Help it by providing the correct result via
CACHED_CONFIGUREVARS.

Signed-off-by: André Draszik <andre.draszik@jci.com>
---
 meta/recipes-devtools/ruby/ruby_2.5.5.bb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
index 8ad59a7657..fdd3852a78 100644
--- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
@@ -32,6 +32,9 @@ EXTRA_OECONF = "\
     --with-pkg-config=pkg-config \
 "
 
+# the configure script does not detect isnan/isinf as macros
+CACHED_CONFIGUREVARS_libc-musl += "ac_cv_func_isnan=yes ac_cv_func_isinf=yes"
+
 do_install() {
     oe_runmake 'DESTDIR=${D}' install
 }
-- 
2.23.0.rc1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] ruby: fix non-IPv6 support
  2019-09-27 13:54 [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl André Draszik
@ 2019-09-27 13:54 ` André Draszik
  2019-09-27 14:10   ` [PATCH v2] " André Draszik
  2019-09-27 15:15 ` [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl Ross Burton
  2019-09-27 15:54 ` Khem Raj
  2 siblings, 1 reply; 10+ messages in thread
From: André Draszik @ 2019-09-27 13:54 UTC (permalink / raw)
  To: openembedded-core

From: André Draszik <andre.draszik@jci.com>

When IPv6 support is disabled, this recipe mis-configures
ruby so that it end up non-working:
--enable-wide-getaddrinfo instructs ruby to re-implement
the standard getaddinfo(), but IPv6 support is still
automatically detected via ext/socket/extconf.rb
independently of that flag.

To re-implement getaddrinfo(), ruby uses the obsolete
getipnodebyaddr() and getipnodebyname() functions - i.e.
according to the man-page, glibc provided those only in
glibc 2.1.91-95; and of course compilation fails. [1]

Switch to ruby's standard --enable-ipv6= configure
options to make the build work without warnings, and
ruby work at runtime as well.

[1] Compilation and linking actually succeed, albeit with
a warning regarding implicit declaration / unresolved
symbols. The error is only obvious at runtime due to the
unresolved symbols...

Signed-off-by: André Draszik <andre.draszik@jci.com>
---
 meta/recipes-devtools/ruby/ruby_2.5.5.bb | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
index fdd3852a78..49bc368889 100644
--- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
@@ -9,17 +9,12 @@ SRC_URI += " \
 SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
 SRC_URI[sha256sum] = "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
 
-# it's unknown to configure script, but then passed to extconf.rb
-# maybe it's not really needed as we're hardcoding the result with
-# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
-UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
-
 PACKAGECONFIG ??= ""
 PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 
 PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
 PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
-PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6=yes, --enable-ipv6=no,"
 
 EXTRA_AUTORECONF += "--exclude=aclocal"
 
-- 
2.23.0.rc1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2] ruby: fix non-IPv6 support
  2019-09-27 13:54 ` [PATCH 2/2] ruby: fix non-IPv6 support André Draszik
@ 2019-09-27 14:10   ` André Draszik
  2019-09-27 15:05     ` Alexander Kanavin
  0 siblings, 1 reply; 10+ messages in thread
From: André Draszik @ 2019-09-27 14:10 UTC (permalink / raw)
  To: openembedded-core

From: André Draszik <andre.draszik@jci.com>

When IPv6 support is disabled, this recipe mis-configures
ruby so that it end up non-working:
--enable-wide-getaddrinfo instructs ruby to re-implement
the standard getaddinfo(), but IPv6 support is still
automatically detected via ext/socket/extconf.rb
independently of that flag.

To re-implement getaddrinfo(), ruby uses the obsolete
getipnodebyaddr() and getipnodebyname() functions - i.e.
according to the man-page, glibc provided those only in
glibc 2.1.91-95; and of course compilation fails. [1]

Switch to ruby's standard --enable-ipv6= configure
options to make the build work without warnings, and
ruby work at runtime as well.

[1] Compilation and linking actually succeed, albeit with
a warning regarding implicit declaration / unresolved
symbols. The error is only obvious at runtime due to the
unresolved symbols...

Signed-off-by: André Draszik <andre.draszik@jci.com>

---
v2:
* switch to --enable-ipv6/--disable-ipv6 instead of
  --enable-ipv6=yes/no, as the latter is not actually
  recognised
---
 meta/recipes-devtools/ruby/ruby_2.5.5.bb | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
index fdd3852a78..feb654cb6a 100644
--- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
@@ -9,17 +9,12 @@ SRC_URI += " \
 SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
 SRC_URI[sha256sum] = "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
 
-# it's unknown to configure script, but then passed to extconf.rb
-# maybe it's not really needed as we're hardcoding the result with
-# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
-UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
-
 PACKAGECONFIG ??= ""
 PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 
 PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
 PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
-PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
 
 EXTRA_AUTORECONF += "--exclude=aclocal"
 
-- 
2.23.0.rc1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ruby: fix non-IPv6 support
  2019-09-27 14:10   ` [PATCH v2] " André Draszik
@ 2019-09-27 15:05     ` Alexander Kanavin
  2019-09-27 15:24       ` André Draszik
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Kanavin @ 2019-09-27 15:05 UTC (permalink / raw)
  To: André Draszik; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 2784 bytes --]

Just wanted to request, would you be able to provide a ruby version upgrade
as well?

Alex

On Fri, 27 Sep 2019 at 16:10, André Draszik <git@andred.net> wrote:

> From: André Draszik <andre.draszik@jci.com>
>
> When IPv6 support is disabled, this recipe mis-configures
> ruby so that it end up non-working:
> --enable-wide-getaddrinfo instructs ruby to re-implement
> the standard getaddinfo(), but IPv6 support is still
> automatically detected via ext/socket/extconf.rb
> independently of that flag.
>
> To re-implement getaddrinfo(), ruby uses the obsolete
> getipnodebyaddr() and getipnodebyname() functions - i.e.
> according to the man-page, glibc provided those only in
> glibc 2.1.91-95; and of course compilation fails. [1]
>
> Switch to ruby's standard --enable-ipv6= configure
> options to make the build work without warnings, and
> ruby work at runtime as well.
>
> [1] Compilation and linking actually succeed, albeit with
> a warning regarding implicit declaration / unresolved
> symbols. The error is only obvious at runtime due to the
> unresolved symbols...
>
> Signed-off-by: André Draszik <andre.draszik@jci.com>
>
> ---
> v2:
> * switch to --enable-ipv6/--disable-ipv6 instead of
>   --enable-ipv6=yes/no, as the latter is not actually
>   recognised
> ---
>  meta/recipes-devtools/ruby/ruby_2.5.5.bb | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> index fdd3852a78..feb654cb6a 100644
> --- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> +++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> @@ -9,17 +9,12 @@ SRC_URI += " \
>  SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
>  SRC_URI[sha256sum] =
> "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
>
> -# it's unknown to configure script, but then passed to extconf.rb
> -# maybe it's not really needed as we're hardcoding the result with
> -# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
> -UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
> -
>  PACKAGECONFIG ??= ""
>  PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
>
>  PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no,
> valgrind"
>  PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
> -PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
> +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
>
>  EXTRA_AUTORECONF += "--exclude=aclocal"
>
> --
> 2.23.0.rc1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 4030 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl
  2019-09-27 13:54 [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl André Draszik
  2019-09-27 13:54 ` [PATCH 2/2] ruby: fix non-IPv6 support André Draszik
@ 2019-09-27 15:15 ` Ross Burton
  2019-09-30  8:17   ` André Draszik
  2019-09-27 15:54 ` Khem Raj
  2 siblings, 1 reply; 10+ messages in thread
From: Ross Burton @ 2019-09-27 15:15 UTC (permalink / raw)
  To: openembedded-core

On 27/09/2019 14:54, André Draszik wrote:
> From: André Draszik <andre.draszik@jci.com>
> 
> The configure script does not detect isnan/isinf as macros
> as is the case in musl.
> 
> Help it by providing the correct result via
> CACHED_CONFIGUREVARS.

Is this reported as a bug upstream so we can remove this workaround at 
some point?

Ross


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ruby: fix non-IPv6 support
  2019-09-27 15:05     ` Alexander Kanavin
@ 2019-09-27 15:24       ` André Draszik
  2019-09-27 15:32         ` Alexander Kanavin
  0 siblings, 1 reply; 10+ messages in thread
From: André Draszik @ 2019-09-27 15:24 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: OE-core

On Fri, 2019-09-27 at 17:05 +0200, Alexander Kanavin wrote:
> Just wanted to request, would you be able to provide a ruby version upgrade as well?

Not anytime soon - I'm just working a quick proof-of-concept.

Also, if you look at Alpine, they are packaging all the bundled gems
separately, so ideally the same should happen when using yocto.
But that's a bigger task...

And I don't know anything about ruby :-)

Can't the auto-updater do it? (Without the repackaging?)

Cheers,
Andre'



> Alex
> 
> On Fri, 27 Sep 2019 at 16:10, André Draszik <git@andred.net> wrote:
> > From: André Draszik <andre.draszik@jci.com>
> > 
> > When IPv6 support is disabled, this recipe mis-configures
> > ruby so that it end up non-working:
> > --enable-wide-getaddrinfo instructs ruby to re-implement
> > the standard getaddinfo(), but IPv6 support is still
> > automatically detected via ext/socket/extconf.rb
> > independently of that flag.
> > 
> > To re-implement getaddrinfo(), ruby uses the obsolete
> > getipnodebyaddr() and getipnodebyname() functions - i.e.
> > according to the man-page, glibc provided those only in
> > glibc 2.1.91-95; and of course compilation fails. [1]
> > 
> > Switch to ruby's standard --enable-ipv6= configure
> > options to make the build work without warnings, and
> > ruby work at runtime as well.
> > 
> > [1] Compilation and linking actually succeed, albeit with
> > a warning regarding implicit declaration / unresolved
> > symbols. The error is only obvious at runtime due to the
> > unresolved symbols...
> > 
> > Signed-off-by: André Draszik <andre.draszik@jci.com>
> > 
> > ---
> > v2:
> > * switch to --enable-ipv6/--disable-ipv6 instead of
> >   --enable-ipv6=yes/no, as the latter is not actually
> >   recognised
> > ---
> >  meta/recipes-devtools/ruby/ruby_2.5.5.bb | 7 +------
> >  1 file changed, 1 insertion(+), 6 deletions(-)
> > 
> > diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> > index fdd3852a78..feb654cb6a 100644
> > --- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> > +++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> > @@ -9,17 +9,12 @@ SRC_URI += " \
> >  SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
> >  SRC_URI[sha256sum] = "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
> > 
> > -# it's unknown to configure script, but then passed to extconf.rb
> > -# maybe it's not really needed as we're hardcoding the result with
> > -# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
> > -UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
> > -
> >  PACKAGECONFIG ??= ""
> >  PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
> > 
> >  PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
> >  PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
> > -PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
> > +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
> > 
> >  EXTRA_AUTORECONF += "--exclude=aclocal"
> > 
> > -- 
> > 2.23.0.rc1
> > 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ruby: fix non-IPv6 support
  2019-09-27 15:24       ` André Draszik
@ 2019-09-27 15:32         ` Alexander Kanavin
  2019-09-30  8:17           ` André Draszik
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Kanavin @ 2019-09-27 15:32 UTC (permalink / raw)
  To: André Draszik; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 244 bytes --]

On Fri, 27 Sep 2019 at 17:24, André Draszik <git@andred.net> wrote:

> Can't the auto-updater do it? (Without the repackaging?)
>

I think it fails at the rebasing patches step - merge conflicts can only be
resolved by a human.

Alex

[-- Attachment #2: Type: text/html, Size: 548 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl
  2019-09-27 13:54 [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl André Draszik
  2019-09-27 13:54 ` [PATCH 2/2] ruby: fix non-IPv6 support André Draszik
  2019-09-27 15:15 ` [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl Ross Burton
@ 2019-09-27 15:54 ` Khem Raj
  2 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2019-09-27 15:54 UTC (permalink / raw)
  To: André Draszik; +Cc: Patches and discussions about the oe-core layer

On Fri, Sep 27, 2019 at 6:55 AM André Draszik <git@andred.net> wrote:
>
> From: André Draszik <andre.draszik@jci.com>
>
> The configure script does not detect isnan/isinf as macros
> as is the case in musl.
>
> Help it by providing the correct result via
> CACHED_CONFIGUREVARS.
>
> Signed-off-by: André Draszik <andre.draszik@jci.com>
> ---
>  meta/recipes-devtools/ruby/ruby_2.5.5.bb | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> index 8ad59a7657..fdd3852a78 100644
> --- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> +++ b/meta/recipes-devtools/ruby/ruby_2.5.5.bb
> @@ -32,6 +32,9 @@ EXTRA_OECONF = "\
>      --with-pkg-config=pkg-config \
>  "
>
> +# the configure script does not detect isnan/isinf as macros
> +CACHED_CONFIGUREVARS_libc-musl += "ac_cv_func_isnan=yes ac_cv_func_isinf=yes"
> +

Please use _append_libc-musl and drop +=

>  do_install() {
>      oe_runmake 'DESTDIR=${D}' install
>  }
> --
> 2.23.0.rc1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl
  2019-09-27 15:15 ` [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl Ross Burton
@ 2019-09-30  8:17   ` André Draszik
  0 siblings, 0 replies; 10+ messages in thread
From: André Draszik @ 2019-09-30  8:17 UTC (permalink / raw)
  To: openembedded-core

On Fri, 2019-09-27 at 16:15 +0100, Ross Burton wrote:
> On 27/09/2019 14:54, André Draszik wrote:
> > From: André Draszik <andre.draszik@jci.com>
> > 
> > The configure script does not detect isnan/isinf as macros
> > as is the case in musl.
> > 
> > Help it by providing the correct result via
> > CACHED_CONFIGUREVARS.
> 
> Is this reported as a bug upstream so we can remove this workaround at 
> some point?

Now that you say it - actually somebody else did before, and they've also
fixed it in later versions.

New patch coming.


A.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] ruby: fix non-IPv6 support
  2019-09-27 15:32         ` Alexander Kanavin
@ 2019-09-30  8:17           ` André Draszik
  0 siblings, 0 replies; 10+ messages in thread
From: André Draszik @ 2019-09-30  8:17 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: OE-core

On Fri, 2019-09-27 at 17:32 +0200, Alexander Kanavin wrote:
> On Fri, 27 Sep 2019 at 17:24, André Draszik <git@andred.net> wrote:
> > Can't the auto-updater do it? (Without the repackaging?)
> 
> I think it fails at the rebasing patches step - merge conflicts can only be resolved by a human. 

OK, I'll try to have a look anyway...

A.




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-09-30  8:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-27 13:54 [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl André Draszik
2019-09-27 13:54 ` [PATCH 2/2] ruby: fix non-IPv6 support André Draszik
2019-09-27 14:10   ` [PATCH v2] " André Draszik
2019-09-27 15:05     ` Alexander Kanavin
2019-09-27 15:24       ` André Draszik
2019-09-27 15:32         ` Alexander Kanavin
2019-09-30  8:17           ` André Draszik
2019-09-27 15:15 ` [PATCH 1/2] ruby: configure mis-detects isnan/isinf on musl Ross Burton
2019-09-30  8:17   ` André Draszik
2019-09-27 15:54 ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.