On 21 January 2015 at 23:53, Alec Ten Harmsel <a...@alectenharmsel.com> wrote:
> I actually had kind of a cool idea while walking to the bus stop this
> morning; a JIT Portage server that builds packages on demand. This would
> require:
>
> * Writing a portage server
> * Patching portage to connect to said server
>

Or... Before integrating it into portage, it could be a wrapper, lets
call it 'premerge' for the sake of example.
Calling premerge www-client/firefox-35.0[pulseaudio] would unpack the
arguments, work out the relevant metadata, perhaps by parsing the
output of emerge -pv, and then fetch the binaries from the big storage
pool they live in, put them in the correct place for portage to find
them, and then call portage in such a way it can find the prebuilt
binary version we just provided it. If emerge itself is incapable of
handling such a large binary prebuilt collection of packages, then I'm
likely to explore this route for a while.

> Basically, `emerge <pkgname>` would send a message to the server "I need
> www-client/firefox-35.0[pulseaudio]". The server would return the
> tarball if already built, otherwise build it and then return it. This
> would be reasonably complex to implement in practice, but it would let
> everybody using the same binhost to run their own custom USE flags.
>
> Re more accurate numbers: dev-java/icedtea. Let's pretend building this
> takes ~5 minutes (this is faster than my desktop can do it in RAM with 6
> hyper-threaded cores). There are 13 USE flags that are configurable if
> you're using HotSpot; we'll ignore JamVM and CACAO. On a single server,
> this would take nearly a month (28.44 days, exactly).
>
> Alec
>

Reply via email to