Commit graph

477 commits

Author SHA1 Message Date
Eelco Dolstra d4950f207f * component -> package. 2007-12-04 11:42:58 +00:00
Eelco Dolstra 6d6c68c0d2 * Added a new kind of multi-line string literal delimited by two
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-30 16:48:45 +00:00
Eelco Dolstra 12d0a1eb75 * Troubleshooting entry about running out of locks. 2007-11-29 14:15:33 +00:00
Eelco Dolstra 06f95dd07c * New primop `readFile' to get the contents of a file as a string. 2007-11-21 13:49:59 +00:00
Eelco Dolstra 5f8a203b55 * A rule to make a PDF version of the manual. 2007-11-01 14:42:44 +00:00
Eelco Dolstra 1511aa11ce * Documented some of the more obscure derivation attributes (including
fixed-output derivations).
2007-11-01 13:28:33 +00:00
Eelco Dolstra fa44e401a8 * Documented multi-user Nix. 2007-10-31 18:01:56 +00:00
Eelco Dolstra e007b50eb7 2007-10-29 22:16:36 +00:00
Eelco Dolstra bfea7b1f35 * Make the --prebuilt-only' / -b' option work not just for queries
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-29 14:31:45 +00:00
Eelco Dolstra dc6f373842 * Delete the chroot directory automatically.
* Removed some debug messages.
2007-10-27 16:06:38 +00:00
Eelco Dolstra cd08fb3fde 2007-10-24 13:54:06 +00:00
Eelco Dolstra d423968ba1 * Improved introduction (actually copied mostly from the homepage). 2007-10-23 16:34:04 +00:00
Eelco Dolstra 612b3e8fa3 * Document the new primops in Nix 0.11. 2007-10-22 15:28:32 +00:00
Eelco Dolstra 35ac16e75e * Move list of built-in functions to a separate file. 2007-10-22 12:58:28 +00:00
Eelco Dolstra 1db187ff69 2007-10-22 12:46:15 +00:00
Marc Weber f529a3be8a Added comment telling about setup-hook and propagatedBuildInputs 2007-10-22 01:10:19 +00:00
Eelco Dolstra 8a9fe6c11c * Manpage for nix-copy-closure. 2007-09-19 14:01:41 +00:00
Eelco Dolstra 055608227f * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then the
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-17 16:08:24 +00:00
Marc Weber 7b20c0ed4b explanation what happens when passing true / false and null values to derivation builders added 2007-09-02 10:36:59 +00:00
Eelco Dolstra 9e975458b4 * Get rid of the substitutes database table (NIX-47). Instead, if we
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-08-12 00:29:28 +00:00
Armijn Hemel 40b6f06f09 change default NIX_HASH_ALGO 2007-06-02 15:03:54 +00:00
Eelco Dolstra b47da5ea21 2007-05-16 22:07:39 +00:00
Eelco Dolstra a9d15d4f43 * nix-env -i: instead of breaking package ties by version, break them
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 20:33:18 +00:00
Eelco Dolstra bd1f66453a * `nix-env -q --xml --meta' to show all meta attributes. 2007-05-01 11:30:52 +00:00
Eelco Dolstra 89c1d2b202 * Package flag "keep" that prevents a package from being removed from
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 23:48:14 +00:00
Eelco Dolstra a46db5d013 * Package conflict resolution through priority levels. If there is a
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 23:28:44 +00:00
Eelco Dolstra b7f0f65c19 * nix-env -q now has a flag --prebuilt-only (-b<) that causes nix-env
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-26 14:20:31 +00:00
Eelco Dolstra 5dc05b76ab * Updated dependency information. 2007-04-16 16:08:44 +00:00
Eelco Dolstra d303b389a9 * `nix-copy-closure --from': copy from a remote machine instead of to
a remote machine.
2007-03-26 21:05:17 +00:00
Eelco Dolstra 803cb6e3b9 * Override the setuid helper using NIX_SETUID_HELPER. 2007-03-20 22:04:25 +00:00
Eelco Dolstra 52d03276dd * Compatibility with docbook5-xsl. 2007-02-05 12:10:10 +00:00
Eelco Dolstra 451dbf687f * nix-env now maintains meta info (from the `meta' derivation
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-02-02 01:52:42 +00:00
Eelco Dolstra 7349bd0176 New primitives:
* `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-29 14:23:09 +00:00
Eelco Dolstra 71ceb1c161 * Handle multiple indirect symlinks when loading a Nix expression. 2007-01-15 14:50:25 +00:00
Eelco Dolstra e418976107 * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
Eelco Dolstra 4e329f173f * Doh. 2007-01-14 12:16:58 +00:00
Eelco Dolstra afe23b5f38 * nix-pack-closure: store the top-level store paths in the closure.
* 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 19:50:42 +00:00
Eelco Dolstra 215505bb46 * Removed chroot support. 2007-01-13 17:54:01 +00:00
Eelco Dolstra a3e6415ba8 * New primop builtins.filterSource, which can be used to filter files
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 23:05:01 +00:00
Eelco Dolstra 3130f1f0fa * Push. 2006-12-12 20:17:14 +00:00
Eelco Dolstra 7ace29dae7 * New operation `nix-env --set' which sets a user environment to a
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 19:06:02 +00:00
Eelco Dolstra 1a7e88bbd9 * New built-in function `builtins.attrNames' that returns the
names of the attributes in an attribute set.
2006-12-12 16:14:31 +00:00
Eelco Dolstra 5e6699188f 2006-12-09 23:14:55 +00:00
Eelco Dolstra 9dbfe242e3 * Kill a build if it has gone for more than a certain number of
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-12-08 15:44:00 +00:00
Eelco Dolstra fe15f991e3 * Troubleshooting information on fixing a b0rked Berkeley DB database. 2006-11-30 11:24:10 +00:00
Eelco Dolstra 745e354b19 * Push. 2006-11-14 10:23:21 +00:00
Eelco Dolstra e2a70b7ec0 * Magic attribute `exportReferencesGraph' that allows the references
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 18:18:13 +00:00
Eelco Dolstra e40d4a5604 * Option --reregister' in nix-store --register-validity'. We need
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-11-13 16:48:27 +00:00
Eelco Dolstra 005eecfc4d * Release notes. 2006-10-30 16:29:05 +00:00
Eelco Dolstra ae6fb27f18 * `nix-store --read-log / -l PATH' shows the build log of PATH, if
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-28 16:33:54 +00:00
Eelco Dolstra 99b0ea7c67 * Typo reported by Arie Middelkoop.
* Left out close-quote in example.
2006-10-26 23:06:47 +00:00
Eelco Dolstra 7d4567f2cc * Removed URIs from the evaluator (NIX-66). They are now just another
kind of notation for strings.
2006-10-11 21:59:33 +00:00
Eelco Dolstra b4e012ab4d * Merge 0.10.1 release notes. 2006-10-11 13:39:00 +00:00
Eelco Dolstra e1cc84259c * Too lazy to document nix-push --copy. 2006-10-06 09:59:02 +00:00
Eelco Dolstra b3fc016061 * Translate Unicode quote characters to ASCII equivalents when
generating NEWS.txt.
2006-10-06 09:03:39 +00:00
Eelco Dolstra 3815d2d463 * Typos etc.
* Set the release date.
2006-10-06 07:47:56 +00:00
Eelco Dolstra beee18de88 * Document nix-store --delete. 2006-10-05 23:13:15 +00:00
Eelco Dolstra eff573f563 * Work around a weird bug in the manpage generation. 2006-10-05 23:01:50 +00:00
Eelco Dolstra 9e08f5efe1 * Documented nix-store --dump / --restore. 2006-10-05 22:57:07 +00:00
Eelco Dolstra 8791ffbc88 * Documented new nix-env options. 2006-10-05 22:56:52 +00:00
Eelco Dolstra 99ef620c8c * Documented nix-instantiate --xml, --strict.
* Added an example to the nix-build section.
2006-10-05 20:41:57 +00:00
Eelco Dolstra 8396b59286 * Documented --attr / -A. 2006-10-05 20:07:41 +00:00
Eelco Dolstra 5d769de8a3 * Document --arg. 2006-10-05 09:08:52 +00:00
Eelco Dolstra 6f2bfd92b6 * Manual. 2006-10-05 08:21:52 +00:00
Eelco Dolstra 34427a7b43 * Weird. 2006-10-04 17:07:58 +00:00
Eelco Dolstra a3fd53b9eb * Style tweak. 2006-10-04 17:07:52 +00:00
Eelco Dolstra 59ef0aaf3f * Strings. 2006-10-04 16:02:18 +00:00
Eelco Dolstra 407c9fd520 * Explanation of toXML example. 2006-10-04 15:20:19 +00:00
Eelco Dolstra 0ef3bd3c37 * Use GIF callouts instead of PNG since the GIFs have transparency. 2006-10-04 12:20:07 +00:00
Eelco Dolstra 4a7ece698b 2006-10-04 08:26:05 +00:00
Eelco Dolstra bd4f1b4bb8 * Style tweaks. 2006-10-04 08:14:35 +00:00
Eelco Dolstra 96fa456a0a * An example of using toXML to pass structured information to a
builder and generate a Jetty configuration file with XSLT.
2006-10-03 15:39:34 +00:00
Eelco Dolstra 3837fb233c * Document the built-in functions. 2006-10-03 15:19:05 +00:00
Eelco Dolstra 84e6c43e85 * Documented nix-hash. 2006-10-02 22:11:44 +00:00
Eelco Dolstra cfe35ca0e0 * Manual. 2006-10-02 20:28:52 +00:00
Eelco Dolstra 853252ac66 * Document the new let. 2006-10-02 16:14:30 +00:00
Eelco Dolstra f316b6c1a9 * Manual updates (especially how nix-build makes testing packages much
easier; no longer need a helper expression).
2006-10-02 11:50:55 +00:00
Eelco Dolstra 91a01e6fcf * Manual. 2006-10-02 09:01:36 +00:00
Eelco Dolstra 88d422567e * One-click installs. 2006-09-29 14:59:10 +00:00
Eelco Dolstra 0212feeed6 * Document nix-install-package and the nixpkg file format. 2006-09-29 14:16:41 +00:00
Eelco Dolstra 070e07ed5a * Manual. 2006-09-29 11:03:16 +00:00
Eelco Dolstra 30c7db85d8 * Manual updates, some style improvements. 2006-09-29 10:31:56 +00:00
Eelco Dolstra e2eed05224 * Manual updates.
* Documented nix-{pack,unpack}-closure.
2006-09-28 09:10:53 +00:00
Eelco Dolstra 015ac7c7da * Release notes. 2006-09-27 13:27:26 +00:00
Eelco Dolstra a9a6356ffc * Release notes. 2006-09-27 12:43:00 +00:00
Eelco Dolstra e47d42536f * Release notes. 2006-09-26 09:57:27 +00:00
Eelco Dolstra f00bc4c94c * "Too many links" error. 2006-09-12 09:29:28 +00:00
Eelco Dolstra a04a65d7a5 * Release notes. 2006-09-06 14:29:49 +00:00
Eelco Dolstra f41297fdce * Allow --arg in nix-env as well, example:
$ nix-env -qa --system-filter \* --arg system '"powerpc-darwin"'

  to override the system from the default value (__currentSystem in
  all-packages.nix).
2006-08-23 16:33:21 +00:00
Eelco Dolstra 68515b5a96 * Release notes. 2006-08-22 13:19:06 +00:00
Eelco Dolstra 1a9a1f2768 * Convert to DocBook 5.
* Use Jing for RelaxNG validation, xmllint seems buggy.
2006-08-21 16:05:11 +00:00
Eelco Dolstra 601a8eab79 * Ugh. Darwin's chmod insists that flags come before the mode
specification.
2006-08-01 12:00:37 +00:00
Eelco Dolstra b11aeb2c4b * Doh. 2006-07-25 13:15:23 +00:00
Eelco Dolstra 5744dd5480 * Support the --attr / -A flag in nix-env as well. So now we can do,
e.g.,

  $ nix-env -i -A subversion xorg.xorgserver

  The main advantage over using symbolic names is that using attribute
  names is unambiguous and much, much faster.
2006-07-25 11:53:22 +00:00
Eelco Dolstra c15f544356 * Call find-runtime-roots.pl from the garbage collector to prevent
running applications etc. from being garbage collected.
2006-07-20 12:17:25 +00:00
Eelco Dolstra 48e4a3231b 2006-06-14 13:31:23 +00:00
Eelco Dolstra 50fe85f016 * For fixed-output derivations, pass the environment variables listed
in the attribute variable `impureEnvVars' from the caller to the
  builder.
2006-05-31 09:51:45 +00:00
Eelco Dolstra 8b5aa91aa7 2006-05-08 14:00:39 +00:00
Eelco Dolstra 20675feeab * Update copyright. 2006-03-15 12:58:22 +00:00
Eelco Dolstra 345a95afe9 * Allow the size of the GC reserved file to be specified in nix.conf
through the new `gc-reserved-space' option.
2006-02-16 13:58:10 +00:00
Eelco Dolstra b505f9eaf5 * Document that nix-instantiate can read from stdin. 2006-02-10 15:29:17 +00:00
Eelco Dolstra 1d2460ee5d * Documentation fixes. 2005-12-24 23:22:05 +00:00
Eelco Dolstra 3c5619c7e4 * Begin release notes. 2005-12-15 21:11:55 +00:00
Eelco Dolstra ab5c6bb3a3 * Change referer' to referrer' throughout. In particular, the
nix-store query options `--referer' and `--referer-closure' have
  been changed to `--referrer' and `--referrer-closure' (but the old
  ones are still accepted for compatibility).
2005-12-13 21:04:48 +00:00
Eelco Dolstra 1b43fbd8e4 * Oops, that should be Berkeley DB 4.3. Reported by Gerco Ballintijn. 2005-10-18 14:09:43 +00:00
Eelco Dolstra 62412c5874 * Document `nix-env --compare-versions'. 2005-10-06 15:51:43 +00:00
Eelco Dolstra ed4de220d2 * Use "source" instead of ".". 2005-09-28 09:00:07 +00:00
Eelco Dolstra fbedf6056e * Merge release notes. 2005-09-22 12:23:22 +00:00
Eelco Dolstra db1a4227a3 * Updated release notes. 2005-09-16 11:28:29 +00:00
Eelco Dolstra c28b8eb699 * svn:ignores.
* Add missing file to dist.
2005-09-16 10:35:48 +00:00
Eelco Dolstra 5c0770ac84 * Include the release notes in the manual. 2005-09-16 08:47:34 +00:00
Eelco Dolstra 1b62c2eba3 * Force release notes in ASCII, not UTF-8. 2005-09-15 20:29:08 +00:00
Eelco Dolstra d1d0271996 * Check for w3m. 2005-09-15 15:21:57 +00:00
Eelco Dolstra 5818e8eeaf * Remove dead code. 2005-09-14 18:51:02 +00:00
Eelco Dolstra 025086edea * Release notes in Docbook; ASCII release notes (i.e., the `NEWS'
file) is now generated from that using `w3m' and some XSL hackery.
2005-09-14 18:50:45 +00:00
Eelco Dolstra 78c72bf10e * channels -> channels-v3, catamaran -> nix.cs.uu.nl. 2005-08-01 07:30:35 +00:00
Eelco Dolstra a5ceb5bc0b * nix-build: default to `./default.nix' if no paths are specified.
So when using Nix as a build tool, you can just say `nix-build' and
  it will build the top-level derivation defined in `default.nix'.
2005-07-13 17:39:10 +00:00
Eelco Dolstra 88dea78cdf * Crazy: don't use real hashes of real components in examples, since
they cause Nix builds to have unnecessary retained dependences
  (e.g., on Subversion).
2005-05-09 09:58:00 +00:00
Eelco Dolstra 82d771f6e6 * Manual updates. 2005-04-10 20:54:21 +00:00
Eelco Dolstra fb45b0f548 * Document nix-channel. 2005-04-09 17:16:00 +00:00
Eelco Dolstra 8b70f138e0 * Lots of manual updates, in particular the new `nix-store --query'
options were documented, as well as the Nix configuration file.
2005-04-08 13:00:38 +00:00
Eelco Dolstra b9d8ecbc6a * More doc updates. 2005-04-07 15:51:27 +00:00
Eelco Dolstra 57d023a184 * More manual updates. 2005-04-07 10:47:58 +00:00
Eelco Dolstra f1ae10b992 * Build hook documentation.
* nix-store options.
2005-04-07 09:36:35 +00:00
Eelco Dolstra 806b91f104 * GC docs. 2005-04-07 08:17:04 +00:00
Eelco Dolstra 128c174295 * Manual updates. 2005-04-05 15:28:30 +00:00
Eelco Dolstra 229252941a * Some GC documentation. 2005-04-05 11:30:56 +00:00
Eelco Dolstra 6c8cf567b8 * Use `--nonet' flag. 2005-04-05 11:29:46 +00:00
Eelco Dolstra 4a83c12c5d * Added a glossary to the manual. 2005-04-01 15:34:23 +00:00
Eelco Dolstra 67eff20906 * Manual updates. 2005-03-17 10:30:53 +00:00
Eelco Dolstra ad3121a52d * Documented common environment variables. 2005-03-16 16:45:29 +00:00
Eelco Dolstra f982df3cd7 * Update the user environments figure to show multiple profiles and
users.
* Change to base-32 hashes.
2005-03-16 14:40:48 +00:00
Eelco Dolstra afc3a7b79b * Automake 1.9 compatibility. 2005-03-16 10:46:33 +00:00
Eelco Dolstra 693ff4f6bf * Some more updates. 2005-03-15 15:42:11 +00:00
Eelco Dolstra e301334696 * XInclude all the way. 2005-03-15 13:55:41 +00:00
Eelco Dolstra b376565b86 * Manual updates. 2005-03-15 13:21:32 +00:00
Eelco Dolstra 7d75616f2c * NEWS and manual update for release 0.7. 2005-01-12 10:27:46 +00:00
Eelco Dolstra 015beb7cd0 * Typo: genericBuilder -> genericBuild. 2004-12-17 13:46:07 +00:00
Eelco Dolstra 9f8964a062 * More manual fixes. 2004-11-14 10:42:16 +00:00
Eelco Dolstra 0b79a12082 * Manual fixes. 2004-11-14 00:24:57 +00:00
Eelco Dolstra 54c7a870d5 * Document --delete-generations and other nix-env options. 2004-11-12 23:56:37 +00:00
Eelco Dolstra c2b0d6b02f * Document --eval-only and --parse-only options in nix-instantiate. 2004-11-12 23:22:08 +00:00
Eelco Dolstra 32c7326850 * Typos. 2004-11-09 14:06:56 +00:00
Eelco Dolstra b8aaef5e4e * Documented the standard environment, including the generic builder. 2004-11-07 22:12:16 +00:00
Eelco Dolstra 2c3b29c5ca * Everything you always wanted to know about functions and derivations
but were afraid to ask.
2004-11-07 20:36:45 +00:00
Eelco Dolstra ea6581b691 * Drop the grammar appendix. 2004-11-07 20:36:10 +00:00
Eelco Dolstra 1bac7a10e6 * Operators, comments. 2004-11-07 18:58:49 +00:00
Eelco Dolstra 55b35d6d77 * Lets, inheritance, assertions. 2004-11-07 13:53:07 +00:00
Eelco Dolstra 0b1ee4802b * Typo fix. 2004-11-05 21:12:23 +00:00
Eelco Dolstra 5f0300d18c * Generic builders. 2004-11-05 21:11:01 +00:00
Eelco Dolstra 3e9d2038b4 * Start of language reference. 2004-11-05 15:39:30 +00:00
Eelco Dolstra 6ca9c7f0a9 * Finished GNU Hello walkthrough. 2004-11-05 13:10:08 +00:00
Eelco Dolstra 8b934694f2 * Manual: writing Nix expressions. 2004-11-04 20:21:08 +00:00
Eelco Dolstra 5f2c5a306c * chapter -> appendix. 2004-11-02 08:25:29 +00:00
Eelco Dolstra 0913f5a615 * Section about channels. 2004-11-01 16:21:37 +00:00
Eelco Dolstra ee5dcfade2 * Section about garbage collection. 2004-11-01 16:03:35 +00:00
Eelco Dolstra cbe8de592d * Profiles section. 2004-11-01 12:02:44 +00:00
Eelco Dolstra b05a596d61 * Document setuid Nix installs. 2004-10-31 17:08:48 +00:00
Eelco Dolstra 0d80d237c5 * Add figures to make install' / make dist'. 2004-10-31 16:13:25 +00:00
Eelco Dolstra f8ac8d1ec8 * Began adding build farm docs. 2004-10-29 15:26:26 +00:00
Eelco Dolstra 37d7abd694 * New language feature: with expressions.
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.
2004-10-25 16:54:56 +00:00
Eelco Dolstra 2cd590d96c * Instead of &mdash; use the actual Unicode character. By the way, to
edit the manual, you should have something like

    (modify-coding-system-alist 'file "\\.xml\\>" 'utf-8)

  in your ~/.emacs.
2004-10-18 12:22:14 +00:00
Eelco Dolstra 692204e0c5 * Rewrite of package management stuff. 2004-10-14 16:43:09 +00:00
Eelco Dolstra febd8bed1b * Split overview chapter into a chapter on package management and a
chapter on writing Nix expressions.
2004-10-14 11:55:12 +00:00
Eelco Dolstra 98c69e5172 * Unindent. 2004-10-14 11:54:41 +00:00
Eelco Dolstra 371c57d8a7 * Updated the quick start section. Use channels instead of
downloading Nix expressions and calling nix-pull.  This is so
  user-friendly that even a Mac user can do it! :-)
2004-10-13 15:35:47 +00:00
Eelco Dolstra 2b20701f78 * Better introduction.
* Set notes in a different color than warnings.
2004-10-13 15:08:35 +00:00
Eelco Dolstra 5396304c73 * Use setre[ug]id() instead of setres[ug]id(), since the former is
more common than the latter (which exists only on Linux and
  FreeBSD).  We don't really care about dropping the saved IDs since
  there apparently is no way to quiry them in any case, so it can't
  influence the build (unlike the effective IDs which are checked by
  Perl for instance).
2004-09-09 15:55:31 +00:00
Eelco Dolstra eb233e728f * `--min-age' flag in nix-store and nix-collect-garbage to only delete
unreachable paths that haven't been used for N hours.  For instance,
  `nix-collect-garbage --min-age 168' only deletes paths that haven't
  been accessed in the last week.

  This is useful for instance in the build farm where many derivations
  can be shared between consecutive builds, and we wouldn't want a
  garbage collect to throw them all away.  We could of course register
  them as roots, but then we'd to unregister them at some point, which
  would be a pain to manage.  The `--min-age' flag gives us a sort of
  MRU caching scheme.

  BUG: this really shouldn't be in gc.cc since that violates
  mechanism/policy separation.
2004-08-25 16:54:08 +00:00
Eelco Dolstra fdec72c6cc * `nix-collect-garbage' now actually performs a garbage collection, it
doesn't just print the set of paths that should be deleted.  So
  there is no more need to pipe the result into `nix-store --delete'
  (which doesn't even exist anymore).
2004-08-25 15:39:13 +00:00
Eelco Dolstra 1eddee59f2 * The default verbosity level of all Nix commands is now lvlInfo.
* Builder output is written to standard error by default.
  * The option `-B' is gone.
  * The option `-Q' suppresses builder output.

The result of this is that most Nix invocations shouldn't need any
flags w.r.t. logging.
2004-08-18 12:19:06 +00:00
Eelco Dolstra 151e61fa5a * By default, `nix-env -i' now deletes previously installed
derivations with names matching the derivations being installed.
  The option `--preserve-installed / -P' overrides this behaviour.
2004-06-28 14:40:26 +00:00
Eelco Dolstra 24286e15c9 * `nix-env -u' now allows a specific version to be specified when
upgrading.

  This fixes a bug reported by Martin:

    $ nix-env -i foo-1.0
    $ nix-env -u foo-1.0
    upgrading foo-1.0 to foo-1.1
