/[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.8 - (hide annotations) (download) (as text)
Tue Nov 21 00:02:05 2006 UTC (8 years ago) by genone
Branch: MAIN
Changes since 1.7: +4 -4 lines
File MIME type: text/html
update post history

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 g2boojum 1.4 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 genone 1.6 <title>GLEP 23 -- Handling of ACCEPT_LICENSE</title>
13 g2boojum 1.4 <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 g2boojum 1.1 </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 g2boojum 1.4 [<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 g2boojum 1.1 </td></tr></table>
270 g2boojum 1.4 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 g2boojum 1.1 <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 genone 1.6 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Handling of ACCEPT_LICENSE</td>
277 g2boojum 1.1 </tr>
278 genone 1.8 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
279 g2boojum 1.1 </tr>
280 genone 1.8 <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">2006/11/19 22:50:15</a></td>
281 g2boojum 1.1 </tr>
282 genone 1.5 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Jason Stubbs &lt;jstubbs&#32;&#97;t&#32;gentoo.org&gt;, Marius Mauch &lt;genone&#32;&#97;t&#32;gentoo.org&gt;</td>
283 g2boojum 1.1 </tr>
284 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
285 g2boojum 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288 g2boojum 1.4 <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 g2boojum 1.1 </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td>
291     </tr>
292 genone 1.8 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 21-Nov-2006</td>
293 g2boojum 1.1 </tr>
294     </tbody>
295     </table>
296     <hr />
297 g2boojum 1.4 <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 g2boojum 1.1 <ul class="simple">
300     <li><a class="reference" href="#abstract" id="id5" name="id5">Abstract</a></li>
301 g2boojum 1.3 <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 genone 1.6 <li><a class="reference" href="#behaviour" id="id12" name="id12">Behaviour</a></li>
308 g2boojum 1.1 </ul>
309     </li>
310 g2boojum 1.3 <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 g2boojum 1.1 </ul>
316     </div>
317 g2boojum 1.4 <div class="section">
318     <h1><a class="toc-backref" href="#id5" id="abstract" name="abstract">Abstract</a></h1>
319 genone 1.6 <p>Currently, every ebuild in the main gentoo repository is required to have a
320     valid LICENSE entry. However, the syntax of this entry is not officially
321 g2boojum 1.4 defined and the entry itself is only used when outputting package
322 g2boojum 1.1 details.</p>
323     </div>
324 g2boojum 1.4 <div class="section">
325     <h1><a class="toc-backref" href="#id6" id="status-update" name="status-update">Status Update</a></h1>
326 genone 1.5 <p>Repoman has been updated to check for the LICENSE syntax.
327     A development portage branch with support for ACCEPT_LICENSE
328     and license groups exists.</p>
329 g2boojum 1.3 </div>
330 g2boojum 1.4 <div class="section">
331     <h1><a class="toc-backref" href="#id7" id="motivation" name="motivation">Motivation</a></h1>
332     <p>Many users wish to regulate the software they install with regards to
333     licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any
334     software that is not OSI-approved; others are simply curious as to what
335 g2boojum 1.1 licenses they are implicitly accepting.</p>
336 g2boojum 1.4 <p>Furthermore, some software requires that a user interactively accept its
337     license for its author's to consider it legally binding. This is
338     currently implemented using <tt class="docutils literal"><span class="pre">eutils.eclass</span></tt>.</p>
339     </div>
340     <div class="section">
341     <h1><a class="toc-backref" href="#id8" id="specification" name="specification">Specification</a></h1>
342     <div class="section">
343     <h2><a class="toc-backref" href="#id9" id="ebuild-license-variable" name="ebuild-license-variable">Ebuild LICENSE Variable</a></h2>
344     <p>Most ebuilds are for software which is released under a single license.
345     In these cases, the current LICENSE variable can remain as is. For
346 g2boojum 1.1 example:</p>
347     <pre class="literal-block">
348     LICENSE=&quot;single-license&quot;
349     </pre>
350 g2boojum 1.4 <p>However, there are several ebuilds for software which is released under
351     several licenses, of which the user must accept one, some or all <a class="footnote-reference" href="#id4" id="id2" name="id2">[2]</a>.
352     To complicate this, some ebuilds include optional components which fall
353 g2boojum 1.1 under a different license.</p>
354 g2boojum 1.4 <p>To accomodate these cases, LICENSE syntax should accomodate all
355     functionality offered by a DEPEND string. To keep things simple, this
356 g2boojum 1.1 GLEP proposes that the syntax be identical. For example:</p>
357     <pre class="literal-block">
358 g2boojum 1.2 LICENSE=&quot;mandatory-license
359     || ( choosable-licence1 chooseable-license-2 )
360 g2boojum 1.1 useflag? ( optional-component-license )&quot;
361     </pre>
362 genone 1.6 <p>License names may contain [a-zA-Z0-9] (english alphanumeric characters),
363     _ (underscore), - (dash), . (dot) and + (plus sign).</p>
364 g2boojum 1.1 </div>
365 g2boojum 1.4 <div class="section">
366     <h2><a class="toc-backref" href="#id10" id="license-groups" name="license-groups">License Groups</a></h2>
367     <p>Almost all users are willing to install any software that is
368     FSF-approved. Other users are willing to install any software and
369 genone 1.6 implicitly accept its license. To this end, implementations will also
370     need to handle grouping of licenses.</p>
371 g2boojum 1.4 <p>At a minimum, there needs to be the groups <tt class="docutils literal"><span class="pre">GPL-COMPATIBLE</span></tt>,
372 genone 1.7 <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-MUST-HAVE-READ</span></tt>.
373     <tt class="docutils literal"><span class="pre">NON-MUST-HAVE-READ</span></tt> licenses are those that don't require manual
374 g2boojum 1.4 acceptance for to be considered legally binding. This is the current
375 g2boojum 1.2 behaviour of portage.</p>
376 genone 1.5 <p>These groups are defined in a new file <tt class="docutils literal"><span class="pre">license_groups</span></tt> in
377     the <tt class="docutils literal"><span class="pre">profiles</span></tt> subdirectory of the tree (or overlays).
378 genone 1.6 Details of handling groups defined in overlays is implementation dependent.</p>
379     <p>The format of this file is</p>
380 genone 1.5 <pre class="literal-block">
381     &lt;groupname&gt; &lt;license1&gt; &lt;license2&gt; ... &lt;licenseN&gt;
382     </pre>
383     <p>Also any line starting with # is ignored and may be used for comments.
384 genone 1.6 Group names use the same syntax as normal license names. Also license groups
385     may contain other groups.
386 genone 1.5 License groups may not contain negated elements, so a group</p>
387     <pre class="literal-block">
388     mygroup foo -bar -bla
389     </pre>
390     <p>is illegal.</p>
391 g2boojum 1.1 </div>
392 g2boojum 1.4 <div class="section">
393     <h2><a class="toc-backref" href="#id11" id="accept-license" name="accept-license">ACCEPT_LICENSE</a></h2>
394     <p>This GLEP proposes that a user be able to explicitly accept or decline
395     licenses by editing a new variable <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> in
396     <tt class="docutils literal"><span class="pre">/etc/make.conf</span></tt>. Again, to keep things simple, the syntax should be
397 g2boojum 1.1 similar to that of other incrementals. For example:</p>
398     <pre class="literal-block">
399     ACCEPT_LICENSE=&quot;-* accepted-license -declined-license&quot;
400     </pre>
401 g2boojum 1.4 <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>.
402     This GLEP proposes that the license group be prepended by the special
403     character &quot;<tt class="docutils literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p>
404 g2boojum 1.1 <pre class="literal-block">
405 g2boojum 1.2 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
406 g2boojum 1.1 </pre>
407 genone 1.5 <p>License groups may be negated with the result that all elements of that group
408     are also negated.</p>
409 genone 1.6 <p>Portage will also offer a package.license facility to offer this functionality
410     on a per-package base (analog to package.keywords), other implementations may
411     implement such a facility differently or not at all.</p>
412 g2boojum 1.1 </div>
413 g2boojum 1.4 <div class="section">
414 genone 1.6 <h2><a class="toc-backref" href="#id12" id="behaviour" name="behaviour">Behaviour</a></h2>
415 genone 1.5 <p>Unaccepted licenses will be treated like any other masked package, that is
416 genone 1.6 the user interface of an implementation will display a message listing any
417     license that has to be accepted before the package can be merged with a
418     pointer to the exact license text.</p>
419 genone 1.5 <p>Past versions of this document proposed to handle license-masked packages
420     like blockers, but this would be inconsistent with other visibility
421     filters as well as the current blocker system (as a blocker affects two
422     packages) and be more complicated to implement.</p>
423 g2boojum 1.1 </div>
424     </div>
425 g2boojum 1.4 <div class="section">
426     <h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1>
427     <p>An implementation of this proposal should make it easy for users wishing
428 g2boojum 1.1 to regulate their software without affecting those that don't.</p>
429     </div>
430 g2boojum 1.4 <div class="section">
431     <h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
432 genone 1.5 <p>Available in portage svn repository under main/branches/license-masking</p>
433 g2boojum 1.1 </div>
434 g2boojum 1.4 <div class="section">
435     <h1><a class="toc-backref" href="#id15" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
436     <p>There should be no change to the user experience without the user
437     explicitly choosing to do so. This mandates that the
438     configuration variable be named <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may
439     already have it set due to ebuilds using <tt class="docutils literal"><span class="pre">eutil.eclass</span></tt>'s
440     implementation. It also mandates that the default <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> be
441 genone 1.7 set to <tt class="docutils literal"><span class="pre">&#64;NON-MUST-HAVE-READ</span></tt> in the main gentoo repository as implementations
442 genone 1.6 are not required to provide an internal default.</p>
443 g2boojum 1.4 </div>
444     <div class="section">
445     <h1><a class="toc-backref" href="#id16" id="references" name="references">References</a></h1>
446     <table class="docutils footnote" frame="void" id="id3" rules="none">
447 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
448     <tbody valign="top">
449     <tr><td class="label"><a class="fn-backref" href="#id1" name="id3">[1]</a></td><td>Gentoo Linux Bug 17367
450     (<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>
451     </tbody>
452     </table>
453 g2boojum 1.4 <table class="docutils footnote" frame="void" id="id4" rules="none">
454 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
455     <tbody valign="top">
456 g2boojum 1.4 <tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>Gentoo Linux Bug 34146
457 g2boojum 1.1 (<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>
458     </tbody>
459     </table>
460     </div>
461 g2boojum 1.4 <div class="section">
462     <h1><a class="toc-backref" href="#id17" id="copyright" name="copyright">Copyright</a></h1>
463 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
464     </div>
465 g2boojum 1.4
466 g2boojum 1.1 </div>
467 g2boojum 1.4 <div class="footer">
468 g2boojum 1.3 <hr class="footer" />
469 g2boojum 1.1 <a class="reference" href="glep-0023.txt">View document source</a>.
470 genone 1.8 Generated on: 2006-11-20 22:34 UTC.
471 g2boojum 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.
472 g2boojum 1.4
473 g2boojum 1.1 </div>
474     </body>
475     </html>

  ViewVC Help
Powered by ViewVC 1.1.20