[OE-core] [PATCH v2] ruby: fix non-IPv6 support

André Draszik git at andred.net
Fri Sep 27 15:24:35 UTC 2019


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 at andred.net> wrote:
> > From: André Draszik <andre.draszik at 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 at 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
> > 



More information about the Openembedded-core mailing list