Commit graph

62 commits

Author SHA1 Message Date
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
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
249988a787 * Allow the output/expression id to be forced to a certain
value; this potentially dangerous feature enables better 
  sharing for those paths for which the content is known in 
  advance (e.g., because a content hash is given).
* Fast builds: if we can expand all output paths of a derive 
  expression, we don't have to build.
2003-07-21 20:07:12 +00:00
Eelco Dolstra
ab350eafd2 * Generate nar.sh, fetchurl.sh. 2003-07-18 07:42:57 +00:00
Eelco Dolstra
54664b6fb7 * The write() system call can write less than the requested
number of bytes, e.g., in case of a signal like SIGSTOP.  
  This caused `nix --dump' to fail sometimes.

  Note that this bug went unnoticed because the call to `nix 
  --dump' is in a pipeline, and the shell ignores non-zero 
  exit codes from all but the last element in the pipeline.  
  Is there any way to check the result of the initial elements
  in the pipeline?  (In other words, is it at all possible to 
  write reliable shell scripts?)
2003-07-16 21:24:02 +00:00
Eelco Dolstra
335aa1c35d * Doh! 2003-07-16 20:49:59 +00:00
Eelco Dolstra
9d56ca219f * Substitute fixes. 2003-07-16 20:00:51 +00:00
Eelco Dolstra
5304a1eb3a * Fetchurl: check md5 checksum. 2003-07-12 11:03:14 +00:00
Eelco Dolstra
822c072cfa * Compress Nix archives when pushing them. 2003-07-10 20:34:29 +00:00
Eelco Dolstra
1d1c3691d2 * The policy-free derivate sharing now *almost* works. :-) For any
hash for which no local expansion is available, Nix can execute a
  `substitute' which should produce a path with such a hash.

  This is policy-free since Nix does not in any way specify how the
  substitute should work, i.e., it's an arbitrary (unnormalised)
  fstate expression.  For example, `nix-pull' registers substitutes
  that fetch Nix archives from the network (through `wget') and unpack
  them, but any other method is possible as well.  This is an
  improvement over the old Nix sharing scheme, which had a policy
  (fetching through `wget') built in.

  The sharing scheme doesn't work completely yet because successors
  from fstate rewriting have to be registered on the receiving side.
  Probably the whole successor stuff can be folded up into the
  substitute mechanism; this would be a nice simplification.
2003-07-10 15:11:48 +00:00
Eelco Dolstra
d072485d28 * Get `nix-push' working again. It now uses Nix/Fix to create Nix
archives (using the package in corepkgs/nar).
* queryPathByHash -> expandHash, and it takes an argument specifying
  the target path (which may be empty).
* Install the core Fix packages in $prefix/share/fix.  TODO: bootstrap
  Nix and install Nix as a Fix package.
2003-07-10 13:41:28 +00:00
Eelco Dolstra
b96239c657 * Moved the fetchutl package to corepkgs. 2003-07-10 09:11:30 +00:00