Include the output name in the GC root link
Output names are now appended to resulting GC symlinks, e.g. by nix-build. For backwards compatibility, if the output is named "out", nothing is appended. E.g. doing "nix-build -A foo" on a derivation that produces outputs "out", "bin" and "dev" will produce symlinks "./result", "./result-bin" and "./result-dev", respectively.
This commit is contained in:
		
							parent
							
								
									4aa1e5c554
								
							
						
					
					
						commit
						a9e6752bbd
					
				
					 5 changed files with 18 additions and 23 deletions
				
			
		|  | @ -64,15 +64,19 @@ static PathSet realisePath(const Path & path) | |||
|     if (isDerivation(path)) { | ||||
|         store->buildPaths(singleton<PathSet>(path)); | ||||
|         Derivation drv = derivationFromPath(*store, path); | ||||
|         rootNr++; | ||||
| 
 | ||||
|         PathSet outputs; | ||||
|         foreach (DerivationOutputs::iterator, i, drv.outputs) { | ||||
|             Path outPath = i->second.path; | ||||
|             if (gcRoot == "") | ||||
|                 printGCWarning(); | ||||
|             else | ||||
|                 outPath = addPermRoot(*store, outPath, | ||||
|                     makeRootName(gcRoot, rootNr), indirectRoot); | ||||
|             else { | ||||
|                 Path rootName = gcRoot; | ||||
|                 if (rootNr > 1) rootName += "-" + int2String(rootNr); | ||||
|                 if (i->first != "out") rootName += "-" + i->first; | ||||
|                 outPath = addPermRoot(*store, outPath, rootName, indirectRoot); | ||||
|             } | ||||
|             outputs.insert(outPath); | ||||
|         } | ||||
|         return outputs; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue