Skip to content
Snippets Groups Projects
Commit 0e534e74 authored by John Darrington's avatar John Darrington
Browse files

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.
parent a4dc3bdb
No related branches found
No related tags found
No related merge requests found
Fixes a fatal constness error with g++ 4.8.2.
--- aegis-4.24/common/ac/string/memmem.cc 2008-03-14 07:19:27.000000000 +0100
+++ aegis-4.24/common/ac/string/memmem.cc 2014-01-26 11:17:58.000000000 +0100
@@ -182,7 +182,7 @@
// Use optimizations in memchr when possible.
if (needle_len == 1)
- return memchr(haystack, *needle, haystack_len);
+ return (void *) memchr(haystack, *needle, haystack_len);
// Minimizing the worst-case complexity:
// Let n = haystack_len, m = needle_len.
This patch removes the hard coded temporary directory (which might not exist on the system)
and replaces it using the Perl preferred method.
--- aegis-4.24/script/aebisect.in 2008-03-14 07:19:27.000000000 +0100
+++ aegis-4.24/script/aebisect.in 2014-01-26 11:03:31.000000000 +0100
@@ -34,7 +34,8 @@
# @configure_input@
#
# Configure additions?
-my $TmpDir = "/var/tmp";
+use File::Temp qw/ tempdir /;
+my $TmpDir = tempdir();
my $ProgramName = "aebisect";
require 5.004;
--- aegis-4.24/script/aeintegratq.in 2008-03-14 07:19:27.000000000 +0100
+++ aegis-4.24/script/aeintegratq.in 2014-01-26 16:08:22.000000000 +0100
@@ -49,13 +49,14 @@
#
# @configure_input@
#
+use File::Temp qw/ tempdir /;
# Grab useful locations from configure
$BinDir = "@bindir@";
# configure does not expand @comdir@ directly so use sharedstatedir
$ComDir = "@sharedstatedir@";
# Configure additions?
-$TmpDir = "/var/tmp";
+$TmpDir = tempdir();
# base mail program that takes all info (to: subj: etc) on stdin
$SendMail = "/usr/lib/sendmail";
# Define the preferred integration host
This test fails because it expects a MIME type "Content-Type: image/gif"
whereas that provided by libmagic is "Content-Type: image/gif; charset=binary"
Presumably the test was written against a different version.
--- aegis-4.24/test/02/t0228a-matt.sh 2008-03-14 07:19:27.000000000 +0100
+++ aegis-4.24/test/02/t0228a-matt.sh 2014-01-27 09:43:44.000000000 +0100
@@ -147,7 +147,8 @@
SCRIPT_NAME=/cgi-bin/aeget \
PATH_INFO=icon/rss.gif \
QUERY_STRING= \
-$bin/aeget > rss.served.gif 2>&1
+$bin/aeget \
+| sed -e 's%^Content-Type: image/gif; charset=binary%Content-Type: image/gif%' > rss.served.gif 2>&1
if test $? -ne 0 ; then fail; fi
# Compare the expected and the actual received file.
This test was failing with subversion 1.7.8 because the svn repository structure
was not as the test expected. Presumably the test relies on different version.
--- aegis-4.24/test/02/t0222a-pmil.sh 2008-03-14 07:19:27.000000000 +0100
+++ aegis-4.24/test/02/t0222a-pmil.sh 2014-01-27 19:48:30.000000000 +0100
@@ -268,7 +268,8 @@
-c 10 > log 2>&1
if test $? -ne 0 ; then cat log; fail; fi
-test -f $work/svnroot/db/revs/2 || fail
+activity="check svn db 271"
+test -f $work/svnroot/db/revs/0/2 || test -f $work/svnroot/db/revs/2 || fail
# --------------------------------------------------------------------------
@@ -364,7 +365,8 @@
-c 3 > log 2>&1
if test $? -ne 0 ; then cat log; fail; fi
-test -f $work/svnroot/db/revs/3 || fail
+activity="check svn db 368"
+test -f $work/svnroot/db/revs/0/3 || test -f $work/svnroot/db/revs/3 || fail
#
# Only definite negatives are possible.
......@@ -29,9 +29,15 @@ (define-module (gnu packages version-control)
#: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 @@ (define-public cssc
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+)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment