From 1d1c3691d2fdf5aad0baceadd8596f23c1e0e1fa Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 10 Jul 2003 15:11:48 +0000 Subject: * 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. --- corepkgs/Makefile.am | 2 ++ corepkgs/nar/unnar.fix | 8 ++++++++ corepkgs/nar/unnar.sh | 3 +++ 3 files changed, 13 insertions(+) create mode 100644 corepkgs/nar/unnar.fix create mode 100644 corepkgs/nar/unnar.sh (limited to 'corepkgs') diff --git a/corepkgs/Makefile.am b/corepkgs/Makefile.am index 9ce9c8c790..9298865bff 100644 --- a/corepkgs/Makefile.am +++ b/corepkgs/Makefile.am @@ -6,3 +6,5 @@ install-data-local: $(INSTALL) -d $(datadir)/fix/nar $(INSTALL_DATA) nar/nar.fix $(datadir)/fix/nar $(INSTALL_DATA) nar/nar.sh $(datadir)/fix/nar + $(INSTALL_DATA) nar/unnar.fix $(datadir)/fix/nar + $(INSTALL_DATA) nar/unnar.sh $(datadir)/fix/nar diff --git a/corepkgs/nar/unnar.fix b/corepkgs/nar/unnar.fix new file mode 100644 index 0000000000..db97750aaa --- /dev/null +++ b/corepkgs/nar/unnar.fix @@ -0,0 +1,8 @@ +Function(["nar", "name"], + Package( + [ ("name", Var("name")) + , ("build", Relative("nar/unnar.sh")) + , ("nar", Var("nar")) + ] + ) +) \ No newline at end of file diff --git a/corepkgs/nar/unnar.sh b/corepkgs/nar/unnar.sh new file mode 100644 index 0000000000..e6a3f3c1fe --- /dev/null +++ b/corepkgs/nar/unnar.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +/tmp/nix/bin/nix --restore "$out" < $nar || exit 1 -- cgit 1.4.1