diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 1b31dc1538..756a6872bb 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -78,11 +78,6 @@ (define %skeleton-directory (define (dot-or-dot-dot? file) (member file '("." ".."))) -(define (make-file-writable file) - "Make FILE writable for its owner.." - (let ((stat (lstat file))) ;XXX: symlinks - (chmod file (logior #o600 (stat:perms stat))))) - (define* (copy-account-skeletons home #:optional (directory %skeleton-directory)) "Copy the account skeletons from DIRECTORY to HOME." diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 39ed1e4d4a..1786e2e3c9 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -392,8 +392,10 @@ (define (strip-dir dir) (and (or (elf-file? file) (ar-file? file)) (or (not debug-output) (make-debug-file file)) - ;; Ensure libraries are writable. - (chmod file #o755) + + ;; Ensure the file is writable. + (begin (make-file-writable file) #t) + (zero? (apply system* strip-command (append strip-flags (list file)))) (or (not debug-output) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 9e9ac90050..e8efb0653a 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -50,6 +50,7 @@ (define-module (guix build utils) with-directory-excursion mkdir-p install-file + make-file-writable copy-recursively delete-file-recursively file-name-predicate @@ -262,6 +263,11 @@ (define (install-file file directory) (mkdir-p directory) (copy-file file (string-append directory "/" (basename file)))) +(define (make-file-writable file) + "Make FILE writable for its owner." + (let ((stat (lstat file))) ;XXX: symlinks + (chmod file (logior #o600 (stat:perms stat))))) + (define* (copy-recursively source destination #:key (log (current-output-port))