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.
master
Leo Famulari 2016-08-09 14:55:37 -04:00
parent 8ac32b57d3
commit d1cada0450
No known key found for this signature in database
GPG Key ID: 2646FA30BACA7F08
1 changed files with 20 additions and 49 deletions

View File

@ -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")