mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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.
This commit is contained in:
parent
a4dc3bdb15
commit
0e534e74aa
6 changed files with 175 additions and 0 deletions
12
gnu/packages/patches/aegis-constness-error.patch
Normal file
12
gnu/packages/patches/aegis-constness-error.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
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.
|
14
gnu/packages/patches/aegis-perl-tempdir1.patch
Normal file
14
gnu/packages/patches/aegis-perl-tempdir1.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
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;
|
18
gnu/packages/patches/aegis-perl-tempdir2.patch
Normal file
18
gnu/packages/patches/aegis-perl-tempdir2.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
--- 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
|
15
gnu/packages/patches/aegis-test-fixup-1.patch
Normal file
15
gnu/packages/patches/aegis-test-fixup-1.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
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.
|
24
gnu/packages/patches/aegis-test-fixup-2.patch
Normal file
24
gnu/packages/patches/aegis-test-fixup-2.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
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-system python)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (gnu packages apr)
|
#:use-module (gnu packages apr)
|
||||||
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages cook)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages ed)
|
#:use-module (gnu packages ed)
|
||||||
|
#:use-module (gnu packages file)
|
||||||
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages groff)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
;; #:use-module (gnu packages gnutls)
|
;; #:use-module (gnu packages gnutls)
|
||||||
#:use-module (gnu packages nano)
|
#:use-module (gnu packages nano)
|
||||||
#:use-module (gnu packages openssl)
|
#: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
|
code control system SCCS. This allows old code still under that system to be
|
||||||
accessed and migrated on modern systems.")
|
accessed and migrated on modern systems.")
|
||||||
(license gpl3+)))
|
(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+)))
|
||||||
|
|
Loading…
Reference in a new issue