| 1 | GLEP: 23 |
1 | GLEP: 23 |
| 2 | Title: Portage handling of ACCEPT_LICENSE |
2 | Title: Portage handling of ACCEPT_LICENSE |
| 3 | Version: $Revision: 1.3 $ |
3 | Version: $Revision: 1.4 $ |
| 4 | Last-Modified: $Date: 2004/10/26 00:21:28 $ |
4 | Last-Modified: $Date: 2006/11/18 07:27:47 $ |
| 5 | Author: Jason Stubbs <jstubbs@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 |
10 | Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 |
| 11 | |
11 | |
| 12 | |
12 | |
| 13 | Abstract |
13 | Abstract |
| 14 | ======== |
14 | ======== |
| 15 | |
15 | |
| … | |
… | |
| 20 | |
20 | |
| 21 | Status Update |
21 | Status Update |
| 22 | ============= |
22 | ============= |
| 23 | |
23 | |
| 24 | Repoman has been updated to check for the LICENSE syntax. |
24 | Repoman has been updated to check for the LICENSE syntax. |
| 25 | |
25 | A development portage branch with support for ACCEPT_LICENSE |
|
|
26 | and license groups exists. |
| 26 | |
27 | |
| 27 | Motivation |
28 | Motivation |
| 28 | ========== |
29 | ========== |
| 29 | |
30 | |
| 30 | Many users wish to regulate the software they install with regards to |
31 | Many users wish to regulate the software they install with regards to |
| … | |
… | |
| 79 | ``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-INTERACTIVE``. |
80 | ``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-INTERACTIVE``. |
| 80 | ``NON-INTERACTIVE`` licenses are those that don't require interactive |
81 | ``NON-INTERACTIVE`` licenses are those that don't require interactive |
| 81 | acceptance for to be considered legally binding. This is the current |
82 | acceptance for to be considered legally binding. This is the current |
| 82 | behaviour of portage. |
83 | behaviour of portage. |
| 83 | |
84 | |
|
|
85 | These groups are defined in a new file ``license_groups`` in |
|
|
86 | the ``profiles`` subdirectory of the tree (or overlays). |
|
|
87 | The format of this file is |
|
|
88 | |
|
|
89 | :: |
|
|
90 | |
|
|
91 | <groupname> <license1> <license2> ... <licenseN> |
|
|
92 | |
|
|
93 | Also any line starting with # is ignored and may be used for comments. |
|
|
94 | License groups may not contain negated elements, so a group |
|
|
95 | |
|
|
96 | :: |
|
|
97 | |
|
|
98 | mygroup foo -bar -bla |
|
|
99 | |
|
|
100 | is illegal. |
|
|
101 | |
| 84 | |
102 | |
| 85 | ACCEPT_LICENSE |
103 | ACCEPT_LICENSE |
| 86 | -------------- |
104 | -------------- |
| 87 | |
105 | |
| 88 | This GLEP proposes that a user be able to explicitly accept or decline |
106 | This GLEP proposes that a user be able to explicitly accept or decline |
| … | |
… | |
| 100 | |
118 | |
| 101 | :: |
119 | :: |
| 102 | |
120 | |
| 103 | ACCEPT_LICENSE="-* @FSF-APPROVED" |
121 | ACCEPT_LICENSE="-* @FSF-APPROVED" |
| 104 | |
122 | |
|
|
123 | License groups may be negated with the result that all elements of that group |
|
|
124 | are also negated. |
| 105 | |
125 | |
| 106 | Emerge Behaviour |
126 | Portage Behaviour |
| 107 | ---------------- |
127 | ----------------- |
| 108 | |
128 | |
| 109 | At a minimum, emerge must handle unaccepted licenses the same way that |
129 | Unaccepted licenses will be treated like any other masked package, that is |
| 110 | it handles blockers. That is, with the --pretend flag the |
130 | emerge will display a message listing any license that has to be accepted |
| 111 | not-yet-accepted license should be listed in the output. Without the |
131 | before the package can be merged with a pointer to the exact license text. |
| 112 | --pretend flag, emerge should stop before any software is installed. |
|
|
| 113 | |
132 | |
| 114 | This GLEP proposes that, unlike blockers, dependencies for software |
133 | Past versions of this document proposed to handle license-masked packages |
| 115 | should be checked regardless of license acceptance. Doing so will allow |
134 | like blockers, but this would be inconsistent with other visibility |
| 116 | the user to review all necessary licenses before initiating an actual |
135 | filters as well as the current blocker system (as a blocker affects two |
| 117 | emerge. |
136 | packages) and be more complicated to implement. |
| 118 | |
|
|
| 119 | It is also proposed that the --ask option will display an unaccepted |
|
|
| 120 | license and ask for acceptance, but not update any configuration files |
|
|
| 121 | at this stage. Finally, the --verbose option should also list the |
|
|
| 122 | licenses accepted for each package. |
|
|
| 123 | |
|
|
| 124 | |
137 | |
| 125 | Rationale |
138 | Rationale |
| 126 | ========= |
139 | ========= |
| 127 | |
140 | |
| 128 | An implementation of this proposal should make it easy for users wishing |
141 | An implementation of this proposal should make it easy for users wishing |
| … | |
… | |
| 130 | |
143 | |
| 131 | |
144 | |
| 132 | Reference Implementation |
145 | Reference Implementation |
| 133 | ======================== |
146 | ======================== |
| 134 | |
147 | |
| 135 | TODO |
148 | Available in portage svn repository under main/branches/license-masking |
| 136 | |
149 | |
| 137 | |
150 | |
| 138 | Backwards Compatibility |
151 | Backwards Compatibility |
| 139 | ======================= |
152 | ======================= |
| 140 | |
153 | |
| 141 | There should be no change to the user experience without the user |
154 | There should be no change to the user experience without the user |
| 142 | explicitly choosing to do so. This mandates that the |
155 | explicitly choosing to do so. This mandates that the |
| 143 | configuration variable be named ``ACCEPT_LICENSE`` as some users may |
156 | configuration variable be named ``ACCEPT_LICENSE`` as some users may |
| 144 | already have it set due to ebuilds using ``eutil.eclass``'s |
157 | already have it set due to ebuilds using ``eutil.eclass``'s |
| 145 | implementation. It also mandates that the default ``ACCEPT_LICENSE`` be |
158 | implementation. It also mandates that the default ``ACCEPT_LICENSE`` be |
| 146 | set to ``@NON-INTERACTIVE``. |
159 | set to ``@NON-INTERACTIVE`` in the main gentoo repository as there will |
| 147 | |
160 | be no internal default in portage. |
| 148 | |
161 | |
| 149 | References |
162 | References |
| 150 | ========== |
163 | ========== |
| 151 | |
164 | |
| 152 | .. [1] Gentoo Linux Bug 17367 |
165 | .. [1] Gentoo Linux Bug 17367 |