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 >