/[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.3 - (hide annotations) (download) (as text)
Mon Oct 25 17:04:01 2004 UTC (9 years, 10 months ago) by g2boojum
Branch: MAIN
Changes since 1.2: +36 -31 lines
File MIME type: text/html
update

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.3 <meta name="generator" content="Docutils 0.3.3: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <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 g2boojum 1.3 [<b><a href="./glep-0023.txt">GLEP Source</a></b>]
26 g2boojum 1.1 </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 g2boojum 1.2 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
37 g2boojum 1.1 </tr>
38 g2boojum 1.3 <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 g2boojum 1.1 </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 g2boojum 1.3 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td>
43 g2boojum 1.1 </tr>
44     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
45     </tr>
46 g2boojum 1.3 <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 g2boojum 1.1 </tr>
48     <tr class="field"><th class="field-name">Created:</th><td class="field-body">9-Mar-2004</td>
49     </tr>
50 g2boojum 1.3 <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 g2boojum 1.1 </tr>
52     </tbody>
53     </table>
54     <hr />
55     <div class="contents topic" id="contents">
56 g2boojum 1.3 <p class="topic-title first"><a name="contents">Contents</a></p>
57 g2boojum 1.1 <ul class="simple">
58     <li><a class="reference" href="#abstract" id="id5" name="id5">Abstract</a></li>
59 g2boojum 1.3 <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 g2boojum 1.1 </ul>
67     </li>
68 g2boojum 1.3 <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 g2boojum 1.1 </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 g2boojum 1.3 <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 g2boojum 1.1 <div class="section" id="motivation">
87 g2boojum 1.3 <h1><a class="toc-backref" href="#id7" name="motivation">Motivation</a></h1>
88 g2boojum 1.1 <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 g2boojum 1.3 <h1><a class="toc-backref" href="#id8" name="specification">Specification</a></h1>
98 g2boojum 1.1 <div class="section" id="ebuild-license-variable">
99 g2boojum 1.3 <h2><a class="toc-backref" href="#id9" name="ebuild-license-variable">Ebuild LICENSE Variable</a></h2>
100 g2boojum 1.1 <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 g2boojum 1.2 LICENSE=&quot;mandatory-license
115     || ( choosable-licence1 chooseable-license-2 )
116 g2boojum 1.1 useflag? ( optional-component-license )&quot;
117     </pre>
118     </div>
119     <div class="section" id="license-groups">
120 g2boojum 1.3 <h2><a class="toc-backref" href="#id10" name="license-groups">License Groups</a></h2>
121 g2boojum 1.1 <p>Almost all users are willing to install any software that is
122 g2boojum 1.2 FSF-approved. Other users are willing to install any software and
123 g2boojum 1.1 implicitly accept its license. To this end, portage will also need to
124     handle grouping of licenses.</p>
125 g2boojum 1.2 <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 g2boojum 1.1 </div>
131     <div class="section" id="accept-license">
132 g2boojum 1.3 <h2><a class="toc-backref" href="#id11" name="accept-license">ACCEPT_LICENSE</a></h2>
133 g2boojum 1.1 <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 g2boojum 1.2 ACCEPT_LICENSE=&quot;-* &#64;FSF-APPROVED&quot;
145 g2boojum 1.1 </pre>
146     </div>
147     <div class="section" id="emerge-behaviour">
148 g2boojum 1.3 <h2><a class="toc-backref" href="#id12" name="emerge-behaviour">Emerge Behaviour</a></h2>
149 g2boojum 1.1 <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 g2boojum 1.3 <h1><a class="toc-backref" href="#id13" name="rationale">Rationale</a></h1>
165 g2boojum 1.1 <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 g2boojum 1.3 <h1><a class="toc-backref" href="#id14" name="reference-implementation">Reference Implementation</a></h1>
170 g2boojum 1.1 <p>TODO</p>
171     </div>
172     <div class="section" id="backwards-compatibility">
173 g2boojum 1.3 <h1><a class="toc-backref" href="#id15" name="backwards-compatibility">Backwards Compatibility</a></h1>
174 g2boojum 1.1 <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 g2boojum 1.3 <h1><a class="toc-backref" href="#id16" name="references">References</a></h1>
183 g2boojum 1.1 <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 g2boojum 1.3 <h1><a class="toc-backref" href="#id17" name="copyright">Copyright</a></h1>
200 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
201     </div>
202     </div>
203    
204 g2boojum 1.3 <hr class="footer" />
205 g2boojum 1.1 <div class="footer">
206     <a class="reference" href="glep-0023.txt">View document source</a>.
207 g2boojum 1.3 Generated on: 2004-10-25 16:56 UTC.
208 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.
209     </div>
210     </body>
211     </html>

  ViewVC Help
Powered by ViewVC 1.1.20