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: [gentoo-portage-dev] The purpose of USE flags
Date: Sat, 13 Dec 2003 04:27:00 +0900	[thread overview]
Message-ID: <200312130427.00785.jasonbstubbs@mailandnews.com> (raw)

Hello all,

At the risk of sounding precocious, I think I'm going to open another can of 
worms. ;-)

I've been thinking on the idea of USE flags and am wondering what the 
developers' perspective is. They are defined in "Gentoo Guide to USE flags" 
as "keywords that define options used on a system-wide basis to configure 
applications during their respective compilation procedures". Is there any 
other, more formal, definition?

My reason for asking is that my feel, from the way developers and experience 
users talk about USE flags, that their usage has been mostly restricted to 
options provided by configure scripts. This is natural as (I assume) that's 
the way that USE flags evolved. However, I think that the the purpose of USE 
flags needs to be rethought, when implemented in portage-ng, to include how 
USE flags pertain to the system as a whole.

I was half thinking about it when I wrote the following except from my last 
mail:

On Tuesday 09 December 2003 07:06, Jason Stubbs wrote:
> USE flags need to be able to be grouped into 'super-USE' flags. For example: 
> "multimedia", "workstation", "server", etc.
> where "multimedia" = "video-codecs", "audio-codecs", "media-recording", etc.
> where "video-codecs" = "avi", "divx", "dvd", etc.

I'm going to expand on this idea a little, although I think it might not be 
well received due to the unexplained fear of USE flag explosion. My idea is 
that USE flags should be somewhat the equivalent of Microsoft Windows 
Installer's Product Feature selection tree, the main difference being that it 
applies to the whole operating system.

To explain further, I will again use an example possibility:
Multimedia
+ Recording
- Playback
  + Video
  - Audio
    + Audio Codecs
    - Audio Providers
      - OSS
      - ALSA
      - ARTS
      - ESD
      - <default>

From this small excerpt of a possible tree, you can image how big a full tree 
would be. The benefits of this style of tree are manyfold, but I'll just go 
over a few of the obvious (to me):

* Finer grain of control

Depending on what is actually implement of course, this model can offer much 
more control. If the above example is extended to include ALSA drivers, the 
model is shown to become a unified way to model all option behaviour of 
packages. Mozilla, for example, could be done in exactly the same way.

* Better categorization

With this USE flag model, if an ebuild-ng specifies what functionality it 
provides, both intrisically and optionally, packages become very easy to find 
for the end-user. It will also be easy to find other packages that do same 
things as a package that the user is familiar with.

That's all that I can think of at the moment. The only negative thing I can 
see is the explosion of USE flags. However, this is only a bad thing if they 
are uncategoriezed. Proper categorization should actually make them easier to 
understand and easier to maintain.

Well, that's enough said for now. All constructive criticism and any additions 
welcome.

-- 
Regards,
Jason Stubbs

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


             reply	other threads:[~2003-12-12 19:27 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-12 19:27 Jason Stubbs [this message]
2003-12-14 19:24 ` [gentoo-portage-dev] The purpose of USE flags 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
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=200312130427.00785.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