This section contains instructions for building and
installing the CGI
interface like the one that runs at sourceforge.net,
your own server. You need an externally accessible server,
firewall, to host an Internet accessible Aegis project in
You then update the external tree using rsync or
weekly or at integrate pass, or something.
Using the Aegis web interface like the one on SourceForge is
at your own site, due to the chroot jail that is used.
instructions to suit the name of your project.) You wont be
compile on SourceForge, so do it on a Linux PC elsewhere.
Configure with ./configure
Edit the generated Makefile,
- add -DSOURCE_FORGE_HACK to the CXXFLAGS
- add -static to the LDFLAGS variable, to make
sure the right
version of the libraries statically linked into the
Now you can make as normal.
You can use the RPM_BUILD_ROOT setting of the Makefile, or
mkdir -p /home/groups/a/ae/aegis/cgi-bin
When you make install, you will then need to cull the
tree of unnecessary files.
You only need
The rest can be removed.
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 \
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
directory to set the command search PATH and then invoke
or aegis.cgi as appropriate.
exec $bin/$cmd "$@"
Total size is about 50MB (shared libraries would
Make a tarball, scp it to SourceForge, unpack at the
The tarball is about 15MB so the upload time isn't too bad.
tar czf xxx.tgz bin cgi-bin share
scp xxx.tgz aegis.sourceforge.net:.
tar xf ~/xxx.tgz
Now upload your project.
I use rsync for efficient differential
uploads. The directory needs to be inside the chroot jail,
the htdocs directory.
The instructions assume it is in the
You need the whole project tree, but you can leave out
in the baselines (e.g. .o files, .a
Edit /home/groups/p/pr/project/com/aegis/state to point at the project
project_name = "project";
directory = "/home/groups/p/pr/project/project";
If this takes off, I'll ask the SourceForge people to install
that most of these instructions are unnecessary.