It would be nice, if packages can be prioritized. Let me explain. Currently the ruby executable is provided by rubypick package. This package requires ruby(runtime_executable) virtual provide, which is provided by both, ruby and jruby packages. And here's the rub. We would like to get ruby package installed if ruby(runtime_executable) provide is not satisfied on the system yet. But there is no way how to specify that and it quite often results in installation of jruby (something like bug 1120898). So I'd like to be able to provide some additional guide to dnf/yum/rpm, what should be the priorities, when several packages provide the same provide. However, I am not sure if this information should be provided internally by RPM metadata, or if is should be provided by something like comps for example.
The question is if there are any legit use cases for preferences over the same virtual provide: both the ruby runtimes should provide equivalent functionality. The solver picks one based on some reasonable criteria that are convenient for the user. The user gets functioning package he requested. The precise semantics is another thing: suppose the solver is told to "prefer 'ruby'": what should it do in a transaction then if jruby means downloading one package while ruby means downloading one hundred of packages. In any case: not something DNF has an ambition to solve. I'm moving this to RPM whose maintaienrs might want to consider it as an input for rich dependencies feature or maybe not.
Thanks Ales for considering. Just one clarification, JRuby is currently the 'one hundred' packages case, when Ruby is the slimmer one. What are the other 'reasonable criteria' to install JRuby over Ruby is not that clear to me.
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle. Changing version to '22'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22
The Suggests: and Enhances: tags should allow doing this now.