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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (7 years, 6 months ago) by g2boojum
Branch: MAIN
Changes since 1.3: +333 -90 lines
File MIME type: text/html
regenerate all .html files

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 23 -- Portage handling of ACCEPT_LICENSE</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-0023.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">23</td>
275 </tr>
276 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Portage handling of ACCEPT_LICENSE</td>
277 </tr>
278 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td>
279 </tr>
280 <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-0023.txt?cvsroot=gentoo">2004/10/26 00:21:28</a></td>
281 </tr>
282 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Jason Stubbs &lt;jstubbs&#32;&#97;t&#32;gentoo.org&gt;,</td>
283 </tr>
284 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</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">9-Mar-2004</td>
291 </tr>
292 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">8-Mar-2004 10-Mar-2004 25-Oct-2004</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 <li><a class="reference" href="#abstract" id="id5" name="id5">Abstract</a></li>
301 <li><a class="reference" href="#status-update" id="id6" name="id6">Status Update</a></li>
302 <li><a class="reference" href="#motivation" id="id7" name="id7">Motivation</a></li>
303 <li><a class="reference" href="#specification" id="id8" name="id8">Specification</a><ul>
304 <li><a class="reference" href="#ebuild-license-variable" id="id9" name="id9">Ebuild LICENSE Variable</a></li>
305 <li><a class="reference" href="#license-groups" id="id10" name="id10">License Groups</a></li>
306 <li><a class="reference" href="#accept-license" id="id11" name="id11">ACCEPT_LICENSE</a></li>
307 <li><a class="reference" href="#emerge-behaviour" id="id12" name="id12">Emerge Behaviour</a></li>
308 </ul>
309 </li>
310 <li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></li>
311 <li><a class="reference" href="#reference-implementation" id="id14" name="id14">Reference Implementation</a></li>
312 <li><a class="reference" href="#backwards-compatibility" id="id15" name="id15">Backwards Compatibility</a></li>
313 <li><a class="reference" href="#references" id="id16" name="id16">References</a></li>
314 <li><a class="reference" href="#copyright" id="id17" name="id17">Copyright</a></li>
315 </ul>
316 </div>
317 <div class="section">
318 <h1><a class="toc-backref" href="#id5" id="abstract" name="abstract">Abstract</a></h1>
319 <p>Currently, every ebuild in the portage tree is required to have a valid
320 LICENSE entry. However, the syntax of this entry is not officially
321 defined and the entry itself is only used when outputting package
322 details.</p>
323 </div>
324 <div class="section">
325 <h1><a class="toc-backref" href="#id6" id="status-update" name="status-update">Status Update</a></h1>
326 <p>Repoman has been updated to check for the LICENSE syntax.</p>
327 </div>
328 <div class="section">
329 <h1><a class="toc-backref" href="#id7" id="motivation" name="motivation">Motivation</a></h1>
330 <p>Many users wish to regulate the software they install with regards to
331 licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any
332 software that is not OSI-approved; others are simply curious as to what
333 licenses they are implicitly accepting.</p>
334 <p>Furthermore, some software requires that a user interactively accept its
335 license for its author's to consider it legally binding. This is
336 currently implemented using <tt class="docutils literal"><span class="pre">eutils.eclass</span></tt>.</p>
337 </div>
338 <div class="section">
339 <h1><a class="toc-backref" href="#id8" id="specification" name="specification">Specification</a></h1>
340 <div class="section">
341 <h2><a class="toc-backref" href="#id9" id="ebuild-license-variable" name="ebuild-license-variable">Ebuild LICENSE Variable</a></h2>
342 <p>Most ebuilds are for software which is released under a single license.
343 In these cases, the current LICENSE variable can remain as is. For
344 example:</p>
345 <pre class="literal-block">
346 LICENSE=&quot;single-license&quot;
347 </pre>
348 <p>However, there are several ebuilds for software which is released under
349 several licenses, of which the user must accept one, some or all <a class="footnote-reference" href="#id4" id="id2" name="id2">[2]</a>.
350 To complicate this, some ebuilds include optional components which fall
351 under a different license.</p>
352 <p>To accomodate these cases, LICENSE syntax should accomodate all
353 functionality offered by a DEPEND string. To keep things simple, this
354 GLEP proposes that the syntax be identical. For example:</p>
355 <pre class="literal-block">
356 LICENSE=&quot;mandatory-license
357 || ( choosable-licence1 chooseable-license-2 )
358 useflag? ( optional-component-license )&quot;
359 </pre>
360 </div>
361 <div class="section">
362 <h2><a class="toc-backref" href="#id10" id="license-groups" name="license-groups">License Groups</a></h2>
363 <p>Almost all users are willing to install any software that is
364 FSF-approved. Other users are willing to install any software and
365 implicitly accept its license. To this end, portage will also need to
366 handle grouping of licenses.</p>
367 <p>At a minimum, there needs to be the groups <tt class="docutils literal"><span class="pre">GPL-COMPATIBLE</span></tt>,
368 <tt class="docutils literal"><span class="pre">FSF-APPROVED</span></tt>, <tt class="docutils literal"><span class="pre">OSI-APPROVED</span></tt> and <tt class="docutils literal"><span class="pre">NON-INTERACTIVE</span></tt>.
369 <tt class="docutils literal"><span class="pre">NON-INTERACTIVE</span></tt> licenses are those that don't require interactive
370 acceptance for to be considered legally binding. This is the current
371 behaviour of portage.</p>
372 </div>
373 <div class="section">
374 <h2><a class="toc-backref" href="#id11" id="accept-license" name="accept-license">ACCEPT_LICENSE</a></h2>
375 <p>This GLEP proposes that a user be able to explicitly accept or decline
376 licenses by editing a new variable <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> in
377 <tt class="docutils literal"><span class="pre">/etc/make.conf</span></tt>. Again, to keep things simple, the syntax should be
378 similar to that of other incrementals. For example:</p>
379 <pre class="literal-block">
380 ACCEPT_LICENSE=&quot;-* accepted-license -declined-license&quot;
381 </pre>
382 <p>As an extension, <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> must also support <a class="reference" href="#license-groups">license groups</a>.
383 This GLEP proposes that the license group be prepended by the special
384 character &quot;<tt class="docutils literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p>
385 <pre class="literal-block">
386 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
387 </pre>
388 </div>
389 <div class="section">
390 <h2><a class="toc-backref" href="#id12" id="emerge-behaviour" name="emerge-behaviour">Emerge Behaviour</a></h2>
391 <p>At a minimum, emerge must handle unaccepted licenses the same way that
392 it handles blockers. That is, with the --pretend flag the
393 not-yet-accepted license should be listed in the output. Without the
394 --pretend flag, emerge should stop before any software is installed.</p>
395 <p>This GLEP proposes that, unlike blockers, dependencies for software
396 should be checked regardless of license acceptance. Doing so will allow
397 the user to review all necessary licenses before initiating an actual
398 emerge.</p>
399 <p>It is also proposed that the --ask option will display an unaccepted
400 license and ask for acceptance, but not update any configuration files
401 at this stage. Finally, the --verbose option should also list the
402 licenses accepted for each package.</p>
403 </div>
404 </div>
405 <div class="section">
406 <h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1>
407 <p>An implementation of this proposal should make it easy for users wishing
408 to regulate their software without affecting those that don't.</p>
409 </div>
410 <div class="section">
411 <h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
412 <p>TODO</p>
413 </div>
414 <div class="section">
415 <h1><a class="toc-backref" href="#id15" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
416 <p>There should be no change to the user experience without the user
417 explicitly choosing to do so. This mandates that the
418 configuration variable be named <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may
419 already have it set due to ebuilds using <tt class="docutils literal"><span class="pre">eutil.eclass</span></tt>'s
420 implementation. It also mandates that the default <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> be
421 set to <tt class="docutils literal"><span class="pre">&#64;NON-INTERACTIVE</span></tt>.</p>
422 </div>
423 <div class="section">
424 <h1><a class="toc-backref" href="#id16" id="references" name="references">References</a></h1>
425 <table class="docutils footnote" frame="void" id="id3" rules="none">
426 <colgroup><col class="label" /><col /></colgroup>
427 <tbody valign="top">
428 <tr><td class="label"><a class="fn-backref" href="#id1" name="id3">[1]</a></td><td>Gentoo Linux Bug 17367
429 (<a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=17367">http://bugs.gentoo.org/show_bug.cgi?id=17367</a>)</td></tr>
430 </tbody>
431 </table>
432 <table class="docutils footnote" frame="void" id="id4" rules="none">
433 <colgroup><col class="label" /><col /></colgroup>
434 <tbody valign="top">
435 <tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>Gentoo Linux Bug 34146
436 (<a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=34146">http://bugs.gentoo.org/show_bug.cgi?id=34146</a>)</td></tr>
437 </tbody>
438 </table>
439 </div>
440 <div class="section">
441 <h1><a class="toc-backref" href="#id17" id="copyright" name="copyright">Copyright</a></h1>
442 <p>This document has been placed in the public domain.</p>
443 </div>
444
445 </div>
446 <div class="footer">
447 <hr class="footer" />
448 <a class="reference" href="glep-0023.txt">View document source</a>.
449 Generated on: 2006-10-10 20:23 UTC.
450 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.
451
452 </div>
453 </body>
454 </html>

  ViewVC Help
Powered by ViewVC 1.1.20