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

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 -- 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">Handling of ACCEPT_LICENSE</td>
277 </tr>
278 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</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">2006/11/19 22:50:15</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;, 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">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 18-Nov-2006 21-Nov-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 <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="#behaviour" id="id12" name="id12">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 main gentoo repository is required to have a
320 valid 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.
327 A development portage branch with support for ACCEPT_LICENSE
328 and license groups exists.</p>
329 </div>
330 <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 licenses they are implicitly accepting.</p>
336 <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 example:</p>
347 <pre class="literal-block">
348 LICENSE=&quot;single-license&quot;
349 </pre>
350 <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 under a different license.</p>
354 <p>To accomodate these cases, LICENSE syntax should accomodate all
355 functionality offered by a DEPEND string. To keep things simple, this
356 GLEP proposes that the syntax be identical. For example:</p>
357 <pre class="literal-block">
358 LICENSE=&quot;mandatory-license
359 || ( choosable-licence1 chooseable-license-2 )
360 useflag? ( optional-component-license )&quot;
361 </pre>
362 <p>License names may contain [a-zA-Z0-9] (english alphanumeric characters),
363 _ (underscore), - (dash), . (dot) and + (plus sign).</p>
364 </div>
365 <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 implicitly accept its license. To this end, implementations will also
370 need to handle grouping of licenses.</p>
371 <p>At a minimum, there needs to be the groups <tt class="docutils literal"><span class="pre">GPL-COMPATIBLE</span></tt>,
372 <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 acceptance for to be considered legally binding. This is the current
375 behaviour of portage.</p>
376 <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 Details of handling groups defined in overlays is implementation dependent.</p>
379 <p>The format of this file is</p>
380 <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 Group names use the same syntax as normal license names. Also license groups
385 may contain other groups.
386 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 </div>
392 <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 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 <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 <pre class="literal-block">
405 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
406 </pre>
407 <p>License groups may be negated with the result that all elements of that group
408 are also negated.</p>
409 <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 </div>
413 <div class="section">
414 <h2><a class="toc-backref" href="#id12" id="behaviour" name="behaviour">Behaviour</a></h2>
415 <p>Unaccepted licenses will be treated like any other masked package, that is
416 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 <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 </div>
424 </div>
425 <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 to regulate their software without affecting those that don't.</p>
429 </div>
430 <div class="section">
431 <h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
432 <p>Available in portage svn repository under main/branches/license-masking</p>
433 </div>
434 <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 set to <tt class="docutils literal"><span class="pre">&#64;NON-MUST-HAVE-READ</span></tt> in the main gentoo repository as implementations
442 are not required to provide an internal default.</p>
443 </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 <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 <table class="docutils footnote" frame="void" id="id4" rules="none">
454 <colgroup><col class="label" /><col /></colgroup>
455 <tbody valign="top">
456 <tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>Gentoo Linux Bug 34146
457 (<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 <div class="section">
462 <h1><a class="toc-backref" href="#id17" id="copyright" name="copyright">Copyright</a></h1>
463 <p>This document has been placed in the public domain.</p>
464 </div>
465
466 </div>
467 <div class="footer">
468 <hr class="footer" />
469 <a class="reference" href="glep-0023.txt">View document source</a>.
470 Generated on: 2006-11-20 22:34 UTC.
471 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
473 </div>
474 </body>
475 </html>

  ViewVC Help
Powered by ViewVC 1.1.20