Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 702266 - ruby-utils.eclass sets RUBY_TARGETS_PREFERENCE to ruby slot not in the default RUBY_TARGETS
Summary: ruby-utils.eclass sets RUBY_TARGETS_PREFERENCE to ruby slot not in the defaul...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-12-07 22:49 UTC by Andrei Slavoiu
Modified: 2020-04-22 12:49 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrei Slavoiu 2019-12-07 22:49:33 UTC
/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
Comment 1 Ooblick 2019-12-21 06:46:00 UTC
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
Comment 2 Andrei Slavoiu 2019-12-21 06:52:42 UTC
BTW, I worked around the issue by just adding =dev-lang/ruby-2.6.5 to /etc/portage/package.mask
Comment 3 Risto A. Paju 2020-04-22 12:49:49 UTC
This problem continues with Ruby 2.7, so I extended the above workaround by masking >=dev-lang/ruby-2.6.0.