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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Mon Mar 8 17:26:04 2004 UTC (10 years, 1 month ago) by g2boojum
Branch: MAIN
File MIME type: text/plain
New glep

1 g2boojum 1.1 GLEP: 23
2     Title: Portage handling of ACCEPT_LICENSE
3     Version: $Revision: 1.4 $
4     Last-Modified: $Date: 2003/07/19 12:09:20 $
5     Author: Jason Stubbs <jstubbs@gentoo.org>,
6     Status: Draft
7     Type: Standards Track
8     Content-Type: text/x-rst
9     Created: 9-Mar-2004
10     Post-History: 8-Mar-2004
11    
12    
13     Abstract
14     ========
15    
16     Currently, every ebuild in the portage tree is required to have a valid
17     LICENSE entry. However, the syntax of this entry is not officially
18     defined and the entry itself is only used when outputting package
19     details.
20    
21    
22     Motivation
23     ==========
24    
25     Many users wish to regulate the software they install with regards to
26     licenses for various reasons [1]_. Some want a system free of any
27     software that is not OSI-approved; others are simply curious as to what
28     licenses they are implicitly accepting.
29    
30     Furthermore, some software requires that a user interactively accept its
31     license for its author's to consider it legally binding. This is
32     currently implemented using ``eutils.eclass``.
33    
34    
35     Specification
36     =============
37    
38     Ebuild LICENSE Variable
39     -----------------------
40    
41     Most ebuilds are for software which is released under a single license.
42     In these cases, the current LICENSE variable can remain as is. For
43     example:
44    
45     ::
46    
47     LICENSE="single-license"
48    
49     However, there are several ebuilds for software which is released under
50     several licenses, of which the user must accept one, some or all [2]_.
51     To complicate this, some ebuilds include optional components which fall
52     under a different license.
53    
54     To accomodate these cases, LICENSE syntax should accomodate all
55     functionality offered by a DEPEND string. To keep things simple, this
56     GLEP proposes that the syntax be identical. For example:
57    
58     ::
59    
60     LICENSE="mandatory-license \
61     ( || choosable-licence1 chooseable-license-2 ) \
62     useflag? ( optional-component-license )"
63    
64    
65     License Groups
66     --------------
67    
68     Almost all users are willing to install any software that is
69     OSI-approved. Other users are willing to install any software and
70     implicitly accept its license. To this end, portage will also need to
71     handle grouping of licenses.
72    
73     At a minimum, there needs to be the groups ``OSI-APPROVED`` and
74     ``NON-INTERACTIVE``. ``NON-INTERACTIVE`` licenses are those that don't
75     require interactive acceptance for it to be considered legally binding.
76     This is the current behaviour of portage.
77    
78    
79     ACCEPT_LICENSE
80     --------------
81    
82     This GLEP proposes that a user be able to explicitly accept or decline
83     licenses by editing a new variable ``ACCEPT_LICENSE`` in
84     ``/etc/make.conf``. Again, to keep things simple, the syntax should be
85     similar to that of other incrementals. For example:
86    
87     ::
88    
89     ACCEPT_LICENSE="-* accepted-license -declined-license"
90    
91     As an extension, ``ACCEPT_LICENSE`` must also support `license groups`_.
92     This GLEP proposes that the license group be prepended by the special
93     character "``@``". For example:
94    
95     ::
96    
97     ACCEPT_LICENSE="-* @OSI-APPROVED"
98    
99    
100     Emerge Behaviour
101     ----------------
102    
103     At a minimum, emerge must handle unaccepted licenses the same way that
104     it handles blockers. That is, with the --pretend flag the
105     not-yet-accepted license should be listed in the output. Without the
106     --pretend flag, emerge should stop before any software is installed.
107    
108     This GLEP proposes that, unlike blockers, dependencies for software
109     should be checked regardless of license acceptance. Doing so will allow
110     the user to review all necessary licenses before initiating an actual
111     emerge.
112    
113     It is also proposed that the --ask option will display an unaccepted
114     license and ask for acceptance, but not update any configuration files
115     at this stage. Finally, the --verbose option should also list the
116     licenses accepted for each package.
117    
118    
119     Rationale
120     =========
121    
122     An implementation of this proposal should make it easy for users wishing
123     to regulate their software without affecting those that don't.
124    
125    
126     Reference Implementation
127     ========================
128    
129     TODO
130    
131    
132     Backwards Compatibility
133     =======================
134    
135     There should be no change to the user experience without the user
136     explicitly choosing to do so. This mandates that the
137     configuration variable be named ``ACCEPT_LICENSE`` as some users may
138     already have it set due to ebuilds using ``eutil.eclass``'s
139     implementation. It also mandates that the default ``ACCEPT_LICENSE`` be
140     set to ``@NON-INTERACTIVE``.
141    
142    
143     References
144     ==========
145    
146     .. [1] Gentoo Linux Bug 17367
147     (http://bugs.gentoo.org/show_bug.cgi?id=17367)
148     .. [2] Gentoo Linux Bug 34146
149     (http://bugs.gentoo.org/show_bug.cgi?id=34146)
150    
151    
152     Copyright
153     =========
154    
155     This document has been placed in the public domain.

  ViewVC Help
Powered by ViewVC 1.1.20