;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
(define-module (gnu packages version-control)
#:use-module ((guix licenses)
- #:select (asl2.0 bsd-2
+ #:select (asl2.0 bsd-2 bsd-3
gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
- x11-style))
+ public-domain x11-style))
+ #:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
- #:use-module (guix build utils)
#:use-module (gnu packages apr)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages asciidoc)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages cook)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages docbook)
#:use-module (gnu packages ed)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages groff)
#:use-module (gnu packages linux)
-;; #:use-module (gnu packages gnutls)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses)
- #:use-module (gnu packages openssl)
#:use-module (gnu packages ssh)
#:use-module (gnu packages web)
+ #:use-module (gnu packages openstack)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages compression)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
- #:use-module (gnu packages))
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1))
(define-public bazaar
(package
(name "bazaar")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://launchpad.net/bzr/2.6/" version
+ (uri (string-append "https://launchpad.net/bzr/"
+ (version-major+minor version) "/" version
"/+download/bzr-" version ".tar.gz"))
(sha256
(base32
- "1c6sj77h5f97qimjc14kr532kgc0jk3wq778xrkqi0pbh9qpk509"))))
+ "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d"))))
(build-system python-build-system)
(inputs
;; Note: 'tools/packaging/lp-upload-release' and 'tools/weavemerge.sh'
;; Keep in sync with 'git-manpages'!
(package
(name "git")
- (version "2.4.3")
+ (version "2.7.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "056qh112f2afnbc4sjzkf8idzhi9bp7ggpci83cc6a7gs6lhfl7h"))))
+ "0ys55v2xrhzj74jrrqx75xpr458klnyxshh8d8swfpp0zgg79rfy"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
;; For 'git-svn'.
("subversion" ,subversion)
+ ;; For 'git-send-email'
+ ("perl-authen-sasl" ,perl-authen-sasl)
+ ("perl-net-smtp-ssl" ,perl-net-smtp-ssl)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+
;; For 'git gui', 'gitk', and 'git citool'.
("tcl" ,tcl)
("tk" ,tk)))
(outputs '("out" ; the core
+ "send-email" ; for git-send-email
"svn" ; git-svn
"gui")) ; gitk, git gui
(arguments
- `(#:make-flags `("V=1") ; more verbose compilation
+ `(#:make-flags `("V=1" ;more verbose compilation
+
+ ;; By default 'make install' creates hard links for
+ ;; things in 'libexec/git-core', which leads to huge
+ ;; nars; see <http://bugs.gnu.org/21949>.
+ "NO_INSTALL_HARDLINKS=indeed")
#:test-target "test"
#:tests? #f ; FIXME: Many tests are failing
(assoc-ref %build-inputs "tk")
"/bin/wish8.6")) ; XXX
+ #:modules ((srfi srfi-1)
+ ,@%gnu-build-system-modules)
#:phases
(alist-cons-after
'configure 'patch-makefile-shebangs
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Split the binaries to the various outputs.
(let* ((out (assoc-ref outputs "out"))
+ (se (assoc-ref outputs "send-email"))
(svn (assoc-ref outputs "svn"))
(gui (assoc-ref outputs "gui"))
(gitk (string-append out "/bin/gitk"))
(git-gui* (string-append gui "/libexec/git-core/git-gui"))
(git-cit (string-append out "/libexec/git-core/git-citool"))
(git-cit* (string-append gui "/libexec/git-core/git-citool"))
+ (git-se (string-append out "/libexec/git-core/git-send-email"))
+ (git-se* (string-append se "/libexec/git-core/git-send-email"))
(git-svn (string-append out "/libexec/git-core/git-svn"))
(git-svn* (string-append svn "/libexec/git-core/git-svn"))
(git-sm (string-append out
"/libexec/git-core/git-submodule")))
(mkdir-p (string-append gui "/bin"))
(mkdir-p (string-append gui "/libexec/git-core"))
+ (mkdir-p (string-append se "/libexec/git-core"))
(mkdir-p (string-append svn "/libexec/git-core"))
(for-each (lambda (old new)
(copy-file old new)
(delete-file old)
(chmod new #o555))
- (list gitk git-gui git-cit git-svn)
- (list gitk* git-gui* git-cit* git-svn*))
+ (list gitk git-gui git-cit git-se git-svn)
+ (list gitk* git-gui* git-cit* git-se* git-svn*))
;; Tell 'git-svn' where Subversion is.
(wrap-program git-svn*
(,(string-append (assoc-ref inputs "subversion")
"/lib"))))
+ ;; Tell 'git-send-email' where perl modules are.
+ (wrap-program git-se*
+ `("PERL5LIB" ":" prefix
+ ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
+ (list
+ ,@(transitive-input-references
+ 'inputs
+ (map (lambda (l)
+ (assoc l (inputs)))
+ '("perl-authen-sasl"
+ "perl-net-smtp-ssl"
+ "perl-io-socket-ssl")))))))
+
;; Tell 'git-submodule' where Perl is.
(wrap-program git-sm
`("PATH" ":" prefix
version ".tar.xz"))
(sha256
(base32
- "1k24p33v9hvmpkx4l818x1vbdv090kfgwqshhyyl3h9m9b5skqci"))))
+ "09ffk5c0dl1xg7xcvr0kadhspx4fr2spmlmcajzfycmap0ddhkyh"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
This is the documentation displayed when using the '--help' option of a 'git'
command.")))
+(define-public libgit2
+ (package
+ (name "libgit2")
+ (version "0.24.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libgit2/libgit2/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1c5jx0pcpz83x7s36jimfz5bj0vy7vwpchq9p4sgdqxy8gwr6rhw"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-hardcoded-paths
+ (lambda _
+ (substitute* "tests/repo/init.c"
+ (("#!/bin/sh") (string-append "#!" (which "sh"))))
+ (substitute* "tests/clar/fs.h"
+ (("/bin/cp") (which "cp"))
+ (("/bin/rm") (which "rm")))
+ #t))
+ ;; Run checks more verbosely.
+ (replace 'check
+ (lambda _ (zero? (system* "./libgit2_clar" "-v" "-Q")))))))
+ (inputs
+ `(("libssh2" ,libssh2)
+ ("libcurl" ,curl)
+ ("python" ,python-wrapper)
+ ("openssl" ,openssl)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://libgit2.github.com/")
+ (synopsis "Library providing Git core methods")
+ (description
+ "Libgit2 is a portable, pure C implementation of the Git core methods
+provided as a re-entrant linkable library with a solid API, allowing you to
+write native speed custom Git applications in any language with bindings.")
+ ;; GPLv2 with linking exception
+ (license gpl2)))
+
+(define-public cgit
+ (package
+ (name "cgit")
+ (version "0.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://git.zx2c4.com/cgit/snapshot/cgit-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1dx54hgfyabmg9nm5qp6d01f54nlbqbbdwhwl0llb9imjf237qif"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; XXX: fail to build the in-source git.
+ #:test-target "test"
+ #:make-flags '("CC=gcc" "SHELL_PATH=sh")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-git
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Unpack the source of git into the 'git' directory.
+ (zero? (system*
+ "tar" "--strip-components=1" "-C" "git" "-xf"
+ (assoc-ref inputs "git:src")))))
+ (delete 'configure) ; no configure script
+ (add-after 'build 'build-man
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (zero? (apply system* `("make" ,@make-flags "doc-man")))))
+ (replace 'install
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (and (zero? (apply system*
+ `("make" ,@make-flags
+ ,(string-append "prefix=" out)
+ ,(string-append
+ "CGIT_SCRIPT_PATH=" out "/share/cgit")
+ "install" "install-man")))
+ ;; Move the platform-dependent 'cgit.cgi' into lib
+ ;; to get it stripped.
+ (rename-file (string-append out "/share/cgit/cgit.cgi")
+ (string-append out "/lib/cgit/cgit.cgi"))
+ #t)))))))
+ (native-inputs
+ ;; For building manpage.
+ `(("asciidoc" ,asciidoc)
+ ("docbook-xml" ,docbook-xml)
+ ("docbook-xsl" ,docbook-xsl)
+ ("xmllint" ,libxml2)
+ ("xsltprot" ,libxslt)))
+ (inputs
+ `(("git:src" ,(package-source git))
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (home-page "https://git.zx2c4.com/cgit/")
+ (synopsis "Web frontend for git repositories")
+ (description
+ "CGit is an attempt to create a fast web interface for the Git SCM, using
+a built-in cache to decrease server I/O pressure.")
+ (license gpl2)))
+
(define-public shflags
(package
(name "shflags")
- (version "1.0.3")
+ (version "1.2.0")
(source (origin
(method url-fetch)
- (uri (string-append "https://shflags.googlecode.com/files/"
- "shflags-" version ".tgz"))
+ (uri (string-append "https://github.com/kward/shflags/archive/v"
+ version ".tar.gz"))
(sha256
(base32
- "08laxhf1hifh3w4j0hri5ppcklaqz0mnkmbaz8j0wxih29vi8slm"))))
+ "0zxw12haylaq60a335xlqcs4afw2zrgwqymmpw0m21r51w6irdmr"))))
(build-system trivial-build-system)
(native-inputs `(("tar" ,tar)
("gzip" ,gzip)))
(copy-file "src/shflags"
(string-append srcdir "/shflags"))
#t)))))
- (home-page "https://code.google.com/p/shflags/")
+ (home-page "https://github.com/kward/shflags")
(synopsis "Command-line flags library for shell scripts")
(description
"Shell Flags (shFlags) is a library written to greatly simplify the
(output (assoc-ref %outputs "out"))
(bindir (string-append output "/bin"))
(script "git-test-sequence"))
- (begin
- (mkdir-p bindir)
- (copy-file (string-append source "/" script)
- (string-append bindir "/" script))
- #t)))))
+ (install-file (string-append source "/" script)
+ bindir)
+ #t))))
(home-page "http://dustin.sallings.org/2010/03/28/git-test-sequence.html")
(synopsis "Run a command over a sequence of commits")
(description
(define-public gitolite
(package
(name "gitolite")
- (version "3.6.2")
+ (version "3.6.5")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/sitaramc/gitolite/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
- ;; Commit ed807a4 upstream
- (patches
- (list (search-patch "gitolite-openssh-6.8-compat.patch")))
(sha256
(base32
- "1gsgzi9ayb4rablki3mqr11b0h8db4xg43df660marfpacmkfb01"))))
+ "0xpqg04gyr4dhdhxx5lbk61lwwd5ml32530bigg2qy663icngwqm"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
(define-public mercurial
(package
(name "mercurial")
- (version "3.2.4")
+ (version "3.8.1")
(source (origin
(method url-fetch)
- (uri (string-append "http://mercurial.selenic.com/release/mercurial-"
- version ".tar.gz"))
+ (uri (string-append "https://www.mercurial-scm.org/"
+ "release/mercurial-" version ".tar.gz"))
(sha256
(base32
- "1g7nfvapxj5k44dyp0p08v37s0zmrj2vl0rjgfd8297x0afidm08"))))
+ "156m6269xdqq7mpw01c6b065k29xnb8b9lyzn1b0nlz5il2izkps"))))
(build-system python-build-system)
(arguments
`(;; Restrict to Python 2, as Python 3 would require
;; FIXME: Disabled tests because they require the nose unit
;; testing framework: https://nose.readthedocs.org/en/latest/ .
#:tests? #f))
- (home-page "http://mercurial.selenic.com")
+ (home-page "https://www.mercurial-scm.org/")
(synopsis "Decentralized version control system")
(description
"Mercurial is a free, distributed source control management tool.
(define-public neon
(package
(name "neon")
- (version "0.30.0")
+ (version "0.30.1")
(source (origin
(method url-fetch)
(uri (string-append "http://www.webdav.org/neon/neon-"
version ".tar.gz"))
(sha256
(base32
- "1hlhg5w505jxdvaf7bq17057f6a48dry981g7lp2gwrhbp5wyqi9"))))
+ "1pawhk02x728xn396a1kcivy9gqm94srmgad6ymr9l0qvk02dih0"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
(define-public subversion
(package
(name "subversion")
- (version "1.8.13")
+ (version "1.8.16")
(source (origin
(method url-fetch)
(uri (string-append "http://archive.apache.org/dist/subversion/"
"subversion-" version ".tar.bz2"))
(sha256
(base32
- "0ybmc0yq83jhblp42wdqvn2cryra3sypx8mkxn5b8lq7hilcr68h"))
- (patches
- (list (search-patch "subversion-sqlite-3.8.9-fix.patch")))
- (patch-flags '("-p0"))))
+ "0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
(build-system gnu-build-system)
(arguments
;; XXX: The test suite looks flawed, and the package is obsolete anyway.
- '(#:tests? #f))
+ '(#:tests? #f
+ #:configure-flags (list "--with-external-zlib")))
(inputs `(("zlib" ,zlib)
("nano" ,nano))) ; the default editor
(home-page "http://cvs.nongnu.org")
RCS, PRCS, and Aegis packages.")
(license gpl1+)))
+(define-public cvs-fast-export
+ (package
+ (name "cvs-fast-export")
+ (version "1.33")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.catb.org/~esr/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1c3s4nacbwlaaccx1fr7hf72kxxrzy49y2rdz5hhqbk8r29vm8w1"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases (delete 'configure))
+ #:make-flags
+ (list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out")))))
+ (inputs `(("git" ,git)))
+ (native-inputs `(("asciidoc" ,asciidoc)
+ ("docbook-xml" ,docbook-xml)
+ ("docbook-xsl" ,docbook-xsl)
+ ("xmllint" ,libxml2)
+ ("xsltproc" ,libxslt)
+ ;; These are needed for the tests.
+ ("cvs" ,cvs)
+ ("python" ,python-2)
+ ("rcs" ,rcs)))
+ (home-page "http://www.catb.org/esr/cvs-fast-export/")
+ (synopsis "Export an RCS or CVS history as a fast-import stream")
+ (description "This program analyzes a collection of RCS files in a CVS
+repository (or outside of one) and, when possible, emits an equivalent history
+in the form of a fast-import stream. Not all possible histories can be
+rendered this way; the program tries to emit useful warnings when it can't.
+
+The program can also produce a visualization of the resulting commit directed
+acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,
+Graphviz}. The package also includes @command{cvssync}, a tool for mirroring
+masters from remote CVS hosts.")
+ (license gpl2+)))
+
(define-public vc-dwim
(package
(name "vc-dwim")
(sha256
(base32
"0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm"))
- (patches (list (search-patch "cssc-gets-undeclared.patch")
- (search-patch "cssc-missing-include.patch")))))
+ (patches (search-patches "cssc-gets-undeclared.patch"
+ "cssc-missing-include.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-cons-before
accessed and migrated on modern systems.")
(license gpl3+)))
-;; This package can unfortunately work only in -TEST mode, since Aegis
+;; This package can unfortunately work only in -TEST mode, since Aegis
;; requires that it is installed setuid root.
(define-public aegis
(package
(version "4.24")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/aegis/aegis-"
+ (uri (string-append "mirror://sourceforge/aegis/aegis-"
version ".tar.gz"))
(sha256
(base32
"18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl"))
- (patches (list (search-patch "aegis-perl-tempdir1.patch")
- (search-patch "aegis-perl-tempdir2.patch")
- (search-patch "aegis-test-fixup-1.patch")
- (search-patch "aegis-test-fixup-2.patch")
- (search-patch "aegis-constness-error.patch")))))
+ (patches (search-patches "aegis-perl-tempdir1.patch"
+ "aegis-perl-tempdir2.patch"
+ "aegis-test-fixup-1.patch"
+ "aegis-test-fixup-2.patch"
+ "aegis-constness-error.patch"))))
(build-system gnu-build-system)
(inputs
`(("e2fsprogs" ,e2fsprogs)
("groff" ,groff)
("perl" ,perl)
;; Various tests require the following:
- ("cvs" ,cvs)
+ ("cvs" ,cvs)
("flex" ,flex)
("cook" ,cook)
("subversion" ,subversion)
("rcs" ,rcs)
("ed" ,ed)))
(arguments
- `(#:configure-flags (list "--with-no-aegis-configured"
+ `(#:configure-flags (list "--with-no-aegis-configured"
"--sharedstatedir=/var/com/aegis")
#:parallel-build? #f ; There are some nasty racy rules in the Makefile.
- #:phases
+ #:phases
(alist-cons-before
'configure 'pre-conf
(lambda _
any project with more than one developer, is one of Aegis's major functions.")
(license gpl3+)))
+(define-public reposurgeon
+ (package
+ (name "reposurgeon")
+ (version "3.37")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.catb.org/~esr/" name "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "14asjg4xy3mhh5z0r3k7c1wv9y803j2zfq32g5q5m95sf7yzygan"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no test suite distributed
+ #:make-flags
+ (list (string-append "target=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'fix-docbook
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "." "\\.xml$")
+ (("docbook/docbookx.dtd")
+ (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook/docbookx.dtd")))
+ #t))
+ (add-after 'install 'install-emacs-data
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "reposurgeon-mode.el"
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp")))))))
+ (inputs
+ `(("python" ,python-wrapper)))
+ (native-inputs
+ `(("asciidoc" ,asciidoc)
+ ("docbook-xml" ,docbook-xml-4.1.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("libxml2" ,libxml2)
+ ("xmlto" ,xmlto)))
+ (home-page "http://www.catb.org/~esr/reposurgeon/")
+ (synopsis "Edit version-control repository history")
+ (description "Reposurgeon enables risky operations that version-control
+systems don't want to let you do, such as editing past comments and metadata
+and removing commits. It works with any version control system that can
+export and import Git fast-import streams, including Git, Mercurial, Fossil,
+Bazaar, CVS, RCS, and Src. It can also read Subversion dump files directly
+and can thus be used to script production of very high-quality conversions
+from Subversion to any supported Distributed Version Control System (DVCS).")
+ ;; Most files are distributed under bsd-2, except 'repocutter' which is
+ ;; under bsd-3.
+ (license (list bsd-2 bsd-3))))
+
(define-public tig
(package
(name "tig")
- (version "2.1")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "1c1w6w39a1dwx4whrg0ga1mhrlz095hz875z7ajn6xgmhkv8fqih"))))
+ "0bw5wivswwh7vx897q8xc2cqgkqhdzk8gh6fnav2kf34sngigiah"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
(arguments
- `(#:tests? #f)) ; no tests implemented
+ `(#:tests? #f)) ; tests require access to /dev/tty
+ ;;`(#:test-target "test"))
(home-page "http://jonas.nitro.dk/tig/")
(synopsis "Ncurses-based text user interface for Git")
(description
a history browser. It can also stage hunks for commit, or colorize the
output of the 'git' command.")
(license gpl2+)))
+
+(define-public findnewest
+ (package
+ (name "findnewest")
+ (version "0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/0-wiz-0/findnewest/archive/findnewest-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'bootstrap
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi")))))))
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (home-page "https://github.com/0-wiz-0/findnewest/releases")
+ (synopsis "Print the modification time of the latest file")
+ (description
+ "Recursively find the newest file in a file tree and print its
+modification time.")
+ (license bsd-2)))
+
+(define-public myrepos
+ (package
+ (name "myrepos")
+ (version "1.20160123")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/joeyh/myrepos/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1723cg5haplz2w9dwdzp6ds1ip33cx3awmj4wnb0h4yq171v5lqk"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("perl" ,perl)))
+ (arguments
+ `(#:test-target "test"
+ #:phases (alist-delete 'configure %standard-phases)
+ #:make-flags (list (string-append "PREFIX=" %output))))
+ (home-page "http://myrepos.branchable.com/")
+ (synopsis "Multiple repository management tool")
+ (description
+ "Myrepos provides the @code{mr} command, which maps an operation (e.g.,
+fetching updates) over a collection of version control repositories. It
+supports a large number of version control systems: Git, Subversion,
+Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
+ (license gpl2+)))
+
+(define-public git-annex-remote-hubic
+ (package
+ (name "git-annex-remote-hubic")
+ (version "0.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Schnouki/" name "/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
+ (build-system python-build-system)
+ (arguments `(#:python ,python-2))
+ (native-inputs
+ `(("python2-setuptools" ,python2-setuptools)
+ ;; for the tests
+ ("python2-six" ,python2-six)))
+ (propagated-inputs
+ `(("python2-dateutil" ,python2-dateutil-2)
+ ("python2-futures" ,python2-futures)
+ ("python2-rauth" ,python2-rauth)
+ ("python2-swiftclient" ,python2-swiftclient)))
+ (home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
+ (synopsis "Use hubic as a git-annex remote")
+ (description
+ "This package allows you to use your hubic account as a \"special
+repository\" with git-annex.")
+ (license gpl3+)))
+
+(define-public fossil
+ (package
+ (name "fossil")
+ (version "1.34")
+ (source
+ (origin
+ (method url-fetch)
+ ;; Upstream source affected by
+ ;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20962
+ (uri (string-append
+ "https://web.archive.org/web/20160402202958/"
+ "https://www.fossil-scm.org/download/fossil-src-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "17x4vgjcfihwmq195qg32irp50panvjqfpvhqydfvv4ghwzbi9jk"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Commit 0a2ebe57 on 2015-08-03 18:35:53 changed output formatting
+ ;; for some commands, but affected tests were not updated. Use
+ ;; substitute here, which is more concise than patching.
+ (substitute* "test/clean.test"
+ (("NEW ") "NEW "))
+ (substitute* '("test/revert.test" "test/mv-rm.test")
+ (("REVERTED:") "REVERT ")
+ (("DELETE:") "DELETE ")
+ (("UNMANAGE:") "UNMANAGE "))
+ ;; Fix use of __DATE__ and __TIME__
+ (substitute* "src/main.c"
+ (("Compiled on %s %s") "Compiled")
+ (("__DATE__, __TIME__, ") ""))
+ #t))
+ (patches (list (search-patch "fossil-test-fixes.patch")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("tcl" ,tcl) ;for configuration only
+ ("which" ,which) ;for tests only
+ ("ed" ,ed))) ;ditto
+ (inputs
+ `(("openssl" ,openssl)
+ ("zlib" ,zlib)
+ ("sqlite" ,sqlite)))
+ (arguments
+ `(#:configure-flags (list "--with-openssl=auto"
+ "--disable-internal-sqlite")
+ #:test-target "test"
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs (configure-flags '())
+ #:allow-other-keys)
+ ;; The 'configure' script is not an autoconf script and
+ ;; chokes on unrecognized options.
+ (zero? (apply system*
+ "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))
+ configure-flags))))
+ (add-before 'check 'test-setup
+ (lambda _
+ (setenv "USER" "guix")
+ (setenv "TZ" "UTC")
+ ;; Fixing the th1 test would require many backports, so
+ ;; just disable for now.
+ (delete-file "test/th1.test")
+ #t)))))
+ (home-page "https://fossil-scm.org")
+ (synopsis "Software configuration management system")
+ (description
+ "Fossil is a distributed source control management system which supports
+access and administration over HTTP CGI or via a built-in HTTP server. It has
+a built-in wiki, built-in file browsing, built-in tickets system, etc.")
+ (license (list public-domain ;src/miniz.c, src/shell.c
+ bsd-2))))