about summary refs log tree commit diff
path: root/doc/manual
AgeCommit message (Collapse)AuthorFilesLines
2007-11-30 * Added a new kind of multi-line string literal delimited by twoEelco Dolstra1-0/+4
single quotes. Example (from NixOS): job = '' start on network-interfaces start script rm -f /var/run/opengl-driver ${if videoDriver == "nvidia" then "ln -sf ${nvidiaDrivers} /var/run/opengl-driver" else if cfg.driSupport then "ln -sf ${mesa} /var/run/opengl-driver" else "" } rm -f /var/log/slim.log end script ''; This style has two big advantages: - \, ' and " aren't special, only '' and ${. So you get a lot less escaping in shell scripts / configuration files in Nixpkgs/NixOS. The delimiter '' is rare in scripts (and can usually be written as ""). ${ is also fairly rare. Other delimiters such as <<...>>, {{...}} and <|...|> were also considered but this one appears to have the fewest drawbacks (thanks Martin). - Indentation is intelligently stripped so that multi-line strings can follow the nesting structure of the containing Nix expression. E.g. in the example above 6 spaces are stripped from the start of each line. This prevents unnecessary indentation in generated files (which sometimes even breaks things). See tests/lang/eval-okay-ind-string.nix for some examples.
2007-11-29 * Troubleshooting entry about running out of locks.Eelco Dolstra1-1/+43
2007-11-21 * New primop `readFile' to get the contents of a file as a string.Eelco Dolstra1-0/+9
2007-11-01 * A rule to make a PDF version of the manual.Eelco Dolstra1-0/+8
2007-11-01 * Documented some of the more obscure derivation attributes (includingEelco Dolstra3-14/+250
fixed-output derivations).
2007-10-31 * Documented multi-user Nix.Eelco Dolstra4-46/+271
2007-10-29 (no commit message)Eelco Dolstra3-0/+132
2007-10-29 * Make the `--prebuilt-only' / `-b' option work not just for queriesEelco Dolstra1-1/+2
but installations/upgrades as well. So `nix-env -ub \*' will upgrade only those packages for which a substitute is available (or to be precise, it will upgrade each package to the highest version for which a substitute is available).
2007-10-27 * Delete the chroot directory automatically.Eelco Dolstra1-0/+3
* Removed some debug messages.
2007-10-24 (no commit message)Eelco Dolstra1-0/+5
2007-10-23 * Improved introduction (actually copied mostly from the homepage).Eelco Dolstra1-126/+312
2007-10-22 * Document the new primops in Nix 0.11.Eelco Dolstra1-1/+164
2007-10-22 * Move list of built-in functions to a separate file.Eelco Dolstra3-584/+592
2007-10-22 (no commit message)Eelco Dolstra1-15/+14
2007-10-22 Added comment telling about setup-hook and propagatedBuildInputsMarc Weber1-3/+12
2007-09-19 * Manpage for nix-copy-closure.Eelco Dolstra17-25/+308
2007-09-17 * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then theEelco Dolstra1-43/+4
Nix expressions in that directory are combined into an attribute set {file1 = import file1; file2 = import file2; ...}, i.e. each Nix expression is an attribute with the file name as the attribute name. Also recurses into directories. * nix-env: removed the "--import" (-I) option which set the ~/.nix-defexpr symlink. * nix-channel: don't use "nix-env --import", instead symlink ~/.nix-defexpr/channels. So finally nix-channel --update doesn't override any default Nix expressions but combines with them. This means that you can have (say) a local Nixpkgs SVN tree and use it as a default for nix-env: $ ln -s .../path-to-nixpkgs-tree ~/.nix-defexpr/nixpkgs_svn and be subscribed to channels (including Nixpkgs) at the same time. (If there is any ambiguity, the -A flag can be used to disambiguate, e.g. "nix-env -i -A nixpkgs_svn.pan".)
2007-09-02 explanation what happens when passing true / false and null values to ↵Marc Weber1-0/+4
derivation builders added
2007-08-12 * Get rid of the substitutes database table (NIX-47). Instead, if weEelco Dolstra1-30/+0
need any info on substitutable paths, we just call the substituters (such as download-using-manifests.pl) directly. This means that it's no longer necessary for nix-pull to register substitutes or for nix-channel to clear them, which makes those operations much faster (NIX-95). Also, we don't have to worry about keeping nix-pull manifests (in /nix/var/nix/manifests) and the database in sync with each other. The downside is that there is some overhead in calling an external program to get the substitutes info. For instance, "nix-env -qas" takes a bit longer. Abolishing the substitutes table also makes the logic in local-store.cc simpler, as we don't need to store info for invalid paths. On the downside, you cannot do things like "nix-store -qR" on a substitutable but invalid path (but nobody did that anyway). * Never catch interrupts (the Interrupted exception).
2007-06-02 change default NIX_HASH_ALGOArmijn Hemel1-1/+1
2007-05-16 (no commit message)Eelco Dolstra3-44/+80
2007-05-01 * nix-env -i: instead of breaking package ties by version, break themEelco Dolstra1-0/+6
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 * `nix-env -q --xml --meta' to show all meta attributes.Eelco Dolstra1-2/+2
2007-04-27 * Package flag "keep" that prevents a package from being removed fromEelco Dolstra1-2/+2
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 Dolstra1-1/+3
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-26 * nix-env -q now has a flag --prebuilt-only (-b<) that causes nix-envEelco Dolstra1-0/+9
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-03-26 * `nix-copy-closure --from': copy from a remote machine instead of toEelco Dolstra1-0/+5
a remote machine.
2007-03-20 * Override the setuid helper using NIX_SETUID_HELPER.Eelco Dolstra1-2/+3
2007-02-05 * Compatibility with docbook5-xsl.Eelco Dolstra7-7/+8
2007-02-02 * nix-env now maintains meta info (from the `meta' derivationEelco Dolstra1-0/+16
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-29 New primitives:Eelco Dolstra1-1/+4
* `sub' to subtract two numbers. * `stringLength' to get the length of a string. * `substring' to get a substring of a string. These should be enough to allow most string operations to be expressed.
2007-01-15 * Handle multiple indirect symlinks when loading a Nix expression.Eelco Dolstra1-0/+15
2007-01-14 * Option --argstr for passing string arguments easily. (NIX-75)Eelco Dolstra1-0/+3
2007-01-14 * Doh.Eelco Dolstra1-0/+2
2007-01-13 * nix-pack-closure: store the top-level store paths in the closure.Eelco Dolstra2-0/+14
* nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64)
2007-01-13 * Removed chroot support.Eelco Dolstra1-11/+0
2006-12-12 * New primop builtins.filterSource, which can be used to filter filesEelco Dolstra1-1/+6
from a source directory. All files for which a predicate function returns true are copied to the store. Typical example is to leave out the .svn directory: stdenv.mkDerivation { ... src = builtins.filterSource (path: baseNameOf (toString path) != ".svn") ./source-dir; # as opposed to # src = ./source-dir; } This is important because the .svn directory influences the hash in a rather unpredictable and variable way.
2006-12-12 * Push.Eelco Dolstra1-1/+1
2006-12-12 * New operation `nix-env --set' which sets a user environment to aEelco Dolstra1-0/+3
single derivation specified by the argument. This is useful when we want to have a profile for a single derivation, such as a server configuration. Then we can just say (e.g.) $ nix-env -p /.../server-profile -f server.nix --set -A server We can't do queries or upgrades on such a profile, but we can do rollbacks. The advantage over -i is that we don't have to worry about other packages having been installed in the profile previously; --set gets rid of them.
2006-12-12 * New built-in function `builtins.attrNames' that returns theEelco Dolstra1-0/+18
names of the attributes in an attribute set.
2006-12-09 (no commit message)Eelco Dolstra1-0/+3
2006-12-08 * Kill a build if it has gone for more than a certain number ofEelco Dolstra1-0/+5
seconds without producing output on stdout or stderr (NIX-65). This timeout can be specified using the `--max-silent-time' option or the `build-max-silent-time' configuration setting. The default is infinity (0). * Fix a tricky race condition: if we kill the build user before the child has done its setuid() to the build user uid, then it won't be killed, and we'll potentially lock up in pid.wait(). So also send a conventional kill to the child.
2006-11-30 * Troubleshooting information on fixing a b0rked Berkeley DB database.Eelco Dolstra3-13/+45
2006-11-14 * Push.Eelco Dolstra1-1/+2
2006-11-13 * Magic attribute `exportReferencesGraph' that allows the referencesEelco Dolstra1-1/+5
graph to be passed to a builder. This attribute should be a list of pairs [name1 path1 name2 path2 ...]. The references graph of each `pathN' will be stored in a text file `nameN' in the temporary build directory. The text files have the format used by `nix-store --register-validity'. However, the deriver fields are left empty. `exportReferencesGraph' is useful for builders that want to do something with the closure of a store path. Examples: the builders that make initrds and ISO images for NixOS. `exportReferencesGraph' is entirely pure. It's necessary because otherwise the only way for a builder to get this information would be to call `nix-store' directly, which is not allowed (though unfortunately possible).
2006-11-13 * Option `--reregister' in `nix-store --register-validity'. We needEelco Dolstra1-0/+4
this in the NixOS installer (or in the buildfarm) to ensure that the cryptographic hash of the path contents still matches the actual contents.
2006-10-30 * Release notes.Eelco Dolstra1-0/+14
2006-10-28 * `nix-store --read-log / -l PATH' shows the build log of PATH, ifEelco Dolstra1-0/+17
available. For instance, $ nix-store -l $(which svn) | less lets you read the build log of the Subversion instance in your profile. * `nix-store -qb': if applied to a non-derivation, take the deriver.
2006-10-26 * Typo reported by Arie Middelkoop.Eelco Dolstra2-3/+4
* Left out close-quote in example.