[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: gnu: git: Add "subtree" output.
From: |
Pierre Neidhardt |
Subject: |
01/01: gnu: git: Add "subtree" output. |
Date: |
Sat, 27 Oct 2018 10:35:09 -0400 (EDT) |
ambrevar pushed a commit to branch master
in repository guix.
commit 1316413558e288c577d132bee41adcce4bc1e24a
Author: Pierre Neidhardt <address@hidden>
Date: Thu Oct 25 19:31:38 2018 +0200
gnu: git: Add "subtree" output.
* gnu/packages/version-control.scm (git)[outputs]: Add "subtree".
---
gnu/packages/version-control.scm | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 44b9769..ccb1f5d 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.