guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: build-system/gnu: Copy license files to all the outputs.


From: guix-commits
Subject: 02/03: build-system/gnu: Copy license files to all the outputs.
Date: Sun, 10 Mar 2019 17:24:38 -0400 (EDT)

civodul pushed a commit to branch core-updates
in repository guix.

commit 6db044db45495aae471e1e8f537e267a0cb25cf5
Author: Ludovic Courtès <address@hidden>
Date:   Sun Mar 10 22:16:14 2019 +0100

    build-system/gnu: Copy license files to all the outputs.
    
    Fixes <https://bugs.gnu.org/34702>.
    Reported by Leo Famulari <address@hidden>.
    
    * 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 f62e961..afa1886 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~%"))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]