aboutsummaryrefslogtreecommitdiff
path: root/guix/build/gnu-build-system.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-03-10 22:16:14 +0100
committerLudovic Courtès <ludo@gnu.org>2019-03-10 22:24:08 +0100
commit6db044db45495aae471e1e8f537e267a0cb25cf5 (patch)
tree06727c13bdf33db02f163fd120400f375e259ddc /guix/build/gnu-build-system.scm
parent278409e7e9ad63b80afa0a40c220dedd78c0aa54 (diff)
downloadguix-6db044db45495aae471e1e8f537e267a0cb25cf5.tar
guix-6db044db45495aae471e1e8f537e267a0cb25cf5.tar.gz
build-system/gnu: Copy license files to all the outputs.
Fixes <https://bugs.gnu.org/34702>. Reported by Leo Famulari <leo@famulari.name>. * guix/build/gnu-build-system.scm (install-license-files)[copy-to-directories]: New procedure. Call it to copy license files to all the outputs.
Diffstat (limited to 'guix/build/gnu-build-system.scm')
-rw-r--r--guix/build/gnu-build-system.scm19
1 files changed, 14 insertions, 5 deletions
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index f62e96112d..afa1886ecd 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -758,13 +758,23 @@ which cannot be found~%"
(string-append "../" directory)))
directories))))
+ (define (copy-to-directories directories sub-directory)
+ (lambda (file)
+ (for-each (if (file-is-directory? file)
+ (cut copy-recursively file <>)
+ (cut install-file file <>))
+ (map (cut string-append <> "/" sub-directory)
+ directories))))
+
(let* ((regexp (make-regexp license-file-regexp))
(out (or (assoc-ref outputs "out")
(match outputs
(((_ . output) _ ...)
output))))
(package (strip-store-file-name out))
- (directory (string-append out "/share/doc/" package))
+ (outputs (match outputs
+ (((_ . outputs) ...)
+ outputs)))
(source (if out-of-source?
(find-source-directory
(package-name->name+version package))
@@ -777,10 +787,9 @@ which cannot be found~%"
(begin
(format #t "installing ~a license files from '~a'~%"
(length files) source)
- (for-each (lambda (file)
- (if (file-is-directory? file)
- (copy-recursively file directory)
- (install-file file directory)))
+ (for-each (copy-to-directories outputs
+ (string-append "share/doc/"
+ package))
(map (cut string-append source "/" <>) files)))
(format (current-error-port)
"failed to find license files~%"))