Gentoo Archives: gentoo-dev

From: Alec Warner <warnera6@×××××××.edu>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] digest + manifest = new file format
Date: Fri, 05 Aug 2005 02:39:17
Message-Id: 42F2D0B8.4010101@egr.msu.edu
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 This is basically a resubmission of Genone's file format merger [1].
5
6 The code to handle digests and manifests is currently being designed and
7 rewritten. As such we need two things from the developer community.
8 One is a decision of what the new format will entail. Two is a firm
9 agreement on the migration plan.
10
11 1. The file format is specified in Genone's original mail, but I'll go
12 over it again to save you the extra linkage ;)
13
14 Inside of the digest-manifest we have:
15 EBUILD Filename SIZE 1234567 MD5 A4FD085FF SHA-256 A7439FDB1
16 <type> <filename> <size-tag> <size> <hash-tag> <value> <hash-tag>
17 <value>....
18 Where type is the type of file (DIGEST, SRC_URI, EBUILD, PATCH, etc)
19
20 *Note, that the size-tag was added to make the human parsing easier.
21
22 2. If you didn't notice by now, this format breaks versions of portage
23 that don't support it ( ie 2.0.X ). This leads us to a few options as
24 users migrate to a version of portage that supports the new file format.
25
26 A. Write some code into the final stable version to do both kind of
27 formats and/or use the new format style but fall back to the old style (
28 since at release time the new style format probably won't be in the tree
29 yet ). Either way, the last release of 2.0.X should work with the new
30 file format in enough of a fashion to not break. This means that when
31 the old manifest + digests are combined in the tree, most users should
32 be ok even if they aren't upgraded to 2.1.X.
33
34 B. Have a migration time where both formats are in the tree. For a
35 while the tree will be larger, and many people will have issues with
36 this. However, old portage will use the old files, and new releases
37 will use the new files. Then after a period of however long ( 6 months?
38 ) announce loudly beforehand that portage-2.0.X will no longer be
39 supported and pull the old digests/manifests out of the tree.
40
41 C. The Carpaski way ;)[2] Add support for the new format in 2.1,
42 while also adding support for current format. Force everyone to upgrade
43 to 2.1.X, while announcing that 2.0.X will not work in the future. When
44 we have confidence that most users are upgraded, pull the old format and
45 add the new format to the tree.
46
47 Problems with all of these include the same problems as the cascaded
48 profiles, some goofball doesn't upgrade for a year, syncs with new
49 digests...how does he get his portage upgraded? An upgrade path should
50 be provided and documented in this case.
51
52 The best route is probably some combination of the above. Pre-emptively
53 add support for the new format to stable, while announcing the death of
54 the old format after 2.1's release. When most users upgrade normally to
55 the latest 2.0.X series ( perhaps fearing the changes of 2.1.X ) they
56 will gain support for the new file format (or if not support, merely a
57 working portage instead of broken). We should catch the majority of
58 users who upgrade with either the last 2.0.X release or the new release
59 of 2.1.X.
60
61 Suggestions, criticisms, etc... welcome.
62
63 [1] http://marc.theaimsgroup.com/?l=gentoo-dev&m=109725383228494&w=2
64 [2] http://marc.theaimsgroup.com/?l=gentoo-dev&m=109725779909405&w=2
65 -----BEGIN PGP SIGNATURE-----
66 Version: GnuPG v1.4.1 (GNU/Linux)
67 Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
68
69 iQIVAwUBQvLQuGzglR5RwbyYAQLykg//TbNRfPlUutmLIn09IzQ5nX1XR1RZNUVo
70 e4dgiOWbJz+dBbc4jU8NxrMlSp7tv1rMhSaHw+oqhtPFZGCBbTXIFEZkBgvq9H2L
71 AYO62Oht8xgfYgIl/KIJgWTJTmlbC2mLRMhceD83pfJKDhp6px435g+7oUyK/sPz
72 rxcDHn95veT+4WdkrwrGK8rGbAsWQ9NivyUySzfPyZN83/mc50XLd7x2cyHHKmkx
73 wwPORG8wdhWYFeLD16SZPyBmiVW1MkA1LIK95fDRV3j9wA2mqftZlSMR0lO76fJr
74 tgbrKewJKVvms4+MbFJwRJGL9R6mg4VstjFeNw6smZtTSUgXtGV6qJX4S3Zj+YQJ
75 37gpl/zCVVvmGEa8uN0gGRDnVHEyeAAHeZbeniukc6m3fn/6JvXeDqPRFGTwWorS
76 B4G2DyaoJCg0Sia5lwAYBqgnikKXOZ4Q3eD0fMP1kCwBZdTUG2CTV1hNvF6FfV/e
77 +V26rqI2R/rXmPnXmnipM1XsajT2GLnhqY1L7OUZfWF52QuqJI4sta7VybQ4lBny
78 cSFEmjJM+nHoCnTW90iYWhEcwNC7/F20LZEsin/uim0/rHhqhuLPyTZ6hkg3CauW
79 BeLfRfGC4NY00M/xamkVzPlnoMsIZzsX9W7WkpBgwgB4lljwzUmQ6CXPiQsu8tLC
80 SYKtXlGJhI8=
81 =At7Y
82 -----END PGP SIGNATURE-----
83 --
84 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] digest + manifest = new file format Alec Warner <warnera6@×××××××.edu>
Re: [gentoo-dev] digest + manifest = new file format "Kevin F. Quinn" <kevquinn@g.o>