From 6db044db45495aae471e1e8f537e267a0cb25cf5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 10 Mar 2019 22:16:14 +0100 Subject: build-system/gnu: Copy license files to all the outputs. Fixes . Reported by Leo Famulari . * guix/build/gnu-build-system.scm (install-license-files)[copy-to-directories]: New procedure. Call it to copy license files to all the outputs. --- guix/build/gnu-build-system.scm | 19 ++++++++++++++----- 1 file 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~%")) -- cgit v1.2.3