I'm helping support a web site hosted at Heroku and written in Ruby on Rails. Following some tool upgrades there, I upgraded my local rails to 3.1, uninstalling the previous version 2.7. I now have RUBY_TARGETS="ruby31" in make.conf. and several specific dev-ruby package versions in package.accept_keywords. Most of them upgraded fine, or at least reinstalled (using a version supporting ruby31 after unmerging the old version) but some are giving me grief.

For example, "emerge -1 dev-ruby/thor" gives me

!!! Problem resolving dependencies for dev-ruby/thor
... done!

!!! The ebuild selected to satisfy "dev-ruby/thor" has unmet requirements. - dev-ruby/thor-1.2.1::gentoo USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="-ruby27 (-ruby30) (-ruby31)"

  The following REQUIRED_USE flag constraints are unsatisfied:
any-of ( ruby_targets_ruby27 ruby_targets_ruby30 ruby_targets_ruby31 )

I would expect USE_RUBY="ruby31" to translate into ruby_targets_ruby31, but even explicitly adding that to package.use has no effect. Is there something I'm missing turning off ruby31, specifically for just a small number of packages? (so far the only other one with this problem is dev-ruby/mini_mime).

Portage has two versions of thor: 1.1.0 and 1.1.2, both marked stable for amd64, and 1.2.1 has USE_RUBY="ruby26 ruby27 ruby30 ruby31" so I don't see any reason it's not working.

I already have railties installed (using -O) with ruby31, and it depends on thor via ruby_add_redepend, which I read as requiring thor with ruby31. thor is not mentioned in any file under /etc/portage.

Does anybody see what I'm missing?

Jack

Reply via email to