TaskJuggler
# the task juggler is a very powerful project management tool that lets the user specify a task juggler project in a simple text format by listing all tasks and their dependencies. This text file is processed by TaskJuggler which produces various reports in html and xml format. The juggler does not only honor the task interdependencies, but also takes resource constraints into account. The user can create task lists, resource usage tables, status reports, project calendars, and project accounting statements by using the program's filtering and reporting algorithms. The program includes tools producing GANTT and Pert charts

Installation
# I got it working on debian following the following steps:

apt-get install
libxml-xslt-perl 
apt-get install libpostscript-simple-perl
apt-get install libclass-methodmaker-perl
apt-get install xsltproc
apt-get install docbook-utils
apt-get install jade
./configure --with-kde-support=yes
# apply the patch described on
http://lists.suse.com/archive/taskjuggler-devel/2004-Oct/0011.html to
tjx2gantt/tjx2gantt
make
sudo make install
cd ~/taskjuggler 
wget http://www.taskjuggler.org/download/taskjuggler-cvs.tar.bz2
tar -xjf taskjuggler-cvs.tar.bz2
cd taskjuggler-cvs/
./configure                       
# edit docs/en/Makefile and remove all makefile bodies which call db2html
make
sudo make install

Basic usage
# once the task juggler has been installed, you can start experimenting with your first projects:

mkdir ~/examples
cd ~/examples/
cp -a /usr/local/share/doc/packages/taskjuggler/Examples .
cd Examples/FirstProject
# generating the project overview sheets
taskjuggler AccountingSoftware.tjp
# regenerate the acso.eps and acso_poster.eps
tjx2gantt AccountingSoftware.tjx