Age | Commit message (Collapse) | Author | Files | Lines |
|
using the build hook mechanism, by setting the derivation attribute
"preferLocalBuild" to true. This has a few use cases:
- The user environment builder. Since it just creates a bunch of
symlinks without much computation, there is no reason to do it
remotely. In fact, doing it remotely requires the entire closure
of the user environment to be copied to the remote machine, which
is extremely wasteful.
- `fetchurl'. Performing the download on a remote machine and then
copying it to the local machine involves twice as much network
traffic as performing the download locally, and doesn't save any
CPU cycles on the local machine.
|
|
|
|
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `site.py' and
`site.pyc' files.
|
|
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `easy-install.pth'
files. Comment the hack.
|
|
$out/manifest.nix rather than as an ATerm.
(Hm, I thought I committed this two days ago...)
|
|
collision.
|
|
user environment collission between two packages due to overlapping
file names, then a package with a higher priority will overwrite the
symlinks of a package with a lower priority. E.g.,
$ nix-env --set-flag priority 5 gcc
$ nix-env --set-flag priority 10 binutils
gives gcc a higher priority than binutils (higher number = lower
priority).
|
|
allow switching between them (NIX-80).
Example: two versions of Pan:
$ nix-env -q pan
pan-0.128
pan-0.14.2.91
$ readlink $(which pan)
/nix/store/l38jrbilw269drpjkx7kinhrxj6fjh59-pan-0.14.2.91/bin/pan
At most one of them can be active any given time. Assuming than
0.14.2.91 is active, you can active 0.128 as follows:
$ nix-env --set-flag active false pan-0.14.2.91
$ nix-env --set-flag active true pan-0.128
$ readlink $(which pan)
/nix/store/nziqwnlzy7xl385kglxhg75pfl5i936n-pan-0.128/bin/pan
More flags to follow.
|
|
for packages that should be propagated to the user environment.
|
|
*after* the packages that have been explicitly installed, and
collisions are ignored.
|
|
|
|
representation instead of an ATerm.
* Indent XML output.
|
|
|
|
|
|
Maybe this is a bad idea.
|
|
The expression `with E1; E2' evaluates to E2 with all bindings in
the attribute set E1 substituted. E.g.,
with {x = 123;}; x
evaluates to 123. That is, the attribute set E1 is in scope in E2.
This is particularly useful when importing files containing lots
definitions. E.g., instead of
let {
inherit (import ./foo.nix) a b c d e f;
body = ... a ... f ...;
}
we can now say
with import ./foo.nix;
... a ... f ...
I.e., we don't have to say what variables should be brought into scope.
|
|
|
|
efficient by creating only a single symlink to entire directory
trees unless a collission occurs.
|
|
|
|
|
|
* Respect DESTDIR variable.
|
|
|
|
* Replace all directory reading code by a generic readDirectory()
function.
|