Gentoo Archives: gentoo-dev

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] GLEP58 - MetaManifest
Date: Tue, 02 Feb 2010 07:36:18
Message-Id: 20100202073539.GA9387@orbis-terrarum.net
In Reply to: Re: [gentoo-dev] GLEP58 - MetaManifest by Denis Dupeyron
1 On Mon, Feb 01, 2010 at 11:27:01PM -0700, Denis Dupeyron wrote:
2 > You'll find below an email from solar to Robin about MetaManifest. I'm
3 > adding it to this thread (with solar's authorization) as it seems
4 > pertinent.
5 >
6 > Denis.
7 >
8 > On Thu, Jan 21, 2010 at 6:51 PM, Ned Ludd <solar@g.o> wrote:
9 > > Robin,
10 > >
11 > > I recall you wanted me to mail you what we talked about last nite in
12 > > #gentoo-portage and I'll CC: the council so they have an idea what to
13 > > maybe expect.
14 > >
15 > > So in our talking last night we discussed the fact that if the Manifest
16 > > format has to change why not just get rid of it all together, and save
17 > > some serious in tree space with the new MetaManifest's taking over all
18 > > together. This would include MetaManifest's at the 2-level.
19 > > You said the MetaManifest would need about 4 fields in them to describe
20 > > the distfiles etc. Devs would still push normal Manifest's to the cvs
21 > > tree so DIST can be obtained by the backend infra scripts. But those
22 > > Manifest's could be dropped from the mirroring. if [ -e CVS ] then
23 > > portage would need to use the existing Manifest's
24 First, I'd like to clarify one things for all other readers, as it isn't
25 clear for anybody else just reading this email.
26 ================
27 Solar's proposal does the following:
28 1. Tree in CVS/VCS:
29 - drop ALL Manifest2 lines _EXCEPT_ DIST.
30 2. Tree available via rsync:
31 - Manifests at the following locations ONLY:
32 - /MetaManifest
33 - /${CAT}/Manifest
34 - /profiles/Manifest
35 - /eclasses/Manifest
36 - /metadata/cache/${CAT}/Manifest
37 - /metadata/glsa/Manifest
38 - Data from ALL Manifests get moved to one of the above.
39 - MISC/EBUILD etc (non-DIST) lines generated at the same time that the
40 rsync tree is prepared.
41 3. Net savings of approximately 13000 inodes, as the per package
42 Manifest data is now one level up, saving the inode from the package.
43 ================
44
45 Now, I believe that this above should be possible WITHIN the framework
46 of my proposed MetaManifest changes.
47
48 I specifically stated in GLEP58:
49 ===
50 The objective of creating the MetaManifest file(s) is to ensure that
51 every single file in the tree occurs in at least one Manifest.
52 ===
53
54 My proposals did not cover removing other Manifest files per solar's
55 suggestion, as I perceived that to be a much larger objective than my
56 goal of actually securing the existing tree distribution.
57
58 I am entirely open to solar's suggestions, in an additional GLEP, as
59 they will require that Portage support IS fully in place, because old
60 versions WILL fail on a tree without per-package Manifest.
61
62 > > This method would hands down win my vote. As you know I'm not a fan of
63 > > format changes in general as they can make the Gentoo experience suck,
64 > > but if we are going to change formats. Lets do it right.
65 A potential plan for GLEP58 and solar's changes would be:
66 1. Council approves GLEP58.
67 2. Portage support is added, we add MetaManifests everywhere needed
68 (top-level, categories, metadata, eclass etc) in the tree.
69 3. Old Portage versions still work at this point, because they ignore
70 the other Manifest files.
71 4. Wait 6-12 months for Portage upgrade cycle.
72 5. Change the content of the MetaManifests to be per solar's proposal.
73 6. Drop per-package Manifests from the tree.
74
75 Thus there is ZERO breakage.
76
77 A similar timeline is required for ALL of the other GLEPs I have proposed.
78 GLEP59 - Hashes:
79 - Can add new hashes right now.
80 - Some of the old hashes we can remove right now.
81 - Have to keep just one old hash for old Portage to still work.
82 GLEP60 - Filetypes:
83 - Can add new types right now.
84 - Cannot remove ANY types for a full upgrade cycle.
85 GLEP61 - Compression:
86 - (uncofirmed) Cannot add the compressed files in per-package locations until
87 the upgrade cycle is done, as old Portage will complain about their existence.
88
89 > The only downside I can see in this method is for people like drobbins
90 > who mirror our tree but overlay right on top of it then provide it back
91 > out. In such cases we should provide our backend scripts to the public
92 > so they can re MetaManifest.
93 My MetaManifest generation script is already public. I do agree that we could
94 do better in documenting and publishing our older rsync generation scripts.
95
96 --
97 Robin Hugh Johnson
98 Gentoo Linux: Developer, Trustee & Infrastructure Lead
99 E-Mail : robbat2@g.o
100 GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85