/[gentoo]/xml/htdocs/proj/en/glep/glep-0029.txt
Gentoo

Contents of /xml/htdocs/proj/en/glep/glep-0029.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Sun Aug 22 01:59:24 2004 UTC (9 years, 11 months ago) by g2boojum
Branch: MAIN
File MIME type: text/plain
New glep

1 g2boojum 1.1 GLEP: 0000
2     Title: USE flag groups
3     Version: $Revision: $
4     Author: Ciaran McCreesh <ciaranm@gentoo.org>
5     Last-Modified: $Date: $
6     Status: Draft
7     Type: Standards Track
8     Content-Type: text/x-rst
9     Created: 19-August-2004
10    
11     BIG FAT DISCLAIMER: EARLY DRAFT, SEND COMMENTS TO ciaranm. EVERYTHING IN
12     HERE IS OPEN TO DISCUSSION. THE WRITING STYLE SUCKS. MAY CAUSE CANCER IN
13     PUPPIES.
14    
15     Abstract
16     ========
17    
18     Currently, USE flags must be selected on a one-by-one basis, making it
19     time-consuming to set up make.conf appropriately for a machine's role.
20    
21     Motivation
22     ==========
23    
24     USE flags allow the user to have software built in a manner which is
25     relevant for their system's role. For example, a desktop user will
26     probably want to enable optional X support in packages, whereas a server
27     user will not. However, with several hundred USE flags available, it can
28     be time consuming to set up make.conf appropriately.
29    
30     This GLEP proposes a mechanism for grouping USE flags to simplify
31     selection.
32    
33     Specification
34     =============
35    
36     Group Specification
37     -------------------
38    
39     A group shall consist of one or more USE flags. These groups are defined
40     in ``${PORTDIR}/profiles/use.groups``. It is proposed that uppercase names
41     only are used for groups to keep them visually distinct from normal USE
42     flags. The file format is similar to the existing use.* files:
43    
44     ::
45    
46     SOME_GROUP flag1 flag2 flag3
47     OTHER_GROUP flag2 flag4
48    
49     Groups may recursively include other groups. For consistency with GLEP 23
50     [1], it is proposed that group names are prefixed with an 'at' symbol (@):
51    
52     ::
53    
54     GROUP1 flag1
55     GROUP2 flag2 flag3 @GROUP1
56     GROUP3 flag4
57     GROUP4 @GROUP2 @GROUP3 flag5
58    
59     Users may create their own groups using ``/etc/portage/use.groups``. This
60     file overrides the profile settings in the case of duplicates.
61    
62     Group Descriptions
63     ------------------
64    
65     Groups shall have a textual description associated with them in the same
66     way as USE flags. The file ``${PORTDIR}/profiles/use.groups.desc``
67     contains these:
68    
69     ::
70    
71     DESKTOP Flags which are appropriate for most desktop systems
72     RECOMMENDED Flags which should be enabled on almost all systems
73    
74    
75     Using Groups
76     ------------
77    
78     Groups may be used in ``/etc/make.conf``, ``/etc/portage/package.use`` and
79     other places where USE flags are normally specified. Again, the @ symbol
80     is used. For example, a ``make.conf`` for a desktop system might resemble:
81    
82     ::
83    
84     USE="@DESKTOP @KDE perl alsa dvd"
85    
86     Additional Issues
87     -----------------
88    
89     Groups should *not* generally contain negative USE flags, as this would
90     lead to confusion. Groups are intended to specify what will be enabled for
91     a given role, not what will be turned off. For example, if the @KDE group
92     disabled Gnome-related USE flags, and a user used ``USE="@GNOME @KDE"`` to
93     specify that they wanted both Gnome *and* KDE to be used where applicable,
94     chaos would ensue. However, for the sake of consistency, -flags should be
95     supported even if their use is strongly discouraged.
96    
97     It is proposed that ``-@GROUP`` syntax should *not* be supported. Instead,
98     users wishing to turn most things off could use the ``-*`` USE syntax
99     along with a group (for example, @RECOMMENDED) which turned on flags (for
100     example, pam and readline) which should usually be used.
101    
102     Adding New Groups
103     -----------------
104    
105     The actual groups to be created is beyond the scope of this GLEP, and any
106     group names contained herein should be treated as examples only. Creation
107     of new groups and changing a group's flags should be discussed on the
108     gentoo-dev mailing list as per existing policy for new global USE flags.
109    
110     Rationale
111     =========
112    
113     USE groups will simplify selecting an appropriate set of USE flags for a
114     system.
115    
116     Reference Implementation
117     ========================
118    
119     TODO
120    
121     Backwards Compatability
122     =======================
123    
124     The user will not need to make any changes to keep their current setup.
125     Users who are not running a portage version which supports groups can
126     carry on using current syntax with no side-effects.
127    
128     Some tools which work with make.conf and / or USE flags (for example,
129     ``ufed``) will need to be updated to understand the new group syntax.
130    
131     There is currently a dymanic list of USE flags available on the Gentoo
132     website [2]. For consistency, a similar list will be needed for USE
133     groups.
134    
135     References
136     ==========
137    
138     .. [1] GLEP 23: Portage handling of ACCEPT_LICENSE
139     (http://www.gentoo.org/proj/en/glep/glep-0023.html)
140     .. [2] http://www.gentoo.org/dyn/use-index.xml
141    
142     Copyright
143     =========
144    
145     This document has been placed in the public domain.
146    
147     vim: set tw=74 :

  ViewVC Help
Powered by ViewVC 1.1.20