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----- |