daemon: Allow fixed-output derivation builds with TMPDIR set.
Fixes <http://bugs.gnu.org/25242>.
Reported by Leo Famulari <leo@famulari.name>.
The regression was introduced in 94d92c7796.
* nix/libstore/build.cc (DerivationGoal::startBuilder): Set 'useChroot'
as a function 'of isBuiltin(drv)'.
(DerivationGoal::runChild): Use 'useChroot' instead of
'useChroot && !isBuiltin(drv)'.
			
			
This commit is contained in:
		
							parent
							
								
									681a555b83
								
							
						
					
					
						commit
						8ecc3c6c44
					
				
					 1 changed files with 6 additions and 7 deletions
				
			
		|  | @ -1680,7 +1680,11 @@ void DerivationGoal::startBuilder() | |||
|             % drv.platform % settings.thisSystem % drvPath); | ||||
|     } | ||||
| 
 | ||||
|     useChroot = settings.useChroot; | ||||
|     /* Note: built-in builders are *not* running in a chroot environment so
 | ||||
|        that we can easily implement them in Guile without having it as a | ||||
|        derivation input (they are running under a separate build user, | ||||
|        though).  */ | ||||
|     useChroot = settings.useChroot && !isBuiltin(drv); | ||||
| 
 | ||||
|     /* Construct the environment passed to the builder. */ | ||||
|     env.clear(); | ||||
|  | @ -2048,12 +2052,7 @@ void DerivationGoal::runChild() | |||
|         commonChildInit(builderOut); | ||||
| 
 | ||||
| #if CHROOT_ENABLED | ||||
| 	/* Note: built-in builders are *not* running in a chroot environment
 | ||||
| 	   so that we can easily implement them in Guile without having it as | ||||
| 	   a derivation input (they are running under a separate build user, | ||||
| 	   though).  */ | ||||
| 
 | ||||
|         if (useChroot && !isBuiltin(drv)) { | ||||
|         if (useChroot) { | ||||
|             /* Initialise the loopback interface. */ | ||||
|             AutoCloseFD fd(socket(PF_INET, SOCK_DGRAM, IPPROTO_IP)); | ||||
|             if (fd == -1) throw SysError("cannot open IP socket"); | ||||
|  |  | |||
		Reference in a new issue