about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2007-05-16 * New builtin function "isFunction". You're not supposed to use itEelco Dolstra3-2/+15
;-) * Channels: fix channels that are plain lists of derivations (like strategoxt-unstable) instead of functions (like nixpkgs-unstable). This fixes the error message "error: the left-hand side of the function call is neither a function nor a primop (built-in operation) but a list".
2007-05-15 * Allow empty argument lists in function definitions (e.g., `{}:Eelco Dolstra3-0/+3
bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented consequence. Hopefully the reduce/reduce conflict won't cause any problems.
2007-05-14 * Typo (reported by Marc Weber).Eelco Dolstra1-1/+1
2007-05-07 * Create the database directory if it doesn't exist.Eelco Dolstra1-0/+9
2007-05-02 * Set the right priorities when recovering from a directoryEelco Dolstra1-1/+1
collision.
2007-05-02 (no commit message)Eelco Dolstra1-1/+0
2007-05-01 * Give unpacked channels more sensible names than 0, 1, ... They nowEelco Dolstra5-20/+43
get the basename of the channel URL (e.g., nixpkgs-unstable). The top-level Nix expression of the channel is now an attribute set, the attributes of which are the individual channels (e.g., {nixpkgs_unstable = ...; strategoxt_unstable = ...}). This makes attribute paths ("nix-env -qaA" and "nix-env -iA") more sensible, e.g., "nix-env -iA nixpkgs_unstable.subversion".
2007-05-01 * nix-env -i: instead of breaking package ties by version, break themEelco Dolstra4-13/+54
by priority and version install. That is, if there are multiple packages with the same name, then pick the package with the highest priority, and only use the version if there are multiple packages with the same priority. This makes it possible to mark specific versions/variant in Nixpkgs more or less desirable than others. A typical example would be a beta version of some package (e.g., "gcc-4.2.0rc1") which should not be installed even though it is the highest version, except when it is explicitly selected (e.g., "nix-env -i gcc-4.2.0rc1"). * Idem for nix-env -u, only the semantics are a bit trickier since we also need to take into account the priority of the currently installed package (we never upgrade to a lower priority, unless --always is given).
2007-05-01 * Set a terminate() handler to ensure that we leave the BDBEelco Dolstra6-8/+55
environment cleanly even when an exception is thrown from a destructor. We still crash, but we don't take all other Nix processes with us.
2007-05-01 * Make --verify more interruptable.Eelco Dolstra1-0/+1
2007-05-01 * `nix-env -q --xml --meta' to show all meta attributes.Eelco Dolstra3-3/+19
2007-04-30 * Doh.Eelco Dolstra1-1/+1
2007-04-27 * Package flag "keep" that prevents a package from being removed fromEelco Dolstra2-3/+8
a user environment by an install or upgrade action. This is particularly useful if you have a version installed that you don't want to upgrade (e.g., because the newer versions are broken). Example: $ nix-env -u zapping --dry-run (dry run; not doing anything) upgrading `zapping-0.9.6' to `zapping-0.10cvs6' $ nix-env --set-flag keep true zapping $ nix-env -u zapping --dry-run (dry run; not doing anything) However, "-e" will still uninstall the package. (Maybe we should require the keep flag to be explicitly set to false before it can be uninstalled.)
2007-04-27 * Package conflict resolution through priority levels. If there is aEelco Dolstra3-20/+48
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).
2007-04-27 * Allow conflicting packages to be kept in a user environment, andEelco Dolstra2-3/+11
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.
2007-04-26 * nix-env -q now has a flag --prebuilt-only (-b<) that causes nix-envEelco Dolstra3-6/+25
to show only those derivations whose output is already in the Nix store or that can be substituted (i.e., downloaded from somewhere). In other words, it shows the packages that can be installed “quickly”, i.e., don’t need to be built from source.
2007-04-16 * Updated dependency information.Eelco Dolstra1-9/+10
2007-04-16 * New primop "throw <string>" to throw an error. This is like abort,Eelco Dolstra3-0/+13
only thrown errors are caught by the top-level derivation evaluation in nix-env -qa / -i.
2007-04-16 * Remove a warning.Eelco Dolstra1-1/+1
2007-04-16 * It seems that svnversion prints a carriage return on Cygwin, so weEelco Dolstra1-2/+2
get a invalid #define VERSION. Use "svnversion -n" to leave out the newline. Fix provided by Marc Weber.
2007-03-30 * Work around a bug in Apple's GCC preprocessor.Eelco Dolstra3-4/+5
2007-03-30 * Make the maximum patch size configurable.Eelco Dolstra1-3/+9
2007-03-28 * Handle ECONNRESET from the client. Also, don't abort() if there areEelco Dolstra1-4/+9
unexpected conditions in the SIGPOLL handler, since that messes up the Berkeley DB environment (which a client must never be able to trigger).
2007-03-27 * Forgot a @bindir@.Eelco Dolstra1-1/+1
2007-03-26 * `nix-copy-closure --from': copy from a remote machine instead of toEelco Dolstra2-12/+67
a remote machine.
2007-03-26 * Refactoring.Eelco Dolstra1-35/+53
2007-03-21 * Fix URL/description.Eelco Dolstra1-2/+7
2007-03-20 * Override the setuid helper using NIX_SETUID_HELPER.Eelco Dolstra2-3/+5
2007-03-20 * Scan /proc/sys/kernel/modprobe for roots to prevent the kernelEelco Dolstra1-0/+17
modules for the running kernel from being garbage-collected. Idem for /proc/sys/kernel/fbsplash.
2007-03-19 * Terminate build hooks and substitutes with a TERM signal, not a KILLEelco Dolstra3-10/+27
signal. This is necessary because those processes may have joined the BDB environment, so they have to be given a chance to clean up. (NIX-85)
2007-03-19 * Undocumented option `gc-check-reachability' to allow reachabilityEelco Dolstra1-7/+9
checking to be turned off on machines with way too many roots.
2007-03-13 * Remove old generations in all directories underEelco Dolstra1-6/+15
/nix/var/nix/profiles, not just in that directory itself. (NixOS puts profiles in /nix/var/nix/profiles/per-user.)
2007-03-07 * Delete the output paths before invoking the build hook.Eelco Dolstra1-14/+14
2007-03-01 * Get rid of those stupid --login tricks, it's the responsibility ofEelco Dolstra1-2/+2
the remote system to make sure that Nix is in the $PATH.
2007-03-01 * sh -> bash.Eelco Dolstra1-2/+2
2007-03-01 * Look for the openssl program at compile time. If not found, callEelco Dolstra2-2/+6
openssl through $PATH at runtime.
2007-03-01 * Don't check the signature unless we have to.Eelco Dolstra1-21/+23
2007-02-27 * Doh! The deriver can be empty.Eelco Dolstra1-1/+2
2007-02-27 * Greatly reduced the amount of stack space used by the Nix expressionEelco Dolstra1-188/+274
evaluator. This was important because the NixOS expressions started to hit 2 MB default stack size on Linux. GCC is really dumb about stack space: it just adds up all the local variables and temporaries of every scope into one huge stack frame. This is really bad for deeply recursive functions. For instance, every `throw Error(format("error message"))' causes a format object of a few hundred bytes to be allocated on the stack. As a result, every recursive call to evalExpr2() consumed 4680 bytes. By splitting evalExpr2() and by moving the exception-throwing code out of the main functions, evalExpr2() now only consumes 40 bytes. Similar for evalExpr().
2007-02-27 * When NIX_SHOW_STATS=1, show the amount of stack space consumed byEelco Dolstra1-2/+10
the Nix expression evaluator.
2007-02-26 * Error message to stdout.Eelco Dolstra1-1/+1
2007-02-22 * Handle EINTR in select().Eelco Dolstra1-3/+3
2007-02-22 * /man -> /share/manEelco Dolstra1-1/+0
2007-02-22 * nix-copy-closure: force a login shell on the remote machine to makeEelco Dolstra1-3/+11
sure that nix-store is in the PATH. * nix-copy-closure: option --gzip to compress data.
2007-02-22 * nix-copy-closure: option --sign.Eelco Dolstra1-2/+20
* nix-copy-closure: set SSH options through NIX_SSHOPTS..
2007-02-21 * New command `nix-copy-closure' to copy a closure to a Nix store onEelco Dolstra2-1/+58
another machine through ssh. E.g., $ nix-copy-closure xyzzy $(which svn) copies the closure of Subversion to machine `xyzzy'. This is like `nix-pack-closure $(which svn) | ssh xyzzy', but it's much more efficient since it only copies those paths that are missing on the target machine.
2007-02-21 * Flush cout to show progress.Eelco Dolstra1-1/+1
2007-02-21 * Export/import many paths in one go.Eelco Dolstra1-3/+8
2007-02-21 * `nix-store -qR' and friends: print the paths sorted topologicallyEelco Dolstra3-40/+12
under the references relation. This is useful for commands that want to copy paths to another Nix store in the right order.
2007-02-21 * Flag `--print-invalid' in `nix-store --check-validity' to print outEelco Dolstra1-3/+14
which paths specified on the command line are invalid (i.e., don't barf when encountering an invalid path, just print it). This is useful for build-remote.pl to figure out which paths need to be copied to a remote machine. (Currently we use rsync, but that's rather inefficient.)