aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2018-10-25 19:31:38 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2018-10-27 16:29:47 +0200
commit1316413558e288c577d132bee41adcce4bc1e24a (patch)
tree7a3f2cf6cd84adada6ee0da6cccdca798865b344 /gnu/packages/version-control.scm
parentabc98e3be5fbccf88fe69399db4d83f902b65a15 (diff)
downloadguix-1316413558e288c577d132bee41adcce4bc1e24a.tar
guix-1316413558e288c577d132bee41adcce4bc1e24a.tar.gz
gnu: git: Add "subtree" output.
* gnu/packages/version-control.scm (git)[outputs]: Add "subtree".
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm35
1 files changed, 34 insertions, 1 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 44b97692d0..ccb1f5dacc 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -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.