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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.4 Revision 1.6
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE! 7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8--> 8-->
9<head> 9<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" /> 11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 23 -- Portage handling of ACCEPT_LICENSE</title> 12 <title>GLEP 23 -- Handling of ACCEPT_LICENSE</title>
13 <style type="text/css"> 13 <style type="text/css">
14 14
15/* 15/*
16:Author: David Goodger 16:Author: David Goodger
17:Contact: goodger@users.sourceforge.net 17:Contact: goodger@users.sourceforge.net
18:date: $Date: 2006/10/10 20:25:14 $ 18:date: $Date: 2006/11/19 22:46:27 $
19:version: $Revision: 1.4 $ 19:version: $Revision: 1.6 $
20:copyright: This stylesheet has been placed in the public domain. 20:copyright: This stylesheet has been placed in the public domain.
21 21
22Default cascading style sheet for the PEP HTML output of Docutils. 22Default cascading style sheet for the PEP HTML output of Docutils.
23*/ 23*/
24 24
271<col class="field-name" /> 271<col class="field-name" />
272<col class="field-body" /> 272<col class="field-body" />
273<tbody valign="top"> 273<tbody valign="top">
274<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">23</td> 274<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">23</td>
275</tr> 275</tr>
276<tr class="field"><th class="field-name">Title:</th><td class="field-body">Portage handling of ACCEPT_LICENSE</td> 276<tr class="field"><th class="field-name">Title:</th><td class="field-body">Handling of ACCEPT_LICENSE</td>
277</tr> 277</tr>
278<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td> 278<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
279</tr> 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> 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/18 07:27:47</a></td>
281</tr> 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> 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> 283</tr>
284<tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td> 284<tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
285</tr> 285</tr>
286<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 286<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287</tr> 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> 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> 289</tr>
290<tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td> 290<tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td>
291</tr> 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> 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 19-Nov-2006</td>
293</tr> 293</tr>
294</tbody> 294</tbody>
295</table> 295</table>
296<hr /> 296<hr />
297<div class="contents topic"> 297<div class="contents topic">
302<li><a class="reference" href="#motivation" id="id7" name="id7">Motivation</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> 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> 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> 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> 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> 307<li><a class="reference" href="#behaviour" id="id12" name="id12">Behaviour</a></li>
308</ul> 308</ul>
309</li> 309</li>
310<li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></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> 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> 312<li><a class="reference" href="#backwards-compatibility" id="id15" name="id15">Backwards Compatibility</a></li>
314<li><a class="reference" href="#copyright" id="id17" name="id17">Copyright</a></li> 314<li><a class="reference" href="#copyright" id="id17" name="id17">Copyright</a></li>
315</ul> 315</ul>
316</div> 316</div>
317<div class="section"> 317<div class="section">
318<h1><a class="toc-backref" href="#id5" id="abstract" name="abstract">Abstract</a></h1> 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 319<p>Currently, every ebuild in the main gentoo repository is required to have a
320LICENSE entry. However, the syntax of this entry is not officially 320valid LICENSE entry. However, the syntax of this entry is not officially
321defined and the entry itself is only used when outputting package 321defined and the entry itself is only used when outputting package
322details.</p> 322details.</p>
323</div> 323</div>
324<div class="section"> 324<div class="section">
325<h1><a class="toc-backref" href="#id6" id="status-update" name="status-update">Status Update</a></h1> 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> 326<p>Repoman has been updated to check for the LICENSE syntax.
327A development portage branch with support for ACCEPT_LICENSE
328and license groups exists.</p>
327</div> 329</div>
328<div class="section"> 330<div class="section">
329<h1><a class="toc-backref" href="#id7" id="motivation" name="motivation">Motivation</a></h1> 331<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 332<p>Many users wish to regulate the software they install with regards to
331licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any 333licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any
355<pre class="literal-block"> 357<pre class="literal-block">
356LICENSE=&quot;mandatory-license 358LICENSE=&quot;mandatory-license
357 || ( choosable-licence1 chooseable-license-2 ) 359 || ( choosable-licence1 chooseable-license-2 )
358 useflag? ( optional-component-license )&quot; 360 useflag? ( optional-component-license )&quot;
359</pre> 361</pre>
362<p>License names may contain [a-zA-Z0-9] (english alphanumeric characters),
363_ (underscore), - (dash), . (dot) and + (plus sign).</p>
360</div> 364</div>
361<div class="section"> 365<div class="section">
362<h2><a class="toc-backref" href="#id10" id="license-groups" name="license-groups">License Groups</a></h2> 366<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 367<p>Almost all users are willing to install any software that is
364FSF-approved. Other users are willing to install any software and 368FSF-approved. Other users are willing to install any software and
365implicitly accept its license. To this end, portage will also need to 369implicitly accept its license. To this end, implementations will also
366handle grouping of licenses.</p> 370need to 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>, 371<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>. 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-INTERACTIVE</span></tt>.
369<tt class="docutils literal"><span class="pre">NON-INTERACTIVE</span></tt> licenses are those that don't require interactive 373<tt class="docutils literal"><span class="pre">NON-INTERACTIVE</span></tt> licenses are those that don't require interactive
370acceptance for to be considered legally binding. This is the current 374acceptance for to be considered legally binding. This is the current
371behaviour of portage.</p> 375behaviour 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
377the <tt class="docutils literal"><span class="pre">profiles</span></tt> subdirectory of the tree (or overlays).
378Details 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.
384Group names use the same syntax as normal license names. Also license groups
385may contain other groups.
386License groups may not contain negated elements, so a group</p>
387<pre class="literal-block">
388mygroup foo -bar -bla
389</pre>
390<p>is illegal.</p>
372</div> 391</div>
373<div class="section"> 392<div class="section">
374<h2><a class="toc-backref" href="#id11" id="accept-license" name="accept-license">ACCEPT_LICENSE</a></h2> 393<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 394<p>This GLEP proposes that a user be able to explicitly accept or decline
376licenses by editing a new variable <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> in 395licenses by editing a new variable <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> in
383This GLEP proposes that the license group be prepended by the special 402This GLEP proposes that the license group be prepended by the special
384character &quot;<tt class="docutils literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p> 403character &quot;<tt class="docutils literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p>
385<pre class="literal-block"> 404<pre class="literal-block">
386ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot; 405ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
387</pre> 406</pre>
407<p>License groups may be negated with the result that all elements of that group
408are also negated.</p>
409<p>Portage will also offer a package.license facility to offer this functionality
410on a per-package base (analog to package.keywords), other implementations may
411implement such a facility differently or not at all.</p>
388</div> 412</div>
389<div class="section"> 413<div class="section">
390<h2><a class="toc-backref" href="#id12" id="emerge-behaviour" name="emerge-behaviour">Emerge Behaviour</a></h2> 414<h2><a class="toc-backref" href="#id12" id="behaviour" name="behaviour">Behaviour</a></h2>
391<p>At a minimum, emerge must handle unaccepted licenses the same way that 415<p>Unaccepted licenses will be treated like any other masked package, that is
392it handles blockers. That is, with the --pretend flag the 416the user interface of an implementation will display a message listing any
393not-yet-accepted license should be listed in the output. Without the 417license that has to be accepted before the package can be merged with a
394--pretend flag, emerge should stop before any software is installed.</p> 418pointer to the exact license text.</p>
395<p>This GLEP proposes that, unlike blockers, dependencies for software 419<p>Past versions of this document proposed to handle license-masked packages
396should be checked regardless of license acceptance. Doing so will allow 420like blockers, but this would be inconsistent with other visibility
397the user to review all necessary licenses before initiating an actual 421filters as well as the current blocker system (as a blocker affects two
398emerge.</p> 422packages) and be more complicated to implement.</p>
399<p>It is also proposed that the --ask option will display an unaccepted
400license and ask for acceptance, but not update any configuration files
401at this stage. Finally, the --verbose option should also list the
402licenses accepted for each package.</p>
403</div> 423</div>
404</div> 424</div>
405<div class="section"> 425<div class="section">
406<h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1> 426<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 427<p>An implementation of this proposal should make it easy for users wishing
408to regulate their software without affecting those that don't.</p> 428to regulate their software without affecting those that don't.</p>
409</div> 429</div>
410<div class="section"> 430<div class="section">
411<h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1> 431<h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
412<p>TODO</p> 432<p>Available in portage svn repository under main/branches/license-masking</p>
413</div> 433</div>
414<div class="section"> 434<div class="section">
415<h1><a class="toc-backref" href="#id15" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1> 435<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 436<p>There should be no change to the user experience without the user
417explicitly choosing to do so. This mandates that the 437explicitly choosing to do so. This mandates that the
418configuration variable be named <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may 438configuration variable be named <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may
419already have it set due to ebuilds using <tt class="docutils literal"><span class="pre">eutil.eclass</span></tt>'s 439already have it set due to ebuilds using <tt class="docutils literal"><span class="pre">eutil.eclass</span></tt>'s
420implementation. It also mandates that the default <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> be 440implementation. It also mandates that the default <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> be
421set to <tt class="docutils literal"><span class="pre">&#64;NON-INTERACTIVE</span></tt>.</p> 441set to <tt class="docutils literal"><span class="pre">&#64;NON-INTERACTIVE</span></tt> in the main gentoo repository as implementations
442are not required to provide an internal default.</p>
422</div> 443</div>
423<div class="section"> 444<div class="section">
424<h1><a class="toc-backref" href="#id16" id="references" name="references">References</a></h1> 445<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"> 446<table class="docutils footnote" frame="void" id="id3" rules="none">
426<colgroup><col class="label" /><col /></colgroup> 447<colgroup><col class="label" /><col /></colgroup>
444 465
445</div> 466</div>
446<div class="footer"> 467<div class="footer">
447<hr class="footer" /> 468<hr class="footer" />
448<a class="reference" href="glep-0023.txt">View document source</a>. 469<a class="reference" href="glep-0023.txt">View document source</a>.
449Generated on: 2006-10-10 20:23 UTC. 470Generated on: 2006-11-19 22:53 UTC.
450Generated 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. 471Generated 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 472
452</div> 473</div>
453</body> 474</body>
454</html> 475</html>

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.20