Compile Spicebird lastest trunk from Subversion (pre 0.7) on Ubuntu Linux (Hardy)

Spicebird blogs publishedWhat you need to do to get the cutting edge of Spicebird (I wanted to try out the upcoming “blog” feature) is, if you haven’t done any gimmi-the-source-luke-compile-yourself-ing yet, quite a bit. I’ll list it one by one:

  1. Get Spicebird’s sources via subversion (I used subclipse in Aptana but command line shouldn’t be any different in effect)
  2. Since Spicebird builds on mozilla code base just like Thunderbird one needs to get the compatible Mozilla source code. The table in that wiki tells you really what you need (the linked tar ball is the one). I was new to Mozilla coding/compiling so I got a little confused. Subversion told me I had gotten “revision 763” so that matches “702 and above” 🙂
  3. Get all Mozilla dependencies which are quite a bit since I like to use aptitude over apt-get but aptitude doesn’t know the build-dep command here is the full command line including with the list of (Ubuntu) packages I needed:
    sudo aptitude install autoconf2.13 cdbs diffstat fdupes intltool libart-2.0-dev libatk1.0-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-glib-dev libbonobo2-dev libbonoboui2-dev libcairo2-dev libdbus-1-dev libdbus-glib-1-dev  libesd0-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgail-dev libgconf2-dev libgcrypt11-dev libglade2-dev  libglib2.0-dev libgnome-keyring-dev libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev libgnutls-dev  libgnutlsxx13 libgpg-error-dev libgtk2.0-dev libhunspell-dev libice-dev libidl-dev libjpeg62-dev liblzo2-dev libnspr4-dev  libnss3-dev libopencdk10-dev liborbit2-dev libpango1.0-dev libpixman-1-dev libpng12-dev libpopt-dev libpthread-stubs0  libpthread-stubs0-dev libselinux1-dev libsepol1-dev libsm-dev libtasn1-3-dev libx11-dev libxau-dev libxcb-xlib0-dev  libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev  libxinerama-dev libxml-xpath-perl libxml2-dev libxrandr-dev libxrender-dev libxt-dev mozilla-devscripts patchutils quilt  sharutils x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev  x11proto-randr-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev xulrunner-1.9-dev zlib1g-dev libdbus-glib-1-dev curl libcurl4-openssl-dev automake make build-essential cvs

    To double-check run sudo apt-get build-deb firefox. If you would use aptitude normally you should cancel this command (Ctrl+c) after apt-get has shown you the necessary packages. Copy-paste the list (might need manual editing to remove line breaks) to sudo aptitude install … If you would like to keep this bunch of packages only to compile spicebird run the same command after you’re done compiling but with markauto in place of install. This will remove all packages that are only installed to satisfy this build-dependency.

  4. Now you should really have everything you need. Now move spicebird’s trunk folder as “collab” into the mozilla folder.
  5. Then you need to create your .mozconfig file in your home directory. In the suggested line
    echo ". ${topsrcdir}/collab/config/mozconfig" > $HOME/.mozconfig

    ${topsrcdir} must be replaced by the absolute path to the newly created mozilla folder.

  6. Now everything should be set to actually compile the sources as suggested in Spicebird’s wiki. Be prepared to let it run for quite some time (> 1 hour depending on CPU speed and memory; that’s why I have time to write this post 😉 ); the code uses about 500 MB disk space.

If you are interested in building a deb package have a look at inkscape’s nice walk-through. Mind you it’s written for Inkscape. See also: how to compile deb packages by hand.