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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 g2boojum 1.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
7     to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
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>
75     <p>BIG FAT DISCLAIMER: EARLY DRAFT, SEND COMMENTS TO ciaranm. EVERYTHING IN
76     HERE IS OPEN TO DISCUSSION. THE WRITING STYLE SUCKS. MAY CAUSE CANCER IN
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>
200    
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