1 |
On 21 January 2015 at 23:53, Alec Ten Harmsel <alec@××××××××××××××.com> wrote: |
2 |
> I actually had kind of a cool idea while walking to the bus stop this |
3 |
> morning; a JIT Portage server that builds packages on demand. This would |
4 |
> require: |
5 |
> |
6 |
> * Writing a portage server |
7 |
> * Patching portage to connect to said server |
8 |
> |
9 |
|
10 |
Or... Before integrating it into portage, it could be a wrapper, lets |
11 |
call it 'premerge' for the sake of example. |
12 |
Calling premerge www-client/firefox-35.0[pulseaudio] would unpack the |
13 |
arguments, work out the relevant metadata, perhaps by parsing the |
14 |
output of emerge -pv, and then fetch the binaries from the big storage |
15 |
pool they live in, put them in the correct place for portage to find |
16 |
them, and then call portage in such a way it can find the prebuilt |
17 |
binary version we just provided it. If emerge itself is incapable of |
18 |
handling such a large binary prebuilt collection of packages, then I'm |
19 |
likely to explore this route for a while. |
20 |
|
21 |
> Basically, `emerge <pkgname>` would send a message to the server "I need |
22 |
> www-client/firefox-35.0[pulseaudio]". The server would return the |
23 |
> tarball if already built, otherwise build it and then return it. This |
24 |
> would be reasonably complex to implement in practice, but it would let |
25 |
> everybody using the same binhost to run their own custom USE flags. |
26 |
> |
27 |
> Re more accurate numbers: dev-java/icedtea. Let's pretend building this |
28 |
> takes ~5 minutes (this is faster than my desktop can do it in RAM with 6 |
29 |
> hyper-threaded cores). There are 13 USE flags that are configurable if |
30 |
> you're using HotSpot; we'll ignore JamVM and CACAO. On a single server, |
31 |
> this would take nearly a month (28.44 days, exactly). |
32 |
> |
33 |
> Alec |
34 |
> |