Instantbird

Developer documentation

You are not a developer?
Please go to http://www.instantbird.com/ instead.

How to create an extension

The user interface of Instantbird is written in XUL. Therefore you can write extensions for Instantbird like you can do for any other XUL application (Firefox, Thunderbird, etc...). You will find much useful information on the Mozilla Developer Center. This tutorial may be a good place to start.

To create an extension for Instantbird, you will need instantbird's appid which is {33cb9019-c295-46dd-be21-8c4936574bee}.

We hope you will have fun creating cool addons for Instantbird. Please let us know about your creations. If you have questions or improvement requests about extensibility, contact us.

Make a translation

Instantbird is not ready yet to be translated. Learn more...

Get the source

You can get the source of the latest release here.

Build it

Version 0.1.2 (and later)

The build process is now pretty simple: you get the source and build it like you would to for Firefox or Thunderbird.

tar -xzf instantbird-0.1.2-src.tgz
cd mozilla
make -f client.mk build

You can then run the resulting application from the directory ../obj-instantbird/dist/bin.

Version 0.1 and 0.1.1

The build process is basically:

You can build instantbird 0.1.1 by simply copying this script:

#!/bin/sh

# first we get the source code of instantbird, then we build the dependencies (xulrunner and libpurple) and finally we actually build instantbird
wget http://download.instantbird.com/0.1.1/instantbird-0.1.1-src.tar.gz
tar -xzf instantbird-0.1.1-src.tar.gz
mv instantbird-0.1.1-src instantbird

# download and extract the xulrunner source code
wget http://download.instantbird.com/0.1.1/xulrunner1.9b2-src-for-instantbird-0.1.1.tar.bz2
tar -xjf xulrunner1.9b2-src-for-instantbird-0.1.1.tar.bz2
cd mozilla

# build xulrunner. This is pretty slow (between 20 minutes and more than an hour depending on your hardware)
make -f client.mk build

cd ..

# download the source tarball of 2.2.1 release of pidgin and extract it
wget http://downloads.sourceforge.net/pidgin/pidgin-2.2.1.tar.bz2
tar -xjf pidgin-2.2.1.tar.bz2
cd pidgin-2.2.1
patch -p0 < ../instantbird/utils/patch-libpurple.diff

# configure it so that it gets built without any UI: we only need libpurple
# also, we use the --prefix flag so that we can call make install without being root
./configure --disable-gtkui --disable-consoleui --prefix=$(pwd)/_inst
make && make install

cd ../instantbird/xpcom/

# configure the xpcom components of instantbird to use the dependencies that we have just built
./configure --with-pidgin-src=../../pidgin-2.2.1 --with-libpurple=../../pidgin-2.2.1/_inst/lib --with-gecko=../../mozilla/obj-instantbird/dist
# build it and install it in the 'testapp' folder
make install

# go to the testapp directory where we actually have our newly built instantbird
cd ../testapp
# create a link to xulrunner
ln -s ../../mozilla/obj-instantbird/dist/bin xulrunner

# you can now try your own instantbird build with the instantbird.sh script

If you want to build it on Ubuntu, you will need to install these packages:

sudo apt-get install gcc g++ libgtk2.0-dev libidl-dev libxt-dev libcurl3-dev patch
sudo apt-get install gnutls-dev libxml2-dev gettext

Coding guidelines

To be written later. The main idea is that when you edit a file in order to submit a patch, you should do your best to keep the coding style of the file. We mostly follow the Mozilla Coding Style.

Roadmap

Important

Please note that the following information describes what we think we will do. What we will actually do and especially in which order can vary unexpectedly. You are warned!

Outline

0.1.1

Note: This is looks more like a bug list ;-)

0.1.5 (???)

0.2

0.3

0.4

1.0

After 1.0

File a bug

If you found a bug in instantbird, please do the following:

First, search in our bug database if this is already a known bug.

If you can't find your bug in our database, then file a new bug. When you file a bug, please keep in mind that the goal is to get the problem fixed. In order to make a bug report that actually helps to get the bug fixed, please provide any information you have that seems relevant (which version of instantbird were you using, on which operating system, which protocols, etc...). While we understand that the bug you encountered is probably very important to you, we can't promise you anything about the time it will need to get the bug fixed if it ever get fixed. So stay polite, explain clearly what happened, and don't waste both your and our time in writting how a bug is horrible or needs to get fixed.

If the bug you report is a crash, in most case your report will be useless without a stack trace.