Here is the process I used to quickly build (OK, but it was faster than usual) QGIS HEAD on Feisty Fawn. What's QGIS HEAD? It's the current development version that includes the tasty Python bindings that allow you to write both QGIS plugins and stand-alone mapping applications.

  1. With apt-get or synaptic, install the following:

    bison               fftw3
    fftw3-dev           flex
    g++                 libgeos-c1
    libgeos-dev         libgeos2c2a
    libpq-dev           libpq5
    libqt4-core         libqt4-dev
    libqt4-gui          libqt4-qt3support
    libqt4-sql          libreadline5-dev
    libsqlite3-dev      libtiff4-dev
    proj                pyqt4-dev-tools
    python-qt4          python-qt4-dev
    python-sip4         python-sip4-dev
    qt4-designer        qt4-dev-tools
    qt4-doc             qt4-qtconfig
    sip4                sqlite3
    tcl8.4-dev          tk8.4
    tk8.4-dev           x-dev
    

    Some of these may get installed as part of other packages. Also you'll likely see a bunch of dependent packages pulled in by the ones above.

  2. Get and build GDAL 1.4.1 from source (http://www.gdal.org/)

    ./configure '--without-python' '--with-sqlite=/usr'
    make
    make install
    
  3. Download GRASS 6.2.1 and build (You can use the 6.3.x snapshots as well - http://grass.itc.it)

    ./configure --with-tcltk-includes=/usr/include/tcl8.4 \
    --with-postgres-includes=/usr/include/postgresql --with-readline --with-sqlite
    make
    make install
    
  4. Rebuild GDAL 1.4.1 with GRASS support

    ./configure --without-python --with-sqlite=/usr --with-grass=/usr/local/grass-6.2.1
    make clean 
    make
    make install
    
  5. Get the current QGIS unstable from the Subversion repository. You'll need subversion to fetch the code. If you don't have it, install it using:

    sudo apt-get install subversion
    

    then,

    svn co https://svn.qgis.org/repos/qgis/trunk/qgis qgis_unstable
    
  6. Build QGIS using the instructions in: http://wiki.qgis.org/qgiswiki/BuildingwithCMake I suggest using a out of source build outlined on the wiki. If you have problems with cmake finding your GRASS or other components, use ccmake to edit the paths, as well as the install prefix if you like:

    cd qgis_unstable
    mkdir build
    cd build
    ccmake ..
    

Hit 'c' a couple of times and then 'g' to generate. You are then ready to:

make
make install

Using the Feisty packages makes it a pretty quick process. You only need to compile GDAL, GRASS and QGIS. If you don't want to use GRASS, you could get by with GDAL 1.3.2 from apt.

You can also use this process to build the 0.8.0 release or the 0.8.1 release candidate in subversion.