[Nix-dev] [RFC] Merging of multiple-outputs-sandbox into trunk

Shea Levy shea at shealevy.com
Sun Nov 6 22:12:04 CET 2011


Hi Nicholas,

On 11/6/11 4:01 PM, Nicolas Pierron wrote:
> Hi Shea,
>
> I guess the context is used to be able to build multiple outputs out
> of one derivation file, am I correct ?

Yes. The idea is actually described in Eelco's thesis, but it's only 
recently that he put into place the infrastructure necessary to make it 
a reality.

> What can be achieved with multiple outputs ?  having variants such as
> headers, libraries, manpage ?

This is the main use case, I think.

>   Or multiple versions ?  Can we change
> the sources/build procedure and the dependencies based on the "output"
> ?

Unless we have a substitutor, building one output requires building all 
of them. Of course, the commands we run to populate each output can be 
whatever we want.

Once we have built the output or downloaded it with a substitutor, 
though, we won't need to keep around the rest as part of the closure. 
One example of the benefits is that the majority of packages would not 
have a runtime dependency on the kernel headers (they do now because the 
glibc headers do, and the glibc headers aren't currently separated from 
glibc itself).

~Shea


More information about the nix-dev mailing list