--- xml/htdocs/proj/en/glep/glep-0060.html 2008/10/22 18:03:40 1.2 +++ xml/htdocs/proj/en/glep/glep-0060.html 2008/10/28 07:47:52 1.3 @@ -27,9 +27,9 @@ Title:Manifest2 filetypes -Version:1.2 +Version:1.3 -Last-Modified:2008/10/22 17:59:43 +Last-Modified:2008/10/28 07:46:51 Author:Robin Hugh Johnson <robbat2 at gentoo.org> @@ -43,91 +43,81 @@ Created:November 2007 -Updated:June 2008, July 2008 +Updated:June 2008, July 2008, October 2008 Updates:44 +Post-History: +

Contents

-

Abstract

-

Clarification of the Manifest2 [GLEP44] specification, including new types to +

Abstract

+

Clarification of the Manifest2 [#GLEP44] specification, including new types to help in the tree-signing specification.

-

Motivation

-

[GLEP44] was not entirely clear on the usage of filetype specifiers. +

Motivation

+

[#GLEP44] was not entirely clear on the usage of filetype specifiers. This document serves to provide some of the internal logic used by Portage at the point of writing, as well as adding new types to cover the rest of the tree, for the purposes of tree-signing coverage.

-

Specification

+

Specification

-

General

+

General

For any given directory with a Manifest file, every file located in that directory, or a sub-directory must be listed in that Manifest file, unless stated otherwise in the following sections. The Manifest file must not contain an entry for itself.

-

Excluded files

+

Excluded files

When generating or validating a Manifest, or commiting to a version control system, the package manager should endeavour to ignore files created by a version control system, backup files from text editors. A -non-exhaustive list is suggested here: CVS/, .svn/, .bzr/, .git/, .hg/, -.#*, *.rej, *.orig, *.bak, *~.

-
-

System Message: WARNING/2 (glep-0060.txt, line 37); backlink

-Inline emphasis start-string without end-string.
-
-

System Message: WARNING/2 (glep-0060.txt, line 37); backlink

-Inline emphasis start-string without end-string.
-
-

System Message: WARNING/2 (glep-0060.txt, line 37); backlink

-Inline emphasis start-string without end-string.
-
-

System Message: WARNING/2 (glep-0060.txt, line 37); backlink

-Inline emphasis start-string without end-string.
+non-exhaustive list is suggested here: CVS/, .svn/, .bzr/, +.git/, .hg/, .#*, *.rej, *.orig, *.bak, *~.

Additionally, for a transitional Manifest1->Manifest2 system, old-style digest files located in a 'files/' directory, may be excluded from Manifest2 generation, or included with a type of MISC.

@@ -136,9 +126,9 @@ security risk.

-

Existing filetypes:

+

Existing filetypes:

-

AUX

+

AUX

  • The AUX type is used for all items under the 'files' subdirectory.
  • They should be verified relative to $FILESDIR.
  • @@ -150,7 +140,7 @@
-

EBUILD

+

EBUILD

  • The EBUILD type is used solely for files ending in .ebuild, or other suffixes as defined by the EAPI.
  • @@ -160,7 +150,7 @@
-

DIST

+

DIST

  • The DIST type is used for distfiles
  • They may be found directly via the $DISTDIR setting of the package @@ -171,7 +161,7 @@
-

MISC

+

MISC

  • The MISC type covers all remaining files in a directory.
  • MISC is intended to mark all content that was not used in @@ -186,9 +176,9 @@
-

New filetypes:

+

New filetypes:

-

_INFO (new, abstract)

+

_INFO (new, abstract)

  • This is the functionality of the old AUX, but does not include the implicit 'files/' prefix in the path, and is verified relative to the @@ -198,36 +188,36 @@
-

_CRIT (new, abstract)

+

_CRIT (new, abstract)

  • _CRIT is based off the _INFO type.
  • The modification or absence of a file listed as a _CRIT-derived type must be treated as an error.
-
-

EBUILD

+
+

EBUILD

  • Now derived from _CRIT.
  • Otherwise unchanged.
-
-

DIST

+
+

DIST

  • Now derived from _CRIT.
  • Otherwise unchanged.
-
-

MISC

+
+

MISC

  • Now derived from _INFO.
  • Otherwise unchanged.
-

MANIFEST (new)

+

MANIFEST (new)

  • The MANIFEST type is explicitly to cover all nested Manifest files.
  • During validation, this serves as an indicator that the package @@ -241,7 +231,7 @@
-

ECLASS (new)

+

ECLASS (new)

  • uses _CRIT.
  • This type shall be used for all eclasses only.
  • @@ -249,7 +239,7 @@
-

DATA (new)

+

DATA (new)

  • uses _CRIT.
  • The DATA type shall be used for all files that directly affect the @@ -257,7 +247,7 @@
-

EXEC (new)

+

EXEC (new)

  • uses _CRIT.
  • If the file gets sourced, executed, or causes a change (patches) in @@ -268,7 +258,7 @@
-

UNKNOWN (new)

+

UNKNOWN (new)

  • uses _CRIT.
  • All other files that are not covered by another type should be @@ -277,14 +267,14 @@
-

On Bloat

+

On Bloat

If repeated use of a common path prefix is considered a bloat problem, a Manifest file should be added inside the common directory, however this should not be done blindly, as bloat by inodes is more significant for the majority of use cases.

-

Chosing a filetype

+

Chosing a filetype

  1. matches Manifest
    @@ -293,22 +283,14 @@
  2. -
    matches *.ebuild
    -
    -

    System Message: WARNING/2 (glep-0060.txt, line 174); backlink

    -

    Inline emphasis start-string without end-string.

    -
    -

    => EBUILD, stop.

    +
    matches *.ebuild
    +

    => EBUILD, stop.

  3. -
    matches *.eclass
    -
    -

    System Message: WARNING/2 (glep-0060.txt, line 176); backlink

    -

    Inline emphasis start-string without end-string.

    -
    -

    => ECLASS, stop.

    +
    matches *.eclass
    +

    => ECLASS, stop.

  4. @@ -319,25 +301,25 @@
  5. -
    matches files/*
    +
    matches files/*

    => AUX, continue [see note].

  6. -
    matches {.sh,.bashrc,*.patch,...}
    +
    matches any of *.sh, *.bashrc, *.patch, ...

    => EXEC, stop.

  7. -
    matches {metadata/cache/,profiles/,package.,use.mask*,...}
    +
    matches any of metadata/cache/*, profiles/, package.*, use.mask*, ...

    => DATA, stop.

  8. -
    matches {ChangeLog,metadata.xml,*.desc,...}
    +
    matches any of ChangeLog, metadata.xml, *.desc, ...

    => MISC, stop.

    @@ -351,32 +333,32 @@

The logic behind 5, 6, 7 is ensuring that every item that by it's presence or absense may be dangerous should always be treated strictly. -(Consider epatch given a directory of patches ${FILESDIR}/${PV}/, where -it blindly includes them, or alternatively, the package.mask file or a -profile being altered/missing).

+(Consider epatch given a directory of patches ${FILESDIR}/${PV}/, +where it blindly includes them, or alternatively, the package.mask file +or a profile being altered/missing).

Note: The AUX entries should only be generated if we are generating a compatible Manifest that supports older versions of Portage. They should be generated along with the new type.

-

Backwards Compatibility

+

Backwards Compatibility

For generation of existing package Manifests, the AUX entries must continue to be present for the standard Portage deprecation cycle. The new entries may be included already in all Manifest files, as they will be ignored by older Portage versions. Over time, ECLASS, DATA, EXEC, UNKNOWN may replace the existing AUX type.

-

The adoption of this proposal does also affect [GLEPxx+1] as part of +

The adoption of this proposal does also affect [#GLEP58] as part of this GLEP series, however this GLEP was an offset of the research in that GLEP.

-

Thanks to

+

Thanks to

I'd like to thank the following people for input on this GLEP. - Marius Mauch (genone) & Zac Medico (zmedico): Portage Manifest2

-

References

+

References

@@ -386,7 +368,7 @@