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

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

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

Revision 1.2 Revision 1.3
1GLEP: 44 1GLEP: 44
2Title: Manifest2 format 2Title: Manifest2 format
3Version: $Revision: 1.2 $ 3Version: $Revision: 1.3 $
4Last-Modified: $Date: 2005/12/06 16:19:37 $ 4Last-Modified: $Date: 2006/01/23 10:24:24 $
5Author: Marius Mauch <genone@gentoo.org>, 5Author: Marius Mauch <genone@gentoo.org>,
6Status: Draft 6Status: Draft
7Type: Standards Track 7Type: Standards Track
8Content-Type: text/x-rst 8Content-Type: text/x-rst
9Created: 04-Dec-2005 9Created: 04-Dec-2005
10Post-History: 06-Dec-2005 10Post-History: 06-Dec-2005, 23-Jan-2006
11 11
12 12
13Abstract 13Abstract
14======== 14========
15 15
23 23
24Please see [#reorg-thread]_ for a general overview. 24Please see [#reorg-thread]_ for a general overview.
25The main long term goals of this proposal are to: 25The main long term goals of this proposal are to:
26 26
27- Remove the tiny digest files from the tree. They are a major annoyance as on a 27- Remove the tiny digest files from the tree. They are a major annoyance as on a
28 typical configuration they waste a lot of discspace and the simple transmission 28 typical configuration they waste a lot of disk space and the simple transmission
29 of the names for all digest files during a ``emerge --sync`` needs a substantial 29 of the names for all digest files during a ``emerge --sync`` needs a substantial
30 amount of bandwidth. 30 amount of bandwidth.
31- Reduce redundancy when multiple hash functions are used 31- Reduce redundancy when multiple hash functions are used
32- Remove potential for checksum collisions if a file is recorded in more than one 32- Remove potential for checksum collisions if a file is recorded in more than one
33 digest file 33 digest file
47 * ``EBUILD`` for all ebuilds 47 * ``EBUILD`` for all ebuilds
48 48
49 * ``MISCFILE`` for files not directly used by ebuilds like ``ChangeLog`` or 49 * ``MISCFILE`` for files not directly used by ebuilds like ``ChangeLog`` or
50 ``metadata.xml`` files 50 ``metadata.xml`` files
51 51
52 * ``SRCURI`` for release tarballs recorded in the ``SRC_URI`` variable of an ebuild, 52 * ``DISTFILE`` for release tarballs recorded in the ``SRC_URI`` variable of an ebuild,
53 these were previously recorded in the digest files 53 these were previously recorded in the digest files
54 54
55 Future portage improvements might extend this list (for example with types 55 Future portage improvements might extend this list (for example with types
56 relevant for eclasses or profiles) 56 relevant for eclasses or profiles)
57 57
86 SHA1 358278a43da244e1f4803ec4b04d6fa45c41ab4d MD5 15b5c9348ba0b0a416892588256b4cbc 86 SHA1 358278a43da244e1f4803ec4b04d6fa45c41ab4d MD5 15b5c9348ba0b0a416892588256b4cbc
87 MISCFILE ChangeLog 25770 RMD160 0e69dd7425add1560d630dd3367342418e9be776 87 MISCFILE ChangeLog 25770 RMD160 0e69dd7425add1560d630dd3367342418e9be776
88 SHA1 1210160f7baf0319de3b1b58dc80d7680d316d28 MD5 732cdc3b41403a115970d497a9ec257e 88 SHA1 1210160f7baf0319de3b1b58dc80d7680d316d28 MD5 732cdc3b41403a115970d497a9ec257e
89 MISCFILE metadata.xml 269 RMD160 39d775de55f9963f8946feaf088aa0324770bacb 89 MISCFILE metadata.xml 269 RMD160 39d775de55f9963f8946feaf088aa0324770bacb
90 SHA1 4fd7b285049d0e587f89e86becf06c0fd77bae6d MD5 82e806ed62f0596fb7bef493d225712f 90 SHA1 4fd7b285049d0e587f89e86becf06c0fd77bae6d MD5 82e806ed62f0596fb7bef493d225712f
91 SRCURI sylpheed-claws-1.0.5.tar.bz2 3268626 RMD160 f2708b5d69bc9a5025812511fde04eca7782e367 91 DISTFILE sylpheed-claws-1.0.5.tar.bz2 3268626 RMD160 f2708b5d69bc9a5025812511fde04eca7782e367
92 SHA1 d351d7043eef7a875df18a8c4b9464be49e2164b MD5 ef4a1a7beb407dc7c31b4799bc48f12e 92 SHA1 d351d7043eef7a875df18a8c4b9464be49e2164b MD5 ef4a1a7beb407dc7c31b4799bc48f12e
93 SRCURI sylpheed-claws-1.9.100.tar.bz2 3480063 RMD160 72fbcbcc05d966f34897efcc1c96377420dc5544 93 DISTFILE sylpheed-claws-1.9.100.tar.bz2 3480063 RMD160 72fbcbcc05d966f34897efcc1c96377420dc5544
94 SHA1 47465662b5470af5711493ce4eaad764c5bf02ca MD5 863c314557f90f17c2f6d6a0ab57e6c2 94 SHA1 47465662b5470af5711493ce4eaad764c5bf02ca MD5 863c314557f90f17c2f6d6a0ab57e6c2
95 SRCURI sylpheed-claws-1.9.15.tar.bz2 3481018 RMD160 b01d1af2df55806a8a8275102b10e389e0d98e94 95 DISTFILE sylpheed-claws-1.9.15.tar.bz2 3481018 RMD160 b01d1af2df55806a8a8275102b10e389e0d98e94
96 SHA1 a17fc64b8dcc5b56432e5beb5c826913cb3ad79e MD5 0d187526e0eca23b87ffa4981f7e1765 96 SHA1 a17fc64b8dcc5b56432e5beb5c826913cb3ad79e MD5 0d187526e0eca23b87ffa4981f7e1765
97 97
98 98
99Compability Entries 99Compability Entries
100------------------- 100-------------------
132 132
133Removal of digest files 133Removal of digest files
134----------------------- 134-----------------------
135 135
136Normal users that don't use a "tuned" filesystem for the portage tree are 136Normal users that don't use a "tuned" filesystem for the portage tree are
137wasting several dozen to a few hundred megabytes of discspace with the current 137wasting several dozen to a few hundred megabytes of disk space with the current
138system, largely caused by the digest files. 138system, largely caused by the digest files.
139This is due to the filesystem overhead present in most filesystem that 139This is due to the filesystem overhead present in most filesystem that
140have a standard blocksize of four kilobytes while most digest files are under 140have a standard blocksize of four kilobytes while most digest files are under
141one kilobyte in size, so this results in approximately a waste of three kilobytes 141one kilobyte in size, so this results in approximately a waste of three kilobytes
142per digest file (likely even more). At the time of this writing the tree contains 142per digest file (likely even more). At the time of this writing the tree contains
143roughly 22.000 digest files, so the overall waste caused by digest files is 143roughly 22.000 digest files, so the overall waste caused by digest files is
144estimated at about 70-100 megabytes. 144estimated at about 70-100 megabytes.
145Furthermore it is assumed that this will also reduce the discspace wasted by 145Furthermore it is assumed that this will also reduce the disk space wasted by
146the Manifest files as they now contain more content, but this hasn't been 146the Manifest files as they now contain more content, but this hasn't been
147verified yet. 147verified yet.
148 148
149By unifying the digest files with the Manifest these tiny files are eliminated 149By unifying the digest files with the Manifest these tiny files are eliminated
150(in the long run), reducing the apparent tree size by about 20%, benefitting 150(in the long run), reducing the apparent tree size by about 20%, benefitting
161use, but expected to change soon (see [#multi-hash-thread]_). 161use, but expected to change soon (see [#multi-hash-thread]_).
162 162
163Removal of checksum collisions 163Removal of checksum collisions
164------------------------------ 164------------------------------
165 165
166The current system theoretically allows for a ``SRCURI`` type file to be recorded 166The current system theoretically allows for a ``DISTFILE`` type file to be recorded
167in multiple digest files with different sizes and/or checksums. In such a case 167in multiple digest files with different sizes and/or checksums. In such a case
168one version of a package would report a checksum violation while another one 168one version of a package would report a checksum violation while another one
169would not. This could create confusion and uncertainity among users. 169would not. This could create confusion and uncertainity among users.
170So far this case hasn't been observed, but it can't be ruled out with the 170So far this case hasn't been observed, but it can't be ruled out with the
171existing system. 171existing system.
173 173
174Flexible verification system 174Flexible verification system
175---------------------------- 175----------------------------
176 176
177Right now portage verifies the checksum of every file listed in the Manifest 177Right now portage verifies the checksum of every file listed in the Manifest
178before using any file of the package and all ``SRCURI`` files of an ebuild 178before using any file of the package and all ``DISTFILE`` files of an ebuild
179before using that ebuild. This is unnecessary in many cases: 179before using that ebuild. This is unnecessary in many cases:
180 180
181- During the "depend" phase (when the ebuild metadata is generated) only 181- During the "depend" phase (when the ebuild metadata is generated) only
182 files of type ``EBUILD`` are used, so verifying the other types isn't 182 files of type ``EBUILD`` are used, so verifying the other types isn't
183 necessary. Theoretically it is possible for an ebuild to include other 183 necessary. Theoretically it is possible for an ebuild to include other
188 188
189- Generally files of type ``MISCFILE`` don't need to be verified as they are 189- Generally files of type ``MISCFILE`` don't need to be verified as they are
190 only used in very specific situations, aren't executed (just parsed at most) 190 only used in very specific situations, aren't executed (just parsed at most)
191 and don't affect the package build process. 191 and don't affect the package build process.
192 192
193- Files of type ``SRCURI`` only need to be verified directly after fetching and 193- Files of type ``DISTFILE`` only need to be verified directly after fetching and
194 before unpacking them (which often will be one step), not every time their 194 before unpacking them (which often will be one step), not every time their
195 associated ebuild is used. 195 associated ebuild is used.
196 196
197 197
198Backwards Compatibility 198Backwards Compatibility
290 290
291- convert size field into checksum: Another idea was to treat the size field 291- convert size field into checksum: Another idea was to treat the size field
292 like any other checksum. But so far no real benefit (other than a slightly 292 like any other checksum. But so far no real benefit (other than a slightly
293 more modular implementation) for this has been seen while it has several 293 more modular implementation) for this has been seen while it has several
294 drawbacks: For once, unlike checksums, the size field is definitely required 294 drawbacks: For once, unlike checksums, the size field is definitely required
295 for all ``SRCURI`` files, also it would slightly increase the length of 295 for all ``DISTFILE`` files, also it would slightly increase the length of
296 each entry by adding a ``SIZE`` keyword. 296 each entry by adding a ``SIZE`` keyword.
297 297
298- removal of the ``MISCFILE`` type: It has been suggested to completely drop 298- removal of the ``MISCFILE`` type: It has been suggested to completely drop
299 entries of type ``MISCFILE``. This would result in a minor space reduction 299 entries of type ``MISCFILE``. This would result in a minor space reduction
300 (its rather unlikely to free any blocks) but completely remove the ability 300 (its rather unlikely to free any blocks) but completely remove the ability

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.20