On Wed, Feb 10, 2016 at 11:57 PM, Kent Fredric <kentfred...@gmail.com> wrote:
> On 11 February 2016 at 15:51, Rich Freeman <ri...@gentoo.org> wrote:
>> In this case you just wouldn't enable python 2.7 support, but you
>> wouldn't disable it either.  Portage would just pull it in where it is
>> needed.
>
> But you still need a mechanism in place if you *dont* want that to happen.
>...
>> Unless of course you're suggesting "USE=-python_targets_python2_7"
> would not be "auto-enableable"

That is correct.

>
> But then you're *still* requiring a tri-state USE.

Sure - it would be the same as how package-versions work today.

Stick it in world, and you're pulling it in.

Stick in in mask, and you're keeping it out.

Don't do anything, and portage does what it thinks is best, guided by
profiles/etc.

> USE="" + IUSE="foo" => "-foo"         => autouse enables foo if required

This is the only thing that would change.  In all the other scenarios
you described the behavior would be the same as today.  If you set
USE=-foo then you'll get the same errors you get today.

Now, auto-unmask could still propose sticking USE=+foo in your
package.use if you have USE=-foo in your make.conf, which is already
the behavior today.  If you've made any explicit USE setting in your
configuration, portage would never ignore it, but only suggest that
you change it.

Perhaps it might make sense to introduce a new ~foo setting which
undoes a +/-foo in make.conf but doesn't set it either + or - in
package.use, allowing the setting to revert to the default behavior.
That would actually be useful independent of lazy use flags, but would
be more useful with lazy use flags.

>
> Mentally keeping track of this accounting magic would be complicating matters.
>

I think you're overthinking this.  It is completely analogous as to
what portage already does with package-versions.  I don't have libjpeg
in my world file, and yet portage installs it, and I don't think about
it either way.  If I wanted to pin a specific version of it or mask it
I could, but of course the preference of most users is to micromanage
as little as possible.

Basically lazy use flags is intended for users to minimize the size of
their package.use files, just as they already minimize the size of
their @world and package.mask files today.

-- 
Rich

Reply via email to