Aegis 4.24
Web Interface

Aegis has a read-only web interface to its database. There is a page which uses Aegis' own web interface to look at Aegis' own development (because Aegis is developed using Aegis). If you have Apache installed when Aegis is configured and built, this interface (to your projects, not this one) will be installed for you at your site, too.


List of Projects

The top-level view is of all SourceForge projects being managed by Aegis. You can drill down to everything else from this point.

The Aegis Project

The Aegis project page. Every project (and each branch) has one. In this case you will be taken to the one for Aegis 4.24.

The completed changes page lists all of the completed changes to date (on the development branch). This is the bleeding edge.

The Download links are of most interest to Aegis developers, but they demonstrate how an Internet project (or a global VPN project) could distribute change sets. Click on the change number for more information about each change.

SourceForge

Is your project hosted at SourceForge.net Logo SourceForge?
  1. If so, there is no need for you to compile Aegis to run on SourceForge, because it is already there.
  2. You will need to upload your project tree, as mentioned in the instructions below.
  3. Send email to Peter Miller he will add a project pointer and your project will appear in the list of projects.

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.

  1. Configure with ./configure --prefix=/home/groups/a/ae/aegis --with-no-aegis-configured
  2. 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.
  3. Now you can make as normal.
  4. You can use the RPM_BUILD_ROOT setting of the Makefile, or you can mkdir -p /home/groups/a/ae/aegis/cgi-bin
  5. 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
  6. 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 "$@"
  7. 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.
  8. 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).
  9. 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";
      },
    ];
  10. If this takes off, I'll ask the SourceForge people to install it, so that most of these instructions are unnecessary.


The beautiful graphics on this web site are by Grégory Delattre.

Return to the Aegis home page.