gnu: Some cleanup based on lint checkers.
[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>
2a5e15c6 4;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
fc1e4516 5;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
3b9af0f3 6;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
dcee3fc5
NK
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
1b1c335f 23(define-module (gnu packages version-control)
83a39ed7
LC
24 #:use-module ((guix licenses)
25 #:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+ x11-style))
dcee3fc5
NK
26 #:use-module (guix packages)
27 #:use-module (guix download)
1b1c335f 28 #:use-module (guix build-system gnu)
dcee3fc5
NK
29 #:use-module (guix build-system python)
30 #:use-module (guix build utils)
2b24faa2 31 #:use-module (gnu packages apr)
0e534e74
JD
32 #:use-module (gnu packages bison)
33 #:use-module (gnu packages cook)
d9ff410f 34 #:use-module (gnu packages curl)
740c24df 35 #:use-module (gnu packages ed)
0e534e74
JD
36 #:use-module (gnu packages file)
37 #:use-module (gnu packages flex)
fc1e4516 38 #:use-module (gnu packages gettext)
0e534e74
JD
39 #:use-module (gnu packages groff)
40 #:use-module (gnu packages linux)
fc1e4516 41;; #:use-module (gnu packages gnutls)
1972fed4 42 #:use-module (gnu packages nano)
d9ff410f 43 #:use-module (gnu packages openssl)
cf3fe3b0 44 #:use-module (gnu packages perl)
fc1e4516 45 #:use-module (gnu packages pkg-config)
cf3fe3b0 46 #:use-module (gnu packages python)
5f96f303 47 #:use-module (gnu packages databases)
9de46ffb 48 #:use-module (gnu packages admin)
d9ff410f 49 #:use-module (gnu packages xml)
a4572a17 50 #:use-module (gnu packages emacs)
8b2fe785 51 #:use-module (gnu packages compression)
ecfb6993 52 #:use-module (gnu packages swig)
25f76ef0
JD
53 #:use-module (gnu packages tcl)
54 #:use-module (gnu packages))
dcee3fc5
NK
55
56(define-public bazaar
57 (package
58 (name "bazaar")
881c3f01 59 (version "2.6.0")
dcee3fc5
NK
60 (source
61 (origin
62 (method url-fetch)
881c3f01 63 (uri (string-append "https://launchpad.net/bzr/2.6/" version
dcee3fc5
NK
64 "/+download/bzr-" version ".tar.gz"))
65 (sha256
66 (base32
881c3f01 67 "1c6sj77h5f97qimjc14kr532kgc0jk3wq778xrkqi0pbh9qpk509"))))
dcee3fc5
NK
68 (build-system python-build-system)
69 (inputs
70 ;; Note: 'tools/packaging/lp-upload-release' and 'tools/weavemerge.sh'
71 ;; require Zsh.
1dba6407 72 `(("gettext" ,gnu-gettext)))
dcee3fc5 73 (arguments
1611eccd 74 `(#:tests? #f ; no test target
3b9af0f3 75 #:python ,python-2 ; Python 3 apparently not yet supported, see
1611eccd 76 ; https://answers.launchpad.net/bzr/+question/229048
3b9af0f3
MW
77 #:phases (alist-cons-after
78 'unpack 'fix-mandir
79 (lambda _
80 (substitute* "setup.py"
81 (("man/man1") "share/man/man1")))
82 %standard-phases)))
dcee3fc5 83 (home-page "https://gnu.org/software/bazaar")
79c311b8 84 (synopsis "Version control system supporting both distributed and centralized workflows")
dcee3fc5 85 (description
79c311b8 86 "GNU Bazaar is a version control system that allows you to record
35b9e423 87changes to project files over time. It supports both a distributed workflow
79c311b8 88as well as the classic centralized workflow.")
2c71cf66 89 (license gpl2+)))
1b1c335f 90
d9ff410f
AE
91(define-public git
92 (package
93 (name "git")
ff212a5c 94 (version "2.1.2")
d9ff410f
AE
95 (source (origin
96 (method url-fetch)
4d96439d 97 (uri (string-append "mirror://kernel.org/software/scm/git/git-"
ff212a5c 98 version ".tar.xz"))
d9ff410f
AE
99 (sha256
100 (base32
ff212a5c 101 "12x1qycc0rii6fqpiizp9v9ysdmj6lpi9imqqbrkdx6cifbwh9vv"))))
d9ff410f 102 (build-system gnu-build-system)
2a5e15c6
LC
103 (native-inputs
104 `(("native-perl" ,perl)
105 ("gettext" ,gnu-gettext)))
d9ff410f
AE
106 (inputs
107 `(("curl" ,curl)
108 ("expat" ,expat)
d9ff410f
AE
109 ("openssl" ,openssl)
110 ("perl" ,perl)
d1f30e99 111 ("python" ,python-2) ; CAVEAT: incompatible with python-3 according to INSTALL
ed5f49ff
LC
112 ("zlib" ,zlib)
113
114 ;; For 'git-svn'.
ecfb6993
LC
115 ("subversion" ,subversion)
116
117 ;; For 'git gui', 'gitk', and 'git citool'.
118 ("tcl" ,tcl)
119 ("tk" ,tk)))
120 (outputs '("out" ; the core
121 "svn" ; git-svn
122 "gui")) ; gitk, git gui
d9ff410f
AE
123 (arguments
124 `(#:make-flags `("V=1") ; more verbose compilation
125 #:test-target "test"
126 #:tests? #f ; FIXME: Many tests are failing
ecfb6993
LC
127
128 ;; The explicit --with-tcltk forces the build system to hardcode the
129 ;; absolute file name to 'wish'.
130 #:configure-flags (list (string-append "--with-tcltk="
131 (assoc-ref %build-inputs "tk")
132 "/bin/wish8.6")) ; XXX
133
d9ff410f 134 #:phases
d4bf49b1
EB
135 (alist-cons-after
136 'configure 'patch-makefile-shebangs
137 (lambda _
138 (substitute* "Makefile"
139 (("/bin/sh") (which "sh"))
140 (("/usr/bin/perl") (which "perl"))
141 (("/usr/bin/python") (which "python"))))
ed5f49ff
LC
142 (alist-cons-after
143 'install 'split
144 (lambda* (#:key inputs outputs #:allow-other-keys)
ecfb6993 145 ;; Split the binaries to the various outputs.
ed5f49ff
LC
146 (let* ((out (assoc-ref outputs "out"))
147 (svn (assoc-ref outputs "svn"))
ecfb6993
LC
148 (gui (assoc-ref outputs "gui"))
149 (gitk (string-append out "/bin/gitk"))
150 (gitk* (string-append gui "/bin/gitk"))
151 (git-gui (string-append out "/libexec/git-core/git-gui"))
152 (git-gui* (string-append gui "/libexec/git-core/git-gui"))
153 (git-cit (string-append out "/libexec/git-core/git-citool"))
154 (git-cit* (string-append gui "/libexec/git-core/git-citool"))
ed5f49ff 155 (git-svn (string-append out "/libexec/git-core/git-svn"))
2a5e15c6
LC
156 (git-svn* (string-append svn "/libexec/git-core/git-svn"))
157 (git-sm (string-append out
158 "/libexec/git-core/git-submodule")))
ecfb6993
LC
159 (mkdir-p (string-append gui "/bin"))
160 (mkdir-p (string-append gui "/libexec/git-core"))
ed5f49ff 161 (mkdir-p (string-append svn "/libexec/git-core"))
ecfb6993
LC
162
163 (for-each (lambda (old new)
164 (copy-file old new)
165 (delete-file old)
166 (chmod new #o555))
167 (list gitk git-gui git-cit git-svn)
168 (list gitk* git-gui* git-cit* git-svn*))
ed5f49ff
LC
169
170 ;; Tell 'git-svn' where Subversion is.
171 (wrap-program git-svn*
172 `("PATH" ":" prefix
173 (,(string-append (assoc-ref inputs "subversion")
0a5a1db2 174 "/bin")))
ed5f49ff
LC
175 `("PERL5LIB" ":" prefix
176 (,(string-append (assoc-ref inputs "subversion")
177 "/lib/perl5/site_perl")))
178
179 ;; XXX: The .so for SVN/Core.pm lacks a RUNPATH, so
180 ;; help it find 'libsvn_client-1.so'.
181 `("LD_LIBRARY_PATH" ":" prefix
182 (,(string-append (assoc-ref inputs "subversion")
0a5a1db2
LC
183 "/lib"))))
184
2a5e15c6
LC
185 ;; Tell 'git-submodule' where Perl is.
186 (wrap-program git-sm
187 `("PATH" ":" prefix
188 (,(string-append (assoc-ref inputs "perl")
189 "/bin"))))
190
0a5a1db2
LC
191 ;; Tell 'git' to look for core programs in the user's profile.
192 ;; This allows user to install other outputs of this package and
193 ;; have them transparently taken into account. There's a
194 ;; 'GIT_EXEC_PATH' environment variable, but it's supposed to
195 ;; specify a single directory, not a search path.
196 (wrap-program (string-append out "/bin/git")
197 `("PATH" ":" prefix
198 ("$HOME/.guix-profile/libexec/git-core")))))
ed5f49ff 199 %standard-phases))))
d9ff410f
AE
200 (synopsis "Distributed version control system")
201 (description
202 "Git is a free distributed version control system designed to handle
203everything from small to very large projects with speed and efficiency.")
204 (license gpl2)
205 (home-page "http://git-scm.com/")))
206
5151c2e1
AB
207(define-public mercurial
208 (package
209 (name "mercurial")
210 (version "2.7.1")
211 (source (origin
212 (method url-fetch)
213 (uri (string-append "http://mercurial.selenic.com/release/mercurial-"
214 version ".tar.gz"))
215 (sha256
216 (base32
217 "121m8f7vmipmdg00cnzdz2rjkgydh28mwfirqkrbs5fv089vywl4"))))
218 (build-system python-build-system)
219 (arguments
220 `(;; Restrict to Python 2, as Python 3 would require
221 ;; the argument --c2to3.
222 #:python ,python-2
223 ;; FIXME: Disabled tests because they require the nose unit
224 ;; testing framework: https://nose.readthedocs.org/en/latest/ .
225 #:tests? #f))
226 (home-page "http://mercurial.selenic.com")
227 (synopsis "Decentralized version control system")
228 (description
229 "Mercurial is a free, distributed source control management tool.
230It efficiently handles projects of any size
231and offers an easy and intuitive interface.")
232 (license gpl2+)))
233
fc1e4516
AE
234(define-public neon
235 (package
236 (name "neon")
237 (version "0.30.0")
238 (source (origin
239 (method url-fetch)
240 (uri (string-append "http://www.webdav.org/neon/neon-"
241 version ".tar.gz"))
242 (sha256
243 (base32
244 "1hlhg5w505jxdvaf7bq17057f6a48dry981g7lp2gwrhbp5wyqi9"))))
245 (build-system gnu-build-system)
246 (native-inputs
247 `(("perl" ,perl)
248 ("pkg-config" ,pkg-config)))
249 (inputs
250 `(("libxml2" ,libxml2)
251 ("openssl" ,openssl)
252 ("zlib" ,zlib)))
253 (arguments
254 `(;; FIXME: Add tests once reverse address lookup is fixed in glibc, see
255 ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
256 #:tests? #f
257 #:configure-flags '("--enable-shared"
258 ;; requires libgnutils-config, deprecated
259 ;; in gnutls 2.8.
260 ; "--with-ssl=gnutls")))
261 "--with-ssl=openssl")))
262 (home-page "http://www.webdav.org/neon/")
263 (synopsis "HTTP and WebDAV client library")
264 (description "Neon is an HTTP and WebDAV client library, with a
265C interface. Features:
266High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,
267DELETE, etc.);
268low-level interface to the HTTP request/response engine, allowing the use
269of arbitrary HTTP methods, headers, etc.;
270authentication support including Basic and Digest support, along with
271GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;
272SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for
273verifying server certificates, handling client certificates, and examining
274certificate properties, smartcard-based client certificates are also
275supported via a PKCS#11 wrapper interface;
276abstract interface to parsing XML using libxml2 or expat, and wrappers for
277simplifying handling XML HTTP response bodies;
278WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify
279property manipulation.")
280 (license gpl2+))) ; for documentation and tests; source under lgpl2.0+
281
d56052bd
AE
282(define-public neon-0.29.6
283 (package (inherit neon)
284 (name "neon")
285 (version "0.29.6")
286 (source (origin
287 (method url-fetch)
288 (uri (string-append "http://www.webdav.org/neon/neon-"
289 version ".tar.gz"))
290 (sha256
291 (base32
292 "0hzbjqdx1z8zw0vmbknf159wjsxbcq8ii0wgwkqhxj3dimr0nr4w"))))))
293
cf3fe3b0
CR
294(define-public subversion
295 (package
296 (name "subversion")
cb8b285a 297 (version "1.7.18")
cf3fe3b0
CR
298 (source (origin
299 (method url-fetch)
e23dc82c 300 (uri (string-append "http://archive.apache.org/dist/subversion/subversion-"
cf3fe3b0
CR
301 version ".tar.bz2"))
302 (sha256
303 (base32
cb8b285a 304 "06nrqnn3qq1hhskkcdbm0ilk2xv6ay2gyf2c7qvxp6xncb782wzn"))))
cf3fe3b0 305 (build-system gnu-build-system)
8b2fe785
LC
306 (arguments
307 '(#:phases (alist-cons-after
308 'install 'instal-perl-bindings
309 (lambda* (#:key outputs #:allow-other-keys)
310 ;; Follow the instructions from
311 ;; 'subversion/bindings/swig/INSTALL'.
312 (let ((out (assoc-ref outputs "out")))
313 (and (zero? (system* "make" "swig-pl-lib"))
314 ;; FIXME: Test failures.
315 ;; (zero? (system* "make" "check-swig-pl"))
316 (zero? (system* "make" "install-swig-pl-lib"))
317
318 ;; Set the right installation prefix.
319 (with-directory-excursion
320 "subversion/bindings/swig/perl/native"
321 (and (zero?
322 (system* "perl" "Makefile.PL"
323 (string-append "PREFIX=" out)))
324 (zero?
325 (system* "make" "install")))))))
326 %standard-phases)))
327 (native-inputs
98b79d36
AE
328 `(("pkg-config" ,pkg-config)
329 ;; For the Perl bindings.
330 ("swig" ,swig)))
cf3fe3b0 331 (inputs
2b24faa2
AE
332 `(("apr" ,apr)
333 ("apr-util" ,apr-util)
98b79d36 334 ("neon" ,neon-0.29.6)
cf3fe3b0 335 ("perl" ,perl)
aa9e22ef 336 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
cf3fe3b0
CR
337 ("sqlite" ,sqlite)
338 ("zlib" ,zlib)))
339 (home-page "http://subversion.apache.org/")
35b9e423 340 (synopsis "Revision control system")
cf3fe3b0 341 (description
749b90a5
LC
342 "Subversion exists to be universally recognized and adopted as a
343centralized version control system characterized by its
cf3fe3b0
CR
344reliability as a safe haven for valuable data; the simplicity of its model and
345usage; and its ability to support the needs of a wide variety of users and
346projects, from individuals to large-scale enterprise operations.")
347 (license asl2.0)))
348
1b1c335f
LC
349(define-public rcs
350 (package
351 (name "rcs")
53f896f2 352 (version "5.9.3")
1b1c335f
LC
353 (source (origin
354 (method url-fetch)
355 (uri (string-append "mirror://gnu/rcs/rcs-"
356 version ".tar.xz"))
357 (sha256
358 (base32
53f896f2 359 "0isvzwfvqkg7zcsznra6wqh650z49ib113n7gp6ncxv5p30x3c38"))))
1b1c335f 360 (build-system gnu-build-system)
740c24df 361 (native-inputs `(("ed" ,ed)))
1b1c335f
LC
362 (home-page "http://www.gnu.org/software/rcs/")
363 (synopsis "Per-file local revision control system")
364 (description
79c311b8
LC
365 "RCS is the original Revision Control System. It works on a
366file-by-file basis, in contrast to subsequent version control systems such as
367CVS, Subversion, and Git. This can make it suitable for system
368administration files, for example, which are often inherently local to one
369machine.")
1b1c335f 370 (license gpl3+)))
1972fed4
LC
371
372(define-public cvs
373 (package
374 (name "cvs")
375 (version "1.12.13")
376 (source (origin
377 (method url-fetch)
378 (uri (string-append
379 "http://ftp.gnu.org/non-gnu/cvs/source/feature/"
380 version "/cvs-" version ".tar.bz2"))
381 (sha256
382 (base32
383 "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq"))))
384 (build-system gnu-build-system)
385 (arguments
386 ;; XXX: The test suite looks flawed, and the package is obsolete anyway.
387 '(#:tests? #f))
388 (inputs `(("zlib" ,zlib)
389 ("nano" ,nano))) ; the default editor
390 (home-page "http://cvs.nongnu.org")
391 (synopsis "Historical centralized version control system")
392 (description
393 "CVS is a version control system, an important component of Source
394Configuration Management (SCM). Using it, you can record the history of
395sources files, and documents. It fills a similar role to the free software
396RCS, PRCS, and Aegis packages.")
397 (license gpl1+)))
a4572a17
LC
398
399(define-public vc-dwim
400 (package
401 (name "vc-dwim")
402 (version "1.7")
403 (source (origin
404 (method url-fetch)
405 (uri (string-append "mirror://gnu/vc-dwim/vc-dwim-"
406 version ".tar.xz"))
407 (sha256
408 (base32
409 "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2"))))
410 (build-system gnu-build-system)
411 (inputs `(("perl" ,perl)
412 ("inetutils" ,inetutils) ; for `hostname', used in the tests
413 ("emacs" ,emacs))) ; for `ctags'
414 (home-page "http://www.gnu.org/software/vc-dwim/")
415 (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
416 (description
a22dc0c4
LC
417 "The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".
418vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and
419using version control at the same time, for example by printing a reminder
420when a file change has been described in the ChangeLog but the file has not
79c311b8 421been added to the VC. vc-chlog scans changed files and generates
a22dc0c4 422standards-compliant ChangeLog entries based on the changes that it detects.")
a4572a17 423 (license gpl3+)))
83a39ed7
LC
424
425(define-public diffstat
426 (package
427 (name "diffstat")
428 (version "1.58")
429 (source (origin
430 (method url-fetch)
431 (uri (string-append
432 "ftp://invisible-island.net/diffstat/diffstat-"
433 version ".tgz"))
434 (sha256
435 (base32
436 "14rpf5c05ff30f6vn6pn6pzy0k4g4is5im656ahsxff3k58i7mgs"))))
437 (build-system gnu-build-system)
438 (home-page "http://invisible-island.net/diffstat/")
439 (synopsis "Make histograms from the output of 'diff'")
440 (description
35b9e423 441 "Diffstat reads the output of 'diff' and displays a histogram of the
83a39ed7
LC
442insertions, deletions, and modifications per-file. It is useful for reviewing
443large, complex patch files.")
444 (license (x11-style "file://COPYING"))))
25f76ef0 445
25f76ef0
JD
446(define-public cssc
447 (package
448 (name "cssc")
449 (version "1.3.0")
450 (source (origin
451 (method url-fetch)
452 (uri (string-append "mirror://gnu/" name "/CSSC-"
453 version ".tar.gz"))
454 (sha256
455 (base32
456 "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm"))
457 (patches (list (search-patch "cssc-gets-undeclared.patch")
458 (search-patch "cssc-missing-include.patch")))))
459 (build-system gnu-build-system)
460 (arguments
461 `(#:phases (alist-cons-before
462 'check 'precheck
463 (lambda _
464 (begin
465 (substitute* "tests/common/test-common"
466 (("/bin/pwd") (which "pwd")))
467
468 (substitute* "tests/prt/all-512.sh"
469 (("/bin/sh") (which "sh")))
470
471 ;; XXX: This test has no hope of passing until there is a "nogroup"
472 ;; entry (or at least some group to which the guix builder does
473 ;; not belong) in the /etc/group file of the build environment.
474 ;; Currently we do not have such a group. Disable this test for now.
475 (substitute* "tests/Makefile"
476 (("test-delta ") ""))))
477 %standard-phases)))
478 ;; These are needed for the tests
479 (native-inputs `(("git" ,git)
480 ("cvs" ,cvs)))
481 (home-page "http://www.gnu.org/software/cssc/")
482 (synopsis "File-based version control like SCCS")
483 (description "GNU CSSC provides a replacement for the legacy Unix source
484code control system SCCS. This allows old code still under that system to be
485accessed and migrated on modern systems.")
486 (license gpl3+)))
0e534e74
JD
487
488;; This package can unfortunately work only in -TEST mode, since Aegis
489;; requires that it is installed setuid root.
490(define-public aegis
491 (package
492 (name "aegis")
493 (version "4.24")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append "mirror://sourceforge/aegis/aegis-"
497 version ".tar.gz"))
498 (sha256
499 (base32
500 "18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl"))
501 (patches (list (search-patch "aegis-perl-tempdir1.patch")
502 (search-patch "aegis-perl-tempdir2.patch")
503 (search-patch "aegis-test-fixup-1.patch")
504 (search-patch "aegis-test-fixup-2.patch")
505 (search-patch "aegis-constness-error.patch")))))
506 (build-system gnu-build-system)
507 (inputs
508 `(("e2fsprogs" ,e2fsprogs)
509 ("curl" ,curl)
510 ("file" ,file)
511 ("libxml2" ,libxml2)
512 ("zlib" ,zlib)
513 ("gettext" ,gnu-gettext)))
514 (native-inputs
515 `(("bison" ,bison)
516 ("groff" ,groff)
517 ("perl" ,perl)
518 ;; Various tests require the following:
519 ("cvs" ,cvs)
520 ("flex" ,flex)
521 ("cook" ,cook)
522 ("subversion" ,subversion)
523 ("rcs" ,rcs)
524 ("ed" ,ed)))
525 (arguments
526 `(#:configure-flags (list "--with-no-aegis-configured"
527 "--sharedstatedir=/var/com/aegis")
528 #:parallel-build? #f ; There are some nasty racy rules in the Makefile.
529 #:phases
530 (alist-cons-before
531 'configure 'pre-conf
532 (lambda _
533 (substitute* (append '("configure"
534 "etc/check-tar-gz.sh"
535 "etc/patches.sh"
536 "etc/test.sh"
537 "script/aexver.in"
538 "script/aebisect.in"
539 "script/aeintegratq.in"
540 "script/tkaegis.in"
541 "script/test_funcs.in"
542 "web/eg_oss_templ.sh"
543 "web/webiface.html"
544 "libaegis/getpw_cache.cc")
545 (find-files "test" "\\.sh"))
546 (("/bin/sh") (which "sh")))
547 (setenv "SH" (which "sh")))
548 (alist-replace
549 'check
550 (lambda _
551 (let ((home (string-append (getcwd) "/my-new-home")))
552 ;; Some tests need to write to $HOME.
553 (mkdir home)
554 (setenv "HOME" home)
555
556 ;; This test assumes that flex has been symlinked to "lex".
557 (substitute* "test/00/t0011a.sh"
558 (("type lex") "type flex"))
559
560 ;; The author decided to call the check rule "sure".
561 (zero? (system* "make" "sure"))))
562 %standard-phases))))
563 (home-page "http://aegis.sourceforge.net")
564 (synopsis "Project change supervisor")
565 (description "Aegis is a project change supervisor, and performs some of
35b9e423 566the Software Configuration Management needed in a CASE environment. Aegis
0e534e74
JD
567provides a framework within which a team of developers may work on many
568changes to a program independently, and Aegis coordinates integrating these
569changes back into the master source of the program, with as little disruption
35b9e423 570as possible. Resolution of contention for source files, a major headache for
0e534e74
JD
571any project with more than one developer, is one of Aegis's major functions.")
572 (license gpl3+)))