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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download) (as text)
Sat Oct 14 02:47:31 2006 UTC (8 years, 2 months ago) by genone
Branch: MAIN
Changes since 1.1: +27 -21 lines
File MIME type: text/html
add reference implementation

1 genone 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.4: http://docutils.sourceforge.net/" />
12     <title>GLEP 52 -- RESTRICT=interactive</title>
13     <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18     :date: $Date: 2003/06/02 17:03:08 $
19     :version: $Revision: 1.1 $
20     :copyright: This stylesheet has been placed in the public domain.
21    
22     Default 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    
66     a.toc-backref {
67     text-decoration: none ;
68     color: black }
69    
70     body {
71     margin: 0px ;
72     margin-bottom: 1em ;
73     padding: 0px }
74    
75     dd {
76     margin-bottom: 0.5em }
77    
78     div.section {
79     margin-left: 1em ;
80     margin-right: 1em ;
81     margin-bottom: 1.5em }
82    
83     div.section div.section {
84     margin-left: 0em ;
85     margin-right: 0em ;
86     margin-top: 1.5em }
87    
88     div.abstract {
89     margin: 2em 5em }
90    
91     div.abstract p.topic-title {
92     font-weight: bold ;
93     text-align: center }
94    
95     div.attention, div.caution, div.danger, div.error, div.hint,
96     div.important, div.note, div.tip, div.warning {
97     margin: 2em ;
98     border: medium outset ;
99     padding: 1em }
100    
101     div.attention p.admonition-title, div.caution p.admonition-title,
102     div.danger p.admonition-title, div.error p.admonition-title,
103     div.warning p.admonition-title {
104     color: red ;
105     font-weight: bold ;
106     font-family: sans-serif }
107    
108     div.hint p.admonition-title, div.important p.admonition-title,
109     div.note p.admonition-title, div.tip p.admonition-title {
110     font-weight: bold ;
111     font-family: sans-serif }
112    
113     div.figure {
114     margin-left: 2em }
115    
116     div.footer, div.header {
117     font-size: smaller }
118    
119     div.footer {
120     margin-left: 1em ;
121     margin-right: 1em }
122    
123     div.system-messages {
124     margin: 5em }
125    
126     div.system-messages h1 {
127     color: red }
128    
129     div.system-message {
130     border: medium outset ;
131     padding: 1em }
132    
133     div.system-message p.system-message-title {
134     color: red ;
135     font-weight: bold }
136    
137     div.topic {
138     margin: 2em }
139    
140     h1 {
141     font-family: sans-serif ;
142     font-size: large }
143    
144     h2 {
145     font-family: sans-serif ;
146     font-size: medium }
147    
148     h3 {
149     font-family: sans-serif ;
150     font-size: small }
151    
152     h4 {
153     font-family: sans-serif ;
154     font-style: italic ;
155     font-size: small }
156    
157     h5 {
158     font-family: sans-serif;
159     font-size: x-small }
160    
161     h6 {
162     font-family: sans-serif;
163     font-style: italic ;
164     font-size: x-small }
165    
166     .section hr {
167     width: 75% }
168    
169     ol.simple, ul.simple {
170     margin-bottom: 1em }
171    
172     ol.arabic {
173     list-style: decimal }
174    
175     ol.loweralpha {
176     list-style: lower-alpha }
177    
178     ol.upperalpha {
179     list-style: upper-alpha }
180    
181     ol.lowerroman {
182     list-style: lower-roman }
183    
184     ol.upperroman {
185     list-style: upper-roman }
186    
187     p.caption {
188     font-style: italic }
189    
190     p.credits {
191     font-style: italic ;
192     font-size: smaller }
193    
194     p.label {
195     white-space: nowrap }
196    
197     p.topic-title {
198     font-family: sans-serif ;
199     font-weight: bold }
200    
201     pre.line-block {
202     font-family: serif ;
203     font-size: 100% }
204    
205     pre.literal-block, pre.doctest-block {
206     margin-left: 2em ;
207     margin-right: 2em ;
208     background-color: #eeeeee }
209    
210     span.classifier {
211     font-family: sans-serif ;
212     font-style: oblique }
213    
214     span.classifier-delimiter {
215     font-family: sans-serif ;
216     font-weight: bold }
217    
218     span.interpreted {
219     font-family: sans-serif }
220    
221     span.option-argument {
222     font-style: italic }
223    
224     span.pre {
225     white-space: pre }
226    
227     span.problematic {
228     color: red }
229    
230     table {
231     margin-top: 0.5em ;
232     margin-bottom: 0.5em }
233    
234     td, th {
235     padding-left: 0.5em ;
236     padding-right: 0.5em ;
237     vertical-align: top }
238    
239     td.num {
240     text-align: right }
241    
242     th.field-name {
243     font-weight: bold ;
244     text-align: left ;
245     white-space: nowrap }
246    
247     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248     font-size: 100% }
249    
250     tt {
251     background-color: #eeeeee }
252    
253     ul.auto-toc {
254     list-style-type: none }
255    
256     </style>
257     </head>
258     <body bgcolor="white">
259     <table class="navigation" cellpadding="0" cellspacing="0"
260     width="100%" border="0">
261     <tr><td class="navicon" width="150" height="35">
262     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264     border="0" width="150" height="35" /></a></td>
265     <td class="textlinks" align="left">
266     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267     [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268     [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0052.txt">GLEP Source</a></b>]
269     </td></tr></table>
270     <table class="rfc2822 docutils field-list" frame="void" rules="none">
271     <col class="field-name" />
272     <col class="field-body" />
273     <tbody valign="top">
274     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">52</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">RESTRICT=interactive</td>
277     </tr>
278     <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.1</td>
279     </tr>
280 genone 1.2 <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-0052.txt?cvsroot=gentoo">2006/10/13 22:48:15</a></td>
281 genone 1.1 </tr>
282     <tr class="field"><th class="field-name">Author:</th><td class="field-body">Marius Mauch &lt;genone&#32;&#97;t&#32;gentoo.org&gt;,</td>
283     </tr>
284     <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
285     </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
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>
289     </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">13-Oct-2006</td>
291     </tr>
292     <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">14-Oct-2006</td>
293     </tr>
294     </tbody>
295     </table>
296     <hr />
297     <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299     <ul class="simple">
300 genone 1.2 <li><a class="reference" href="#abstract" id="id4" name="id4">Abstract</a></li>
301     <li><a class="reference" href="#motivation" id="id5" name="id5">Motivation</a></li>
302     <li><a class="reference" href="#specification" id="id6" name="id6">Specification</a></li>
303     <li><a class="reference" href="#rationale" id="id7" name="id7">Rationale</a></li>
304     <li><a class="reference" href="#backwards-compatibility" id="id8" name="id8">Backwards Compatibility</a></li>
305     <li><a class="reference" href="#reference-implementation" id="id9" name="id9">Reference Implementation</a></li>
306     <li><a class="reference" href="#credits" id="id10" name="id10">Credits</a></li>
307     <li><a class="reference" href="#references" id="id11" name="id11">References</a></li>
308     <li><a class="reference" href="#copyright" id="id12" name="id12">Copyright</a></li>
309 genone 1.1 </ul>
310     </div>
311     <div class="section">
312 genone 1.2 <h1><a class="toc-backref" href="#id4" id="abstract" name="abstract">Abstract</a></h1>
313 genone 1.1 <p>This GLEP proposes a new value for the RESTRICT metadata variable in ebuilds to
314     indicate that an ebuild requires interaction by the user.</p>
315     </div>
316     <div class="section">
317 genone 1.2 <h1><a class="toc-backref" href="#id5" id="motivation" name="motivation">Motivation</a></h1>
318 genone 1.1 <p>Certain ebuilds in the current tree require certain actions from the user to
319     progress. A popular example are ebuilds that require physical media (cd/dvd-rom)
320     for their distfiles instead of fetching them form the net.
321     However ebuilds are supposed to be non-interactive, so this behavior, while
322     sometimes necessary, violates existing policies. To account for this situation
323     a new RESTRICT value should be added to allow filtering those ebuilds based on
324     metadata and to inform users upfront (when displaying the depgraph) that a
325     certain package will require their attention during the build process.</p>
326     </div>
327     <div class="section">
328 genone 1.2 <h1><a class="toc-backref" href="#id6" id="specification" name="specification">Specification</a></h1>
329 genone 1.1 <p>Portage (and by extension other package managers) will support a new value for
330     the RESTRICT metadata variable called <tt class="docutils literal"><span class="pre">interactive</span></tt>. This value may be used by
331     the package manager and tools using its API to filter packages that require
332     interactive actions (for example to mask them in automated build environments).
333     How the package manager exactly reacts on the presence of this new flag is beyond
334     this specification, but it's recommended to indicate it's presence to the user
335     whenever relevant.</p>
336     <p>This new setting should be used in ebuilds if it is known that they _typically_
337     require user attention during the build process. If an ebuild just has a limited
338     <tt class="docutils literal"><span class="pre">risk</span></tt> of becoming interactive (like using the <tt class="docutils literal"><span class="pre">built_with_use</span></tt> function)
339     it shouldn't be restricted.</p>
340     </div>
341     <div class="section">
342 genone 1.2 <h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
343 genone 1.1 <p>The new RESTRICT=interactive metadata setting will give us the following benefits:</p>
344     <ol class="arabic simple">
345     <li>Enable masking of interactive ebuilds for automated build environments</li>
346     <li>Metadata based searching for interactive ebuilds (superior to grep)</li>
347     <li>Less frustrated users caused by <tt class="docutils literal"><span class="pre">hanging</span></tt> build processes</li>
348     </ol>
349     <p>This proposal does not change the existing policy regarding interactive ebuilds
350     (ebuilds still should be non-interactive whenever possible), it merely states a
351     way to identify them.</p>
352     </div>
353     <div class="section">
354 genone 1.2 <h1><a class="toc-backref" href="#id8" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
355 genone 1.1 <p>Strictly speaking this extension would requires an EAPI bump, however as existing
356     portage ignore unknown RESTRICT values it shouldn't cause any real breakage to
357     introduce it without.</p>
358     </div>
359     <div class="section">
360 genone 1.2 <h1><a class="toc-backref" href="#id9" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
361     <p>A <a class="reference" href="glep-0052-extras/portage-2.1.2_pre2-r6-interactive-restrict.diff.txt">patch against portage-2.1.2_pre2-r6</a> <a class="footnote-reference" href="#id2" id="id3" name="id3">[2]</a> is available with this document.</p>
362 genone 1.1 </div>
363     <div class="section">
364 genone 1.2 <h1><a class="toc-backref" href="#id10" id="credits" name="credits">Credits</a></h1>
365 genone 1.1 <p>Thanks to the following persons for their input on or related to this GLEP
366     (even though they might not have known it):
367     Alec Warner, Zac Medico, Simon Stelling</p>
368     </div>
369     <div class="section">
370 genone 1.2 <h1><a class="toc-backref" href="#id11" id="references" name="references">References</a></h1>
371 genone 1.1 <table class="docutils footnote" frame="void" id="bug151113" rules="none">
372     <colgroup><col class="label" /><col /></colgroup>
373     <tbody valign="top">
374     <tr><td class="label"><a name="bug151113">[1]</a></td><td><a class="reference" href="http://bugs.gentoo.org/151113">http://bugs.gentoo.org/151113</a></td></tr>
375     </tbody>
376     </table>
377 genone 1.2 <table class="docutils footnote" frame="void" id="id2" rules="none">
378     <colgroup><col class="label" /><col /></colgroup>
379     <tbody valign="top">
380     <tr><td class="label"><a class="fn-backref" href="#id3" name="id2">[2]</a></td><td><a class="reference" href="glep-0052-extras/portage-2.1.2_pre2-r6-interactive-restrict.diff.txt">glep-0052-extras/portage-2.1.2_pre2-r6-interactive-restrict.diff.txt</a></td></tr>
381     </tbody>
382     </table>
383 genone 1.1 </div>
384     <div class="section">
385 genone 1.2 <h1><a class="toc-backref" href="#id12" id="copyright" name="copyright">Copyright</a></h1>
386 genone 1.1 <p>This document has been placed in the public domain.</p>
387     </div>
388    
389     </div>
390     <div class="footer">
391     <hr class="footer" />
392     <a class="reference" href="glep-0052.txt">View document source</a>.
393 genone 1.2 Generated on: 2006-10-14 02:53 UTC.
394 genone 1.1 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.
395    
396     </div>
397     </body>
398     </html>

  ViewVC Help
Powered by ViewVC 1.1.20