| 1 | GLEP: 23 |
1 | GLEP: 23 |
| 2 | Title: Portage handling of ACCEPT_LICENSE |
2 | Title: Handling of ACCEPT_LICENSE |
| 3 | Version: $Revision: 1.4 $ |
3 | Version: $Revision: 1.5 $ |
| 4 | Last-Modified: $Date: 2006/11/18 07:27:47 $ |
4 | Last-Modified: $Date: 2006/11/19 22:46:27 $ |
| 5 | Author: Jason Stubbs <jstubbs@gentoo.org>, Marius Mauch <genone@gentoo.org> |
5 | Author: Jason Stubbs <jstubbs@gentoo.org>, Marius Mauch <genone@gentoo.org> |
| 6 | Status: Accepted |
6 | Status: Accepted |
| 7 | Type: Standards Track |
7 | Type: Standards Track |
| 8 | Content-Type: text/x-rst |
8 | Content-Type: text/x-rst |
| 9 | Created: 9-Mar-2004 |
9 | Created: 9-Mar-2004 |
| 10 | Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 |
10 | Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 19-Nov-2006 |
| 11 | |
11 | |
| 12 | |
12 | |
| 13 | Abstract |
13 | Abstract |
| 14 | ======== |
14 | ======== |
| 15 | |
15 | |
| 16 | Currently, every ebuild in the portage tree is required to have a valid |
16 | Currently, every ebuild in the main gentoo repository is required to have a |
| 17 | LICENSE entry. However, the syntax of this entry is not officially |
17 | valid LICENSE entry. However, the syntax of this entry is not officially |
| 18 | defined and the entry itself is only used when outputting package |
18 | defined and the entry itself is only used when outputting package |
| 19 | details. |
19 | details. |
| 20 | |
20 | |
| 21 | Status Update |
21 | Status Update |
| 22 | ============= |
22 | ============= |
| … | |
… | |
| 66 | LICENSE="mandatory-license |
66 | LICENSE="mandatory-license |
| 67 | || ( choosable-licence1 chooseable-license-2 ) |
67 | || ( choosable-licence1 chooseable-license-2 ) |
| 68 | useflag? ( optional-component-license )" |
68 | useflag? ( optional-component-license )" |
| 69 | |
69 | |
| 70 | |
70 | |
|
|
71 | License names may contain [a-zA-Z0-9] (english alphanumeric characters), |
|
|
72 | _ (underscore), - (dash), . (dot) and + (plus sign). |
|
|
73 | |
| 71 | License Groups |
74 | License Groups |
| 72 | -------------- |
75 | -------------- |
| 73 | |
76 | |
| 74 | Almost all users are willing to install any software that is |
77 | Almost all users are willing to install any software that is |
| 75 | FSF-approved. Other users are willing to install any software and |
78 | FSF-approved. Other users are willing to install any software and |
| 76 | implicitly accept its license. To this end, portage will also need to |
79 | implicitly accept its license. To this end, implementations will also |
| 77 | handle grouping of licenses. |
80 | need to handle grouping of licenses. |
| 78 | |
81 | |
| 79 | At a minimum, there needs to be the groups ``GPL-COMPATIBLE``, |
82 | At a minimum, there needs to be the groups ``GPL-COMPATIBLE``, |
| 80 | ``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-INTERACTIVE``. |
83 | ``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-INTERACTIVE``. |
| 81 | ``NON-INTERACTIVE`` licenses are those that don't require interactive |
84 | ``NON-INTERACTIVE`` licenses are those that don't require interactive |
| 82 | acceptance for to be considered legally binding. This is the current |
85 | acceptance for to be considered legally binding. This is the current |
| 83 | behaviour of portage. |
86 | behaviour of portage. |
| 84 | |
87 | |
| 85 | These groups are defined in a new file ``license_groups`` in |
88 | These groups are defined in a new file ``license_groups`` in |
| 86 | the ``profiles`` subdirectory of the tree (or overlays). |
89 | the ``profiles`` subdirectory of the tree (or overlays). |
|
|
90 | Details of handling groups defined in overlays is implementation dependent. |
|
|
91 | |
| 87 | The format of this file is |
92 | The format of this file is |
| 88 | |
93 | |
| 89 | :: |
94 | :: |
| 90 | |
95 | |
| 91 | <groupname> <license1> <license2> ... <licenseN> |
96 | <groupname> <license1> <license2> ... <licenseN> |
| 92 | |
97 | |
| 93 | Also any line starting with # is ignored and may be used for comments. |
98 | Also any line starting with # is ignored and may be used for comments. |
|
|
99 | Group names use the same syntax as normal license names. Also license groups |
|
|
100 | may contain other groups. |
| 94 | License groups may not contain negated elements, so a group |
101 | License groups may not contain negated elements, so a group |
| 95 | |
102 | |
| 96 | :: |
103 | :: |
| 97 | |
104 | |
| 98 | mygroup foo -bar -bla |
105 | mygroup foo -bar -bla |
| … | |
… | |
| 121 | ACCEPT_LICENSE="-* @FSF-APPROVED" |
128 | ACCEPT_LICENSE="-* @FSF-APPROVED" |
| 122 | |
129 | |
| 123 | License groups may be negated with the result that all elements of that group |
130 | License groups may be negated with the result that all elements of that group |
| 124 | are also negated. |
131 | are also negated. |
| 125 | |
132 | |
| 126 | Portage Behaviour |
133 | Portage will also offer a package.license facility to offer this functionality |
| 127 | ----------------- |
134 | on a per-package base (analog to package.keywords), other implementations may |
|
|
135 | implement such a facility differently or not at all. |
|
|
136 | |
|
|
137 | Behaviour |
|
|
138 | --------- |
| 128 | |
139 | |
| 129 | Unaccepted licenses will be treated like any other masked package, that is |
140 | Unaccepted licenses will be treated like any other masked package, that is |
| 130 | emerge will display a message listing any license that has to be accepted |
141 | the user interface of an implementation will display a message listing any |
| 131 | before the package can be merged with a pointer to the exact license text. |
142 | license that has to be accepted before the package can be merged with a |
|
|
143 | pointer to the exact license text. |
| 132 | |
144 | |
| 133 | Past versions of this document proposed to handle license-masked packages |
145 | Past versions of this document proposed to handle license-masked packages |
| 134 | like blockers, but this would be inconsistent with other visibility |
146 | like blockers, but this would be inconsistent with other visibility |
| 135 | filters as well as the current blocker system (as a blocker affects two |
147 | filters as well as the current blocker system (as a blocker affects two |
| 136 | packages) and be more complicated to implement. |
148 | packages) and be more complicated to implement. |
| … | |
… | |
| 154 | There should be no change to the user experience without the user |
166 | There should be no change to the user experience without the user |
| 155 | explicitly choosing to do so. This mandates that the |
167 | explicitly choosing to do so. This mandates that the |
| 156 | configuration variable be named ``ACCEPT_LICENSE`` as some users may |
168 | configuration variable be named ``ACCEPT_LICENSE`` as some users may |
| 157 | already have it set due to ebuilds using ``eutil.eclass``'s |
169 | already have it set due to ebuilds using ``eutil.eclass``'s |
| 158 | implementation. It also mandates that the default ``ACCEPT_LICENSE`` be |
170 | implementation. It also mandates that the default ``ACCEPT_LICENSE`` be |
| 159 | set to ``@NON-INTERACTIVE`` in the main gentoo repository as there will |
171 | set to ``@NON-INTERACTIVE`` in the main gentoo repository as implementations |
| 160 | be no internal default in portage. |
172 | are not required to provide an internal default. |
| 161 | |
173 | |
| 162 | References |
174 | References |
| 163 | ========== |
175 | ========== |
| 164 | |
176 | |
| 165 | .. [1] Gentoo Linux Bug 17367 |
177 | .. [1] Gentoo Linux Bug 17367 |