diff --git a/configs/components/_base-rubygem.rb b/configs/components/_base-rubygem.rb index 145bd68b1..f119a80cf 100644 --- a/configs/components/_base-rubygem.rb +++ b/configs/components/_base-rubygem.rb @@ -21,6 +21,9 @@ pkg.environment "PATH", "$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:ruby_bindir]}):$(shell cygpath -u #{settings[:bindir]}):/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:$(PATH)" end +if name =~ /ffi/ && settings[:ruby_version].to_f >= 3.2 && platform.is_solaris? + extra_install_settings = ' -- --enable-system-libffi' +end # When cross-compiling, we can't use the rubygems we just built. # Instead we use the host gem installation and override GEM_HOME. Yay? pkg.environment "GEM_HOME", settings[:gem_home] @@ -38,5 +41,5 @@ pkg.mirror("#{settings[:buildsources_url]}/#{name}-#{version}.gem") pkg.install do - "#{settings[:gem_install]} #{name}-#{version}.gem" + "#{settings[:gem_install]} #{name}-#{version}.gem#{extra_install_settings}" end diff --git a/configs/components/rubygem-ffi.rb b/configs/components/rubygem-ffi.rb index d6df15043..41a1335b6 100644 --- a/configs/components/rubygem-ffi.rb +++ b/configs/components/rubygem-ffi.rb @@ -75,7 +75,8 @@ end end - if platform.name =~ /solaris-11-i386/ + # With Ruby 3.2 on Solaris-11 we install OpenSCW's libffi, no need to copy over the system libffi + if platform.name =~ /solaris-11-i386/ && rb_major_minor_version < 3.2 pkg.install_file "/usr/lib/libffi.so.5.0.10", "#{settings[:libdir]}/libffi.so" elsif platform.name =~ /solaris-10-i386/ pkg.install_file "/opt/csw/lib/libffi.so.6", "#{settings[:libdir]}/libffi.so.6"