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

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

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

Revision 1.1 Revision 1.4
1GLEP: 60 1GLEP: 60
2Title: Manifest2 filetypes 2Title: Manifest2 filetypes
3Version: $Revision: 1.1 $ 3Version: $Revision: 1.4 $
4Last-Modified: $Date: 2008/10/21 23:30:47 $ 4Last-Modified: $Date: 2010/01/13 00:35:49 $
5Author: Robin Hugh Johnson <robbat2@gentoo.org> 5Author: Robin Hugh Johnson <robbat2@gentoo.org>
6Status: Draft 6Status: Draft
7Type: Standards Track 7Type: Standards Track
8Content-Type: text/x-rst 8Content-Type: text/x-rst
9Requires: 44 9Requires: 44
10Created: November 2007 10Created: November 2007
11Updated: June 2008, July 2008 11Updated: June 2008, July 2008, October 2008
12Updates: 44 12Updates: 44
13Post-History:
13 14
14Abstract 15Abstract
15======== 16========
16Clarification of the Manifest2 [GLEP44] specification, including new types to 17Clarification of the Manifest2 [#GLEP44] specification, including new types to
17help in the tree-signing specification. 18help in the tree-signing specification.
18 19
19Motivation 20Motivation
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.
22This document serves to provide some of the internal logic used by 23This document serves to provide some of the internal logic used by
23Portage at the point of writing, as well as adding new types to cover 24Portage at the point of writing, as well as adding new types to cover
24the rest of the tree, for the purposes of tree-signing coverage. 25the rest of the tree, for the purposes of tree-signing coverage.
25 26
26Specification 27Specification
35Excluded files 36Excluded files
36-------------- 37--------------
37When generating or validating a Manifest, or commiting to a version 38When generating or validating a Manifest, or commiting to a version
38control system, the package manager should endeavour to ignore files 39control system, the package manager should endeavour to ignore files
39created by a version control system, backup files from text editors. A 40created by a version control system, backup files from text editors. A
40non-exhaustive list is suggested here: CVS/, .svn/, .bzr/, .git/, .hg/, 41non-exhaustive list is suggested here: ``CVS/``, ``.svn/``, ``.bzr/``,
41.#*, *.rej, *.orig, *.bak, *~. 42``.git/``, ``.hg/``, ``.#*``, ``*.rej``, ``*.orig``, ``*.bak``, ``*~``.
42 43
43Additionally, for a transitional Manifest1->Manifest2 system, old-style 44Additionally, for a transitional Manifest1->Manifest2 system, old-style
44digest files located in a 'files/' directory, may be excluded from 45digest files located in a 'files/' directory, may be excluded from
45Manifest2 generation, or included with a type of MISC. 46Manifest2 generation, or included with a type of MISC.
46 47
91 92
92 93
93New filetypes: 94New filetypes:
94-------------- 95--------------
95_INFO (new, abstract) 96_INFO (new, abstract)
96~~~~~~~~~~~~~~~~~~~~~~~~~ 97~~~~~~~~~~~~~~~~~~~~~
97- This is the functionality of the old AUX, but does not include the 98- This is the functionality of the old AUX, but does not include the
98 implicit 'files/' prefix in the path, and is verified relative to the 99 implicit 'files/' prefix in the path, and is verified relative to the
99 working directory instead of $FILESDIR. 100 working directory instead of $FILESDIR.
100- The modification or absence of a file listed as a _INFO-derived type 101- The modification or absence of a file listed as a _INFO-derived type
101 is not an error unless the package manager is attempting to be strict. 102 is not an error unless the package manager is attempting to be strict.
102 103
103_CRIT (new, abstract) 104_CRIT (new, abstract)
104~~~~~~~~~~~~~~~~~~~~~~~~~ 105~~~~~~~~~~~~~~~~~~~~~
105- _CRIT is based off the _INFO type. 106- _CRIT is based off the _INFO type.
106- The modification or absence of a file listed as a _CRIT-derived type 107- The modification or absence of a file listed as a _CRIT-derived type
107 must be treated as an error. 108 must be treated as an error.
108 109
109EBUILD 110EBUILD
152 how something is sourced or execututed, it belongs in the EXEC 153 how something is sourced or execututed, it belongs in the EXEC
153 filetype. 154 filetype.
154- This filetype should be used for the scripts directories of a 155- This filetype should be used for the scripts directories of a
155 repository for important files. 156 repository for important files.
156 157
157UNKNOWN (new) 158OTHER (new)
158~~~~~~~~~~~~~ 159~~~~~~~~~~~
159- uses _CRIT. 160- uses _CRIT.
160- All other files that are not covered by another type should be 161- All other files that are not covered by another type should be
161 considered as 'UNKNOWN'. 162 considered as 'OTHER'.
162 163
163On Bloat 164On Bloat
164-------- 165--------
165If repeated use of a common path prefix is considered a bloat problem, a 166If repeated use of a common path prefix is considered a bloat problem, a
166Manifest file should be added inside the common directory, however this 167Manifest file should be added inside the common directory, however this
169 170
170Chosing a filetype 171Chosing a filetype
171------------------ 172------------------
1721. matches Manifest 1731. matches Manifest
173 => MANIFEST, stop. 174 => MANIFEST, stop.
1742. matches *.ebuild 1752. matches ``*.ebuild``
175 => EBUILD, stop. 176 => EBUILD, stop.
1763. matches *.eclass 1773. matches ``*.eclass``
177 => ECLASS, stop. 178 => ECLASS, stop.
1784. listed in SRC_URI 1794. listed in SRC_URI
179 => DIST, stop. 180 => DIST, stop.
1805. matches files/* 1815. matches ``files/*``
181 => AUX, continue [see note]. 182 => AUX, continue [see note].
1826. matches {*.sh,*.bashrc,*.patch,...} 1836. matches any of ``*.sh``, ``*.bashrc``, ``*.patch``, ...
183 => EXEC, stop. 184 => EXEC, stop.
1847. matches {metadata/cache/*,profiles/,package.*,use.mask*,...} 1857. matches any of ``metadata/cache/*``, ``profiles/``, ``package.*``, ``use.mask*``, ...
185 => DATA, stop. 186 => DATA, stop.
1868. matches {ChangeLog,metadata.xml,*.desc,...} 1878. matches any of ``ChangeLog``, ``metadata.xml``, ``*.desc``, ...
187 => MISC, stop. 188 => MISC, stop.
1889. not matched by any other rule 1899. not matched by any other rule
189 => UNKNOWN, stop. 190 => OTHER, stop.
190 191
191The logic behind 5, 6, 7 is ensuring that every item that by it's 192The logic behind 5, 6, 7 is ensuring that every item that by it's
192presence or absense may be dangerous should always be treated strictly. 193presence 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}/``,
194it blindly includes them, or alternatively, the package.mask file or a 195where it blindly includes them, or alternatively, the package.mask file
195profile being altered/missing). 196or a profile being altered/missing).
196 197
197Note: The AUX entries should only be generated if we are generating a 198Note: The AUX entries should only be generated if we are generating a
198compatible Manifest that supports older versions of Portage. They should 199compatible Manifest that supports older versions of Portage. They should
199be generated along with the new type. 200be generated along with the new type.
200 201
202======================= 203=======================
203For generation of existing package Manifests, the AUX entries must 204For generation of existing package Manifests, the AUX entries must
204continue to be present for the standard Portage deprecation cycle. 205continue to be present for the standard Portage deprecation cycle.
205The new entries may be included already in all Manifest files, as they 206The new entries may be included already in all Manifest files, as they
206will be ignored by older Portage versions. Over time, ECLASS, DATA, 207will be ignored by older Portage versions. Over time, ECLASS, DATA,
207EXEC, UNKNOWN may replace the existing AUX type. 208EXEC, OTHER may replace the existing AUX type.
208 209
209The adoption of this proposal does also affect [GLEPxx+1] as part of 210The adoption of this proposal does also affect [#GLEP58] as part of
210this GLEP series, however this GLEP was an offset of the research in 211this GLEP series, however this GLEP was an offset of the research in
211that GLEP. 212that GLEP.
212 213
213Thanks to 214Thanks to
214========= 215=========

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.20