dev-ruby/json-1.7.7 works fine with ruby 2.0 (test suite runs without any error). dev-ruby/json-1.8.0 has already ruby 2.0 use flag but for example app-admin/chef depends on <=dev-ruby-1.7.7 (https://tickets.opscode.com/browse/CHEF-4632). On the other hand ruby-2.0.0 requires >=dev-ruby/json-1.7.7[ruby_targets_ruby20] but dev-ruby/json-1.7.7 has no ruby20 flag. This means ruby-2.0.0 installs json-1.8.0 which is to new for chef. So it is currently impossible to install ruby 2.0 and chef on the same system. Reproducible: Always Steps to Reproduce: 1. emerge -vat dev-lang/ruby:2.0 app-admin/chef 2. 3. Expected Results: dev-ruby/json.1.7.7 should have USE_RUBY+="ruby20"
As far as we can tell all json 1.x versions have a compatible API so we won't slot this package and backport the ruby20 target. This should be fixed at the chef side (at least in Gentoo) to make chef's dependencies consistent with how ruby is packaged in Gentoo. http://wiki.gentoo.org/wiki/Project:Ruby/Packaging_RubyGems#Version_numbers_and_slots
Chef installs fine with dev-ruby/json-1.8.0 if I change the dependencies. But due to the RESTRICT=test I can't run the tests. So I don't know if everything is working. I don't care if chef uses dev-ruby/json-1.8.0 or if dev-ruby/json-1.8.0 supports ruby 2.0 but it would be great if I could install ruby 2.0 and chef on the same system. But I think it is maybe easier to add "ruby20" to json, run the tests and see that everything is working, instead of changing chefs dependencies and can't test it. But it's up to you.
(In reply to Florian Eitel from comment #2) > But I think it is maybe easier to add "ruby20" to json, run the tests and > see that everything is working, instead of changing chefs dependencies and > can't test it. But it's up to you. The policy on the ruby side is to keep only the latest version in each slot, so json 1.7.7 could be removed at any moment once a newer version is stable. This is the reason chef dependencies should be updated. https://wiki.gentoo.org/wiki/Project:Ruby/Packaging_RubyGems#Version_numbers_and_slots
app-emulation/vagrant-1.4.3-r2 now only supports a RUBY_TARGET of ruby20, which prevents me upgrading vagrant past 1.4.3-r1 without some progress here. In order to prevent emerge from complaining a lot I have to have the following package.mask entries: >=dev-ruby/json-1.8.0 >app-emulation/vagrant-1.4.3-r1 Depending on what else you have installed you may also need >=dev-lang/ruby-2.0.0
Removed from the tree.