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
next prev parent 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