On 01/10/2013 08:07 PM, Shea Levy wrote:
The long answer is: Currently, the way we build most of our packages the
build time dependencies (e.g. where do I get my library headers) and the
run time dependencies (e.g. which library do I link to) are the same, so
updating the run time dependencies will require a rebuild. There are
some proposed solutions to take one package built against one version of
a library and relink it to another without recompiling it (so you still
need to 'rebuild' the package, but the rebuild is trivial), but a)
libraries are never as good at compatibility as they claim and b) we've
found that the cost of recompiling everything isn't actually all that
high, all things considered. In general, the question of whether and how
to separate what something was compiled against and what it uses is
still open, but what we have for now works very well.

I second Shea, only an additional note:

there are external-runtime dependencies (let me call them that), like executables from other packages only run when *executing* something in the package (like firefox plugins). These can be added via wrappers, so in case the external executables are rebuilt you only need to rebuild the wrappers (which is trivial) and not the whole package.

Vlada


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to