Gentoo Archives: gentoo-soc

From: Michael Seifert <michael.seifert@×××.net>
To: gentoo-soc@l.g.o
Subject: Re: [gentoo-soc] GSoC - cache sync/self-contained ebuilds
Date: Wed, 23 Mar 2011 17:44:53
Message-Id: 4D8A3183.2050404@gmx.net
In Reply to: Re: [gentoo-soc] GSoC - cache sync/self-contained ebuilds by Fabian Groffen
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Am 23.03.2011 11:12, schrieb Fabian Groffen:
5 > Hi Michael,
6 >
7 > On 23-03-2011 10:39:27 +0100, Michael Seifert wrote:
8 >> On the first glance, the rough specifications and tasks seem pretty
9 >> straight forward:
10 >> 1. Create a tool that extracts an ebuild descriptor from an existing
11 >> ebuild (containing arch, version, dependencies, ebuild location,...)
12 >> 2. Make portage work with the ebuild descriptors at first, then fetching
13 >> the required files
14 >> 3. Create a tool that assembles an ebuild with its patches, sources, and
15 >> eclasses
16 >> 4. Make portage use the assembled archives
17 >
18 > Can you quantify the gains here? How much space do you win by removing
19 > the build-recipe code? Could you also do with the metadata directory
20 > alone?
21
22 The metadata should be sufficient for the ebuild descriptions, yes. But
23 I have to check, if fetch restrictions or interactive installations are
24 contained in the metadata. Here are some very early estimates based on
25 my local portage tree (without excludes):
26
27 size of /usr/portage/ without distfiles = 276.4 MB
28 size of metadata + profiles + licenses + some other files = 34.0 MB
29 After "steps" 1 and 2, the for emerge --sync would shrink to approx.
30 12.28 % of the current size. There is room for optimizations, of course.
31
32
33 > How much do you lose to fetch the ebuilds you need eventually?
34
35 I cannot tell you at this stage, sorry. The real loss for steps 3/4 has
36 to be measured after the implementation. The problem with the estimates
37 here is that the assembled ebuilds also contain the sources and the
38 eclasses. Maybe I will do some number crunching on a few selected ebuilds.
39
40 > Do you intend to cache "full" ebuilds?
41
42 I am not sure, if I got you right, but basically yes. Say I want to
43 install sys-apps/gentoo-sources: "emerge -av gentoo-sources" will look
44 at the ebuild descriptor (like the respective metadata file). With the
45 descriptor's help, it identifies the required dependencies, checks
46 keywords/masking, and so on. Just after you hit enter to install, emerge
47 fetches the real ebuild and behaves usual.
48
49 Best regards,
50 Michael Seifert
51 -----BEGIN PGP SIGNATURE-----
52 Version: GnuPG v2.0.17 (GNU/Linux)
53 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
54
55 iEYEARECAAYFAk2KMYIACgkQnzX+Jf4GTUzAnQCfdzr+j6jVagYIS557vRERA6yJ
56 MREAoMaJ1jPo/zUi4Y3FFq2oOdgEHkGI
57 =yuVO
58 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-soc] GSoC - cache sync/self-contained ebuilds Rich Freeman <rich0@g.o>