/[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 - (show annotations) (download)
Sun Aug 22 01:59:24 2004 UTC (9 years, 7 months ago) by g2boojum
Branch: MAIN
File MIME type: text/plain
New glep

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