[CentOS-devel] [opstools] How to support fluentd with ruby24?

Mon Dec 18 09:23:06 UTC 2017
Matthias Runge <mrunge at matthias-runge.de>

On 16/12/17 05:51, Rich Megginson wrote:

>> So a fluentd-ruby24-scl package, a fluent-plugin-add-ruby24-scl
>> package, etc. etc.?  That's going to be a non-starter.
> 
> It is the only way.  You cannot run ruby24 and load packages built for
> ruby 2.0 - running fluentd on a system which has rh-ruby24 installed:
> 
> + exec /opt/rh/rh-ruby24/root/usr/bin/ruby /usr/bin/fluentd
> --no-supervisor -vv
> /opt/rh/rh-ruby24/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
> `require': incompatible library version -
> /usr/share/gems/gems/yajl-ruby-1.3.1/lib/yajl/yajl.so (LoadError)
>         from
> /opt/rh/rh-ruby24/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
> `require'
>         from /usr/share/gems/gems/yajl-ruby-1.3.1/lib/yajl.rb:1:in `<top
> (required)>'
> 
> The gems in /usr/share/gems are installed via RPM and built with ruby 2.0.
> 
> It might be possible to perform this conversion at runtime:
> 
> - install fluentd from regular ruby 2.0 rpms normally
> - for each gem in /usr/share/gems
>   rebuild using ruby24 into /opt/rh/rh-ruby24/root/usr/share
> 
> but this is just piling hacks on top of more hacks
> 
> I think we're going to need ruby24 branches for all of our common,
> collectd, and fluentd packages, and we're going to need some sort of
> mass conversion of all of those specs so that we can use them both with
> and without scl.
> 

We could also go that route and build ruby 2.4 in opstools (+ rebuilding
all ruby-packages).

Not sure if we really want to do that.

Matthias