Thunderbird and SeaMonkey builds switched to libxul-style builds

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.

Notificiations added to Tinderstatus

Tinderstatus 0.4 can notify you when a tree state changes, or even particular builds on a tree change state or stay broken:

picture-17

I find this especially useful if I’m tree watching, as tinderstatus does the watching for you – you no longer need to keep examining tinderbox, or tbpl for the next build to change state, tinderstatus will do it for you, and push out an alert (using the gecko alerts system – on Mac this integrates with growl, as you’ll see above).

By right-clicking on Tinderstatus’ icons, you can globally turn on and off the notifications (for periods when you’re not watching the tree or its just too busy). You can also access the preferences where you can configure which trees to give notifications for, and which trees you want to get notifications in more detail about the specific builders.

I had the idea to implement this after seeing Christian’s pulse.mozilla.org and realising that I was doing a lot of context switching whilst watching the tree to keep looking at the web page. I realised a notification system would push the information to me rather than going to have to look (and maybe reload) a web page myself – what was even better is that I realised that although pulse.mozilla.org is still under development, I could easily add notifications to Tinderstatus. So I did.

I hope the tree watchers out there find this useful, improvements are always welcome, tinderstatus can be found on mozdev.

comm-central has branched!

Further to my previous post, we’ve now branched comm-central. There are now two repositories for the comm-central applications:

  • comm-central: The trunk repository containing source code for Thunderbird 3.next, SeaMonkey 2.next and Lightning 1.next.
  • comm-1.9.1: The stable branch repository, based on Gecko 1.9.1, for Thunderbird 3, SeaMonkey 2, Lightning 1.0.

If you already have comm-central checked out with mozilla-1.9.1 (the default until now), you will be automatically switched to mozilla-central. The mozilla-1.9.1 repository will be archived in your directory as ‘.mozilla-1.9.1’.

Local clones of mozilla will not be affected, only the ones that point to http://hg.mozilla.org/releases/mozilla-1.9.1/.

The tree rules page has been updated with the current status and requirements for checkins, please check that before checking in. The various tinderbox pages have also been updated.

Whilst we’ve branched, there are still a couple of issues that we’re resolving on buildbot and some of the builders, so the comm-central and comm-1.9.1 trees will be staying closed until tomorrow morning when we’ll have hopefully resolved the issues.

Also, comm-1.9.1 isn’t on mxr yet, we have a bug filed to get it added.