build/gnu: Only make source checkout files writable.
This is a followup commit to 6129ebddbd.
It was suggested by Ludovic in #guix that it's probably safer to leave files
extracted from a tarball alone.  While at it, guard against possible
exceptions that can happen in the presence of dangling symbolic links, for
example.
* guix/build/gnu-build-system.scm (unpack): Wrap the make-file-writable call
in a false-if-exception handler.  Move the for-each loop under the
file-is-directory? cond branch.
			
			
This commit is contained in:
		
							parent
							
								
									3299530c43
								
							
						
					
					
						commit
						39e67ed697
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -156,7 +156,11 @@ working directory."
 | 
			
		|||
        ;; Preserve timestamps (set to the Epoch) on the copied tree so that
 | 
			
		||||
        ;; things work deterministically.
 | 
			
		||||
        (copy-recursively source "."
 | 
			
		||||
                          #:keep-mtime? #t))
 | 
			
		||||
                          #:keep-mtime? #t)
 | 
			
		||||
        ;; Make the source checkout files writable, for convenience.
 | 
			
		||||
        (for-each (lambda (f)
 | 
			
		||||
                    (false-if-exception (make-file-writable f)))
 | 
			
		||||
                  (find-files ".")))
 | 
			
		||||
      (begin
 | 
			
		||||
        (cond
 | 
			
		||||
         ((string-suffix? ".zip" source)
 | 
			
		||||
| 
						 | 
				
			
			@ -170,8 +174,7 @@ working directory."
 | 
			
		|||
            (when command
 | 
			
		||||
              (invoke command "--decompress" name)))))
 | 
			
		||||
        ;; Attempt to change into child directory.
 | 
			
		||||
        (and=> (first-subdirectory ".") chdir)))
 | 
			
		||||
  (for-each make-file-writable (find-files ".")))
 | 
			
		||||
        (and=> (first-subdirectory ".") chdir))))
 | 
			
		||||
 | 
			
		||||
(define* (bootstrap #:key bootstrap-scripts
 | 
			
		||||
                    #:allow-other-keys)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue