|
SourceForge Hack
This section contains instructions for building and
installing the CGI
interface like the one that runs at sourceforge.net,
but on
your own server. You need an externally accessible server,
outside your
firewall, to host an Internet accessible Aegis project in
this way.
You then update the external tree using rsync or
similar, either
weekly or at integrate pass, or something.
Using the Aegis web interface like the one on SourceForge is
a little
different than
at your own site, due to the chroot jail that is used.
(Change these
instructions to suit the name of your project.) You wont be
able to
compile on SourceForge, so do it on a Linux PC elsewhere.
-
Configure with ./configure
--prefix=/home/groups/a/ae/aegis
--with-no-aegis-configured
-
Edit the generated Makefile,
- add -DSOURCE_FORGE_HACK to the CXXFLAGS
variable;
- add -static to the LDFLAGS variable, to make
sure the right
version of the libraries statically linked into the
executables.
-
Now you can make as normal.
-
You can use the RPM_BUILD_ROOT setting of the Makefile, or
you can
mkdir -p /home/groups/a/ae/aegis/cgi-bin
-
When you make install, you will then need to cull the
install
tree of unnecessary files.
You only need
bin/ae_diff2htm,
bin/aedist,
bin/aeget,
bin/aegis,
bin/aegis.cgi,
bin/aepatch,
bin/aerect,
bin/aereport,
bin/aetar,
and the
share/en/html tree.
The rest can be removed.
cd /home/groups/a/ae/aegis
mkdir -m755 cgi-bin
for f in \
aeannotate aebuffy aecomp aecomplete ae-cvs-ci \
aecvsserver aeedit aefind aeget.instal aegis.cgi.i \
aeimport aeintegratq aels aemeasure aepromptcmd \
ae-sccs-put aesub aexml tkaeca tkaegis tkaenc tkaepa \
tkaer xaegis
do
rm bin/$f
done
strip bin/*
rm -r com lib man etc
mkdir -p share-new/en
mv share/en/html share-new/en
rm -r share
mv share-new share
-
You will need to create a couple of shell scripts in the
cgi-bin
directory to set the command search PATH and then invoke
aeget
or aegis.cgi as appropriate.
#!/bin/sh
cmd=`basename $0`
bin=/home/groups/a/ae/aegis/bin
PATH=${bin}:$PATH
export PATH
exec $bin/$cmd "$@"
-
Total size is about 50MB (shared libraries would
really help).
Make a tarball, scp it to SourceForge, unpack at the
other end.
tar czf xxx.tgz bin cgi-bin share
scp xxx.tgz aegis.sourceforge.net:.
ssh aegis.sourceforge.net
cd /home/groups/a/ae/aegis
tar xf ~/xxx.tgz
cd
rm xxx.tgz
The tarball is about 15MB so the upload time isn't too bad.
-
Now upload your project.
I use rsync for efficient differential
uploads. The directory needs to be inside the chroot jail,
but outside
the htdocs directory.
The instructions assume it is in the
/home/groups/p/pr/project/project
directory.
You need the whole project tree, but you can leave out
derived files
in the baselines (e.g. .o files, .a
files and
executables).
-
Edit /home/groups/p/pr/project/com/aegis/state to point at the project
tree.
Something like
where =
[
{
project_name = "project";
directory = "/home/groups/p/pr/project/project";
},
];
-
If this takes off, I'll ask the SourceForge people to install
it, so
that most of these instructions are unnecessary.
|