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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.3 Revision 1.6
1GLEP: 23 1GLEP: 23
2Title: Portage handling of ACCEPT_LICENSE 2Title: Handling of ACCEPT_LICENSE
3Version: $Revision: 1.3 $ 3Version: $Revision: 1.6 $
4Last-Modified: $Date: 2004/10/26 00:21:28 $ 4Last-Modified: $Date: 2006/11/19 22:50:15 $
5Author: Jason Stubbs <jstubbs@gentoo.org>, 5Author: Jason Stubbs <jstubbs@gentoo.org>, Marius Mauch <genone@gentoo.org>
6Status: Accepted 6Status: Accepted
7Type: Standards Track 7Type: Standards Track
8Content-Type: text/x-rst 8Content-Type: text/x-rst
9Created: 9-Mar-2004 9Created: 9-Mar-2004
10Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 10Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 19-Nov-2006
11 11
12 12
13Abstract 13Abstract
14======== 14========
15 15
16Currently, every ebuild in the portage tree is required to have a valid 16Currently, every ebuild in the main gentoo repository is required to have a
17LICENSE entry. However, the syntax of this entry is not officially 17valid LICENSE entry. However, the syntax of this entry is not officially
18defined and the entry itself is only used when outputting package 18defined and the entry itself is only used when outputting package
19details. 19details.
20 20
21Status Update 21Status Update
22============= 22=============
23 23
24Repoman has been updated to check for the LICENSE syntax. 24Repoman has been updated to check for the LICENSE syntax.
25 25A development portage branch with support for ACCEPT_LICENSE
26and license groups exists.
26 27
27Motivation 28Motivation
28========== 29==========
29 30
30Many users wish to regulate the software they install with regards to 31Many users wish to regulate the software they install with regards to
65 LICENSE="mandatory-license 66 LICENSE="mandatory-license
66 || ( choosable-licence1 chooseable-license-2 ) 67 || ( choosable-licence1 chooseable-license-2 )
67 useflag? ( optional-component-license )" 68 useflag? ( optional-component-license )"
68 69
69 70
71License names may contain [a-zA-Z0-9] (english alphanumeric characters),
72_ (underscore), - (dash), . (dot) and + (plus sign).
73
70License Groups 74License Groups
71-------------- 75--------------
72 76
73Almost all users are willing to install any software that is 77Almost all users are willing to install any software that is
74FSF-approved. Other users are willing to install any software and 78FSF-approved. Other users are willing to install any software and
75implicitly accept its license. To this end, portage will also need to 79implicitly accept its license. To this end, implementations will also
76handle grouping of licenses. 80need to handle grouping of licenses.
77 81
78At a minimum, there needs to be the groups ``GPL-COMPATIBLE``, 82At a minimum, there needs to be the groups ``GPL-COMPATIBLE``,
79``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-INTERACTIVE``. 83``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-MUST-HAVE-READ``.
80``NON-INTERACTIVE`` licenses are those that don't require interactive 84``NON-MUST-HAVE-READ`` licenses are those that don't require manual
81acceptance for to be considered legally binding. This is the current 85acceptance for to be considered legally binding. This is the current
82behaviour of portage. 86behaviour of portage.
87
88These groups are defined in a new file ``license_groups`` in
89the ``profiles`` subdirectory of the tree (or overlays).
90Details of handling groups defined in overlays is implementation dependent.
91
92The format of this file is
93
94::
95
96 <groupname> <license1> <license2> ... <licenseN>
97
98Also any line starting with # is ignored and may be used for comments.
99Group names use the same syntax as normal license names. Also license groups
100may contain other groups.
101License groups may not contain negated elements, so a group
102
103::
104
105 mygroup foo -bar -bla
106
107is illegal.
83 108
84 109
85ACCEPT_LICENSE 110ACCEPT_LICENSE
86-------------- 111--------------
87 112
100 125
101:: 126::
102 127
103 ACCEPT_LICENSE="-* @FSF-APPROVED" 128 ACCEPT_LICENSE="-* @FSF-APPROVED"
104 129
130License groups may be negated with the result that all elements of that group
131are also negated.
105 132
106Emerge Behaviour 133Portage will also offer a package.license facility to offer this functionality
107---------------- 134on a per-package base (analog to package.keywords), other implementations may
135implement such a facility differently or not at all.
108 136
109At a minimum, emerge must handle unaccepted licenses the same way that 137Behaviour
110it handles blockers. That is, with the --pretend flag the 138---------
111not-yet-accepted license should be listed in the output. Without the
112--pretend flag, emerge should stop before any software is installed.
113 139
114This GLEP proposes that, unlike blockers, dependencies for software 140Unaccepted licenses will be treated like any other masked package, that is
115should be checked regardless of license acceptance. Doing so will allow 141the user interface of an implementation will display a message listing any
116the user to review all necessary licenses before initiating an actual 142license that has to be accepted before the package can be merged with a
117emerge. 143pointer to the exact license text.
118 144
119It is also proposed that the --ask option will display an unaccepted 145Past versions of this document proposed to handle license-masked packages
120license and ask for acceptance, but not update any configuration files 146like blockers, but this would be inconsistent with other visibility
121at this stage. Finally, the --verbose option should also list the 147filters as well as the current blocker system (as a blocker affects two
122licenses accepted for each package. 148packages) and be more complicated to implement.
123
124 149
125Rationale 150Rationale
126========= 151=========
127 152
128An implementation of this proposal should make it easy for users wishing 153An implementation of this proposal should make it easy for users wishing
130 155
131 156
132Reference Implementation 157Reference Implementation
133======================== 158========================
134 159
135TODO 160Available in portage svn repository under main/branches/license-masking
136 161
137 162
138Backwards Compatibility 163Backwards Compatibility
139======================= 164=======================
140 165
141There should be no change to the user experience without the user 166There should be no change to the user experience without the user
142explicitly choosing to do so. This mandates that the 167explicitly choosing to do so. This mandates that the
143configuration variable be named ``ACCEPT_LICENSE`` as some users may 168configuration variable be named ``ACCEPT_LICENSE`` as some users may
144already have it set due to ebuilds using ``eutil.eclass``'s 169already have it set due to ebuilds using ``eutil.eclass``'s
145implementation. It also mandates that the default ``ACCEPT_LICENSE`` be 170implementation. It also mandates that the default ``ACCEPT_LICENSE`` be
146set to ``@NON-INTERACTIVE``. 171set to ``@NON-MUST-HAVE-READ`` in the main gentoo repository as implementations
147 172are not required to provide an internal default.
148 173
149References 174References
150========== 175==========
151 176
152.. [1] Gentoo Linux Bug 17367 177.. [1] Gentoo Linux Bug 17367

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.20