Subject: [bug#43841] [PATCH] build-system/go: Install license files.

From: Efraim Flashner <[email-masked]>
Date: Wed, 7 Oct 2020 10:11:56 +0300

* guix/build/go-build-system.scm (install-license-files): New procedure.
(%standard-phases): Replace inherited 'install-license-files phase.
---
 guix/build/go-build-system.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index b9cb2bfd7b..227df820db 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020 Jack Hill <[email-masked]>
 ;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
+;;; Copyright © 2020 Efraim Flashner <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -254,6 +255,17 @@ XXX We can't make use of compiled libraries (Go \"packages\")."
       (copy-recursively source dest #:keep-mtime? #t)))
   #t)
 
+(define* (install-license-files #:key unpack-path
+                                import-path
+                                #:allow-other-keys
+                                #:rest args)
+  "Install license files matching LICENSE-FILE-REGEXP to 'share/doc'.  Adjust
+the standard install-license-files phase to first enter the correct directory."
+  (with-directory-excursion (string-append "src/" (if (string-null? unpack-path)
+                                                    import-path
+                                                    unpack-path))
+    (apply (assoc-ref gnu:%standard-phases 'install-license-files) args)))
+
 (define* (remove-store-reference file file-name
                                   #:optional (store (%store-directory)))
   "Remove from FILE occurrences of FILE-NAME in STORE; return #t when FILE-NAME
@@ -317,6 +329,7 @@ files in OUTPUTS."
     (replace 'build build)
     (replace 'check check)
     (replace 'install install)
+    (replace 'install-license-files install-license-files)
     (add-after 'install 'remove-go-references remove-go-references)))
 
 (define* (go-build #:key inputs (phases %standard-phases)
-- 
2.28.0