To allow a library to support multiple targets across different versions it would have to consistently disallow having multiple installed versions supporting the same target. I can only think of a slot negator syntax to get this done right. For example: ``` SLOT="${PV}" ... for version in $(ruby_get_use_implementations); do target=ruby_targets_ruby${version} RDEPEND+=" ${target}? ( !${P}:!${SLOT}[${target}] )" done ``` Something like that. My current use case is typeprof: https://github.com/ruby/typeprof which only supports 3.3+. It's directly required by dev-lang/ruby itself. Reproducible: Always
You have to actually explain what it will do.
(In reply to Michał Górny from comment #1) > You have to actually explain what it will do. What else is there to explain?
Everything. Your explanation is completely incomprehensible to me.
A patch for the spec would be best, see https://wiki.gentoo.org/wiki/Project:Package_Manager_Specification/Future_EAPI_process#Requirements_for_a_future_EAPI_proposal.
This sounds similar to the "antislot" feature that was added to portage-utils for Perl ebuilds. A feature present in portage-utils is the so-called antislot, and is activated by starting the atom with a carrot (^), in place of the blocker bang (!). The antislot is similar to the inversing behaviour of a blocker, but only operates on SLOT and SUBSLOT, and requires SLOT to be available, e.g. it won't match unset SLOT (NULL). https://bugs.gentoo.org/683430