public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Jason Stubbs <jasonbstubbs@mailandnews.com>
To: gentoo-portage-dev@gentoo.org
Subject: Re: [gentoo-portage-dev] The purpose of USE flags
Date: Wed, 17 Dec 2003 16:11:30 +0900	[thread overview]
Message-ID: <200312171611.30294.jasonbstubbs@mailandnews.com> (raw)
In-Reply-To: <20031217011039.1b67328e.genone@gentoo.org>

On Wednesday 17 December 2003 09:10, Marius Mauch wrote:
> On 12/17/03  Jason Stubbs wrote:
> > Hmmm, I didn't get this email.
> >
> > On Tuesday 16 December 2003 21:59, Marius Mauch wrote:
> > > One problem I see with the tree represenations (and a flag being
> > > present in multiple leafs) is an ordering probem. E.g. we have
> > > use.gui.gnome.esd (as esd is part of gnome) and use.sound.esd. Now a
> > > user has "-use.gui.gnome +use.sound", is esd enabled then or not?
> >
> > Personally, I think that flags being present in multiple leafs of a
> > tree would be a bad thing. It adds unneeded complexity on the dev side
> > and confusion on the user side. With a well designed tree, it
> > shouldn't occur anyway. To take your example, use.gui.gnome.esd
> > shouldn't exist because esd is not a gui.
>
> Hmm, but AFAIK esd is considered a part of the Gnome desktop, same for
> arts/KDE. So if I (as a user) disable gnome I'd expect that esd is
> disabled too. Actually it's the same problem we have with categories,
> things can fit in multiple branches.

You're right. That could be confusing for the user to. It makes it more 
difficult to develop, but one possibility would be to have groupings (apart 
from the tree). For example:

gui.gtk
sound.esd
@de.gnome = (gui.gtk sound.esd)

Actually, this isn't much different to having a flag present in multiple 
leafs, except maybe easier to maintain. As for ordering, I would say that the 
last directive specified should be followed as is the case with the current 
implementation. It's not the most intuitive, but at least it's easily 
predictable. For example:

"-de.gnome +sound.esd" = "-gui.gtk +sound.esd"
"-gui.gtk -sound.esd +de.gnome" = "+gui.gtk +sound.esd"



I've just thought of another possibility with regard to USE flag defaults. 
Presently, they're specified globally and are set depending on the arch, 
right? Do they actually differ for the archs at all? I tried diffing the 
use.defaults files but not much immediate results.

Anyway, my proposal is that defaults are moved from a global setting to the 
ebuilds. Integrating with my other proposal, ebuilds would have something to 
the effect of PRODIVES, PREFERS, SUPPORTS with the following definitions:

PROVIDES - intrinsic functionality to the package. If the use has specified 
the directive "-" for this flag then the package is masked.
PREFERS - optional functionality that is usually required/expected. If this 
flag has a directive specified then it is followed. Otherwise, it is assumed 
to be "+".
SUPPORTS - optional functionality that is usually not required/expected. If 
this flag has a directive specified then it followed. Otherwise, if a package 
is installed that provides this flag then it is assumed to be "+". In all 
other cases, it is assumed to be "-".

What prompted this is packages that have a lot of options such as mplayer. 
mplayer has support for esd. If gnome PREFERS esd then, with the above rules, 
mplayer would be compiled with esd by default. Similarly, gcc could be 
compiled without java support by default where mozilla would be compiled with 
it.

I wont bother giving many examples to back it up, but this would get around 
the need for users having to specify 10s to 100s of flags. The behaviour of 
SUPPORTS when no directive is specified should probably be optional. Other 
than that, what do you think?

--
Regards,
Jason Stubbs

--
gentoo-portage-dev@gentoo.org mailing list


  reply	other threads:[~2003-12-17  7:11 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-12 19:27 [gentoo-portage-dev] The purpose of USE flags Jason Stubbs
2003-12-14 19:24 ` Sami Näätänen
2003-12-14 22:23   ` Marius Mauch
2003-12-16  9:38     ` Jason Stubbs
2003-12-16 17:11     ` Sami Näätänen
2003-12-16 19:59       ` Marius Mauch
2003-12-16 21:50         ` Sami Näätänen
2003-12-16 22:23           ` Jason Stubbs
2003-12-17  0:10             ` Marius Mauch
2003-12-17  7:11               ` Jason Stubbs [this message]
2003-12-16 21:36       ` Pieter Van den Abeele
2003-12-16 22:23         ` Paul de Vrieze
2003-12-16 22:53           ` Pieter Van den Abeele
2003-12-16  9:19 ` Jason Stubbs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200312171611.30294.jasonbstubbs@mailandnews.com \
    --to=jasonbstubbs@mailandnews.com \
    --cc=gentoo-portage-dev@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox