summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-01-06 15:07:22 +0100
committerLudovic Courtès <ludo@gnu.org>2015-01-06 15:07:22 +0100
commit1c38551a36ef32609a9fd4eb13663f0311247655 (patch)
treed2759aa8d419fb801abaa70b7a780552d911a4a9 /gnu
parent50ec74308ebf2cb356e509ffb454edfd3ccd4725 (diff)
downloadguix-1c38551a36ef32609a9fd4eb13663f0311247655.tar.gz
gnu: Add git-manpages.
* gnu/packages/version-control.scm (git-manpages): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/version-control.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ae48c4517b..0589ac30a1 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -95,6 +95,7 @@ as well as the classic centralized workflow.")
     (license gpl2+)))
 
 (define-public git
+  ;; Keep in sync with 'git-manpages'!
   (package
    (name "git")
    (version "2.2.1")
@@ -210,6 +211,52 @@ everything from small to very large projects with speed and efficiency.")
    (license gpl2)
    (home-page "http://git-scm.com/")))
 
+(define-public git-manpages
+  ;; Keep in sync with 'git'!
+
+  ;; Granted, we could build the man pages from the 'git' package itself,
+  ;; which contains the real source.  However, it would add a dependency on a
+  ;; full XML tool chain, and building it actually takes ages.  So we use this
+  ;; lazy approach.
+  (package
+    (name "git-manpages")
+    (version (package-version git))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kernel.org/software/scm/git/git-manpages-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "0f75n5yfrzb55qbg5wq4bmv43lay806v51yhglwkp7mbv1zkby00"))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+
+         (let* ((xz    (assoc-ref %build-inputs "xz"))
+                (tar   (assoc-ref %build-inputs "tar"))
+                (out   (assoc-ref %outputs "out"))
+                (share (string-append out "/share")))
+           (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
+
+           (mkdir-p share)
+           (with-directory-excursion share
+             (zero? (system* "tar" "xvf"
+                             (assoc-ref %build-inputs "source"))))))))
+
+    (native-inputs `(("tar" ,tar)
+                     ("xz" ,xz)))
+    (home-page (package-home-page git))
+    (license (package-license git))
+    (synopsis "Man pages of the Git version control system")
+    (description
+     "This package provides the man pages of the Git version control system.
+This is the documentation displayed when using the '--help' option of a 'git'
+command.")))
+
 (define-public shflags
   (package
     (name "shflags")