Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [RFC] DIGESTS metadata variable for cache validation
Date: Sat, 07 Feb 2009 01:12:51
Message-Id: 498CE022.7000106@gentoo.org
In Reply to: [gentoo-dev] Re: [RFC] DIGESTS metadata variable for cache validation by Markus Ullmann
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Markus Ullmann wrote:
5 > Zac Medico schrieb:
6 >> The primary reason to use a digest for cache validation instead of a
7 >> timestamp is that it allows the cache validation mechanism to work
8 >> even if the tree is distributed with a protocol that does not
9 >> preserve timestamps, such as git or subversion. This would make it
10 >> possible to distribute metadata cache directly from git and
11 >> subversion repositories (among others).
12 >
13 > So just to make sure I understand what you're after... You want to add
14 > some checksum to the cache file to make sure that all its other vars
15 > (line 1-17) are still the same even though there are timestamp issues?
16
17 Right. Portage currently uses timestamps for all metadata cache
18 validation, but this mechanism is not suitable for protocols that
19 don't preserve timestamps. In order to solve this problem, I'm
20 suggesting that we use digests instead of timestamps.
21
22 > Or is that checksum for the ebuild file (which is in the Manifest file
23 > in the ebuild dir)?
24
25 Since portions of the metadata may come from both the ebuild and its
26 inherited eclasses, the metadata cache needs to be validated against
27 both the ebuild and any eclasses that it has inherited. In order to
28 validate the metadata cache, the checksums contained in the cache
29 are compared to the current checksums of the corresponding ebuilds
30 and eclasses. Does that answer your question?
31 - --
32 Thanks,
33 Zac
34 -----BEGIN PGP SIGNATURE-----
35 Version: GnuPG v2.0.9 (GNU/Linux)
36
37 iEYEARECAAYFAkmM4CAACgkQ/ejvha5XGaNbFwCfWJm8TcFVl49TAyn4Uet1Dm9L
38 FjkAoOJyfhNcvTIFDd2Zimf86ZOZIBZG
39 =oBYM
40 -----END PGP SIGNATURE-----