| 1 | GLEP: 60 |
1 | GLEP: 60 |
| 2 | Title: Manifest2 filetypes |
2 | Title: Manifest2 filetypes |
| 3 | Version: $Revision: 1.2 $ |
3 | Version: $Revision: 1.3 $ |
| 4 | Last-Modified: $Date: 2008/10/22 17:59:43 $ |
4 | Last-Modified: $Date: 2008/10/28 07:46:51 $ |
| 5 | Author: Robin Hugh Johnson <robbat2@gentoo.org> |
5 | Author: Robin Hugh Johnson <robbat2@gentoo.org> |
| 6 | Status: Draft |
6 | Status: Draft |
| 7 | Type: Standards Track |
7 | Type: Standards Track |
| 8 | Content-Type: text/x-rst |
8 | Content-Type: text/x-rst |
| 9 | Requires: 44 |
9 | Requires: 44 |
| 10 | Created: November 2007 |
10 | Created: November 2007 |
| 11 | Updated: June 2008, July 2008 |
11 | Updated: June 2008, July 2008, October 2008 |
| 12 | Updates: 44 |
12 | Updates: 44 |
|
|
13 | Post-History: |
| 13 | |
14 | |
| 14 | Abstract |
15 | Abstract |
| 15 | ======== |
16 | ======== |
| 16 | Clarification of the Manifest2 [GLEP44] specification, including new types to |
17 | Clarification of the Manifest2 [#GLEP44] specification, including new types to |
| 17 | help in the tree-signing specification. |
18 | help in the tree-signing specification. |
| 18 | |
19 | |
| 19 | Motivation |
20 | Motivation |
| 20 | ========== |
21 | ========== |
| 21 | [GLEP44] was not entirely clear on the usage of filetype specifiers. |
22 | [#GLEP44] was not entirely clear on the usage of filetype specifiers. |
| 22 | This document serves to provide some of the internal logic used by |
23 | This document serves to provide some of the internal logic used by |
| 23 | Portage at the point of writing, as well as adding new types to cover |
24 | Portage at the point of writing, as well as adding new types to cover |
| 24 | the rest of the tree, for the purposes of tree-signing coverage. |
25 | the rest of the tree, for the purposes of tree-signing coverage. |
| 25 | |
26 | |
| 26 | Specification |
27 | Specification |
| … | |
… | |
| 35 | Excluded files |
36 | Excluded files |
| 36 | -------------- |
37 | -------------- |
| 37 | When generating or validating a Manifest, or commiting to a version |
38 | When generating or validating a Manifest, or commiting to a version |
| 38 | control system, the package manager should endeavour to ignore files |
39 | control system, the package manager should endeavour to ignore files |
| 39 | created by a version control system, backup files from text editors. A |
40 | created by a version control system, backup files from text editors. A |
| 40 | non-exhaustive list is suggested here: CVS/, .svn/, .bzr/, .git/, .hg/, |
41 | non-exhaustive list is suggested here: ``CVS/``, ``.svn/``, ``.bzr/``, |
| 41 | .#*, *.rej, *.orig, *.bak, *~. |
42 | ``.git/``, ``.hg/``, ``.#*``, ``*.rej``, ``*.orig``, ``*.bak``, ``*~``. |
| 42 | |
43 | |
| 43 | Additionally, for a transitional Manifest1->Manifest2 system, old-style |
44 | Additionally, for a transitional Manifest1->Manifest2 system, old-style |
| 44 | digest files located in a 'files/' directory, may be excluded from |
45 | digest files located in a 'files/' directory, may be excluded from |
| 45 | Manifest2 generation, or included with a type of MISC. |
46 | Manifest2 generation, or included with a type of MISC. |
| 46 | |
47 | |
| … | |
… | |
| 169 | |
170 | |
| 170 | Chosing a filetype |
171 | Chosing a filetype |
| 171 | ------------------ |
172 | ------------------ |
| 172 | 1. matches Manifest |
173 | 1. matches Manifest |
| 173 | => MANIFEST, stop. |
174 | => MANIFEST, stop. |
| 174 | 2. matches *.ebuild |
175 | 2. matches ``*.ebuild`` |
| 175 | => EBUILD, stop. |
176 | => EBUILD, stop. |
| 176 | 3. matches *.eclass |
177 | 3. matches ``*.eclass`` |
| 177 | => ECLASS, stop. |
178 | => ECLASS, stop. |
| 178 | 4. listed in SRC_URI |
179 | 4. listed in SRC_URI |
| 179 | => DIST, stop. |
180 | => DIST, stop. |
| 180 | 5. matches files/* |
181 | 5. matches ``files/*`` |
| 181 | => AUX, continue [see note]. |
182 | => AUX, continue [see note]. |
| 182 | 6. matches {*.sh,*.bashrc,*.patch,...} |
183 | 6. matches any of ``*.sh``, ``*.bashrc``, ``*.patch``, ... |
| 183 | => EXEC, stop. |
184 | => EXEC, stop. |
| 184 | 7. matches {metadata/cache/*,profiles/,package.*,use.mask*,...} |
185 | 7. matches any of ``metadata/cache/*``, ``profiles/``, ``package.*``, ``use.mask*``, ... |
| 185 | => DATA, stop. |
186 | => DATA, stop. |
| 186 | 8. matches {ChangeLog,metadata.xml,*.desc,...} |
187 | 8. matches any of ``ChangeLog``, ``metadata.xml``, ``*.desc``, ... |
| 187 | => MISC, stop. |
188 | => MISC, stop. |
| 188 | 9. not matched by any other rule |
189 | 9. not matched by any other rule |
| 189 | => UNKNOWN, stop. |
190 | => UNKNOWN, stop. |
| 190 | |
191 | |
| 191 | The logic behind 5, 6, 7 is ensuring that every item that by it's |
192 | The logic behind 5, 6, 7 is ensuring that every item that by it's |
| 192 | presence or absense may be dangerous should always be treated strictly. |
193 | presence or absense may be dangerous should always be treated strictly. |
| 193 | (Consider epatch given a directory of patches ${FILESDIR}/${PV}/, where |
194 | (Consider epatch given a directory of patches ``${FILESDIR}/${PV}/``, |
| 194 | it blindly includes them, or alternatively, the package.mask file or a |
195 | where it blindly includes them, or alternatively, the package.mask file |
| 195 | profile being altered/missing). |
196 | or a profile being altered/missing). |
| 196 | |
197 | |
| 197 | Note: The AUX entries should only be generated if we are generating a |
198 | Note: The AUX entries should only be generated if we are generating a |
| 198 | compatible Manifest that supports older versions of Portage. They should |
199 | compatible Manifest that supports older versions of Portage. They should |
| 199 | be generated along with the new type. |
200 | be generated along with the new type. |
| 200 | |
201 | |
| … | |
… | |
| 204 | continue to be present for the standard Portage deprecation cycle. |
205 | continue to be present for the standard Portage deprecation cycle. |
| 205 | The new entries may be included already in all Manifest files, as they |
206 | The new entries may be included already in all Manifest files, as they |
| 206 | will be ignored by older Portage versions. Over time, ECLASS, DATA, |
207 | will be ignored by older Portage versions. Over time, ECLASS, DATA, |
| 207 | EXEC, UNKNOWN may replace the existing AUX type. |
208 | EXEC, UNKNOWN may replace the existing AUX type. |
| 208 | |
209 | |
| 209 | The adoption of this proposal does also affect [GLEPxx+1] as part of |
210 | The adoption of this proposal does also affect [#GLEP58] as part of |
| 210 | this GLEP series, however this GLEP was an offset of the research in |
211 | this GLEP series, however this GLEP was an offset of the research in |
| 211 | that GLEP. |
212 | that GLEP. |
| 212 | |
213 | |
| 213 | Thanks to |
214 | Thanks to |
| 214 | ========= |
215 | ========= |