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