Ian Stakenvicius posted on Fri, 25 Jul 2014 14:49:44 -0400 as excerpted: > Hey all.. So, putting aside for now how much of a mess this would be to > implement in the virtuals' ebuilds themselves, what do people think of > changing the virtuals so that they contain an entry in IUSE for each > provider that can satisfy it? > > The idea here is that the package satisfying a virtual could be > optionally explicitly-chosen through package.use (or USE= in make.conf, > perhaps) instead of having an entry in @world, that way if nothing > depends on the virtual then it and the provider can be - --depclean'ed > from the system. The idea is specifically NOT to have rdeps depend on > these flags, that would undermine the whole purpose of the virtual; it > would just be for end-users to set if they so chose. > > This may also help with getting portage to peg a virtual's provider to a > specific package instead of constantly trying to switch from one to > another, ie, how systemd kept getting pulled in, in relation to the > upower virtual.
What about handling each such virtual_USE as a USE_EXPAND? VIRTUAL_* as reserved-namespace USE_EXPAND would give us full backward compatibility along with an immediately identifiable namespace and virtually (heh) no possibility of confusion with other configuration. Continuing with the earlier virtual/krb5 example, we'd have VIRTUAL_KRB5, with possible settings in make.conf of: VIRTUAL_KRB5=mit-krb5 VIRTUAL_KRB5=heimdal Virtually no possibility of confusion with normal USE flags, and the matching virtual would be immediately identifiable, so no possibility of getting confused on what it applies to, either. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman