Commit graph

75 commits

Author SHA1 Message Date
Eelco Dolstra
7f0ed370da * Use $(storedir) instead of $(prefix)/store. 2004-02-20 11:32:30 +00:00
Eelco Dolstra
1ad9d11247 * Only include predecessors that are themselves being pushed.
Otherwise the substitute mechanism can break in subtle ways.
2004-02-13 10:43:31 +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
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
f899e8ce4d * Test whether the symlink, not its target, exists. 2004-01-16 15:17:36 +00:00
Eelco Dolstra
b1c5f3c10d * Doh! Edited readmanifest.pm' instead of readmanifest.pm.in'. 2004-01-16 14:54:39 +00:00
Eelco Dolstra
9a404e45c9 * Synchronous nix-pull' with nix-push'.
* Use curl instead of wget.
2004-01-14 14:20:33 +00:00
Eelco Dolstra
16f9b133ec * Improved `nix-push': it now uses HTTP PUT (instead of rsync) to copy
files.  Target location is no longer hard-coded; it accepts a number
  of URLs on the command line.

* `nix-install-package': compatibility fixes.
2004-01-14 11:13:08 +00:00
Eelco Dolstra
f83c5e3e5f * Implemented Eelco V.'s `-p' command to switch profiles. It switches
the symlink ~/.nix-userenv to the given argument (which defaults to
  .../links/current).  /etc/profile.d/nix-profile creates this symlink
  if it doesn't exist yet.  Example use:

  $ nix-env -l my_profile -i foo.nix subversion quake
  $ nix-env -p my_profile

  I don't like the term "profile".  Let's deprecate it :-)
2004-01-05 11:18:59 +00:00
Eelco Dolstra
94175e978a * RPM spec file.
* Respect DESTDIR variable.
2003-12-30 20:09:00 +00:00
Eelco Dolstra
397c8ba898 * Missing semicolons. 2003-12-21 21:56:54 +00:00
Eelco Dolstra
06c5a7075d * Refactoring: put the manifest-reading code in a separate file. 2003-12-05 11:25:38 +00:00
Martin Bravenboer
feaab52203 * Fix for too long command lines when calling `nix-store
--register-[substitutes|successors].
2003-12-04 14:38:31 +00:00
Eelco Dolstra
a3ca74a1c3 * Bug fix in nix-push. 2003-12-01 16:34:35 +00:00
Eelco Dolstra
078e20885e * Help text for all (non-script) programs, so no more:
$ nix-instantiate --help
error: unknown flag `--help`
Try `nix-instantiate --help' for more information.

:-)
2003-12-01 15:55:05 +00:00
Eelco Dolstra
5d2b424804 * Use a system name that does not include the OS manufacturer (i.e.,
"i686-linux" instead of "i686-suse-linux").
2003-12-01 14:36:50 +00:00
Eelco Dolstra
e7ea52d3b3 * One-click installation :-)
The script nix-install-package takes a `Nix package file' (which
  contains one or more derivations, along with URLs of Nix caches),
  unpacks it, pulls the caches, and installs the derivations in the
  user's environment.

  For best results, associate the command `xterm -e
  /nix/bin/nix-install-package' with the MIME type
  `application/x-nix-package' and visit
  http://losser.st-lab.cs.uu.nl/~eelco/test/.
2003-11-24 11:11:40 +00:00
Eelco Dolstra
496934a99c * Fix nix-pull. 2003-11-24 09:25:08 +00:00
Eelco Dolstra
60e86b124f * Get rid of tab characters. 2003-11-24 08:20:49 +00:00
Eelco Dolstra
9486dda115 * Fix nix-push. 2003-11-22 20:39:51 +00:00
Eelco Dolstra
ab0bc4999a * Maintain integrity of the substitute and successor mappings when
deleting a path in the store.
* Allow absolute paths in Nix expressions.
* Get nix-prefetch-url to work again.
* Various other fixes.
2003-11-22 18:45:56 +00:00
Eelco Dolstra
40d9eb14df * Fix the garbage collector. 2003-11-22 15:58:34 +00:00
Eelco Dolstra
7102455cba * Don't cache the manifest. 2003-10-27 18:43:09 +00:00
Eelco Dolstra
0eab306466 * NarPath -> NarName. 2003-10-20 09:08:44 +00:00
Eelco Dolstra
a0a7a4e087 * Remove some debug output. 2003-10-16 19:24:04 +00:00
Eelco Dolstra
0791282b2f * Substitutes and nix-pull now work again.
* Fixed a segfault caused by the buffering of stderr.
* Fix now allows the specification of the full output path.  This
  should be used with great care, since it by-passes the normal hash
  generation.
* Incremented the version number to 0.4 (prerelease).
2003-10-16 16:29:57 +00:00
Eelco Dolstra
ab5e8767fa * Get nix-push to work again.
* Fixed svn:ignore on externals/.
2003-10-16 13:13:39 +00:00
Eelco Dolstra
5fc7127643 * Keep sources (derivation expression) by default, `--no-source' to
override.
2003-10-15 10:34:50 +00:00
Eelco Dolstra
08b7319f5b * Follow successors by default (use `--no-successors' to override). 2003-10-09 15:38:31 +00:00
Eelco Dolstra
6409c215e5 * Fixed nix-switch. 2003-10-09 15:37:20 +00:00
Eelco Dolstra
5d4171f7fb * Synchronise terminology with the ICSE paper (e.g., slice -> closure,
fstate -> Nix expression).
* Fix src/test.cc.
2003-10-07 12:27:49 +00:00
Eelco Dolstra
563afb7fcc * Use passive FTP in wget. 2003-10-02 15:48:47 +00:00
Eelco Dolstra
c4f1f49574 * nix-push generated invalid (old-style) slices.
* nar.sh needs a path.
2003-08-28 10:10:12 +00:00
Eelco Dolstra
920193beb1 * Don't continue when the call to nix fails. 2003-08-25 14:36:04 +00:00
Eelco Dolstra
e374dbf89b * A script `nix-prefetch-url' to fetch a URL, place it in the Nix
store, and print its hash.
2003-08-15 10:13:41 +00:00
Eelco Dolstra
01e30360d4 * Don't use a temporary file. 2003-08-15 09:39:33 +00:00
Eelco Dolstra
f8035d06f2 * Allow a name to be given to a system configuration through `--name
NAME'.  E.g., on the losser Subversion server, I do `nix-switch --name 
  svn $(fix ...)' to atomically upgrade the server (the SVN server 
  uses the Apache and Subversion installations in /nix/var/nix/links/svn).
2003-08-06 14:48:29 +00:00
Eelco Dolstra
b9c9b461ea * Made nix-push much faster. 2003-08-05 12:30:06 +00:00
Eelco Dolstra
fd30f52cfc * Made nix-pull much faster by performing all Fix instantiations at
the same time.
2003-08-05 11:14:24 +00:00
Eelco Dolstra
1cb030736e * Bug: Fix does not allow empty names, so don't generate them. 2003-07-29 17:56:39 +00:00
Eelco Dolstra
a01629894d * Use `--query --requisites' and include successors when pushing. Don't
use `--query --generators' anymore.
2003-07-29 15:19:03 +00:00
Eelco Dolstra
40f32ae00a * Typo: if -> elsif. 2003-07-29 14:42:14 +00:00
Eelco Dolstra
8846465934 * Get garbage collection and cache population to work *properly*.
Renamed `fstateRefs' to `fstateRequisites'.  The semantics of this
  function is that it returns a list of all paths necessary to realise
  a given expression.  For a derive expression, this is the union of
  requisites of the inputs; for a slice expression, it is the path of
  each element in the slice.  Also included are the paths of the
  expressions themselves.  Optionally, one can also include the
  requisites of successor expressions (to recycle intermediate
  results).

* `nix-switch' now distinguishes between an expression and its normal
  form.  Usually, only the normal form is registered as a root of the
  garbage collector.  With the `--source-root' flag, it will also
  register the original expression as a root.

* `nix-collect-garbage' now has a flag `--keep-successors' which
  causes successors not to be included in the list of garbage paths.

* `nix-collect-garbage' now has a flag `--invert' which will print all
  paths that should *not* be garbage collected.
2003-07-29 14:28:17 +00:00
Eelco Dolstra
ce5fd1cc12 * Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh
dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks 
  up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another 
  glibc so loading barfs.

  Instead, all packages should use rpaths to store library locations in
  executables/libraries.  The disadvantage is that overriding rpaths is 
  harder.  (It is possible by invoking the dynamic linker directly, e.g., 
  `/lib/ld-linux.so.2 --ignore-path LIST program args...' to ignore the 
  rpath for the libraries in LIST).  It would be better to use DT_RUNPATH, 
  which is consulted by the dynamic linker *after* LD_LIBRARY_PATH but 
  *before* ld.so.cache and the system directories.
2003-07-28 16:07:01 +00:00
Eelco Dolstra
39ce70025b * Incorporated Berkeley DB and ATerm into the source tree.
* `make dist'.
2003-07-23 15:53:34 +00:00
Eelco Dolstra
e877c69d78 * Substitutes now should produce a path with the same id as they are
substituting for (obvious, really).

* For greater efficiency, nix-pull/unnar will place the output in a
  path that is probably the same as what is actually needed, thus
  preventing a path copy.

* Even if a output id is given in a Fix package expression, ensure
  that the resulting Nix derive expression has a different id.  This
  is because Nix expressions that are semantically equivalent (i.e.,
  build the same result) might be different w.r.t. efficiency or
  divergence.  It is absolutely vital for the substitute mechanism
  that such expressions are not used interchangeably.
2003-07-22 15:15:15 +00:00
Eelco Dolstra
d84931ee56 * Changed nix-pull to match nix-push. 2003-07-21 22:05:19 +00:00
Eelco Dolstra
c7bdb76fe4 * Syntax fixes.
* When pushing, put the hash in the file name so that the 
  client can verify (proof-carrying file names?).
2003-07-21 21:34:56 +00:00
Eelco Dolstra
7984cfc7c1 * Argh, another short-write problem. Added wrappers around
read()/write() to fix this once and for all.
2003-07-20 21:11:43 +00:00
Eelco Dolstra
ab350eafd2 * Generate nar.sh, fetchurl.sh. 2003-07-18 07:42:57 +00:00