2004-06-28 13:37:05 +00:00
Eelco Dolstra 91dc023665 * Added a switch `--fallback'. From the manual:
Whenever Nix attempts to realise a derivation for which a closure is
  already known, but this closure cannot be realised, fall back on
  normalising the derivation.

  The most common scenario in which this is useful is when we have
  registered substitutes in order to perform binary distribution from,
  say, a network repository.  If the repository is down, the
  realisation of the derivation will fail.  When this option is
  specified, Nix will build the derivation instead.  Thus, binary
  installation falls back on a source installation.  This option is
  not the default since it is generally not desirable for a transient
  failure in obtaining the substitutes to lead to a full build from
  source (with the related consumption of resources).
2004-06-28 10:42:57 +00:00
Eelco Dolstra b113edeab7 * A flag `--keep-going / -k' to keep building goals if one fails, as
much as possible.  (This is similar to GNU Make's `-k' flag.)

* Refactoring to implement this: previously we just bombed out when
  a build failed, but now we have to clean up.  In particular this
  means that goals must be freed quickly --- they shouldn't hang
  around until the worker exits.  So the worker now maintains weak
  pointers in order not to prevent garbage collection.

* Documented the `-k' and `-j' flags.
2004-06-25 15:36:09 +00:00
Eelco Dolstra 87bf541f23 * Documented the primops. 2004-04-08 15:51:26 +00:00
Eelco Dolstra b0c9baf1b5 * EBNF grammar for the Nix expression language. 2004-04-08 13:31:57 +00:00
Eelco Dolstra 92e832348d * Lots of manual stuff. Reference pages for most Nix commands.
* nix-pull now requires the full url to the manifest, i.e.,
  `/MANIFEST/' is no longer automatically appended.
* nix-prefetch-url works again.
2004-02-10 16:14:47 +00:00
Eelco Dolstra 0616b7feea * Documented the most important nix-env flags. 2004-02-10 11:51:16 +00:00
Eelco Dolstra 66e94d3275 * Improvements to profiles. Generations are now per-profile, e.g.,
default -> default-94-link
  default-82-link -> /nix/store/cc4480...
  default-83-link -> /nix/store/caeec8...
  ...
  default-94-link -> /nix/store/2896ca...
  experimental -> experimental-2-link
  experimental-1-link -> /nix/store/cc4480...
  experimental-2-link -> /nix/store/a3148f...

* `--profile' / `-p' -> `--switch-profile' / `-S'
* `--link' / `-l' -> `--profile' / `-p'
* The default profile is stored in $prefix/var/nix/profiles.
  $prefix/var/nix/links is gone.  Profiles can be stored anywhere.
* The current profile is now referenced from ~/.nix-profile, not
  ~/.nix-userenv.
* The roots to the garbage collector now have extension `.gcroot', not
  `.id'.
2004-02-06 10:30:20 +00:00
Eelco Dolstra d9f30fe7c7 * Sort `nix-env -q' output by derivation name.
* `--version' flag for all commands.
* Manual updates.
2004-02-02 10:51:54 +00:00
Eelco Dolstra c625718513 * Detect flex and bison; updated the manual. 2004-01-30 16:32:14 +00:00
Eelco Dolstra cdb50886f4 * Typos. 2004-01-22 09:35:35 +00:00
Eelco Dolstra 3c4bc7276a * Added a note about adding /nix/etc/profile.d/nix.sh to the profile. 2004-01-22 09:17:55 +00:00
Martin Bravenboer 4f72b408a5 Typos and url losser -> catamaran 2004-01-22 08:47:59 +00:00
Eelco Dolstra 4db7ef3fcc * Fixed URL. 2004-01-20 17:18:41 +00:00
Eelco Dolstra 3778586b2a * Nix Quick Start guide. 2004-01-20 15:37:55 +00:00
Eelco Dolstra 8baf50f108 * Manual updates.
* Updated the README.  Now it just refers to the manual.
2004-01-20 11:49:32 +00:00
Eelco Dolstra ff9af107d3 * Option `-B' to always show the output of builders, regardless of
verbosity level.
2004-01-13 16:35:43 +00:00
Eelco Dolstra 46a71c857c * Option --force-realise' in nix-store --query'. 2004-01-09 14:18:28 +00:00
Eelco Dolstra 30b31a8f61 * Start of nix-env reference.
* Some CSS tweaks.
2004-01-08 16:56:40 +00:00
Eelco Dolstra b594215531 * Manual updates. 2004-01-08 15:01:37 +00:00
Eelco Dolstra 5346536b62 * Include version number in manual. 2004-01-08 10:45:23 +00:00
Eelco Dolstra abe8c8c2aa * Include images/ in distribution. 2004-01-07 10:59:38 +00:00
Eelco Dolstra 1ff986d51a * book -> manual 2004-01-06 16:38:32 +00:00
Eelco Dolstra 2f0b93904b * Install images. 2004-01-06 16:35:07 +00:00
Eelco Dolstra 94175e978a * RPM spec file.
* Respect DESTDIR variable.
2003-12-30 20:09:00 +00:00
Eelco Dolstra 0a753e182a * Oops. 2003-12-21 22:02:58 +00:00
Eelco Dolstra df7a718786 * Man pages in sections. 2003-12-21 21:57:09 +00:00
Eelco Dolstra 00d4f907e1 * Get rid of the icons in warnings etc. 2003-12-03 09:33:03 +00:00
Eelco Dolstra 31fd72ee17 * Epigraph ;-) 2003-12-02 16:29:41 +00:00
Eelco Dolstra 16d971bce7 * A nice stylesheet for the manual. 2003-12-02 15:36:49 +00:00
Eelco Dolstra 905d5b91fa * Manual fixes (thanks to Merijn). 2003-12-01 14:52:51 +00:00
Eelco Dolstra dc05f29cf6 * Manual updates. 2003-11-27 14:58:32 +00:00
Eelco Dolstra 7b0e29b4dc * Overview of nix-env. Recommended reading. :-) 2003-11-26 16:09:27 +00:00
Eelco Dolstra 62d9b31d0a * Updates. 2003-11-26 14:25:39 +00:00
Eelco Dolstra f6a30ab264 * Updates. 2003-11-26 12:30:16 +00:00
Eelco Dolstra 2a4bac5459 * Refactoring.
* Convert tabs to spaces.
2003-11-26 11:24:13 +00:00
Eelco Dolstra bd0ce1a4be * Minor fix. 2003-11-26 10:47:54 +00:00
Eelco Dolstra c38ba181ed * Configure flags to specify the location of the DocBook DTD / stylesheets. 2003-11-26 10:41:21 +00:00
Eelco Dolstra 6d5877ea12 * Use --nonet flag to prevent fetching of DTD. 2003-11-25 13:43:48 +00:00
Eelco Dolstra 12e805cfb0 * Don't hardcode the path to the DocBook DTD/stylesheets. 2003-11-25 13:06:12 +00:00
Eelco Dolstra 56b98c3857 * Some work on the introduction. 2003-08-22 11:29:20 +00:00
Eelco Dolstra 2de8504791 * Delete the temporary directories of failed builds by default, and an
option `--keep-failed' to override this behaviour.
2003-08-19 09:04:47 +00:00
Eelco Dolstra 161aab582b * Use a catalog when calling xsltproc. 2003-08-14 18:24:40 +00:00
Eelco Dolstra a24cb19361 * Use xmllint instead of nsgmls to validate the manual. 2003-08-14 18:17:02 +00:00
Eelco Dolstra 2e16ff22ac * Fix man page. 2003-08-14 11:27:02 +00:00
Eelco Dolstra 95b49f8044 * Manual updates. 2003-08-13 15:17:57 +00:00
Eelco Dolstra 68022552d2 * Put the pre-built manual and man pages in the tar distribution. 2003-08-13 15:17:36 +00:00
Eelco Dolstra c34a153ae5 * Documented the `--query' operation. 2003-08-13 10:45:01 +00:00
Eelco Dolstra b4f88d0ec3 * Split the book.xml into several xml files. 2003-08-13 09:13:52 +00:00
Eelco Dolstra 469f1eba56 * Documented some Nix operations. 2003-08-12 15:06:49 +00:00
Eelco Dolstra e405ca506e * Generate man pages from the manual. 2003-08-12 13:54:42 +00:00
Eelco Dolstra 4b7b0bd12c * Started on the introduction. 2003-08-07 15:27:14 +00:00
Eelco Dolstra 74867e72f2 * Start of manual; installation instructions. 2003-08-07 14:17:18 +00:00
Eelco Dolstra 9f4c19276d * Basic makefile. 2003-07-31 13:13:13 +00:00
Eelco Dolstra 64c617e984 * Directories for the manual. 2003-07-30 14:40:18 +00:00