Last week was a busy week on build config for me – we’ve landed the patches to make Thunderbird and SeaMonkey build “libxul” style by default (we used to build most of the files into one static executable).
The big advantage of this change of build style is that we can move ourselves closer to the way Firefox builds, this should reduce maintenance effort for us, as well as allowing access to newer features that require libxul builds e.g. the out-of-process plugins (IPC) work. There’s also build system improvements that we can pick up (e.g. packaged tests for testing what is actually being shipped)
Now for some Q and A…
Are static/shared builds still supported?
Static builds are no longer supported. Shared builds are currently supported, but there are plans to make these go away, once linking times have been reduced.
Does this mean I can build Thunderbird on top of xulrunner?
Not yet. The method we’re currently doing actually breaks that, but we’re using it as a stop-gap for implementing other ideas that we have. Additionally there is further work to get mailnews compatible with the external xpcom API.
I’m an add-on developer, how does this affect me?
We believe that add-ons should be largely unaffected by this change. The add-ons that may be affected are ones that use binary components – these will now have to link against the external xpcom API. If there are functions that are now not available and suitable replacements can’t be found, please let us know now so that we can work with you to get solutions in place.
I build Thunderbird and/or contribute patches, do I need to change anything in my build?
See this thread for more information on what to change.
In order to make sure we didn’t regress anything, the QA team is having a test day This thursday . Details are available at https://wiki.mozilla.org/Thunderbird:QA_TestDay:2010-09-30
Congratulations! Does this mean Linux Thunderbird and Firefox could one day share a libxul.so? 1 GB of RAM doesn’t seem enough to run them and a window manager and a music player; I sit watching my stalled machine imagining 25 MB of duplicated toolkit code paging in just to draw the mouse-down button state.
I think the summary for bug 432162 might be wrong, as “Can’t Build mailnews with libxul or XULRunner” is still open, but y’all have fixed the libxul part.
Thanks for all you do.
In theory, one day Thunderbird and Firefox could share a libxul.so, it is not currently on the plans though.