This ensures that 1) the derivation doesn't change when Nix changes; 2) the derivation closure doesn't contain Nix and its dependencies; 3) we don't have to rely on ugly chroot hacks.
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			657 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			657 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| let
 | |
|   fromEnv = var: def:
 | |
|     let val = builtins.getEnv var; in
 | |
|     if val != "" then val else def;
 | |
| in rec {
 | |
|   perl = "@perl@";
 | |
|   shell = "@bash@";
 | |
|   coreutils = "@coreutils@";
 | |
|   bzip2 = "@bzip2@";
 | |
|   gzip = "@gzip@";
 | |
|   xz = "@xz@";
 | |
|   tar = "@tar@";
 | |
|   tarFlags = "@tarFlags@";
 | |
|   tr = "@tr@";
 | |
|   nixBinDir = fromEnv "NIX_BIN_DIR" "@bindir@";
 | |
|   nixPrefix = "@prefix@";
 | |
| 
 | |
|   # If Nix is installed in the Nix store, then automatically add it as
 | |
|   # a dependency to the core packages. This ensures that they work
 | |
|   # properly in a chroot.
 | |
|   chrootDeps =
 | |
|     if dirOf nixPrefix == builtins.storeDir then
 | |
|       [ (builtins.storePath nixPrefix) ]
 | |
|     else
 | |
|       [ ];
 | |
| }
 |