puppet 0.24.8 has a DEPEND/RDEPEND on virtual/ruby[ssl]; virtual/ruby is an old style dependency, thus has no iuse defined (nor is there any gurantee that all providers of an old style virt. would have a common IUSE subset). Quoting pms: It is an error for a use dependency to be applied to an ebuild which does not have the flag in question in \t{IUSE}, or for an ebuild to use a conditional use dependency when that ebuild does not have the flag in \t{IUSE}. Reason this is relevant- portage seems to allow this to work via a quirk of it's old style virtual support- the other two however do not. The wording of virtuals.tex *sort of* leaves this behaviour open as valid, although I suspect that's more due to it not being updated when slot/use were introduced (it forbids version restrictions only, while slotting has similar issues). An alt. solution is a new style virtual, via this the transitive use dep that puppet is attempting to the provider could be implemented easily enough (in a manner supported by all three also). Reproducible: Always Steps to Reproduce:
pardon, I'm a retard- "virtual/ruby is an old style virtual", not "virtual/ruby is an old style dependency". Bleh. Need my coffee...
I think it makes sense to move to a new style virtual in any case. For this bug, though, the two other providers of ruby (dev-lang/rubinius and dev-java/jruby) don't have an ssl USE flag, so I'm not sure if it makes sense for puppet to depend on the virtual, or whether it should just depend on dev-lang/ruby directly. I'll leave that to matsuu since I don't know anything about the puppet requirements.
The virtuals got changed to depend on dev-lang/ruby on April 6th, so I'm closing this bug.