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

Diff of /xml/htdocs/proj/en/glep/glep-0029.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.3 Revision 1.7
6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links 6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE! 7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8--> 8-->
9<head> 9<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.3: http://docutils.sourceforge.net/" /> 11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 29 -- USE flag groups</title> 12 <title>GLEP 29 -- USE flag groups</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 13 <style type="text/css">
14
15/*
16:Author: David Goodger
17:Contact: goodger@users.sourceforge.net
18:date: $Date: 2007/01/25 03:26:26 $
19:version: $Revision: 1.7 $
20:copyright: This stylesheet has been placed in the public domain.
21
22Default cascading style sheet for the PEP HTML output of Docutils.
23*/
24
25.first {
26 margin-top: 0 }
27
28.last {
29 margin-bottom: 0 }
30
31.navigation {
32 width: 100% ;
33 background: #cc99ff ;
34 margin-top: 0px ;
35 margin-bottom: 0px }
36
37.navigation .navicon {
38 width: 150px ;
39 height: 35px }
40
41.navigation .textlinks {
42 padding-left: 1em ;
43 text-align: left }
44
45.navigation td, .navigation th {
46 padding-left: 0em ;
47 padding-right: 0em ;
48 vertical-align: middle }
49
50.rfc2822 {
51 margin-top: 0.5em ;
52 margin-left: 0.5em ;
53 margin-right: 0.5em ;
54 margin-bottom: 0em }
55
56.rfc2822 td {
57 text-align: left }
58
59.rfc2822 th.field-name {
60 text-align: right ;
61 font-family: sans-serif ;
62 padding-right: 0.5em ;
63 font-weight: bold ;
64 margin-bottom: 0em }
65
66a.toc-backref {
67 text-decoration: none ;
68 color: black }
69
70body {
71 margin: 0px ;
72 margin-bottom: 1em ;
73 padding: 0px }
74
75dd {
76 margin-bottom: 0.5em }
77
78div.section {
79 margin-left: 1em ;
80 margin-right: 1em ;
81 margin-bottom: 1.5em }
82
83div.section div.section {
84 margin-left: 0em ;
85 margin-right: 0em ;
86 margin-top: 1.5em }
87
88div.abstract {
89 margin: 2em 5em }
90
91div.abstract p.topic-title {
92 font-weight: bold ;
93 text-align: center }
94
95div.attention, div.caution, div.danger, div.error, div.hint,
96div.important, div.note, div.tip, div.warning {
97 margin: 2em ;
98 border: medium outset ;
99 padding: 1em }
100
101div.attention p.admonition-title, div.caution p.admonition-title,
102div.danger p.admonition-title, div.error p.admonition-title,
103div.warning p.admonition-title {
104 color: red ;
105 font-weight: bold ;
106 font-family: sans-serif }
107
108div.hint p.admonition-title, div.important p.admonition-title,
109div.note p.admonition-title, div.tip p.admonition-title {
110 font-weight: bold ;
111 font-family: sans-serif }
112
113div.figure {
114 margin-left: 2em }
115
116div.footer, div.header {
117 font-size: smaller }
118
119div.footer {
120 margin-left: 1em ;
121 margin-right: 1em }
122
123div.system-messages {
124 margin: 5em }
125
126div.system-messages h1 {
127 color: red }
128
129div.system-message {
130 border: medium outset ;
131 padding: 1em }
132
133div.system-message p.system-message-title {
134 color: red ;
135 font-weight: bold }
136
137div.topic {
138 margin: 2em }
139
140h1 {
141 font-family: sans-serif ;
142 font-size: large }
143
144h2 {
145 font-family: sans-serif ;
146 font-size: medium }
147
148h3 {
149 font-family: sans-serif ;
150 font-size: small }
151
152h4 {
153 font-family: sans-serif ;
154 font-style: italic ;
155 font-size: small }
156
157h5 {
158 font-family: sans-serif;
159 font-size: x-small }
160
161h6 {
162 font-family: sans-serif;
163 font-style: italic ;
164 font-size: x-small }
165
166.section hr {
167 width: 75% }
168
169ol.simple, ul.simple {
170 margin-bottom: 1em }
171
172ol.arabic {
173 list-style: decimal }
174
175ol.loweralpha {
176 list-style: lower-alpha }
177
178ol.upperalpha {
179 list-style: upper-alpha }
180
181ol.lowerroman {
182 list-style: lower-roman }
183
184ol.upperroman {
185 list-style: upper-roman }
186
187p.caption {
188 font-style: italic }
189
190p.credits {
191 font-style: italic ;
192 font-size: smaller }
193
194p.label {
195 white-space: nowrap }
196
197p.topic-title {
198 font-family: sans-serif ;
199 font-weight: bold }
200
201pre.line-block {
202 font-family: serif ;
203 font-size: 100% }
204
205pre.literal-block, pre.doctest-block {
206 margin-left: 2em ;
207 margin-right: 2em ;
208 background-color: #eeeeee }
209
210span.classifier {
211 font-family: sans-serif ;
212 font-style: oblique }
213
214span.classifier-delimiter {
215 font-family: sans-serif ;
216 font-weight: bold }
217
218span.interpreted {
219 font-family: sans-serif }
220
221span.option-argument {
222 font-style: italic }
223
224span.pre {
225 white-space: pre }
226
227span.problematic {
228 color: red }
229
230table {
231 margin-top: 0.5em ;
232 margin-bottom: 0.5em }
233
234td, th {
235 padding-left: 0.5em ;
236 padding-right: 0.5em ;
237 vertical-align: top }
238
239td.num {
240 text-align: right }
241
242th.field-name {
243 font-weight: bold ;
244 text-align: left ;
245 white-space: nowrap }
246
247h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248 font-size: 100% }
249
250tt {
251 background-color: #eeeeee }
252
253ul.auto-toc {
254 list-style-type: none }
255
256</style>
14</head> 257</head>
15<body bgcolor="white"> 258<body bgcolor="white">
16<table class="navigation" cellpadding="0" cellspacing="0" 259<table class="navigation" cellpadding="0" cellspacing="0"
17 width="100%" border="0"> 260 width="100%" border="0">
18<tr><td class="navicon" width="150" height="35"> 261<tr><td class="navicon" width="150" height="35">
19<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page"> 262<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]" 263<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td> 264 border="0" width="150" height="35" /></a></td>
22<td class="textlinks" align="left"> 265<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 266[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>] 267[<b><a href="http://www.gentoo.org/proj/en/glep/">GLEP Index</a></b>]
25[<b><a href="./glep-0029.txt">GLEP Source</a></b>] 268[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0029.txt">GLEP Source</a></b>]
26</td></tr></table> 269</td></tr></table>
27<div class="document">
28<table class="rfc2822 field-list" frame="void" rules="none"> 270<table class="rfc2822 docutils field-list" frame="void" rules="none">
29<col class="field-name" /> 271<col class="field-name" />
30<col class="field-body" /> 272<col class="field-body" />
31<tbody valign="top"> 273<tbody valign="top">
32<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">29</td> 274<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">29</td>
33</tr> 275</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">USE flag groups</td> 276<tr class="field"><th class="field-name">Title:</th><td class="field-body">USE flag groups</td>
35</tr> 277</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td> 278<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
37</tr> 279</tr>
38<tr class="field"><th class="field-name">Author:</th><td class="field-body">Ciaran McCreesh &lt;ciaranm&#32;&#97;t&#32;gentoo.org&gt;</td> 280<tr class="field"><th class="field-name">Author:</th><td class="field-body">Ciaran McCreesh &lt;ciaranm&#32;&#97;t&#32;gentoo.org&gt;</td>
39</tr> 281</tr>
40<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs/xml/htdocs/proj/en/glep/glep-0029.txt?cvsroot=gentoo">2004/10/25 16:57:09</a></td> 282<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0029.txt?cvsroot=gentoo">2005/11/07 22:26:59</a></td>
41</tr> 283</tr>
42<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> 284<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
43</tr> 285</tr>
44<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 286<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45</tr> 287</tr>
46<tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0012.html">text/x-rst</a></td> 288<tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
47</tr> 289</tr>
48<tr class="field"><th class="field-name">Created:</th><td class="field-body">19-August-2004</td> 290<tr class="field"><th class="field-name">Created:</th><td class="field-body">19-Aug-2004</td>
49</tr> 291</tr>
50<tr class="field"><th class="field-name">Post-Date:</th><td class="field-body">21-August-2004, 18-October-2004, 25-October-2004</td> 292<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">21-Aug-2004, 18-Oct-2004, 25-Oct-2004, 24-Jul-2005</td>
51</tr> 293</tr>
52</tbody> 294</tbody>
53</table> 295</table>
54<hr /> 296<hr />
55<div class="contents topic" id="contents"> 297<div class="contents topic">
56<p class="topic-title first"><a name="contents">Contents</a></p> 298<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
57<ul class="simple"> 299<ul class="simple">
300<li><a class="reference" href="#status" id="id7" name="id7">Status</a></li>
58<li><a class="reference" href="#abstract" id="id7" name="id7">Abstract</a></li> 301<li><a class="reference" href="#abstract" id="id8" name="id8">Abstract</a></li>
59<li><a class="reference" href="#motivation" id="id8" name="id8">Motivation</a></li> 302<li><a class="reference" href="#motivation" id="id9" name="id9">Motivation</a></li>
60<li><a class="reference" href="#specification" id="id9" name="id9">Specification</a><ul> 303<li><a class="reference" href="#specification" id="id10" name="id10">Specification</a><ul>
61<li><a class="reference" href="#group-specification" id="id10" name="id10">Group Specification</a></li> 304<li><a class="reference" href="#group-specification" id="id11" name="id11">Group Specification</a></li>
62<li><a class="reference" href="#group-descriptions" id="id11" name="id11">Group Descriptions</a></li> 305<li><a class="reference" href="#group-descriptions" id="id12" name="id12">Group Descriptions</a></li>
63<li><a class="reference" href="#using-groups" id="id12" name="id12">Using Groups</a></li> 306<li><a class="reference" href="#using-groups" id="id13" name="id13">Using Groups</a></li>
64<li><a class="reference" href="#issues-with-flags-and-groups" id="id13" name="id13">Issues with -flags and -&#64;GROUPS</a></li> 307<li><a class="reference" href="#issues-with-flags-and-groups" id="id14" name="id14">Issues with -flags and -&#64;GROUPS</a></li>
65<li><a class="reference" href="#adding-new-groups" id="id14" name="id14">Adding New Groups</a></li> 308<li><a class="reference" href="#adding-new-groups" id="id15" name="id15">Adding New Groups</a></li>
66</ul> 309</ul>
67</li> 310</li>
68<li><a class="reference" href="#rationale" id="id15" name="id15">Rationale</a></li> 311<li><a class="reference" href="#rationale" id="id16" name="id16">Rationale</a></li>
69<li><a class="reference" href="#reference-implementation" id="id16" name="id16">Reference Implementation</a></li> 312<li><a class="reference" href="#reference-implementation" id="id17" name="id17">Reference Implementation</a></li>
70<li><a class="reference" href="#backwards-compatibility" id="id17" name="id17">Backwards Compatibility</a></li> 313<li><a class="reference" href="#backwards-compatibility" id="id18" name="id18">Backwards Compatibility</a></li>
71<li><a class="reference" href="#references" id="id18" name="id18">References</a></li> 314<li><a class="reference" href="#references" id="id19" name="id19">References</a></li>
72<li><a class="reference" href="#copyright" id="id19" name="id19">Copyright</a></li> 315<li><a class="reference" href="#copyright" id="id20" name="id20">Copyright</a></li>
73</ul> 316</ul>
74</div> 317</div>
75<div class="section" id="abstract"> 318<div class="section">
319<h1><a class="toc-backref" href="#id7" id="status" name="status">Status</a></h1>
320<p>Withdrawn by request of the author.</p>
321</div>
322<div class="section">
76<h1><a class="toc-backref" href="#id7" name="abstract">Abstract</a></h1> 323<h1><a class="toc-backref" href="#id8" id="abstract" name="abstract">Abstract</a></h1>
77<p>Currently, USE flags must be selected on a one-by-one basis, making it 324<p>Currently, USE flags must be selected on a one-by-one basis, making it
78time-consuming to set up make.conf appropriately for a machine's role.</p> 325time-consuming to set up make.conf appropriately for a machine's role.</p>
79</div> 326</div>
80<div class="section" id="motivation"> 327<div class="section">
81<h1><a class="toc-backref" href="#id8" name="motivation">Motivation</a></h1> 328<h1><a class="toc-backref" href="#id9" id="motivation" name="motivation">Motivation</a></h1>
82<p>Many packages have optional support for other packages (for example, the 329<p>Many packages have optional support for other packages (for example, the
83Vim text editor can optionally support perl, python and ruby 330Vim text editor can optionally support perl, python and ruby
84interpreters). In Gentoo, these optional dependencies can be selected by 331interpreters). In Gentoo, these optional dependencies can be selected by
85the user using USE flags. This allows a system appropriate for a given 332the user using USE flags. This allows a system appropriate for a given
86environment to be built -- a server, for example, should not typically 333environment to be built -- a server, for example, should not typically
92system. In addition, using &quot;-<em>&quot; to disable all default USE flags can be 339system. In addition, using &quot;-<em>&quot; to disable all default USE flags can be
93risky as certain USE flags should not generally be turned off. This GLEP 340risky as certain USE flags should not generally be turned off. This GLEP
94proposes a mechanism for grouping USE flags to simplify selection and to 341proposes a mechanism for grouping USE flags to simplify selection and to
95make USE=&quot;-</em>&quot; less dangerous.</p> 342make USE=&quot;-</em>&quot; less dangerous.</p>
96</div> 343</div>
97<div class="section" id="specification"> 344<div class="section">
98<h1><a class="toc-backref" href="#id9" name="specification">Specification</a></h1> 345<h1><a class="toc-backref" href="#id10" id="specification" name="specification">Specification</a></h1>
99<div class="section" id="group-specification"> 346<div class="section">
100<h2><a class="toc-backref" href="#id10" name="group-specification">Group Specification</a></h2> 347<h2><a class="toc-backref" href="#id11" id="group-specification" name="group-specification">Group Specification</a></h2>
101<p>A group shall consist of one or more tokens. Each token may be a USE flag, 348<p>A group shall consist of one or more tokens. Each token may be a USE flag,
102a -USE flag, a reference to another group or a negative reference to 349a -USE flag, a reference to another group or a negative reference to
103another group.</p> 350another group.</p>
104<p>These groups are defined in <tt class="literal"><span class="pre">${PORTDIR}/profiles/use.groups</span></tt>. It is 351<p>These groups are defined in <tt class="docutils literal"><span class="pre">${PORTDIR}/profiles/use.groups</span></tt>. It is
105proposed that uppercase names only are used for groups to keep them 352proposed that uppercase names only are used for groups to keep them
106visually distinct from normal USE flags (almost all USE flags are 353visually distinct from normal USE flags (almost all USE flags are
107lowercase), although this should not been forced programmatically. The 354lowercase), although this should not been forced programmatically. The
108file should be similar in format to the existing use.* files. In the 355file should be similar in format to the existing use.* files. In the
109following, <tt class="literal"><span class="pre">SOME_GROUP</span></tt> and <tt class="literal"><span class="pre">OTHER_GROUP</span></tt> are group names, and 356following, <tt class="docutils literal"><span class="pre">SOME_GROUP</span></tt> and <tt class="docutils literal"><span class="pre">OTHER_GROUP</span></tt> are group names, and
110<tt class="literal"><span class="pre">flag1</span></tt> through <tt class="literal"><span class="pre">flag5</span></tt> are USE flag names:</p> 357<tt class="docutils literal"><span class="pre">flag1</span></tt> through <tt class="docutils literal"><span class="pre">flag5</span></tt> are USE flag names:</p>
111<pre class="literal-block"> 358<pre class="literal-block">
112SOME_GROUP flag1 flag2 flag3 359SOME_GROUP flag1 flag2 flag3
113OTHER_GROUP flag2 flag4 360OTHER_GROUP flag2 flag4
114</pre> 361</pre>
115<p>Groups may recursively include other groups. For consistency with GLEP 23 362<p>Groups may recursively include other groups. For consistency with GLEP 23
131hash symbol (#) are comments.</p> 378hash symbol (#) are comments.</p>
132<pre class="literal-block"> 379<pre class="literal-block">
133# This is a comment 380# This is a comment
134FOO bar baz fnord 381FOO bar baz fnord
135</pre> 382</pre>
136<p>Users may create their own groups using <tt class="literal"><span class="pre">/etc/portage/use.groups</span></tt>. This 383<p>Users may create their own groups using <tt class="docutils literal"><span class="pre">/etc/portage/use.groups</span></tt>. This
137file overrides the profile settings in the case of duplicates.</p> 384file overrides the profile settings in the case of duplicates.</p>
138<p>It should be legal for groups to specify -use flags, although for reasons 385<p>It should be legal for groups to specify -use flags, although for reasons
139discussed below this feature should not generally be used. The syntax is 386discussed below this feature should not generally be used. The syntax is
140the same:</p> 387the same:</p>
141<pre class="literal-block"> 388<pre class="literal-block">
148# Illegal circular references 395# Illegal circular references
149GROUP1 &#64;GROUP2 foo 396GROUP1 &#64;GROUP2 foo
150GROUP2 &#64;GROUP1 bar 397GROUP2 &#64;GROUP1 bar
151</pre> 398</pre>
152</div> 399</div>
153<div class="section" id="group-descriptions"> 400<div class="section">
154<h2><a class="toc-backref" href="#id11" name="group-descriptions">Group Descriptions</a></h2> 401<h2><a class="toc-backref" href="#id12" id="group-descriptions" name="group-descriptions">Group Descriptions</a></h2>
155<p>Groups shall have a textual description associated with them in the same 402<p>Groups shall have a textual description associated with them in the same
156way as USE flags. The file <tt class="literal"><span class="pre">${PORTDIR}/profiles/use.groups.desc</span></tt> 403way as USE flags. The file <tt class="docutils literal"><span class="pre">${PORTDIR}/profiles/use.groups.desc</span></tt>
157contains these:</p> 404contains these:</p>
158<pre class="literal-block"> 405<pre class="literal-block">
159# This is a comment 406# This is a comment
160DESKTOP Flags which are appropriate for most desktop systems 407DESKTOP Flags which are appropriate for most desktop systems
161RECOMMENDED Flags which should be enabled on almost all systems 408RECOMMENDED Flags which should be enabled on almost all systems
162</pre> 409</pre>
163</div> 410</div>
164<div class="section" id="using-groups"> 411<div class="section">
165<h2><a class="toc-backref" href="#id12" name="using-groups">Using Groups</a></h2> 412<h2><a class="toc-backref" href="#id13" id="using-groups" name="using-groups">Using Groups</a></h2>
166<p>Groups may be used in <tt class="literal"><span class="pre">/etc/make.conf</span></tt>, <tt class="literal"><span class="pre">/etc/portage/package.use</span></tt> and 413<p>Groups may be used in <tt class="docutils literal"><span class="pre">/etc/make.conf</span></tt>, <tt class="docutils literal"><span class="pre">/etc/portage/package.use</span></tt> and
167other places where USE flags are normally specified. They may <em>not</em> be 414other places where USE flags are normally specified. They may <em>not</em> be
168used inside <tt class="literal"><span class="pre">IUSE`.</span> <span class="pre">As</span> <span class="pre">before,</span> <span class="pre">the</span> <span class="pre">&#64;</span> <span class="pre">symbol</span> <span class="pre">is</span> <span class="pre">used</span> <span class="pre">to</span> <span class="pre">indicate</span> <span class="pre">that</span> <span class="pre">a</span> 415used inside <tt class="docutils literal"><span class="pre">IUSE`.</span> <span class="pre">As</span> <span class="pre">before,</span> <span class="pre">the</span> <span class="pre">&#64;</span> <span class="pre">symbol</span> <span class="pre">is</span> <span class="pre">used</span> <span class="pre">to</span> <span class="pre">indicate</span> <span class="pre">that</span> <span class="pre">a</span>
169<span class="pre">group</span> <span class="pre">is</span> <span class="pre">being</span> <span class="pre">referenced.</span> <span class="pre">For</span> <span class="pre">example,</span> <span class="pre">a</span> <span class="pre">``make.conf</span></tt> for a KDE desktop 416<span class="pre">group</span> <span class="pre">is</span> <span class="pre">being</span> <span class="pre">referenced.</span> <span class="pre">For</span> <span class="pre">example,</span> <span class="pre">a</span> <span class="pre">``make.conf</span></tt> for a KDE desktop
170system might resemble:</p> 417system might resemble:</p>
171<pre class="literal-block"> 418<pre class="literal-block">
172USE=&quot;&#64;DESKTOP &#64;KDE perl alsa dvd&quot; 419USE=&quot;&#64;DESKTOP &#64;KDE perl alsa dvd&quot;
173</pre> 420</pre>
188USE=&quot;-&#64;GROUP1 &#64;GROUP2 bar -foo -foo -bar bar&quot; 435USE=&quot;-&#64;GROUP1 &#64;GROUP2 bar -foo -foo -bar bar&quot;
189USE=&quot;-foo -bar bar -baz fnord bar -foo -foo -bar bar&quot; 436USE=&quot;-foo -bar bar -baz fnord bar -foo -foo -bar bar&quot;
190USE=&quot;-baz fnord -foo bar&quot; 437USE=&quot;-baz fnord -foo bar&quot;
191</pre> 438</pre>
192</div> 439</div>
193<div class="section" id="issues-with-flags-and-groups"> 440<div class="section">
194<h2><a class="toc-backref" href="#id13" name="issues-with-flags-and-groups">Issues with -flags and <a class="reference" href="mailto:-&#64;GROUPS">-&#64;GROUPS</a></a></h2> 441<h2><a id="issues-with-flags-and-groups" name="issues-with-flags-and-groups">Issues with -flags and <a class="reference" href="mailto:-&#64;GROUPS">-&#64;GROUPS</a></a></h2>
195<p>Earlier drafts of this GLEP did not allow -use flags or <a class="reference" href="mailto:-&#64;GROUPS">-&#64;GROUPS</a>. However, 442<p>Earlier drafts of this GLEP did not allow -use flags or <a class="reference" href="mailto:-&#64;GROUPS">-&#64;GROUPS</a>. However,
196because of feedback along the lines of &quot;we shouldn't disallow features 443because of feedback along the lines of &quot;we shouldn't disallow features
197just because some users won't understand them&quot; (for example, <a class="footnote-reference" href="#id6" id="id2" name="id2">[3]</a>), these 444just because some users won't understand them&quot; (for example, <a class="footnote-reference" href="#id6" id="id2" name="id2">[3]</a>), these
198are now allowed but discouraged.</p> 445are now allowed but discouraged.</p>
199<p>The problems are best illustrated by example. Say we have the following 446<p>The problems are best illustrated by example. Say we have the following
204</pre> 451</pre>
205<p>A user who wants a KDE desktop but no GNOME may do the following:</p> 452<p>A user who wants a KDE desktop but no GNOME may do the following:</p>
206<pre class="literal-block"> 453<pre class="literal-block">
207USE=&quot;&#64;KDE -&#64;GNOME&quot; 454USE=&quot;&#64;KDE -&#64;GNOME&quot;
208</pre> 455</pre>
209<p>However, this will not give the desired effect -- the <tt class="literal"><span class="pre">X</span></tt> USE flag will 456<p>However, this will not give the desired effect -- the <tt class="docutils literal"><span class="pre">X</span></tt> USE flag will
210end up being disabled.</p> 457end up being disabled.</p>
211<p>Similarly, -use flags could cause a lot of confusion if misused. If, for 458<p>Similarly, -use flags could cause a lot of confusion if misused. If, for
212example, the KDE group turned off GNOME things and the GNOME group turned 459example, the KDE group turned off GNOME things and the GNOME group turned
213off KDE things:</p> 460off KDE things:</p>
214<pre class="literal-block"> 461<pre class="literal-block">
228<pre class="literal-block"> 475<pre class="literal-block">
229USE=&quot;X gtk gtk2 gnome -kde -qt&quot; 476USE=&quot;X gtk gtk2 gnome -kde -qt&quot;
230</pre> 477</pre>
231<p>This is clearly not the desired effect.</p> 478<p>This is clearly not the desired effect.</p>
232</div> 479</div>
233<div class="section" id="adding-new-groups"> 480<div class="section">
234<h2><a class="toc-backref" href="#id14" name="adding-new-groups">Adding New Groups</a></h2> 481<h2><a class="toc-backref" href="#id15" id="adding-new-groups" name="adding-new-groups">Adding New Groups</a></h2>
235<p>The actual groups to be created is beyond the scope of this GLEP, and any 482<p>The actual groups to be created is beyond the scope of this GLEP, and any
236group names contained herein should be treated as examples only. Creation 483group names contained herein should be treated as examples only. Creation
237of new groups and changing a group's flags should be discussed on the 484of new groups and changing a group's flags should be discussed on the
238gentoo-dev mailing list as per existing policy for new global USE flags.</p> 485gentoo-dev mailing list as per existing policy for new global USE flags.</p>
239<p>In particular, any changes involving -flags <em>must</em> be thoroughly discussed 486<p>In particular, any changes involving -flags <em>must</em> be thoroughly discussed
240before implementation.</p> 487before implementation.</p>
241</div> 488</div>
242</div> 489</div>
243<div class="section" id="rationale"> 490<div class="section">
244<h1><a class="toc-backref" href="#id15" name="rationale">Rationale</a></h1> 491<h1><a class="toc-backref" href="#id16" id="rationale" name="rationale">Rationale</a></h1>
245<p>USE groups will simplify selecting an appropriate set of USE flags for a 492<p>USE groups will simplify selecting an appropriate set of USE flags for a
246system.</p> 493system.</p>
247</div> 494</div>
248<div class="section" id="reference-implementation"> 495<div class="section">
249<h1><a class="toc-backref" href="#id16" name="reference-implementation">Reference Implementation</a></h1> 496<h1><a class="toc-backref" href="#id17" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
250<p>TODO</p> 497<p>TODO</p>
251</div> 498</div>
252<div class="section" id="backwards-compatibility"> 499<div class="section">
253<h1><a class="toc-backref" href="#id17" name="backwards-compatibility">Backwards Compatibility</a></h1> 500<h1><a class="toc-backref" href="#id18" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
254<p>The user will not need to make any changes to keep their current setup. 501<p>The user will not need to make any changes to keep their current setup.
255Users who are not running a portage version which supports groups can 502Users who are not running a portage version which supports groups can
256carry on using current syntax with no side-effects.</p> 503carry on using current syntax with no side-effects.</p>
257<p>Some tools which work with make.conf and / or USE flags (for example, 504<p>Some tools which work with make.conf and / or USE flags (for example,
258<tt class="literal"><span class="pre">ufed</span></tt>) will need to be updated to understand the new group syntax.</p> 505<tt class="docutils literal"><span class="pre">ufed</span></tt>) will need to be updated to understand the new group syntax.</p>
259<p>There is currently a dynamic list of USE flags available on the Gentoo 506<p>There is currently a dynamic list of USE flags available on the Gentoo
260website <a class="footnote-reference" href="#id5" id="id3" name="id3">[2]</a>. For consistency, a similar list will be needed for USE 507website <a class="footnote-reference" href="#id5" id="id3" name="id3">[2]</a>. For consistency, a similar list will be needed for USE
261groups.</p> 508groups.</p>
262</div> 509</div>
263<div class="section" id="references"> 510<div class="section">
264<h1><a class="toc-backref" href="#id18" name="references">References</a></h1> 511<h1><a class="toc-backref" href="#id19" id="references" name="references">References</a></h1>
265<table class="footnote" frame="void" id="id4" rules="none"> 512<table class="docutils footnote" frame="void" id="id4" rules="none">
266<colgroup><col class="label" /><col /></colgroup> 513<colgroup><col class="label" /><col /></colgroup>
267<tbody valign="top"> 514<tbody valign="top">
268<tr><td class="label"><a class="fn-backref" href="#id1" name="id4">[1]</a></td><td>GLEP 23: Portage handling of ACCEPT_LICENSE 515<tr><td class="label"><a class="fn-backref" href="#id1" name="id4">[1]</a></td><td>GLEP 23: Portage handling of ACCEPT_LICENSE
269(<a class="reference" href="http://www.gentoo.org/proj/en/glep/glep-0023.html">http://www.gentoo.org/proj/en/glep/glep-0023.html</a>)</td></tr> 516(<a class="reference" href="http://www.gentoo.org/proj/en/glep/glep-0023.html">http://www.gentoo.org/proj/en/glep/glep-0023.html</a>)</td></tr>
270</tbody> 517</tbody>
271</table> 518</table>
272<table class="footnote" frame="void" id="id5" rules="none"> 519<table class="docutils footnote" frame="void" id="id5" rules="none">
273<colgroup><col class="label" /><col /></colgroup> 520<colgroup><col class="label" /><col /></colgroup>
274<tbody valign="top"> 521<tbody valign="top">
275<tr><td class="label"><a class="fn-backref" href="#id3" name="id5">[2]</a></td><td><a class="reference" href="http://www.gentoo.org/dyn/use-index.xml">http://www.gentoo.org/dyn/use-index.xml</a></td></tr> 522<tr><td class="label"><a class="fn-backref" href="#id3" name="id5">[2]</a></td><td><a class="reference" href="http://www.gentoo.org/dyn/use-index.xml">http://www.gentoo.org/dyn/use-index.xml</a></td></tr>
276</tbody> 523</tbody>
277</table> 524</table>
278<table class="footnote" frame="void" id="id6" rules="none"> 525<table class="docutils footnote" frame="void" id="id6" rules="none">
279<colgroup><col class="label" /><col /></colgroup> 526<colgroup><col class="label" /><col /></colgroup>
280<tbody valign="top"> 527<tbody valign="top">
281<tr><td class="label"><a class="fn-backref" href="#id2" name="id6">[3]</a></td><td>GLEP 29 discussion on the gentoo-dev mailing list 528<tr><td class="label"><a class="fn-backref" href="#id2" name="id6">[3]</a></td><td>GLEP 29 discussion on the gentoo-dev mailing list
282(<a class="reference" href="http://marc.theaimsgroup.com/?l=gentoo-dev&amp;m=109813990013812">http://marc.theaimsgroup.com/?l=gentoo-dev&amp;m=109813990013812</a>)</td></tr> 529(<a class="reference" href="http://marc.theaimsgroup.com/?l=gentoo-dev&amp;m=109813990013812">http://marc.theaimsgroup.com/?l=gentoo-dev&amp;m=109813990013812</a>)</td></tr>
283</tbody> 530</tbody>
284</table> 531</table>
285</div> 532</div>
286<div class="section" id="copyright"> 533<div class="section">
287<h1><a class="toc-backref" href="#id19" name="copyright">Copyright</a></h1> 534<h1><a class="toc-backref" href="#id20" id="copyright" name="copyright">Copyright</a></h1>
288<p>This document has been placed in the public domain.</p> 535<p>This document has been placed in the public domain.</p>
289<blockquote> 536<blockquote>
290vim: set tw=74 :</blockquote> 537vim: set tw=74 :</blockquote>
291</div> 538</div>
292</div>
293 539
540</div>
541<div class="footer">
294<hr class="footer" /> 542<hr class="footer" />
295<div class="footer">
296<a class="reference" href="glep-0029.txt">View document source</a>. 543<a class="reference" href="glep-0029.txt">View document source</a>.
297Generated on: 2004-10-25 16:50 UTC. 544Generated on: 2006-10-10 20:23 UTC.
298Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. 545Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
546
299</div> 547</div>
300</body> 548</body>
301</html> 549</html>
302 550

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.20