/usr/portage/profiles/base/make.defaults sets RUBY_TARGETS="ruby24 ruby25". However, /usr/portage/eclass/ruby-utils.eclass sets RUBY_TARGETS_PREFERENCE="ruby24 ruby25 ruby26", causing all packages that inherit ruby-single (dev-libs/ocl-icd-2.2.12-r1 in my case) to depend on the 2.6 slot of ruby that is not installed and not supported by the packages that support multiple versions of ruby. I think that RUBY_TARGETS_PREFERENCE should always be a subset of RUBY_TARGETS and ruby-utils.eclass should ensure that is the case or ruby-single.eclass should ignore slots present in RUBY_TARGETS_PREFERENCE that are not also present in RUBY_TARGETS. Reproducible: Always
I think this explains the following that I've been seeing in my emerge -uvaDU @world output for the last month: The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/did_you_mean-1.3.1 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/minitest-5.13.0 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/net-telnet-0.2.0 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/power_assert-1.1.5 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/rake-13.0.1 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/test-unit-3.3.4 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/xmlrpc-0.3.0 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/bundler-1.17.3 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/json-2.3.0 ruby_targets_ruby26 # required by dev-lang/ruby-2.6.5::gentoo[rdoc] # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/racc-1.4.16::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/rdoc-6.2.0 ruby_targets_ruby26 # required by dev-ruby/rdoc-6.2.0::gentoo[ruby_targets_ruby26] # required by dev-lang/ruby-2.6.5::gentoo[rdoc] # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/racc-1.4.16::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/kpeg-1.1.0-r1 ruby_targets_ruby26 # required by dev-ruby/rdoc-6.2.0::gentoo[ruby_targets_ruby26] # required by dev-lang/ruby-2.6.5::gentoo[rdoc] # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-ruby/kpeg-1.1.0-r1::gentoo[-test,ruby_targets_ruby26] >=dev-ruby/racc-1.4.16 ruby_targets_ruby26 # required by dev-ruby/kpeg-1.1.0-r1::gentoo[-test,ruby_targets_ruby26] # required by dev-ruby/rdoc-6.2.0::gentoo[ruby_targets_ruby26] # required by dev-lang/ruby-2.6.5::gentoo[rdoc] # required by dev-ruby/rubygems-3.0.6::gentoo[ruby_targets_ruby26] >=virtual/rubygems-15 ruby_targets_ruby26 # required by virtual/rubygems-15::gentoo[ruby_targets_ruby26] # required by dev-lang/ruby-2.6.5::gentoo # required by dev-ruby/did_you_mean-1.3.1::gentoo[ruby_targets_ruby26] >=dev-ruby/rubygems-3.0.6 ruby_targets_ruby26
BTW, I worked around the issue by just adding =dev-lang/ruby-2.6.5 to /etc/portage/package.mask
This problem continues with Ruby 2.7, so I extended the above workaround by masking >=dev-lang/ruby-2.6.0.