/[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.10 - (hide annotations) (download) (as text)
Sun Oct 14 17:00:15 2007 UTC (7 years ago) by antarus
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +6 -253 lines
File MIME type: text/html
the canary on 53 went well, changing the rest

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 antarus 1.10
5 g2boojum 1.1 <head>
6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 g2boojum 1.4 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
8 genone 1.6 <title>GLEP 23 -- Handling of ACCEPT_LICENSE</title>
9 antarus 1.10 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
10 g2boojum 1.1 </head>
11     <body bgcolor="white">
12     <table class="navigation" cellpadding="0" cellspacing="0"
13     width="100%" border="0">
14     <tr><td class="navicon" width="150" height="35">
15     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
16     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
17     border="0" width="150" height="35" /></a></td>
18     <td class="textlinks" align="left">
19     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
20 antarus 1.10 [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
21 g2boojum 1.4 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0023.txt">GLEP Source</a></b>]
22 g2boojum 1.1 </td></tr></table>
23 g2boojum 1.4 <table class="rfc2822 docutils field-list" frame="void" rules="none">
24 g2boojum 1.1 <col class="field-name" />
25     <col class="field-body" />
26     <tbody valign="top">
27     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">23</td>
28     </tr>
29 genone 1.6 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Handling of ACCEPT_LICENSE</td>
30 g2boojum 1.1 </tr>
31 antarus 1.10 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.7</td>
32 g2boojum 1.1 </tr>
33 antarus 1.10 <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/21 00:02:05</a></td>
34 g2boojum 1.1 </tr>
35 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>
36 g2boojum 1.1 </tr>
37 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
38 g2boojum 1.1 </tr>
39     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
40     </tr>
41 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>
42 g2boojum 1.1 </tr>
43     <tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td>
44     </tr>
45 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>
46 g2boojum 1.1 </tr>
47     </tbody>
48     </table>
49     <hr />
50 g2boojum 1.4 <div class="contents topic">
51     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
52 g2boojum 1.1 <ul class="simple">
53     <li><a class="reference" href="#abstract" id="id5" name="id5">Abstract</a></li>
54 g2boojum 1.3 <li><a class="reference" href="#status-update" id="id6" name="id6">Status Update</a></li>
55     <li><a class="reference" href="#motivation" id="id7" name="id7">Motivation</a></li>
56     <li><a class="reference" href="#specification" id="id8" name="id8">Specification</a><ul>
57     <li><a class="reference" href="#ebuild-license-variable" id="id9" name="id9">Ebuild LICENSE Variable</a></li>
58     <li><a class="reference" href="#license-groups" id="id10" name="id10">License Groups</a></li>
59     <li><a class="reference" href="#accept-license" id="id11" name="id11">ACCEPT_LICENSE</a></li>
60 genone 1.6 <li><a class="reference" href="#behaviour" id="id12" name="id12">Behaviour</a></li>
61 g2boojum 1.1 </ul>
62     </li>
63 g2boojum 1.3 <li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></li>
64     <li><a class="reference" href="#reference-implementation" id="id14" name="id14">Reference Implementation</a></li>
65     <li><a class="reference" href="#backwards-compatibility" id="id15" name="id15">Backwards Compatibility</a></li>
66     <li><a class="reference" href="#references" id="id16" name="id16">References</a></li>
67     <li><a class="reference" href="#copyright" id="id17" name="id17">Copyright</a></li>
68 g2boojum 1.1 </ul>
69     </div>
70 g2boojum 1.4 <div class="section">
71     <h1><a class="toc-backref" href="#id5" id="abstract" name="abstract">Abstract</a></h1>
72 genone 1.6 <p>Currently, every ebuild in the main gentoo repository is required to have a
73     valid LICENSE entry. However, the syntax of this entry is not officially
74 g2boojum 1.4 defined and the entry itself is only used when outputting package
75 g2boojum 1.1 details.</p>
76     </div>
77 g2boojum 1.4 <div class="section">
78     <h1><a class="toc-backref" href="#id6" id="status-update" name="status-update">Status Update</a></h1>
79 genone 1.5 <p>Repoman has been updated to check for the LICENSE syntax.
80     A development portage branch with support for ACCEPT_LICENSE
81     and license groups exists.</p>
82 g2boojum 1.3 </div>
83 g2boojum 1.4 <div class="section">
84     <h1><a class="toc-backref" href="#id7" id="motivation" name="motivation">Motivation</a></h1>
85     <p>Many users wish to regulate the software they install with regards to
86     licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any
87     software that is not OSI-approved; others are simply curious as to what
88 g2boojum 1.1 licenses they are implicitly accepting.</p>
89 g2boojum 1.4 <p>Furthermore, some software requires that a user interactively accept its
90     license for its author's to consider it legally binding. This is
91     currently implemented using <tt class="docutils literal"><span class="pre">eutils.eclass</span></tt>.</p>
92     </div>
93     <div class="section">
94     <h1><a class="toc-backref" href="#id8" id="specification" name="specification">Specification</a></h1>
95     <div class="section">
96     <h2><a class="toc-backref" href="#id9" id="ebuild-license-variable" name="ebuild-license-variable">Ebuild LICENSE Variable</a></h2>
97     <p>Most ebuilds are for software which is released under a single license.
98     In these cases, the current LICENSE variable can remain as is. For
99 g2boojum 1.1 example:</p>
100     <pre class="literal-block">
101     LICENSE=&quot;single-license&quot;
102     </pre>
103 g2boojum 1.4 <p>However, there are several ebuilds for software which is released under
104     several licenses, of which the user must accept one, some or all <a class="footnote-reference" href="#id4" id="id2" name="id2">[2]</a>.
105     To complicate this, some ebuilds include optional components which fall
106 g2boojum 1.1 under a different license.</p>
107 g2boojum 1.4 <p>To accomodate these cases, LICENSE syntax should accomodate all
108     functionality offered by a DEPEND string. To keep things simple, this
109 g2boojum 1.1 GLEP proposes that the syntax be identical. For example:</p>
110     <pre class="literal-block">
111 g2boojum 1.2 LICENSE=&quot;mandatory-license
112     || ( choosable-licence1 chooseable-license-2 )
113 g2boojum 1.1 useflag? ( optional-component-license )&quot;
114     </pre>
115 genone 1.6 <p>License names may contain [a-zA-Z0-9] (english alphanumeric characters),
116     _ (underscore), - (dash), . (dot) and + (plus sign).</p>
117 g2boojum 1.1 </div>
118 g2boojum 1.4 <div class="section">
119     <h2><a class="toc-backref" href="#id10" id="license-groups" name="license-groups">License Groups</a></h2>
120     <p>Almost all users are willing to install any software that is
121     FSF-approved. Other users are willing to install any software and
122 genone 1.6 implicitly accept its license. To this end, implementations will also
123     need to handle grouping of licenses.</p>
124 g2boojum 1.4 <p>At a minimum, there needs to be the groups <tt class="docutils literal"><span class="pre">GPL-COMPATIBLE</span></tt>,
125 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>.
126     <tt class="docutils literal"><span class="pre">NON-MUST-HAVE-READ</span></tt> licenses are those that don't require manual
127 g2boojum 1.4 acceptance for to be considered legally binding. This is the current
128 g2boojum 1.2 behaviour of portage.</p>
129 genone 1.5 <p>These groups are defined in a new file <tt class="docutils literal"><span class="pre">license_groups</span></tt> in
130     the <tt class="docutils literal"><span class="pre">profiles</span></tt> subdirectory of the tree (or overlays).
131 genone 1.6 Details of handling groups defined in overlays is implementation dependent.</p>
132     <p>The format of this file is</p>
133 genone 1.5 <pre class="literal-block">
134     &lt;groupname&gt; &lt;license1&gt; &lt;license2&gt; ... &lt;licenseN&gt;
135     </pre>
136     <p>Also any line starting with # is ignored and may be used for comments.
137 genone 1.6 Group names use the same syntax as normal license names. Also license groups
138     may contain other groups.
139 genone 1.5 License groups may not contain negated elements, so a group</p>
140     <pre class="literal-block">
141     mygroup foo -bar -bla
142     </pre>
143     <p>is illegal.</p>
144 g2boojum 1.1 </div>
145 g2boojum 1.4 <div class="section">
146     <h2><a class="toc-backref" href="#id11" id="accept-license" name="accept-license">ACCEPT_LICENSE</a></h2>
147     <p>This GLEP proposes that a user be able to explicitly accept or decline
148     licenses by editing a new variable <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> in
149     <tt class="docutils literal"><span class="pre">/etc/make.conf</span></tt>. Again, to keep things simple, the syntax should be
150 g2boojum 1.1 similar to that of other incrementals. For example:</p>
151     <pre class="literal-block">
152     ACCEPT_LICENSE=&quot;-* accepted-license -declined-license&quot;
153     </pre>
154 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>.
155     This GLEP proposes that the license group be prepended by the special
156     character &quot;<tt class="docutils literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p>
157 g2boojum 1.1 <pre class="literal-block">
158 g2boojum 1.2 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
159 g2boojum 1.1 </pre>
160 genone 1.5 <p>License groups may be negated with the result that all elements of that group
161     are also negated.</p>
162 genone 1.6 <p>Portage will also offer a package.license facility to offer this functionality
163     on a per-package base (analog to package.keywords), other implementations may
164     implement such a facility differently or not at all.</p>
165 g2boojum 1.1 </div>
166 g2boojum 1.4 <div class="section">
167 genone 1.6 <h2><a class="toc-backref" href="#id12" id="behaviour" name="behaviour">Behaviour</a></h2>
168 genone 1.5 <p>Unaccepted licenses will be treated like any other masked package, that is
169 genone 1.6 the user interface of an implementation will display a message listing any
170     license that has to be accepted before the package can be merged with a
171     pointer to the exact license text.</p>
172 genone 1.5 <p>Past versions of this document proposed to handle license-masked packages
173     like blockers, but this would be inconsistent with other visibility
174     filters as well as the current blocker system (as a blocker affects two
175     packages) and be more complicated to implement.</p>
176 g2boojum 1.1 </div>
177     </div>
178 g2boojum 1.4 <div class="section">
179     <h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1>
180     <p>An implementation of this proposal should make it easy for users wishing
181 g2boojum 1.1 to regulate their software without affecting those that don't.</p>
182     </div>
183 g2boojum 1.4 <div class="section">
184     <h1><a class="toc-backref" href="#id14" id="reference-implementation" name="reference-implementation">Reference Implementation</a></h1>
185 genone 1.5 <p>Available in portage svn repository under main/branches/license-masking</p>
186 g2boojum 1.1 </div>
187 g2boojum 1.4 <div class="section">
188     <h1><a class="toc-backref" href="#id15" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
189     <p>There should be no change to the user experience without the user
190     explicitly choosing to do so. This mandates that the
191     configuration variable be named <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may
192     already have it set due to ebuilds using <tt class="docutils literal"><span class="pre">eutil.eclass</span></tt>'s
193     implementation. It also mandates that the default <tt class="docutils literal"><span class="pre">ACCEPT_LICENSE</span></tt> be
194 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
195 genone 1.6 are not required to provide an internal default.</p>
196 g2boojum 1.4 </div>
197     <div class="section">
198     <h1><a class="toc-backref" href="#id16" id="references" name="references">References</a></h1>
199     <table class="docutils footnote" frame="void" id="id3" rules="none">
200 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
201     <tbody valign="top">
202     <tr><td class="label"><a class="fn-backref" href="#id1" name="id3">[1]</a></td><td>Gentoo Linux Bug 17367
203     (<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>
204     </tbody>
205     </table>
206 g2boojum 1.4 <table class="docutils footnote" frame="void" id="id4" rules="none">
207 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
208     <tbody valign="top">
209 g2boojum 1.4 <tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>Gentoo Linux Bug 34146
210 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>
211     </tbody>
212     </table>
213     </div>
214 g2boojum 1.4 <div class="section">
215     <h1><a class="toc-backref" href="#id17" id="copyright" name="copyright">Copyright</a></h1>
216 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
217     </div>
218 g2boojum 1.4
219 g2boojum 1.1 </div>
220 g2boojum 1.4 <div class="footer">
221 g2boojum 1.3 <hr class="footer" />
222 g2boojum 1.1 <a class="reference" href="glep-0023.txt">View document source</a>.
223 antarus 1.10 Generated on: 2007-10-13 13:39 UTC.
224 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.
225 g2boojum 1.4
226 g2boojum 1.1 </div>
227     </body>
228     </html>

  ViewVC Help
Powered by ViewVC 1.1.20