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
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ nix-dev mailing list [email protected] http://lists.science.uu.nl/mailman/listinfo/nix-dev
