On 3 April 2015 at 06:32, Rich Freeman <ri...@gentoo.org> wrote: > Why is this necessary? If a USE flag changes, just rebuild the > application. >
Isn't the nature of your proposal,( that is, dynamic deps for USE flags ) inherently "Use flags change, _dont_ rebuild the application" ? :) It may help to think in terms of : Any ebuild without IUSE="foo" , once installed, actually has a property of USE_foo=undef Once an ebuild has IUSE="foo", the installed package then can subsequently get USE_foo=y USE_foo=n So under that logic, adding a new IUSE implies "Use flag changes" ( either from state undef to y , or state undef to n ). We have mechanisms for other ebuilds to declare what USE_foo=undef means in dependency defaults: >=X[foo(+)] # Assume USE_foo = undef to mean USE_foo = y >=X[foo(-)] # Assume USE_foo = undef to mean USE_foo = n There's just no mechanism similar to that for an ebuild with CVS revision 02 to declare what USE_foo = undef meant on ebuild with CVS revision 01 Nor is there a way to express what USE_foo=undef meant on X<$PV ( And subsequently, there is no user visible way /in portage/ for portage to express the meaning of a new USE flag becoming visible ) So I'm basically having trouble with groking the logic you're proposing of "add a new use flag" -> "implied change of useflag" -> "rebuild when useflags change" -> "but don't rebuild for this useflag change using some kind of magic" ( Mostly due to the implied-change via addition I can't seem to ignore ) -- Kent *KENTNL* - https://metacpan.org/author/KENTNL