guix-commits
[Top][All Lists]
Advanced

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

01/03: build-system/gnu: Add 'validate-documentation-location' phase.


From: Ludovic Courtès
Subject: 01/03: build-system/gnu: Add 'validate-documentation-location' phase.
Date: Mon, 01 Dec 2014 15:52:11 +0000

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

commit d68fe741623d11d16c514cf8bddbb48a1e5258ae
Author: Ludovic Courtès <address@hidden>
Date:   Mon Dec 1 14:09:36 2014 +0100

    build-system/gnu: Add 'validate-documentation-location' phase.
    
    * guix/build/gnu-build-system.scm (validate-documentation-location): New
      procedure.
      (%standard-phases): Add it.
---
 guix/build/gnu-build-system.scm |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index e42a6cc..9d97ceb 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -372,6 +372,27 @@ makefiles."
                                        strip-directories)))
                          outputs))))
 
+(define* (validate-documentation-location #:key outputs
+                                          #:allow-other-keys)
+  "Documentation should go to 'share/info' and 'share/man', not just 'info/'
+and 'man/'.  This phase moves directories to the right place if needed."
+  (define (validate-sub-directory output sub-directory)
+    (let ((directory (string-append output "/" sub-directory)))
+      (when (directory-exists? directory)
+        (let ((target (string-append output "/share/" sub-directory)))
+          (format #t "moving '~a' to '~a'~%" directory target)
+          (mkdir-p (dirname target))
+          (rename-file directory target)))))
+
+  (define (validate-output output)
+    (for-each (cut validate-sub-directory output <>)
+              '("man" "info")))
+
+  (match outputs
+    (((names . directories) ...)
+     (for-each validate-output directories)))
+  #t)
+
 (define %standard-phases
   ;; Standard build phases, as a list of symbol/procedure pairs.
   (let-syntax ((phases (syntax-rules ()
@@ -380,7 +401,8 @@ makefiles."
             patch-usr-bin-file
             patch-source-shebangs configure patch-generated-file-shebangs
             build check install
-            patch-shebangs strip)))
+            patch-shebangs strip
+            validate-documentation-location)))
 
 
 (define* (gnu-build #:key (source #f) (outputs #f) (inputs #f)



reply via email to

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