summary refs log tree commit diff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm76
1 files changed, 64 insertions, 12 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 14a18c8c35..b9a2ff2ea0 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.
@@ -427,7 +460,7 @@ everything from small to very large projects with speed and efficiency.")
 (define-public libgit2
   (package
     (name "libgit2")
-    (version "0.26.7")
+    (version "0.26.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libgit2/libgit2/"
@@ -435,7 +468,7 @@ everything from small to very large projects with speed and efficiency.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1vy4dnbvhcq3pw8n8zz6clnsv2xnkrichl8k96w3lb6yyk0lln35"))
+                "15kp4sq72kh762bm7dgspyrk0a6siarvll3k7nrhs0xy77idf80g"))
               (patches (search-patches "libgit2-mtime-0.patch"))
 
               ;; Remove bundled software.
@@ -1119,14 +1152,14 @@ control to Git repositories.")
 (define-public mercurial
   (package
     (name "mercurial")
-    (version "4.6.2")
+    (version "4.7.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://www.mercurial-scm.org/"
                                  "release/mercurial-" version ".tar.gz"))
              (sha256
               (base32
-               "1bv6wgcdx8glihjjfg22khhc52mclsn4kwfqvzbzlg0b42h4xl0w"))))
+               "1yq9r8s9jzj8hk2yizjk25s4w16yx9b8mbdj6wp8ld7j2r15kw4p"))))
     (build-system python-build-system)
     (arguments
      `(;; Restrict to Python 2, as Python 3 would require
@@ -1697,7 +1730,7 @@ modification time.")
 (define-public myrepos
   (package
     (name "myrepos")
-    (version "1.20171231")
+    (version "1.20180726")
     (source
      (origin
        (method git-fetch)
@@ -1706,15 +1739,34 @@ modification time.")
              (commit version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0"))
-       (patches (search-patches "myrepos-CVE-2018-7032.patch"))))
+        (base32 "0jphw61plm8cgklja6hs639xhdvxgvjwbr6jpvjwpp7hc5gmhms5"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("perl" ,perl)))
     (arguments
      '(#:test-target "test"
-       #:phases (modify-phases %standard-phases (delete 'configure))
-       #:make-flags (list (string-append "PREFIX=" %output))))
+       #:make-flags (list (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'install 'wrap-webcheckout
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/webcheckout")
+                 `("PERL5LIB" ":" prefix
+                   ,(map (lambda (i) (string-append (assoc-ref inputs i)
+                                                    "/lib/perl5/site_perl"))
+                         '("perl-encode-locale" "perl-http-date"
+                           "perl-http-message" "perl-html-parser" "perl-libwww"
+                           "perl-uri" "perl-try-tiny"))))
+               #t))))))
+    (inputs
+     `(("perl" ,perl)
+       ("perl-encode-locale" ,perl-encode-locale)
+       ("perl-html-parser" ,perl-html-parser)
+       ("perl-http-date" ,perl-http-date)
+       ("perl-http-message" ,perl-http-message)
+       ("perl-libwww" ,perl-libwww)
+       ("perl-try-tiny" ,perl-try-tiny)
+       ("perl-uri" ,perl-uri)))
     (home-page "https://myrepos.branchable.com/")
     (synopsis "Multiple repository management tool")
     (description