gnu: packages: Use 'search-patches' everywhere.
[jackhill/guix/guix.git] / gnu / packages / version-control.scm
CommitLineData
dcee3fc5
NK
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
cf3fe3b0 3;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
1a59b6d0 4;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
fc1e4516 5;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
59ef2030 6;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
d5e9f380 7;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
c7810bd1 8;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
17206f72 9;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
e92b8599 10;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
086e498b 11;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
dcee3fc5
NK
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
1b1c335f 28(define-module (gnu packages version-control)
83a39ed7 29 #:use-module ((guix licenses)
c7810bd1
EB
30 #:select (asl2.0 bsd-2
31 gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
32 x11-style))
d1cba090 33 #:use-module (guix utils)
dcee3fc5
NK
34 #:use-module (guix packages)
35 #:use-module (guix download)
c7810bd1 36 #:use-module (guix git-download)
086e498b 37 #:use-module (guix build-system cmake)
1b1c335f 38 #:use-module (guix build-system gnu)
dcee3fc5 39 #:use-module (guix build-system python)
c7810bd1 40 #:use-module (guix build-system trivial)
dcee3fc5 41 #:use-module (guix build utils)
2b24faa2 42 #:use-module (gnu packages apr)
df7393b9 43 #:use-module (gnu packages autotools)
59ef2030 44 #:use-module (gnu packages asciidoc)
c7810bd1 45 #:use-module (gnu packages base)
0e534e74
JD
46 #:use-module (gnu packages bison)
47 #:use-module (gnu packages cook)
d9ff410f 48 #:use-module (gnu packages curl)
59ef2030 49 #:use-module (gnu packages docbook)
740c24df 50 #:use-module (gnu packages ed)
0e534e74
JD
51 #:use-module (gnu packages file)
52 #:use-module (gnu packages flex)
fc1e4516 53 #:use-module (gnu packages gettext)
0e534e74
JD
54 #:use-module (gnu packages groff)
55 #:use-module (gnu packages linux)
1972fed4 56 #:use-module (gnu packages nano)
2459141e 57 #:use-module (gnu packages ncurses)
378b01dc 58 #:use-module (gnu packages ssh)
46138f3e 59 #:use-module (gnu packages web)
e8d2168c 60 #:use-module (gnu packages openstack)
cf3fe3b0 61 #:use-module (gnu packages perl)
fc1e4516 62 #:use-module (gnu packages pkg-config)
cf3fe3b0 63 #:use-module (gnu packages python)
5f96f303 64 #:use-module (gnu packages databases)
9de46ffb 65 #:use-module (gnu packages admin)
d9ff410f 66 #:use-module (gnu packages xml)
a4572a17 67 #:use-module (gnu packages emacs)
8b2fe785 68 #:use-module (gnu packages compression)
ecfb6993 69 #:use-module (gnu packages swig)
25f76ef0 70 #:use-module (gnu packages tcl)
cc2b77df 71 #:use-module (gnu packages tls)
58c18069
EB
72 #:use-module (gnu packages)
73 #:use-module (ice-9 match)
74 #:use-module (srfi srfi-1))
dcee3fc5
NK
75
76(define-public bazaar
77 (package
78 (name "bazaar")
d1cba090 79 (version "2.7.0")
dcee3fc5
NK
80 (source
81 (origin
82 (method url-fetch)
d1cba090
EF
83 (uri (string-append "https://launchpad.net/bzr/"
84 (version-major+minor version) "/" version
dcee3fc5
NK
85 "/+download/bzr-" version ".tar.gz"))
86 (sha256
87 (base32
d1cba090 88 "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d"))))
dcee3fc5
NK
89 (build-system python-build-system)
90 (inputs
91 ;; Note: 'tools/packaging/lp-upload-release' and 'tools/weavemerge.sh'
92 ;; require Zsh.
1dba6407 93 `(("gettext" ,gnu-gettext)))
dcee3fc5 94 (arguments
1611eccd 95 `(#:tests? #f ; no test target
3b9af0f3 96 #:python ,python-2 ; Python 3 apparently not yet supported, see
1611eccd 97 ; https://answers.launchpad.net/bzr/+question/229048
3b9af0f3
MW
98 #:phases (alist-cons-after
99 'unpack 'fix-mandir
100 (lambda _
101 (substitute* "setup.py"
102 (("man/man1") "share/man/man1")))
103 %standard-phases)))
dcee3fc5 104 (home-page "https://gnu.org/software/bazaar")
79c311b8 105 (synopsis "Version control system supporting both distributed and centralized workflows")
dcee3fc5 106 (description
79c311b8 107 "GNU Bazaar is a version control system that allows you to record
35b9e423 108changes to project files over time. It supports both a distributed workflow
79c311b8 109as well as the classic centralized workflow.")
2c71cf66 110 (license gpl2+)))
1b1c335f 111
d9ff410f 112(define-public git
1c38551a 113 ;; Keep in sync with 'git-manpages'!
d9ff410f
AE
114 (package
115 (name "git")
1714e2c3 116 (version "2.7.3")
d9ff410f
AE
117 (source (origin
118 (method url-fetch)
4d96439d 119 (uri (string-append "mirror://kernel.org/software/scm/git/git-"
ff212a5c 120 version ".tar.xz"))
d9ff410f
AE
121 (sha256
122 (base32
1714e2c3 123 "1di96q86fq3pdn5d5v4fw9vf58gha5i9b3r880mxlh275n8ngi49"))))
d9ff410f 124 (build-system gnu-build-system)
2a5e15c6
LC
125 (native-inputs
126 `(("native-perl" ,perl)
127 ("gettext" ,gnu-gettext)))
d9ff410f
AE
128 (inputs
129 `(("curl" ,curl)
130 ("expat" ,expat)
d9ff410f
AE
131 ("openssl" ,openssl)
132 ("perl" ,perl)
d1f30e99 133 ("python" ,python-2) ; CAVEAT: incompatible with python-3 according to INSTALL
ed5f49ff
LC
134 ("zlib" ,zlib)
135
136 ;; For 'git-svn'.
ecfb6993
LC
137 ("subversion" ,subversion)
138
58c18069
EB
139 ;; For 'git-send-email'
140 ("perl-authen-sasl" ,perl-authen-sasl)
141 ("perl-net-smtp-ssl" ,perl-net-smtp-ssl)
142 ("perl-io-socket-ssl" ,perl-io-socket-ssl)
143
ecfb6993
LC
144 ;; For 'git gui', 'gitk', and 'git citool'.
145 ("tcl" ,tcl)
146 ("tk" ,tk)))
147 (outputs '("out" ; the core
58c18069 148 "send-email" ; for git-send-email
ecfb6993
LC
149 "svn" ; git-svn
150 "gui")) ; gitk, git gui
d9ff410f 151 (arguments
1a59b6d0
LC
152 `(#:make-flags `("V=1" ;more verbose compilation
153
154 ;; By default 'make install' creates hard links for
155 ;; things in 'libexec/git-core', which leads to huge
156 ;; nars; see <http://bugs.gnu.org/21949>.
157 "NO_INSTALL_HARDLINKS=indeed")
d9ff410f
AE
158 #:test-target "test"
159 #:tests? #f ; FIXME: Many tests are failing
ecfb6993
LC
160
161 ;; The explicit --with-tcltk forces the build system to hardcode the
162 ;; absolute file name to 'wish'.
163 #:configure-flags (list (string-append "--with-tcltk="
164 (assoc-ref %build-inputs "tk")
165 "/bin/wish8.6")) ; XXX
166
58c18069
EB
167 #:modules ((srfi srfi-1)
168 ,@%gnu-build-system-modules)
d9ff410f 169 #:phases
d4bf49b1
EB
170 (alist-cons-after
171 'configure 'patch-makefile-shebangs
172 (lambda _
173 (substitute* "Makefile"
174 (("/bin/sh") (which "sh"))
175 (("/usr/bin/perl") (which "perl"))
176 (("/usr/bin/python") (which "python"))))
ed5f49ff 177 (alist-cons-after
23c0e743
LC
178 'install 'install-shell-completion
179 (lambda* (#:key outputs #:allow-other-keys)
180 (let* ((out (assoc-ref outputs "out"))
181 (completions (string-append out "/etc/bash_completion.d")))
182 ;; TODO: Install the tcsh and zsh completions in the right place.
183 (mkdir-p completions)
184 (copy-file "contrib/completion/git-completion.bash"
be3ed52d 185 (string-append completions "/git"))
23c0e743
LC
186 #t))
187 (alist-cons-after
188 'install 'split
189 (lambda* (#:key inputs outputs #:allow-other-keys)
190 ;; Split the binaries to the various outputs.
191 (let* ((out (assoc-ref outputs "out"))
58c18069 192 (se (assoc-ref outputs "send-email"))
23c0e743
LC
193 (svn (assoc-ref outputs "svn"))
194 (gui (assoc-ref outputs "gui"))
195 (gitk (string-append out "/bin/gitk"))
196 (gitk* (string-append gui "/bin/gitk"))
197 (git-gui (string-append out "/libexec/git-core/git-gui"))
198 (git-gui* (string-append gui "/libexec/git-core/git-gui"))
199 (git-cit (string-append out "/libexec/git-core/git-citool"))
200 (git-cit* (string-append gui "/libexec/git-core/git-citool"))
58c18069
EB
201 (git-se (string-append out "/libexec/git-core/git-send-email"))
202 (git-se* (string-append se "/libexec/git-core/git-send-email"))
23c0e743
LC
203 (git-svn (string-append out "/libexec/git-core/git-svn"))
204 (git-svn* (string-append svn "/libexec/git-core/git-svn"))
205 (git-sm (string-append out
206 "/libexec/git-core/git-submodule")))
207 (mkdir-p (string-append gui "/bin"))
208 (mkdir-p (string-append gui "/libexec/git-core"))
58c18069 209 (mkdir-p (string-append se "/libexec/git-core"))
23c0e743 210 (mkdir-p (string-append svn "/libexec/git-core"))
ecfb6993 211
23c0e743
LC
212 (for-each (lambda (old new)
213 (copy-file old new)
214 (delete-file old)
215 (chmod new #o555))
58c18069
EB
216 (list gitk git-gui git-cit git-se git-svn)
217 (list gitk* git-gui* git-cit* git-se* git-svn*))
ed5f49ff 218
23c0e743
LC
219 ;; Tell 'git-svn' where Subversion is.
220 (wrap-program git-svn*
221 `("PATH" ":" prefix
222 (,(string-append (assoc-ref inputs "subversion")
223 "/bin")))
224 `("PERL5LIB" ":" prefix
225 (,(string-append (assoc-ref inputs "subversion")
226 "/lib/perl5/site_perl")))
ed5f49ff 227
23c0e743
LC
228 ;; XXX: The .so for SVN/Core.pm lacks a RUNPATH, so
229 ;; help it find 'libsvn_client-1.so'.
230 `("LD_LIBRARY_PATH" ":" prefix
231 (,(string-append (assoc-ref inputs "subversion")
232 "/lib"))))
0a5a1db2 233
58c18069
EB
234 ;; Tell 'git-send-email' where perl modules are.
235 (wrap-program git-se*
236 `("PERL5LIB" ":" prefix
237 ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
355e53c4 238 (list
a6d0b306 239 ,@(transitive-input-references
355e53c4 240 'inputs
a6d0b306
EB
241 (map (lambda (l)
242 (assoc l (inputs)))
243 '("perl-authen-sasl"
244 "perl-net-smtp-ssl"
245 "perl-io-socket-ssl")))))))
58c18069 246
23c0e743
LC
247 ;; Tell 'git-submodule' where Perl is.
248 (wrap-program git-sm
249 `("PATH" ":" prefix
250 (,(string-append (assoc-ref inputs "perl")
251 "/bin"))))
2a5e15c6 252
23c0e743
LC
253 ;; Tell 'git' to look for core programs in the user's profile.
254 ;; This allows user to install other outputs of this package and
255 ;; have them transparently taken into account. There's a
256 ;; 'GIT_EXEC_PATH' environment variable, but it's supposed to
257 ;; specify a single directory, not a search path.
258 (wrap-program (string-append out "/bin/git")
259 `("PATH" ":" prefix
260 ("$HOME/.guix-profile/libexec/git-core")))))
261 %standard-phases)))))
da699774
LC
262
263 (native-search-paths
264 ;; For HTTPS access, Git needs a single-file certificate bundle, specified
265 ;; with $GIT_SSL_CAINFO.
266 ;; FIXME: This variable designates a single file; it is not a search path.
267 (list (search-path-specification
268 (variable "GIT_SSL_CAINFO")
269 (files '("etc/ssl/certs/ca-certificates.crt")))))
270
d9ff410f
AE
271 (synopsis "Distributed version control system")
272 (description
273 "Git is a free distributed version control system designed to handle
274everything from small to very large projects with speed and efficiency.")
275 (license gpl2)
276 (home-page "http://git-scm.com/")))
277
1c38551a
LC
278(define-public git-manpages
279 ;; Keep in sync with 'git'!
280
281 ;; Granted, we could build the man pages from the 'git' package itself,
282 ;; which contains the real source. However, it would add a dependency on a
283 ;; full XML tool chain, and building it actually takes ages. So we use this
284 ;; lazy approach.
285 (package
286 (name "git-manpages")
287 (version (package-version git))
288 (source (origin
289 (method url-fetch)
290 (uri (string-append
291 "mirror://kernel.org/software/scm/git/git-manpages-"
292 version ".tar.xz"))
293 (sha256
294 (base32
1714e2c3 295 "0va9j0q9h44jqih38h4cmhvbmjppqq7zbiq70220m7hsqqkq824z"))))
1c38551a
LC
296 (build-system trivial-build-system)
297 (arguments
298 '(#:modules ((guix build utils))
299 #:builder
300 (begin
301 (use-modules (guix build utils))
302
d9762589
LC
303 (let* ((xz (assoc-ref %build-inputs "xz"))
304 (tar (assoc-ref %build-inputs "tar"))
305 (out (assoc-ref %outputs "out"))
306 (man (string-append out "/share/man")))
1c38551a
LC
307 (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
308
d9762589
LC
309 (mkdir-p man)
310 (with-directory-excursion man
1c38551a
LC
311 (zero? (system* "tar" "xvf"
312 (assoc-ref %build-inputs "source"))))))))
313
314 (native-inputs `(("tar" ,tar)
315 ("xz" ,xz)))
316 (home-page (package-home-page git))
317 (license (package-license git))
318 (synopsis "Man pages of the Git version control system")
319 (description
320 "This package provides the man pages of the Git version control system.
321This is the documentation displayed when using the '--help' option of a 'git'
322command.")))
323
086e498b
RW
324(define-public libgit2
325 (package
326 (name "libgit2")
3a099d17 327 (version "0.24.0")
086e498b
RW
328 (source (origin
329 (method url-fetch)
330 (uri (string-append "https://github.com/libgit2/libgit2/"
331 "archive/v" version ".tar.gz"))
332 (file-name (string-append name "-" version ".tar.gz"))
333 (sha256
334 (base32
3a099d17 335 "1c5jx0pcpz83x7s36jimfz5bj0vy7vwpchq9p4sgdqxy8gwr6rhw"))))
086e498b
RW
336 (build-system cmake-build-system)
337 (arguments
338 `(#:phases
339 (modify-phases %standard-phases
340 (add-after 'unpack 'fix-hardcoded-paths
341 (lambda _
342 (substitute* "tests/repo/init.c"
343 (("#!/bin/sh") (string-append "#!" (which "sh"))))
344 (substitute* "tests/clar/fs.h"
345 (("/bin/cp") (which "cp"))
346 (("/bin/rm") (which "rm")))
347 #t))
348 ;; Run checks more verbosely.
349 (replace 'check
350 (lambda _ (zero? (system* "./libgit2_clar" "-v" "-Q")))))))
351 (inputs
352 `(("libssh2" ,libssh2)
353 ("libcurl" ,curl)
3a099d17 354 ("python" ,python-wrapper)
086e498b
RW
355 ("openssl" ,openssl)))
356 (native-inputs
357 `(("pkg-config" ,pkg-config)))
358 (home-page "http://libgit2.github.com/")
359 (synopsis "Library providing Git core methods")
360 (description
361 "Libgit2 is a portable, pure C implementation of the Git core methods
362provided as a re-entrant linkable library with a solid API, allowing you to
363write native speed custom Git applications in any language with bindings.")
364 ;; GPLv2 with linking exception
365 (license gpl2)))
366
7ad1fee5
SB
367(define-public cgit
368 (package
369 (name "cgit")
370 (version "0.12")
371 (source (origin
372 (method url-fetch)
373 (uri (string-append
374 "https://git.zx2c4.com/cgit/snapshot/cgit-"
375 version ".tar.xz"))
376 (sha256
377 (base32
378 "1dx54hgfyabmg9nm5qp6d01f54nlbqbbdwhwl0llb9imjf237qif"))))
379 (build-system gnu-build-system)
380 (arguments
381 '(#:tests? #f ; XXX: fail to build the in-source git.
382 #:test-target "test"
383 #:make-flags '("CC=gcc" "SHELL_PATH=sh")
384 #:phases
385 (modify-phases %standard-phases
386 (add-after 'unpack 'unpack-git
387 (lambda* (#:key inputs #:allow-other-keys)
388 ;; Unpack the source of git into the 'git' directory.
389 (zero? (system*
390 "tar" "--strip-components=1" "-C" "git" "-xf"
391 (assoc-ref inputs "git:src")))))
392 (delete 'configure) ; no configure script
393 (add-after 'build 'build-man
394 (lambda* (#:key make-flags #:allow-other-keys)
395 (zero? (apply system* `("make" ,@make-flags "doc-man")))))
396 (replace 'install
397 (lambda* (#:key make-flags outputs #:allow-other-keys)
398 (let ((out (assoc-ref outputs "out")))
399 (and (zero? (apply system*
400 `("make" ,@make-flags
401 ,(string-append "prefix=" out)
402 ,(string-append
403 "CGIT_SCRIPT_PATH=" out "/share/cgit")
404 "install" "install-man")))
405 ;; Move the platform-dependent 'cgit.cgi' into lib
406 ;; to get it stripped.
407 (rename-file (string-append out "/share/cgit/cgit.cgi")
408 (string-append out "/lib/cgit/cgit.cgi"))
409 #t)))))))
410 (native-inputs
411 ;; For building manpage.
412 `(("asciidoc" ,asciidoc)
413 ("docbook-xml" ,docbook-xml)
414 ("docbook-xsl" ,docbook-xsl)
415 ("xmllint" ,libxml2)
416 ("xsltprot" ,libxslt)))
417 (inputs
418 `(("git:src" ,(package-source git))
419 ("openssl" ,openssl)
420 ("zlib" ,zlib)))
421 (home-page "https://git.zx2c4.com/cgit/")
422 (synopsis "Web frontend for git repositories")
423 (description
424 "CGit is an attempt to create a fast web interface for the Git SCM, using
425a built-in cache to decrease server I/O pressure.")
426 (license gpl2)))
427
c7810bd1
EB
428(define-public shflags
429 (package
430 (name "shflags")
b65195c2 431 (version "1.2.0")
c7810bd1
EB
432 (source (origin
433 (method url-fetch)
b65195c2
EF
434 (uri (string-append "https://github.com/kward/shflags/archive/v"
435 version ".tar.gz"))
c7810bd1
EB
436 (sha256
437 (base32
b65195c2 438 "0zxw12haylaq60a335xlqcs4afw2zrgwqymmpw0m21r51w6irdmr"))))
c7810bd1
EB
439 (build-system trivial-build-system)
440 (native-inputs `(("tar" ,tar)
441 ("gzip" ,gzip)))
442 (arguments
443 `(#:modules ((guix build utils))
444 #:builder (begin
445 (use-modules (guix build utils))
446 (let* ((source (assoc-ref %build-inputs "source"))
447 (tar (assoc-ref %build-inputs "tar"))
448 (gzip (assoc-ref %build-inputs "gzip"))
449 (output (assoc-ref %outputs "out"))
450 (srcdir (string-append output "/src")))
451 (begin
452 (setenv "PATH" (string-append gzip "/bin"))
453 (system* (string-append tar "/bin/tar") "xzf"
454 source)
455 (chdir ,(string-append name "-" version))
456 (mkdir-p srcdir)
457 (copy-file "src/shflags"
458 (string-append srcdir "/shflags"))
459 #t)))))
b65195c2 460 (home-page "https://github.com/kward/shflags")
c7810bd1
EB
461 (synopsis "Command-line flags library for shell scripts")
462 (description
463 "Shell Flags (shFlags) is a library written to greatly simplify the
464handling of command-line flags in Bourne based Unix shell scripts (bash, dash,
465ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the
466different versions of getopt on various OSes make writing portable shell
467scripts difficult. shFlags instead provides an API that doesn't change across
468shell and OS versions so the script writer can be confident that the script
469will work.")
470 (license lgpl2.1)))
471
472(define-public git-flow
473 (package
474 (name "git-flow")
475 ;; This version has not be officially released yet, so we build it
476 ;; directly from the git repository.
477 (version "0.4.2-pre")
478 (source (origin
479 (method git-fetch)
480 (uri (git-reference
481 (url "https://github.com/nvie/gitflow/")
482 (commit "15aab26")))
483 (sha256
484 (base32
485 "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx"))))
486 (build-system gnu-build-system)
487 (inputs `(("shflags" ,shflags)))
488 (arguments
489 '(#:tests? #f ; no tests
490 #:make-flags (list (string-append "prefix="
491 (assoc-ref %outputs "out")))
492 #:phases (alist-cons-after
493 'unpack 'reset-shFlags-link
494 (lambda* (#:key inputs #:allow-other-keys)
495 ;; The link points to a file in the shFlags submodule.
496 ;; Redirect it to point to our system shFlags.
497 (let ((shflags (assoc-ref inputs "shflags")))
498 (begin
499 (delete-file "gitflow-shFlags")
500 (symlink (string-append shflags "/src/shflags")
501 "gitflow-shFlags"))))
502 (alist-delete
503 'configure
504 (alist-delete 'build %standard-phases)))))
505 (home-page "http://nvie.com/posts/a-successful-git-branching-model/")
506 (synopsis "Git extensions for Vincent Driessen's branching model")
507 (description
508 "Vincent Driessen's branching model is a git branching and release
509management strategy that helps developers keep track of features, hotfixes,
510and releases in bigger software projects. The git-flow library of git
511subcommands helps automate some parts of the flow to make working with it a
512lot easier.")
513 (license bsd-2)))
514
a63094a7
EB
515(define-public git-test-sequence
516 (let ((commit "48e5a2f"))
517 (package
518 (name "git-test-sequence")
519 (version (string-append "20140312." commit))
520 (source (origin
521 (method git-fetch)
522 (uri (git-reference
523 ;; There are many other scripts in this directory; we
524 ;; are interested in just one for this package.
525 (url "https://github.com/dustin/bindir")
526 (commit commit)))
527 (sha256
528 (base32
529 "1dcq0y16yznbv4k9h8gg90kv1gkn8r8dbvl4m2rpfd7q5nqhn617"))))
530 (build-system trivial-build-system)
531 (arguments
532 `(#:modules ((guix build utils))
533 #:builder (begin
534 (use-modules (guix build utils))
535 (let* ((source (assoc-ref %build-inputs "source"))
536 (output (assoc-ref %outputs "out"))
537 (bindir (string-append output "/bin"))
538 (script "git-test-sequence"))
96c46210
LC
539 (install-file (string-append source "/" script)
540 bindir)
541 #t))))
a63094a7
EB
542 (home-page "http://dustin.sallings.org/2010/03/28/git-test-sequence.html")
543 (synopsis "Run a command over a sequence of commits")
544 (description
545 "git-test-sequence is similar to an automated git bisect except it’s
546linear. It will test every change between two points in the DAG. It will
547also walk each side of a merge and test those changes individually.")
548 (license (x11-style "file://LICENSE")))))
549
378b01dc
DT
550(define-public gitolite
551 (package
552 (name "gitolite")
20109e07 553 (version "3.6.5")
378b01dc
DT
554 (source (origin
555 (method url-fetch)
556 (uri (string-append
557 "https://github.com/sitaramc/gitolite/archive/v"
558 version ".tar.gz"))
559 (file-name (string-append name "-" version ".tar.gz"))
378b01dc
DT
560 (sha256
561 (base32
20109e07 562 "0xpqg04gyr4dhdhxx5lbk61lwwd5ml32530bigg2qy663icngwqm"))))
378b01dc
DT
563 (build-system gnu-build-system)
564 (arguments
565 '(#:tests? #f ; no tests
566 #:phases (modify-phases %standard-phases
567 (delete 'configure)
568 (delete 'build)
569 (add-before 'install 'patch-scripts
570 (lambda* (#:key inputs #:allow-other-keys)
571 (let ((perl (string-append (assoc-ref inputs "perl")
572 "/bin/perl")))
573 ;; This seems to take care of every shell script that
574 ;; invokes Perl.
575 (substitute* (find-files "." ".*")
576 ((" perl -")
577 (string-append " " perl " -"))))))
578 (replace 'install
579 (lambda* (#:key outputs #:allow-other-keys)
580 (let* ((output (assoc-ref outputs "out"))
581 (sharedir (string-append output "/share/gitolite"))
582 (bindir (string-append output "/bin")))
583 (mkdir-p sharedir)
584 (mkdir-p bindir)
585 (system* "./install" "-to" sharedir)
586 ;; Create symlinks for executable scripts in /bin.
587 (for-each (lambda (script)
588 (symlink (string-append sharedir "/" script)
589 (string-append bindir "/" script)))
590 '("gitolite" "gitolite-shell"))
591 #t))))))
592 (inputs
593 `(("perl" ,perl)))
594 ;; git and openssh are propagated because trying to patch the source via
595 ;; regexp matching is too brittle and prone to false positives.
596 (propagated-inputs
597 `(("git" ,git)
598 ("openssh" ,openssh)))
599 (home-page "http://gitolite.com")
600 (synopsis "Git access control layer")
601 (description
602 "Gitolite is an access control layer on top of Git, providing fine access
603control to Git repositories.")
604 (license gpl2)))
605
5151c2e1
AB
606(define-public mercurial
607 (package
608 (name "mercurial")
588ad54e 609 (version "3.7.3")
5151c2e1
AB
610 (source (origin
611 (method url-fetch)
5575917d
EF
612 (uri (string-append "https://www.mercurial-scm.org/"
613 "release/mercurial-" version ".tar.gz"))
5151c2e1
AB
614 (sha256
615 (base32
588ad54e 616 "0c2vkad9piqkggyk8y310rf619qgdfcwswnk3nv21mg2fhnw96f0"))))
5151c2e1
AB
617 (build-system python-build-system)
618 (arguments
619 `(;; Restrict to Python 2, as Python 3 would require
620 ;; the argument --c2to3.
621 #:python ,python-2
622 ;; FIXME: Disabled tests because they require the nose unit
623 ;; testing framework: https://nose.readthedocs.org/en/latest/ .
624 #:tests? #f))
5575917d 625 (home-page "https://www.mercurial-scm.org/")
5151c2e1
AB
626 (synopsis "Decentralized version control system")
627 (description
628 "Mercurial is a free, distributed source control management tool.
629It efficiently handles projects of any size
630and offers an easy and intuitive interface.")
631 (license gpl2+)))
632
fc1e4516
AE
633(define-public neon
634 (package
635 (name "neon")
892f92b7 636 (version "0.30.1")
fc1e4516
AE
637 (source (origin
638 (method url-fetch)
639 (uri (string-append "http://www.webdav.org/neon/neon-"
640 version ".tar.gz"))
641 (sha256
642 (base32
892f92b7 643 "1pawhk02x728xn396a1kcivy9gqm94srmgad6ymr9l0qvk02dih0"))))
fc1e4516
AE
644 (build-system gnu-build-system)
645 (native-inputs
646 `(("perl" ,perl)
647 ("pkg-config" ,pkg-config)))
648 (inputs
649 `(("libxml2" ,libxml2)
650 ("openssl" ,openssl)
651 ("zlib" ,zlib)))
652 (arguments
653 `(;; FIXME: Add tests once reverse address lookup is fixed in glibc, see
654 ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
655 #:tests? #f
656 #:configure-flags '("--enable-shared"
657 ;; requires libgnutils-config, deprecated
658 ;; in gnutls 2.8.
659 ; "--with-ssl=gnutls")))
660 "--with-ssl=openssl")))
661 (home-page "http://www.webdav.org/neon/")
662 (synopsis "HTTP and WebDAV client library")
663 (description "Neon is an HTTP and WebDAV client library, with a
664C interface. Features:
665High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,
666DELETE, etc.);
667low-level interface to the HTTP request/response engine, allowing the use
668of arbitrary HTTP methods, headers, etc.;
669authentication support including Basic and Digest support, along with
670GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;
671SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for
672verifying server certificates, handling client certificates, and examining
673certificate properties, smartcard-based client certificates are also
674supported via a PKCS#11 wrapper interface;
675abstract interface to parsing XML using libxml2 or expat, and wrappers for
676simplifying handling XML HTTP response bodies;
677WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify
678property manipulation.")
679 (license gpl2+))) ; for documentation and tests; source under lgpl2.0+
680
cf3fe3b0
CR
681(define-public subversion
682 (package
683 (name "subversion")
cbbe1a1c 684 (version "1.8.15")
cf3fe3b0
CR
685 (source (origin
686 (method url-fetch)
7639105b
EB
687 (uri (string-append "http://archive.apache.org/dist/subversion/"
688 "subversion-" version ".tar.bz2"))
cf3fe3b0
CR
689 (sha256
690 (base32
cbbe1a1c 691 "0b68rjy1sjd66nqcswrm1bhda3vk2ngkgs6drcanmzbcd3vs366g"))))
cf3fe3b0 692 (build-system gnu-build-system)
8b2fe785
LC
693 (arguments
694 '(#:phases (alist-cons-after
7639105b
EB
695 'configure 'patch-libtool-wrapper-ls
696 (lambda* (#:key inputs #:allow-other-keys)
697 ;; This substitution allows tests svnauthz_tests and
698 ;; svnlook_tests to pass. These tests execute svnauthz and
699 ;; svnlook through their libtool wrapper scripts from svn
700 ;; hooks, whose empty environments cause "ls: command not
701 ;; found" errors. It would be nice if this fix ultimately
702 ;; made its way into libtool.
703 (let ((coreutils (assoc-ref inputs "coreutils")))
704 (substitute* "libtool"
705 (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))))
706 (alist-cons-after
46138f3e 707 'install 'install-perl-bindings
7639105b
EB
708 (lambda* (#:key outputs #:allow-other-keys)
709 ;; Follow the instructions from
710 ;; 'subversion/bindings/swig/INSTALL'.
711 (let ((out (assoc-ref outputs "out")))
712 (and (zero? (system* "make" "swig-pl-lib"))
713 ;; FIXME: Test failures.
714 ;; (zero? (system* "make" "check-swig-pl"))
715 (zero? (system* "make" "install-swig-pl-lib"))
8b2fe785 716
7639105b
EB
717 ;; Set the right installation prefix.
718 (with-directory-excursion
719 "subversion/bindings/swig/perl/native"
720 (and (zero?
721 (system* "perl" "Makefile.PL"
722 (string-append "PREFIX=" out)))
723 (zero?
6b206853
SB
724 (system* "make" "install"
725 (string-append "OTHERLDFLAGS="
726 "-Wl,-rpath="
727 out "/lib"))))))))
7639105b 728 %standard-phases))))
8b2fe785 729 (native-inputs
98b79d36
AE
730 `(("pkg-config" ,pkg-config)
731 ;; For the Perl bindings.
732 ("swig" ,swig)))
cf3fe3b0 733 (inputs
2b24faa2
AE
734 `(("apr" ,apr)
735 ("apr-util" ,apr-util)
46138f3e 736 ("serf" ,serf)
cf3fe3b0 737 ("perl" ,perl)
aa9e22ef 738 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
cf3fe3b0
CR
739 ("sqlite" ,sqlite)
740 ("zlib" ,zlib)))
741 (home-page "http://subversion.apache.org/")
35b9e423 742 (synopsis "Revision control system")
cf3fe3b0 743 (description
749b90a5
LC
744 "Subversion exists to be universally recognized and adopted as a
745centralized version control system characterized by its
cf3fe3b0
CR
746reliability as a safe haven for valuable data; the simplicity of its model and
747usage; and its ability to support the needs of a wide variety of users and
748projects, from individuals to large-scale enterprise operations.")
749 (license asl2.0)))
750
1b1c335f
LC
751(define-public rcs
752 (package
753 (name "rcs")
73ebc66f 754 (version "5.9.4")
1b1c335f
LC
755 (source (origin
756 (method url-fetch)
757 (uri (string-append "mirror://gnu/rcs/rcs-"
758 version ".tar.xz"))
759 (sha256
760 (base32
73ebc66f 761 "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86"))))
1b1c335f 762 (build-system gnu-build-system)
740c24df 763 (native-inputs `(("ed" ,ed)))
1b1c335f
LC
764 (home-page "http://www.gnu.org/software/rcs/")
765 (synopsis "Per-file local revision control system")
766 (description
79c311b8
LC
767 "RCS is the original Revision Control System. It works on a
768file-by-file basis, in contrast to subsequent version control systems such as
769CVS, Subversion, and Git. This can make it suitable for system
770administration files, for example, which are often inherently local to one
771machine.")
1b1c335f 772 (license gpl3+)))
1972fed4
LC
773
774(define-public cvs
775 (package
776 (name "cvs")
777 (version "1.12.13")
778 (source (origin
779 (method url-fetch)
780 (uri (string-append
781 "http://ftp.gnu.org/non-gnu/cvs/source/feature/"
782 version "/cvs-" version ".tar.bz2"))
783 (sha256
784 (base32
785 "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq"))))
786 (build-system gnu-build-system)
787 (arguments
788 ;; XXX: The test suite looks flawed, and the package is obsolete anyway.
7fbbd3e7
EF
789 '(#:tests? #f
790 #:configure-flags (list "--with-external-zlib")))
1972fed4
LC
791 (inputs `(("zlib" ,zlib)
792 ("nano" ,nano))) ; the default editor
793 (home-page "http://cvs.nongnu.org")
794 (synopsis "Historical centralized version control system")
795 (description
796 "CVS is a version control system, an important component of Source
797Configuration Management (SCM). Using it, you can record the history of
798sources files, and documents. It fills a similar role to the free software
799RCS, PRCS, and Aegis packages.")
800 (license gpl1+)))
a4572a17 801
59ef2030
ML
802(define-public cvs-fast-export
803 (package
804 (name "cvs-fast-export")
805 (version "1.33")
806 (source (origin
807 (method url-fetch)
808 (uri (string-append "http://www.catb.org/~esr/"
809 name "/" name "-" version ".tar.gz"))
810 (sha256
811 (base32
812 "1c3s4nacbwlaaccx1fr7hf72kxxrzy49y2rdz5hhqbk8r29vm8w1"))))
813 (build-system gnu-build-system)
814 (arguments
815 `(#:phases (modify-phases %standard-phases (delete 'configure))
816 #:make-flags
817 (list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out")))))
818 (inputs `(("git" ,git)))
819 (native-inputs `(("asciidoc" ,asciidoc)
820 ("docbook-xml" ,docbook-xml)
821 ("docbook-xsl" ,docbook-xsl)
822 ("xmllint" ,libxml2)
823 ("xsltproc" ,libxslt)
824 ;; These are needed for the tests.
825 ("cvs" ,cvs)
826 ("python" ,python-2)
827 ("rcs" ,rcs)))
828 (home-page "http://www.catb.org/esr/cvs-fast-export/")
829 (synopsis "Export an RCS or CVS history as a fast-import stream")
830 (description "This program analyzes a collection of RCS files in a CVS
831repository (or outside of one) and, when possible, emits an equivalent history
832in the form of a fast-import stream. Not all possible histories can be
833rendered this way; the program tries to emit useful warnings when it can't.
834
835The program can also produce a visualization of the resulting commit directed
836acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,
837Graphviz}. The package also includes @command{cvssync}, a tool for mirroring
838masters from remote CVS hosts.")
839 (license gpl2+)))
840
a4572a17
LC
841(define-public vc-dwim
842 (package
843 (name "vc-dwim")
844 (version "1.7")
845 (source (origin
846 (method url-fetch)
847 (uri (string-append "mirror://gnu/vc-dwim/vc-dwim-"
848 version ".tar.xz"))
849 (sha256
850 (base32
851 "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2"))))
852 (build-system gnu-build-system)
853 (inputs `(("perl" ,perl)
854 ("inetutils" ,inetutils) ; for `hostname', used in the tests
2d32d153 855 ("emacs" ,emacs-no-x))) ; for `ctags'
a4572a17
LC
856 (home-page "http://www.gnu.org/software/vc-dwim/")
857 (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
858 (description
a22dc0c4
LC
859 "The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".
860vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and
861using version control at the same time, for example by printing a reminder
862when a file change has been described in the ChangeLog but the file has not
79c311b8 863been added to the VC. vc-chlog scans changed files and generates
a22dc0c4 864standards-compliant ChangeLog entries based on the changes that it detects.")
a4572a17 865 (license gpl3+)))
83a39ed7
LC
866
867(define-public diffstat
868 (package
869 (name "diffstat")
870 (version "1.58")
871 (source (origin
872 (method url-fetch)
873 (uri (string-append
874 "ftp://invisible-island.net/diffstat/diffstat-"
875 version ".tgz"))
876 (sha256
877 (base32
878 "14rpf5c05ff30f6vn6pn6pzy0k4g4is5im656ahsxff3k58i7mgs"))))
879 (build-system gnu-build-system)
880 (home-page "http://invisible-island.net/diffstat/")
881 (synopsis "Make histograms from the output of 'diff'")
882 (description
35b9e423 883 "Diffstat reads the output of 'diff' and displays a histogram of the
83a39ed7
LC
884insertions, deletions, and modifications per-file. It is useful for reviewing
885large, complex patch files.")
886 (license (x11-style "file://COPYING"))))
25f76ef0 887
25f76ef0
JD
888(define-public cssc
889 (package
890 (name "cssc")
891 (version "1.3.0")
892 (source (origin
893 (method url-fetch)
894 (uri (string-append "mirror://gnu/" name "/CSSC-"
895 version ".tar.gz"))
896 (sha256
897 (base32
898 "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm"))
fc1adab1
AK
899 (patches (search-patches "cssc-gets-undeclared.patch"
900 "cssc-missing-include.patch"))))
25f76ef0
JD
901 (build-system gnu-build-system)
902 (arguments
903 `(#:phases (alist-cons-before
904 'check 'precheck
905 (lambda _
906 (begin
907 (substitute* "tests/common/test-common"
908 (("/bin/pwd") (which "pwd")))
909
910 (substitute* "tests/prt/all-512.sh"
911 (("/bin/sh") (which "sh")))
912
913 ;; XXX: This test has no hope of passing until there is a "nogroup"
914 ;; entry (or at least some group to which the guix builder does
915 ;; not belong) in the /etc/group file of the build environment.
916 ;; Currently we do not have such a group. Disable this test for now.
917 (substitute* "tests/Makefile"
918 (("test-delta ") ""))))
919 %standard-phases)))
920 ;; These are needed for the tests
921 (native-inputs `(("git" ,git)
922 ("cvs" ,cvs)))
923 (home-page "http://www.gnu.org/software/cssc/")
924 (synopsis "File-based version control like SCCS")
925 (description "GNU CSSC provides a replacement for the legacy Unix source
926code control system SCCS. This allows old code still under that system to be
927accessed and migrated on modern systems.")
928 (license gpl3+)))
0e534e74 929
e881752c 930;; This package can unfortunately work only in -TEST mode, since Aegis
0e534e74
JD
931;; requires that it is installed setuid root.
932(define-public aegis
933 (package
934 (name "aegis")
935 (version "4.24")
936 (source (origin
937 (method url-fetch)
e881752c 938 (uri (string-append "mirror://sourceforge/aegis/aegis-"
0e534e74
JD
939 version ".tar.gz"))
940 (sha256
941 (base32
942 "18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl"))
fc1adab1
AK
943 (patches (search-patches "aegis-perl-tempdir1.patch"
944 "aegis-perl-tempdir2.patch"
945 "aegis-test-fixup-1.patch"
946 "aegis-test-fixup-2.patch"
947 "aegis-constness-error.patch"))))
0e534e74
JD
948 (build-system gnu-build-system)
949 (inputs
950 `(("e2fsprogs" ,e2fsprogs)
951 ("curl" ,curl)
0253ab39 952 ("file" ,file)
0e534e74
JD
953 ("libxml2" ,libxml2)
954 ("zlib" ,zlib)
955 ("gettext" ,gnu-gettext)))
956 (native-inputs
957 `(("bison" ,bison)
958 ("groff" ,groff)
959 ("perl" ,perl)
960 ;; Various tests require the following:
e881752c 961 ("cvs" ,cvs)
0e534e74
JD
962 ("flex" ,flex)
963 ("cook" ,cook)
964 ("subversion" ,subversion)
965 ("rcs" ,rcs)
966 ("ed" ,ed)))
967 (arguments
e881752c 968 `(#:configure-flags (list "--with-no-aegis-configured"
0e534e74
JD
969 "--sharedstatedir=/var/com/aegis")
970 #:parallel-build? #f ; There are some nasty racy rules in the Makefile.
e881752c 971 #:phases
0e534e74
JD
972 (alist-cons-before
973 'configure 'pre-conf
974 (lambda _
975 (substitute* (append '("configure"
976 "etc/check-tar-gz.sh"
977 "etc/patches.sh"
978 "etc/test.sh"
979 "script/aexver.in"
980 "script/aebisect.in"
981 "script/aeintegratq.in"
982 "script/tkaegis.in"
983 "script/test_funcs.in"
984 "web/eg_oss_templ.sh"
985 "web/webiface.html"
986 "libaegis/getpw_cache.cc")
987 (find-files "test" "\\.sh"))
988 (("/bin/sh") (which "sh")))
989 (setenv "SH" (which "sh")))
990 (alist-replace
991 'check
992 (lambda _
993 (let ((home (string-append (getcwd) "/my-new-home")))
994 ;; Some tests need to write to $HOME.
995 (mkdir home)
996 (setenv "HOME" home)
997
998 ;; This test assumes that flex has been symlinked to "lex".
999 (substitute* "test/00/t0011a.sh"
1000 (("type lex") "type flex"))
1001
1002 ;; The author decided to call the check rule "sure".
1003 (zero? (system* "make" "sure"))))
1004 %standard-phases))))
1005 (home-page "http://aegis.sourceforge.net")
1006 (synopsis "Project change supervisor")
1007 (description "Aegis is a project change supervisor, and performs some of
35b9e423 1008the Software Configuration Management needed in a CASE environment. Aegis
0e534e74
JD
1009provides a framework within which a team of developers may work on many
1010changes to a program independently, and Aegis coordinates integrating these
1011changes back into the master source of the program, with as little disruption
35b9e423 1012as possible. Resolution of contention for source files, a major headache for
0e534e74
JD
1013any project with more than one developer, is one of Aegis's major functions.")
1014 (license gpl3+)))
2459141e
1015
1016(define-public tig
1017 (package
1018 (name "tig")
92d9a36e 1019 (version "2.1.1")
2459141e
1020 (source (origin
1021 (method url-fetch)
1022 (uri (string-append
1023 "http://jonas.nitro.dk/tig/releases/tig-"
1024 version ".tar.gz"))
1025 (sha256
1026 (base32
92d9a36e 1027 "0bw5wivswwh7vx897q8xc2cqgkqhdzk8gh6fnav2kf34sngigiah"))))
2459141e
1028 (build-system gnu-build-system)
1029 (inputs
1030 `(("ncurses" ,ncurses)))
1031 (arguments
92d9a36e
EF
1032 `(#:tests? #f)) ; tests require access to /dev/tty
1033 ;;`(#:test-target "test"))
2459141e
1034 (home-page "http://jonas.nitro.dk/tig/")
1035 (synopsis "Ncurses-based text user interface for Git")
1036 (description
1037 "Tig is an ncurses text user interface for Git, primarily intended as
1038a history browser. It can also stage hunks for commit, or colorize the
1039output of the 'git' command.")
1040 (license gpl2+)))
df7393b9
LC
1041
1042(define-public findnewest
1043 (package
1044 (name "findnewest")
9c7e7ead 1045 (version "0.3")
df7393b9
LC
1046 (source (origin
1047 (method url-fetch)
1048 (uri (string-append
1049 "https://github.com/0-wiz-0/findnewest/archive/findnewest-"
1050 version ".tar.gz"))
1051 (sha256
1052 (base32
9c7e7ead 1053 "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r"))))
df7393b9
LC
1054 (build-system gnu-build-system)
1055 (arguments
1056 '(#:phases (modify-phases %standard-phases
1057 (add-before 'configure 'bootstrap
1058 (lambda _
1059 (zero? (system* "autoreconf" "-vfi")))))))
1060 (native-inputs `(("autoconf" ,autoconf)
1061 ("automake" ,automake)))
1062 (home-page "https://github.com/0-wiz-0/findnewest/releases")
1063 (synopsis "Print the modification time of the latest file")
1064 (description
1065 "Recursively find the newest file in a file tree and print its
1066modification time.")
1067 (license bsd-2)))
e92b8599
KM
1068
1069(define-public myrepos
1070 (package
1071 (name "myrepos")
17206f72 1072 (version "1.20160123")
e92b8599
KM
1073 (source
1074 (origin
1075 (method url-fetch)
1076 (uri (string-append
1077 "https://github.com/joeyh/myrepos/archive/"
1078 version ".tar.gz"))
1079 (file-name (string-append name "-" version ".tar.gz"))
1080 (sha256
17206f72 1081 (base32 "1723cg5haplz2w9dwdzp6ds1ip33cx3awmj4wnb0h4yq171v5lqk"))))
e92b8599
KM
1082 (build-system gnu-build-system)
1083 (inputs
1084 `(("perl" ,perl)))
1085 (arguments
1086 `(#:test-target "test"
1087 #:phases (alist-delete 'configure %standard-phases)
1088 #:make-flags (list (string-append "PREFIX=" %output))))
1089 (home-page "http://myrepos.branchable.com/")
1090 (synopsis "Multiple repository management tool")
1091 (description
1092 "Myrepos provides the @code{mr} command, which maps an operation (e.g.,
1093fetching updates) over a collection of version control repositories. It
1094supports a large number of version control systems: Git, Subversion,
1095Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
1096 (license gpl2+)))
e8d2168c
EF
1097
1098(define-public git-annex-remote-hubic
1099 (package
1100 (name "git-annex-remote-hubic")
1101 (version "0.3.1")
1102 (source (origin
1103 (method url-fetch)
1104 (uri (string-append
1105 "https://github.com/Schnouki/" name "/archive/v"
1106 version ".tar.gz"))
1107 (file-name (string-append name "-" version ".tar.gz"))
1108 (sha256
1109 (base32
1110 "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
1111 (build-system python-build-system)
f71d1a08 1112 (arguments `(#:python ,python-2))
e8d2168c 1113 (native-inputs
f71d1a08 1114 `(("python2-setuptools" ,python2-setuptools)
e8d2168c 1115 ;; for the tests
f71d1a08 1116 ("python2-six" ,python2-six)))
e8d2168c 1117 (propagated-inputs
f71d1a08
EF
1118 `(("python2-dateutil" ,python2-dateutil-2)
1119 ("python2-futures" ,python2-futures)
1120 ("python2-rauth" ,python2-rauth)
1121 ("python2-swiftclient" ,python2-swiftclient)))
e8d2168c
EF
1122 (home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
1123 (synopsis "Use hubic as a git-annex remote")
1124 (description
1125 "This package allows you to use your hubic account as a \"special
1126repository\" with git-annex.")
1127 (license gpl3+)))