d1662d7155
The use case is to do a deep replacement of a dependency without rebuilding the entire tree. For example, suppose a security hole is found in glibc and a patch released. Ideally, you'd just rebuild everything, but that takes time, space, and CPU that you might not have, so in the mean time you could build a safe version of, say, firefox with: firefox-safe = replace-dependency { drv = firefox; old-dependency = glibc; new-dependency = patched-glibc; }; Building firefox-safe will rebuild glibc, but only do a simple copy/string replacement on all other dependencies of firefox. On my system (MBP 13" mid-2012), after a new glibc had been build building firefox took around 11 seconds. See the comments in the file for more details. |
||
---|---|---|
.. | ||
buildenv | ||
builder-defs | ||
cabal | ||
checker | ||
clang-wrapper | ||
dotnetenv | ||
fetchbzr | ||
fetchcvs | ||
fetchdarcs | ||
fetchfile | ||
fetchgit | ||
fetchgitrevision | ||
fetchhg | ||
fetchmtn | ||
fetchsvn | ||
fetchsvnrevision | ||
fetchsvnssh | ||
fetchurl | ||
gcc-cross-wrapper | ||
gcc-upc-wrapper | ||
gcc-wrapper | ||
kernel | ||
make-desktopitem | ||
make-startupitem | ||
make-symlinks | ||
mono-dll-fixer | ||
native-darwin-cctools-wrapper | ||
nuke-references | ||
release | ||
setup-hooks | ||
src-only | ||
substitute | ||
upstream-updater | ||
vm | ||
vsenv | ||
replace-dependency.nix | ||
source-from-head-fun.nix | ||
trivial-builders.nix |