gnu: git: Add "subtree" output.

* gnu/packages/version-control.scm (git)[outputs]: Add "subtree".
This commit is contained in:
Pierre Neidhardt 2018-10-25 19:31:38 +02:00
parent abc98e3be5
commit 1316413558
No known key found for this signature in database
GPG Key ID: 9BDCF497A4BBCC7F
1 changed files with 34 additions and 1 deletions

View File

@ -166,7 +166,11 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
"1vn6pi9yvw7rnb9dvi1yjrvv39fqd1m9mwbaffqwizs3gaf91br7"))))))
"1vn6pi9yvw7rnb9dvi1yjrvv39fqd1m9mwbaffqwizs3gaf91br7"))))
;; For subtree documentation.
("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl)
("xmlto" ,xmlto)))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@ -198,6 +202,7 @@ as well as the classic centralized workflow.")
"send-email" ; for git-send-email
"svn" ; git-svn
"credential-netrc" ; git-credential-netrc
"subtree" ; git-subtree
"gui")) ; gitk, git gui
(arguments
`(#:make-flags `("V=1" ;more verbose compilation
@ -256,6 +261,26 @@ as well as the classic centralized workflow.")
;; Add the "PM.stamp" to avoid "no rule to make target".
(call-with-output-file "perl/PM.stamp" (const #t))
#t))
(add-after 'build 'build-subtree
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "contrib/subtree"
(substitute* "Makefile"
;; Apparently `xmlto' does not bother to looks up the stylesheets
;; specified in the XML, unlike the above substitution. Instead it
;; uses a hard-coded URL. Work around it here, but if this is
;; common perhaps we should hardcode this path in xmlto itself.
(("\\$\\(XMLTO\\) -m \\$\\(MANPAGE_XSL\\) man")
(string-append "$(XMLTO) -x "
(string-append (assoc-ref inputs "docbook-xsl")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl))
"/manpages/docbook.xsl -m $(MANPAGE_XSL) man")))
(invoke "make")
(invoke "make" "install")
(invoke "make" "install-doc")
(substitute* "git-subtree"
(("/bin/sh") (which "sh"))))
#t))
(add-before 'check 'patch-tests
(lambda _
(let ((store-directory (%store-directory)))
@ -317,6 +342,14 @@ as well as the classic centralized workflow.")
`("PERL5LIB" ":" prefix
(,(string-append (assoc-ref outputs "out") "/share/perl5"))))
#t)))
(add-after 'install 'install-subtree
(lambda* (#:key outputs #:allow-other-keys)
(let ((subtree (assoc-ref outputs "subtree")))
(install-file "contrib/subtree/git-subtree"
(string-append subtree "/bin"))
(install-file "contrib/subtree/git-subtree.1"
(string-append subtree "/share/man/man1"))
#t)))
(add-after 'install 'split
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Split the binaries to the various outputs.