User:Florian/building purplexpcom for Thunderbird
Jump to navigation
Jump to search
The add-on Additional Chat Protocols for Thunderbird is made from parts of Instantbird.
For Thunderbird 24 and below
The source code is the purple/ folder of the Instantbird repository.
To build for all OSes, I pushed that code to the Thunderbird try server.
The changesets I pushed to the try server can be downloaded here. They contain:
- the purple/ folder of the Instantbird repository (any revision that contains the patch from Instantbird bug 1665 and its follow ups should work). Let's say I used the purple/ folder of revision 29d2a239ba24.
- a patch to adapt the comm-central build system to build purple/ (Thunderbird 15, 16 and 17 versions)
- some very simple changes to purple/ to disable the jabber and qq libpurple protocol plugins (jabber because Thunderbird already ships by default a generic XMPP plugin and I don't want to override it, and qq because it doesn't work correctly at the moment, even for Instantbird), and to disable purple/'s xpcshell tests (I didn't request tests on the try server runs, so just commenting out the lines related to the test in the purple/ Makefile was easier than adding a line in mail/'s xpcshell.ini file to make the harness find them). (patch available here)
- when building for Thunderbird 16 and 17, the same patch has some additional fixes to keep purplexpcom building against newer gecko versions. For Thunderbird 16 I had deal with the removal of nsILocalFile, and for Thunderbird 17 I also had to deal with the nsnull->nullptr change and the removal of the NS_OUTPARAM and NS_SCRIPTABLE macros (this patch has been posted to Instantbird bug 1606 and reviewed there. (Patch available here for the Thunderbird 16 and Thunderbird 17 versions)
I included in the add-on localized strings for the top 4 locales of Thunderbird (en-US, de, fr, ja) from http://hg.instantbird.org/l10n/libpurple/
For Thunderbird 38
- Pull comm-aurora revision 37d096d3bf18.
- A set of patches were applied to comm-aurora to:
- Pull purplexpcom rev 18e35a43ad30 (libpurple + an XPCOM wrapper used in Instantbird) to mozilla/extensions/purple
- Patch configure.in of Thunderbird to set up for building purplexpcom, these changes were ported from Instantbird's configure.in
- Change the build configuration to include the purple folder
- Package the resulting purplexpcom library (i.e. dylib, dll or so) and don't package libxul (to ensure the upload from try finishes)
- There are a few minor changes made to the purplexpcom library (disabling of certain features):
- Bonjour on Linux: the builders don't have the proper development headers (libavahi)
- SIPE on all operating systems: Thunderbird does not include the necessary NSS bits
- Jabber: Thunderbird includes the JavaScript XMPP code
And that's it! The full patch to push to try is available at: <link to full patch>
A try run was used to build the components in as similar an environment as possible to the Thunderbird releases, results were uploaded to FTP.