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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.3 - (show annotations) (download) (as text)
Mon Oct 25 17:04:01 2004 UTC (13 years, 7 months ago) by g2boojum
Branch: MAIN
Changes since 1.2: +36 -31 lines
File MIME type: text/html

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
8 -->
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.3: http://docutils.sourceforge.net/" />
12 <title>GLEP 23 -- Portage handling of ACCEPT_LICENSE</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14 </head>
15 <body bgcolor="white">
16 <table class="navigation" cellpadding="0" cellspacing="0"
17 width="100%" border="0">
18 <tr><td class="navicon" width="150" height="35">
19 <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20 <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td>
22 <td class="textlinks" align="left">
23 [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24 [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25 [<b><a href="./glep-0023.txt">GLEP Source</a></b>]
26 </td></tr></table>
27 <div class="document">
28 <table class="rfc2822 field-list" frame="void" rules="none">
29 <col class="field-name" />
30 <col class="field-body" />
31 <tbody valign="top">
32 <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">23</td>
33 </tr>
34 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Portage handling of ACCEPT_LICENSE</td>
35 </tr>
36 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
37 </tr>
38 <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/xml/htdocs/proj/en/glep/glep-0023.txt?cvsroot=gentoo">2004/03/11 02:35:40</a></td>
39 </tr>
40 <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>
41 </tr>
42 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
43 </tr>
44 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45 </tr>
46 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0012.html">text/x-rst</a></td>
47 </tr>
48 <tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td>
49 </tr>
50 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">8-Mar-2004 10-Mar-2004 25-Oct-2004</td>
51 </tr>
52 </tbody>
53 </table>
54 <hr />
55 <div class="contents topic" id="contents">
56 <p class="topic-title first"><a name="contents">Contents</a></p>
57 <ul class="simple">
58 <li><a class="reference" href="#abstract" id="id5" name="id5">Abstract</a></li>
59 <li><a class="reference" href="#status-update" id="id6" name="id6">Status Update</a></li>
60 <li><a class="reference" href="#motivation" id="id7" name="id7">Motivation</a></li>
61 <li><a class="reference" href="#specification" id="id8" name="id8">Specification</a><ul>
62 <li><a class="reference" href="#ebuild-license-variable" id="id9" name="id9">Ebuild LICENSE Variable</a></li>
63 <li><a class="reference" href="#license-groups" id="id10" name="id10">License Groups</a></li>
64 <li><a class="reference" href="#accept-license" id="id11" name="id11">ACCEPT_LICENSE</a></li>
65 <li><a class="reference" href="#emerge-behaviour" id="id12" name="id12">Emerge Behaviour</a></li>
66 </ul>
67 </li>
68 <li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></li>
69 <li><a class="reference" href="#reference-implementation" id="id14" name="id14">Reference Implementation</a></li>
70 <li><a class="reference" href="#backwards-compatibility" id="id15" name="id15">Backwards Compatibility</a></li>
71 <li><a class="reference" href="#references" id="id16" name="id16">References</a></li>
72 <li><a class="reference" href="#copyright" id="id17" name="id17">Copyright</a></li>
73 </ul>
74 </div>
75 <div class="section" id="abstract">
76 <h1><a class="toc-backref" href="#id5" name="abstract">Abstract</a></h1>
77 <p>Currently, every ebuild in the portage tree is required to have a valid
78 LICENSE entry. However, the syntax of this entry is not officially
79 defined and the entry itself is only used when outputting package
80 details.</p>
81 </div>
82 <div class="section" id="status-update">
83 <h1><a class="toc-backref" href="#id6" name="status-update">Status Update</a></h1>
84 <p>Repoman has been updated to check for the LICENSE syntax.</p>
85 </div>
86 <div class="section" id="motivation">
87 <h1><a class="toc-backref" href="#id7" name="motivation">Motivation</a></h1>
88 <p>Many users wish to regulate the software they install with regards to
89 licenses for various reasons <a class="footnote-reference" href="#id3" id="id1" name="id1">[1]</a>. Some want a system free of any
90 software that is not OSI-approved; others are simply curious as to what
91 licenses they are implicitly accepting.</p>
92 <p>Furthermore, some software requires that a user interactively accept its
93 license for its author's to consider it legally binding. This is
94 currently implemented using <tt class="literal"><span class="pre">eutils.eclass</span></tt>.</p>
95 </div>
96 <div class="section" id="specification">
97 <h1><a class="toc-backref" href="#id8" name="specification">Specification</a></h1>
98 <div class="section" id="ebuild-license-variable">
99 <h2><a class="toc-backref" href="#id9" name="ebuild-license-variable">Ebuild LICENSE Variable</a></h2>
100 <p>Most ebuilds are for software which is released under a single license.
101 In these cases, the current LICENSE variable can remain as is. For
102 example:</p>
103 <pre class="literal-block">
104 LICENSE=&quot;single-license&quot;
105 </pre>
106 <p>However, there are several ebuilds for software which is released under
107 several licenses, of which the user must accept one, some or all <a class="footnote-reference" href="#id4" id="id2" name="id2">[2]</a>.
108 To complicate this, some ebuilds include optional components which fall
109 under a different license.</p>
110 <p>To accomodate these cases, LICENSE syntax should accomodate all
111 functionality offered by a DEPEND string. To keep things simple, this
112 GLEP proposes that the syntax be identical. For example:</p>
113 <pre class="literal-block">
114 LICENSE=&quot;mandatory-license
115 || ( choosable-licence1 chooseable-license-2 )
116 useflag? ( optional-component-license )&quot;
117 </pre>
118 </div>
119 <div class="section" id="license-groups">
120 <h2><a class="toc-backref" href="#id10" name="license-groups">License Groups</a></h2>
121 <p>Almost all users are willing to install any software that is
122 FSF-approved. Other users are willing to install any software and
123 implicitly accept its license. To this end, portage will also need to
124 handle grouping of licenses.</p>
125 <p>At a minimum, there needs to be the groups <tt class="literal"><span class="pre">GPL-COMPATIBLE</span></tt>,
126 <tt class="literal"><span class="pre">FSF-APPROVED</span></tt>, <tt class="literal"><span class="pre">OSI-APPROVED</span></tt> and <tt class="literal"><span class="pre">NON-INTERACTIVE</span></tt>.
127 <tt class="literal"><span class="pre">NON-INTERACTIVE</span></tt> licenses are those that don't require interactive
128 acceptance for to be considered legally binding. This is the current
129 behaviour of portage.</p>
130 </div>
131 <div class="section" id="accept-license">
132 <h2><a class="toc-backref" href="#id11" name="accept-license">ACCEPT_LICENSE</a></h2>
133 <p>This GLEP proposes that a user be able to explicitly accept or decline
134 licenses by editing a new variable <tt class="literal"><span class="pre">ACCEPT_LICENSE</span></tt> in
135 <tt class="literal"><span class="pre">/etc/make.conf</span></tt>. Again, to keep things simple, the syntax should be
136 similar to that of other incrementals. For example:</p>
137 <pre class="literal-block">
138 ACCEPT_LICENSE=&quot;-* accepted-license -declined-license&quot;
139 </pre>
140 <p>As an extension, <tt class="literal"><span class="pre">ACCEPT_LICENSE</span></tt> must also support <a class="reference" href="#license-groups">license groups</a>.
141 This GLEP proposes that the license group be prepended by the special
142 character &quot;<tt class="literal"><span class="pre">&#64;</span></tt>&quot;. For example:</p>
143 <pre class="literal-block">
144 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
145 </pre>
146 </div>
147 <div class="section" id="emerge-behaviour">
148 <h2><a class="toc-backref" href="#id12" name="emerge-behaviour">Emerge Behaviour</a></h2>
149 <p>At a minimum, emerge must handle unaccepted licenses the same way that
150 it handles blockers. That is, with the --pretend flag the
151 not-yet-accepted license should be listed in the output. Without the
152 --pretend flag, emerge should stop before any software is installed.</p>
153 <p>This GLEP proposes that, unlike blockers, dependencies for software
154 should be checked regardless of license acceptance. Doing so will allow
155 the user to review all necessary licenses before initiating an actual
156 emerge.</p>
157 <p>It is also proposed that the --ask option will display an unaccepted
158 license and ask for acceptance, but not update any configuration files
159 at this stage. Finally, the --verbose option should also list the
160 licenses accepted for each package.</p>
161 </div>
162 </div>
163 <div class="section" id="rationale">
164 <h1><a class="toc-backref" href="#id13" name="rationale">Rationale</a></h1>
165 <p>An implementation of this proposal should make it easy for users wishing
166 to regulate their software without affecting those that don't.</p>
167 </div>
168 <div class="section" id="reference-implementation">
169 <h1><a class="toc-backref" href="#id14" name="reference-implementation">Reference Implementation</a></h1>
170 <p>TODO</p>
171 </div>
172 <div class="section" id="backwards-compatibility">
173 <h1><a class="toc-backref" href="#id15" name="backwards-compatibility">Backwards Compatibility</a></h1>
174 <p>There should be no change to the user experience without the user
175 explicitly choosing to do so. This mandates that the
176 configuration variable be named <tt class="literal"><span class="pre">ACCEPT_LICENSE</span></tt> as some users may
177 already have it set due to ebuilds using <tt class="literal"><span class="pre">eutil.eclass</span></tt>'s
178 implementation. It also mandates that the default <tt class="literal"><span class="pre">ACCEPT_LICENSE</span></tt> be
179 set to <tt class="literal"><span class="pre">&#64;NON-INTERACTIVE</span></tt>.</p>
180 </div>
181 <div class="section" id="references">
182 <h1><a class="toc-backref" href="#id16" name="references">References</a></h1>
183 <table class="footnote" frame="void" id="id3" rules="none">
184 <colgroup><col class="label" /><col /></colgroup>
185 <tbody valign="top">
186 <tr><td class="label"><a class="fn-backref" href="#id1" name="id3">[1]</a></td><td>Gentoo Linux Bug 17367
187 (<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>
188 </tbody>
189 </table>
190 <table class="footnote" frame="void" id="id4" rules="none">
191 <colgroup><col class="label" /><col /></colgroup>
192 <tbody valign="top">
193 <tr><td class="label"><a class="fn-backref" href="#id2" name="id4">[2]</a></td><td>Gentoo Linux Bug 34146
194 (<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>
195 </tbody>
196 </table>
197 </div>
198 <div class="section" id="copyright">
199 <h1><a class="toc-backref" href="#id17" name="copyright">Copyright</a></h1>
200 <p>This document has been placed in the public domain.</p>
201 </div>
202 </div>
204 <hr class="footer" />
205 <div class="footer">
206 <a class="reference" href="glep-0023.txt">View document source</a>.
207 Generated on: 2004-10-25 16:56 UTC.
208 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.
209 </div>
210 </body>
211 </html>

  ViewVC Help
Powered by ViewVC 1.1.20