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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.1 - (show annotations) (download) (as text)
Sun Aug 22 02:02:32 2004 UTC (14 years, 6 months ago) by g2boojum
Branch: MAIN
File MIME type: text/html
New glep.

1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <!--
5 This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6 PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
8 -->
9 <head>
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/" />
12 <title>GLEP 29 -- USE flag groups</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14 </head>
15 <body bgcolor="white">
16 <table class="navigation" cellpadding="0" cellspacing="0"
17 width="100%" border="0">
18 <tr><td class="navicon" width="150" height="35">
19 <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20 <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td>
22 <td class="textlinks" align="left">
23 [<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>]
25 [<b><a href="./glep-0029.txt">GLEP Source</a></b>]
26 </td></tr></table>
27 <div class="document">
28 <table class="rfc2822 field-list" frame="void" rules="none">
29 <col class="field-name" />
30 <col class="field-body" />
31 <tbody valign="top">
32 <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">29</td>
33 </tr>
34 <tr class="field"><th class="field-name">Title:</th><td class="field-body">USE flag groups</td>
35 </tr>
36 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.1</td>
37 </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>
39 </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/08/22 01:59:24</a></td>
41 </tr>
42 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
43 </tr>
44 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45 </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>
47 </tr>
48 <tr class="field"><th class="field-name">Created:</th><td class="field-body">19-August-2004</td>
49 </tr>
50 <tr class="field"><th class="field-name">Post-Date:</th><td class="field-body">21-August-2004</td>
51 </tr>
52 </tbody>
53 </table>
54 <hr />
55 <div class="contents topic" id="contents">
56 <p class="topic-title first"><a name="contents">Contents</a></p>
57 <ul class="simple">
58 <li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
59 <li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
60 <li><a class="reference" href="#specification" id="id5" name="id5">Specification</a><ul>
61 <li><a class="reference" href="#group-specification" id="id6" name="id6">Group Specification</a></li>
62 <li><a class="reference" href="#group-descriptions" id="id7" name="id7">Group Descriptions</a></li>
63 <li><a class="reference" href="#using-groups" id="id8" name="id8">Using Groups</a></li>
64 <li><a class="reference" href="#additional-issues" id="id9" name="id9">Additional Issues</a></li>
65 <li><a class="reference" href="#adding-new-groups" id="id10" name="id10">Adding New Groups</a></li>
66 </ul>
67 </li>
68 <li><a class="reference" href="#rationale" id="id11" name="id11">Rationale</a></li>
69 <li><a class="reference" href="#reference-implementation" id="id12" name="id12">Reference Implementation</a></li>
70 <li><a class="reference" href="#backwards-compatability" id="id13" name="id13">Backwards Compatability</a></li>
71 <li><a class="reference" href="#references" id="id14" name="id14">References</a></li>
72 <li><a class="reference" href="#copyright" id="id15" name="id15">Copyright</a></li>
73 </ul>
74 </div>
77 PUPPIES.</p>
78 <div class="section" id="abstract">
79 <h1><a class="toc-backref" href="#id3" name="abstract">Abstract</a></h1>
80 <p>Currently, USE flags must be selected on a one-by-one basis, making it
81 time-consuming to set up make.conf appropriately for a machine's role.</p>
82 </div>
83 <div class="section" id="motivation">
84 <h1><a class="toc-backref" href="#id4" name="motivation">Motivation</a></h1>
85 <p>USE flags allow the user to have software built in a manner which is
86 relevant for their system's role. For example, a desktop user will
87 probably want to enable optional X support in packages, whereas a server
88 user will not. However, with several hundred USE flags available, it can
89 be time consuming to set up make.conf appropriately.</p>
90 <p>This GLEP proposes a mechanism for grouping USE flags to simplify
91 selection.</p>
92 </div>
93 <div class="section" id="specification">
94 <h1><a class="toc-backref" href="#id5" name="specification">Specification</a></h1>
95 <div class="section" id="group-specification">
96 <h2><a class="toc-backref" href="#id6" name="group-specification">Group Specification</a></h2>
97 <p>A group shall consist of one or more USE flags. These groups are defined
98 in <tt class="literal"><span class="pre">${PORTDIR}/profiles/use.groups</span></tt>. It is proposed that uppercase names
99 only are used for groups to keep them visually distinct from normal USE
100 flags. The file format is similar to the existing use.* files:</p>
101 <pre class="literal-block">
102 SOME_GROUP flag1 flag2 flag3
103 OTHER_GROUP flag2 flag4
104 </pre>
105 <p>Groups may recursively include other groups. For consistency with GLEP 23
106 [1], it is proposed that group names are prefixed with an 'at' symbol (&#64;):</p>
107 <pre class="literal-block">
108 GROUP1 flag1
109 GROUP2 flag2 flag3 &#64;GROUP1
110 GROUP3 flag4
111 GROUP4 &#64;GROUP2 &#64;GROUP3 flag5
112 </pre>
113 <p>Users may create their own groups using <tt class="literal"><span class="pre">/etc/portage/use.groups</span></tt>. This
114 file overrides the profile settings in the case of duplicates.</p>
115 </div>
116 <div class="section" id="group-descriptions">
117 <h2><a class="toc-backref" href="#id7" name="group-descriptions">Group Descriptions</a></h2>
118 <p>Groups shall have a textual description associated with them in the same
119 way as USE flags. The file <tt class="literal"><span class="pre">${PORTDIR}/profiles/use.groups.desc</span></tt>
120 contains these:</p>
121 <pre class="literal-block">
122 DESKTOP Flags which are appropriate for most desktop systems
123 RECOMMENDED Flags which should be enabled on almost all systems
124 </pre>
125 </div>
126 <div class="section" id="using-groups">
127 <h2><a class="toc-backref" href="#id8" name="using-groups">Using Groups</a></h2>
128 <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
129 other places where USE flags are normally specified. Again, the &#64; symbol
130 is used. For example, a <tt class="literal"><span class="pre">make.conf</span></tt> for a desktop system might resemble:</p>
131 <pre class="literal-block">
132 USE=&quot;&#64;DESKTOP &#64;KDE perl alsa dvd&quot;
133 </pre>
134 </div>
135 <div class="section" id="additional-issues">
136 <h2><a class="toc-backref" href="#id9" name="additional-issues">Additional Issues</a></h2>
137 <p>Groups should <em>not</em> generally contain negative USE flags, as this would
138 lead to confusion. Groups are intended to specify what will be enabled for
139 a given role, not what will be turned off. For example, if the &#64;KDE group
140 disabled Gnome-related USE flags, and a user used <tt class="literal"><span class="pre">USE=&quot;&#64;GNOME</span> <span class="pre">&#64;KDE&quot;</span></tt> to
141 specify that they wanted both Gnome <em>and</em> KDE to be used where applicable,
142 chaos would ensue. However, for the sake of consistency, -flags should be
143 supported even if their use is strongly discouraged.</p>
144 <p>It is proposed that <tt class="literal"><span class="pre">-&#64;GROUP</span></tt> syntax should <em>not</em> be supported. Instead,
145 users wishing to turn most things off could use the <tt class="literal"><span class="pre">-*</span></tt> USE syntax
146 along with a group (for example, &#64;RECOMMENDED) which turned on flags (for
147 example, pam and readline) which should usually be used.</p>
148 </div>
149 <div class="section" id="adding-new-groups">
150 <h2><a class="toc-backref" href="#id10" name="adding-new-groups">Adding New Groups</a></h2>
151 <p>The actual groups to be created is beyond the scope of this GLEP, and any
152 group names contained herein should be treated as examples only. Creation
153 of new groups and changing a group's flags should be discussed on the
154 gentoo-dev mailing list as per existing policy for new global USE flags.</p>
155 </div>
156 </div>
157 <div class="section" id="rationale">
158 <h1><a class="toc-backref" href="#id11" name="rationale">Rationale</a></h1>
159 <p>USE groups will simplify selecting an appropriate set of USE flags for a
160 system.</p>
161 </div>
162 <div class="section" id="reference-implementation">
163 <h1><a class="toc-backref" href="#id12" name="reference-implementation">Reference Implementation</a></h1>
164 <p>TODO</p>
165 </div>
166 <div class="section" id="backwards-compatability">
167 <h1><a class="toc-backref" href="#id13" name="backwards-compatability">Backwards Compatability</a></h1>
168 <p>The user will not need to make any changes to keep their current setup.
169 Users who are not running a portage version which supports groups can
170 carry on using current syntax with no side-effects.</p>
171 <p>Some tools which work with make.conf and / or USE flags (for example,
172 <tt class="literal"><span class="pre">ufed</span></tt>) will need to be updated to understand the new group syntax.</p>
173 <p>There is currently a dymanic list of USE flags available on the Gentoo
174 website [2]. For consistency, a similar list will be needed for USE
175 groups.</p>
176 </div>
177 <div class="section" id="references">
178 <h1><a class="toc-backref" href="#id14" name="references">References</a></h1>
179 <table class="footnote" frame="void" id="id1" rules="none">
180 <colgroup><col class="label" /><col /></colgroup>
181 <tbody valign="top">
182 <tr><td class="label"><a name="id1">[1]</a></td><td>GLEP 23: Portage handling of ACCEPT_LICENSE
183 (<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>
184 </tbody>
185 </table>
186 <table class="footnote" frame="void" id="id2" rules="none">
187 <colgroup><col class="label" /><col /></colgroup>
188 <tbody valign="top">
189 <tr><td class="label"><a name="id2">[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>
190 </tbody>
191 </table>
192 </div>
193 <div class="section" id="copyright">
194 <h1><a class="toc-backref" href="#id15" name="copyright">Copyright</a></h1>
195 <p>This document has been placed in the public domain.</p>
196 <blockquote>
197 vim: set tw=74 :</blockquote>
198 </div>
199 </div>
201 <hr class="footer" />
202 <div class="footer">
203 <a class="reference" href="glep-0029.txt">View document source</a>.
204 Generated on: 2004-08-22 01:47 UTC.
205 Generated 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.
206 </div>
207 </body>
208 </html>

  ViewVC Help
Powered by ViewVC 1.1.20