/[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 - (show annotations) (download)
Mon Mar 8 17:26:04 2004 UTC (10 years, 9 months ago) by g2boojum
Branch: MAIN
File MIME type: text/plain
New glep

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