GNU bug report logs -
#29161
[PATCH core-updates] build-system/gnu: Add 'install-license-files' phase.
Previous Next
Reported by: ludo <at> gnu.org (Ludovic Courtès)
Date: Sun, 5 Nov 2017 20:40:01 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 29161 in the body.
You can then email your comments to 29161 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#29161
; Package
guix-patches
.
(Sun, 05 Nov 2017 20:40:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 05 Nov 2017 20:40:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello Guix,
This patch adds an ‘install-license-files’ phase to ‘gnu-build-system’
and to all the build systems that inherit from it. It is a followup to
the discussion with Dave Love:
https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00097.html
It’s an improvement over what we have now, although it’s rudimentary: it
copies to share/doc/PACKAGE-VERSION any file from the top-level source
directory that matches a regexp.
Thoughts?
Ideally we could apply it in this ‘core-updates’ cycle if that’s fine
with you.
Thanks in advance,
Ludo’.
[0001-build-system-gnu-Add-install-license-files-phase.patch (text/x-patch, inline)]
From bcdfb1a89b82c9c10e80f1a5d6aadc0620e81156 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo <at> gnu.org>
Date: Sun, 5 Nov 2017 21:32:02 +0100
Subject: [PATCH] build-system/gnu: Add 'install-license-files' phase.
Suggested by Dave Love <fx <at> gnu.org>.
* guix/build-system/gnu.scm (%license-file-regexp): New variable.
(gnu-build): Add #:license-file-regexp and use it.
(gnu-cross-build): Likewise.
* guix/build/gnu-build-system.scm (%license-file-regexp): New variable.
(install-license-files): New procedure.
(%standard-phases): Add it.
---
guix/build-system/gnu.scm | 8 ++++++++
guix/build/gnu-build-system.scm | 25 +++++++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 047ace7e6..f54afe167 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -273,6 +273,10 @@ standard packages used as implicit inputs of the GNU build system."
(build (if target gnu-cross-build gnu-build))
(arguments (strip-keyword-arguments private-keywords arguments))))
+(define %license-file-regexp
+ ;; Regexp matching license files.
+ "^(COPYING.*|LICEN[CS]E.*|[Ll]icen[cs]e.*|Copy[Rr]ight(\\.(txt|md))?)$")
+
(define* (gnu-build store name input-drvs
#:key (guile #f)
(outputs '("out"))
@@ -291,6 +295,7 @@ standard packages used as implicit inputs of the GNU build system."
(strip-directories ''("lib" "lib64" "libexec"
"bin" "sbin"))
(validate-runpath? #t)
+ (license-file-regexp %license-file-regexp)
(phases '%standard-phases)
(locale "en_US.utf8")
(system (%current-system))
@@ -358,6 +363,7 @@ packages that must not be referenced."
#:patch-shebangs? ,patch-shebangs?
#:strip-binaries? ,strip-binaries?
#:validate-runpath? ,validate-runpath?
+ #:license-file-regexp ,license-file-regexp
#:strip-flags ,strip-flags
#:strip-directories ,strip-directories)))
@@ -432,6 +438,7 @@ is one of `host' or `target'."
(strip-directories ''("lib" "lib64" "libexec"
"bin" "sbin"))
(validate-runpath? #t)
+ (license-file-regexp %license-file-regexp)
(phases '%standard-phases)
(locale "en_US.utf8")
(system (%current-system))
@@ -509,6 +516,7 @@ platform."
#:patch-shebangs? ,patch-shebangs?
#:strip-binaries? ,strip-binaries?
#:validate-runpath? ,validate-runpath?
+ #:license-file-regexp ,license-file-regexp
#:strip-flags ,strip-flags
#:strip-directories ,strip-directories))))
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index e37b75140..eb247ae0c 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -29,6 +29,7 @@
#:use-module (srfi srfi-26)
#:use-module (rnrs io ports)
#:export (%standard-phases
+ %license-file-regexp
gnu-build))
;; Commentary:
@@ -641,6 +642,29 @@ which cannot be found~%"
outputs)
#t)
+(define %license-file-regexp
+ ;; Regexp matching license files.
+ "^(COPYING.*|LICEN[CS]E.*|[Ll]icen[cs]e.*|Copy[Rr]ight(\\.(txt|md))?)$")
+
+(define* (install-license-files #:key outputs
+ (license-file-regexp %license-file-regexp)
+ #:allow-other-keys)
+ "Install license files matching LICENSE-FILE-REGEXP to 'share/doc'."
+ (let* ((regexp (make-regexp license-file-regexp))
+ (out (or (assoc-ref outputs "out")
+ (car (first outputs))))
+ (package (strip-store-file-name out))
+ (directory (string-append out "/share/doc/" package))
+ (files (scandir "." (lambda (file)
+ (regexp-exec regexp file)))))
+ (format #t "installing ~a license files~%" (length files))
+ (for-each (lambda (file)
+ (if (file-is-directory? file)
+ (copy-recursively file directory)
+ (install-file file directory)))
+ files)
+ #t))
+
(define %standard-phases
;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules ()
@@ -654,6 +678,7 @@ which cannot be found~%"
validate-documentation-location
delete-info-dir-file
patch-dot-desktop-files
+ install-license-files
reset-gzip-timestamps
compress-documentation)))
--
2.14.2
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Wed, 08 Nov 2017 21:47:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
bug acknowledged by developer.
(Wed, 08 Nov 2017 21:47:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 29161-done <at> debbugs.gnu.org (full text, mbox):
Hey,
ludo <at> gnu.org (Ludovic Courtès) skribis:
>>From bcdfb1a89b82c9c10e80f1a5d6aadc0620e81156 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo <at> gnu.org>
> Date: Sun, 5 Nov 2017 21:32:02 +0100
> Subject: [PATCH] build-system/gnu: Add 'install-license-files' phase.
>
> Suggested by Dave Love <fx <at> gnu.org>.
>
> * guix/build-system/gnu.scm (%license-file-regexp): New variable.
> (gnu-build): Add #:license-file-regexp and use it.
> (gnu-cross-build): Likewise.
> * guix/build/gnu-build-system.scm (%license-file-regexp): New variable.
> (install-license-files): New procedure.
> (%standard-phases): Add it.
I went ahead and pushed this with a tiny fix that Ricardo suggested on
IRC.
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 07 Dec 2017 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 6 years and 136 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.