aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
authorJohn Darrington <jmd@gnu.org>2014-01-24 15:01:00 +0100
committerJohn Darrington <jmd@gnu.org>2014-07-18 06:45:33 +0200
commit0e534e74aa68cea63302db19e7e39a72d0280b3d (patch)
tree7808b5405733975b65e072ccb7f889bc94b55f45 /gnu/packages/version-control.scm
parenta4dc3bdb15950d4f5651150643caeda34c1e2657 (diff)
downloadgnu-guix-0e534e74aa68cea63302db19e7e39a72d0280b3d.tar
gnu-guix-0e534e74aa68cea63302db19e7e39a72d0280b3d.tar.gz
gnu: Add Aegis.
* gnu/packages/version-control.scm (aegis): New variable. * gnu/packages/patches/aegis-constness-error.patch: New file. * gnu/packages/patches/aegis-perl-tempdir1.patch: New file. * gnu/packages/patches/aegis-perl-tempdir2.patch: New file. * gnu/packages/patches/aegis-test-fixup-1.patch: New file. * gnu/packages/patches/aegis-test-fixup-2.patch: New file.
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm92
1 files changed, 92 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index b919900f7c..d58cb94ac9 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -29,9 +29,15 @@
#:use-module (guix build-system python)
#:use-module (guix build utils)
#:use-module (gnu packages apr)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages cook)
#:use-module (gnu packages curl)
#: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 openssl)
@@ -478,3 +484,89 @@ large, complex patch files.")
code control system SCCS. This allows old code still under that system to be
accessed and migrated on modern systems.")
(license gpl3+)))
+
+;; This package can unfortunately work only in -TEST mode, since Aegis
+;; requires that it is installed setuid root.
+(define-public aegis
+ (package
+ (name "aegis")
+ (version "4.24")
+ (source (origin
+ (method url-fetch)
+ (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")))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("e2fsprogs" ,e2fsprogs)
+ ("curl" ,curl)
+ ("file" ,file)
+ ("libxml2" ,libxml2)
+ ("zlib" ,zlib)
+ ("gettext" ,gnu-gettext)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("groff" ,groff)
+ ("perl" ,perl)
+ ;; Various tests require the following:
+ ("cvs" ,cvs)
+ ("flex" ,flex)
+ ("cook" ,cook)
+ ("subversion" ,subversion)
+ ("rcs" ,rcs)
+ ("ed" ,ed)))
+ (arguments
+ `(#:configure-flags (list "--with-no-aegis-configured"
+ "--sharedstatedir=/var/com/aegis")
+ #:parallel-build? #f ; There are some nasty racy rules in the Makefile.
+ #:phases
+ (alist-cons-before
+ 'configure 'pre-conf
+ (lambda _
+ (substitute* (append '("configure"
+ "etc/check-tar-gz.sh"
+ "etc/patches.sh"
+ "etc/test.sh"
+ "script/aexver.in"
+ "script/aebisect.in"
+ "script/aeintegratq.in"
+ "script/tkaegis.in"
+ "script/test_funcs.in"
+ "web/eg_oss_templ.sh"
+ "web/webiface.html"
+ "libaegis/getpw_cache.cc")
+ (find-files "test" "\\.sh"))
+ (("/bin/sh") (which "sh")))
+ (setenv "SH" (which "sh")))
+ (alist-replace
+ 'check
+ (lambda _
+ (let ((home (string-append (getcwd) "/my-new-home")))
+ ;; Some tests need to write to $HOME.
+ (mkdir home)
+ (setenv "HOME" home)
+
+ ;; This test assumes that flex has been symlinked to "lex".
+ (substitute* "test/00/t0011a.sh"
+ (("type lex") "type flex"))
+
+ ;; The author decided to call the check rule "sure".
+ (zero? (system* "make" "sure"))))
+ %standard-phases))))
+ (home-page "http://aegis.sourceforge.net")
+ (synopsis "Project change supervisor")
+ (description "Aegis is a project change supervisor, and performs some of
+the Software Configuration Management needed in a CASE environment. Aegis
+provides a framework within which a team of developers may work on many
+changes to a program independently, and Aegis coordinates integrating these
+changes back into the master source of the program, with as little disruption
+as possible. Resolution of contention for source files, a major headache for
+any project with more than one developer, is one of Aegis's major functions.")
+ (license gpl3+)))