aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2016-08-09 14:55:37 -0400
committerLeo Famulari <leo@famulari.name>2016-08-17 22:40:33 -0400
commitd1cada0450fca54260fd20ab49d0586d147cbeb3 (patch)
treeee0492ce3fcdbb4dbd0e9a210b9d8d6ab85c5358 /gnu/packages
parent8ac32b57d3debd0bc55dcb11fb487fe7f61fb293 (diff)
downloadguix-d1cada0450fca54260fd20ab49d0586d147cbeb3.tar
guix-d1cada0450fca54260fd20ab49d0586d147cbeb3.tar.gz
gnu: git: Provide man-pages in main Git package.
* gnu/packages/version-control.scm (git-manpages): Remove variable. (git)[native-inputs]: Add git-manpages. [arguments]: Add 'install-man-pages' phase.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/version-control.scm69
1 files changed, 20 insertions, 49 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 960ed560ff..c6384ed744 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -110,7 +111,6 @@ as well as the classic centralized workflow.")
(license gpl2+)))
(define-public git
- ;; Keep in sync with 'git-manpages'!
(package
(name "git")
(version "2.9.3")
@@ -124,7 +124,16 @@ as well as the classic centralized workflow.")
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
- ("gettext" ,gnu-gettext)))
+ ("gettext" ,gnu-gettext)
+ ("git-manpages"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/software/scm/git/git-manpages-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0kabsmjfbvq4y1vlwq0yl2y4033a90rnwsq01d7np3cvy55fiq0l"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@@ -260,7 +269,15 @@ as well as the classic centralized workflow.")
;; specify a single directory, not a search path.
(wrap-program (string-append out "/bin/git")
`("PATH" ":" prefix
- ("$HOME/.guix-profile/libexec/git-core")))))))))
+ ("$HOME/.guix-profile/libexec/git-core"))))))
+ (add-after 'split 'install-man-pages
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man (string-append out "/share/man"))
+ (manpages (assoc-ref inputs "git-manpages")))
+ (mkdir-p man)
+ (with-directory-excursion man
+ (zero? (system* "tar" "xvf" manpages)))))))))
(native-search-paths
;; For HTTPS access, Git needs a single-file certificate bundle, specified
@@ -278,52 +295,6 @@ 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
- "0kabsmjfbvq4y1vlwq0yl2y4033a90rnwsq01d7np3cvy55fiq0l"))))
- (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"))
- (man (string-append out "/share/man")))
- (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
-
- (mkdir-p man)
- (with-directory-excursion man
- (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 libgit2
(package
(name "libgit2")