Torsten Curdt’s weblog

Thunderbird has landed

Last month I announced I got a working build of Thunderbird with Addressbook integration. Unfortunately it was just a shared library version only working on my machine. It was refering to all the libraries on my machine – so no luck for other people. So I had to look into how the guys from mozilla do their releases. After harassing them on IRC I was able to fix a little bug in the static build and create the dmg. Their tinderbox build logs turned out to be very helpful for figuring out how. So basically what I ended up doing is to look up the mozconfig of the official builds. You can do that by specifying “about:buildconfig” in the location for the startup page.

mk_add_options MOZ_CO_PROJECT=mail

ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk
ac_add_options --enable-application=mail

ac_add_options '--enable-optimize=-O2 -g'
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --enable-prebinding
ac_add_options --enable-update-packaging
ac_add_options --enable-update-channel=release
ac_add_options --enable-official-branding

Once you have the code base on your machine building is quite simple – it does take a while though. After doing a clean build with the patch applied you should end up with a Thunderbird.app folder in the dist directory that is about 450MB!! Packaging does the trick and strips down the binary so the final application is about 17MB. (Please note that a “make -f client.mk build” did not work as expected. You have to call the default target “make -f client.mk” as it fetches some more code from cvs)

make -f client.mk clean
make -f client.mk
make -C obj-powerpc-apple-darwin8.6.0/mail/installer

You should end up with a dmg in the dist folder. For convenience I’ve provided a copy of my build here. (This copy might go away at some stage) But be aware – this patch has not even been committed to trunk yet. Although it is now marked as a “maybe blocker” for Thunderbird 2.0 (hurray!). It’s a developer build – not a stable release. So better backup your profiles and addressbook before you give it a go. (Actually starting with a new profile might be a good idea to get the proper settings into your prefs.js)

If you like it – please provide feedback in bugzilla and continue to vote for the bug.

  • Greg
    I gave the universal binary version a try but I think due to the fact it is based on the latest unstable version it is not really usable. Is it possible to build an address patch version that is from a stable build?
  • For anyone who's interested I've created a set of instructions and a downloadable Universal Binary from the latest trunk at http://icecube.co.nz/2006/11/7...
  • Greg
    Worked great for me. Is their a universal binary that has the addressbook patch available? I noticed that the dmg on this page is not a UB.
  • Tony, did you add the preferences to enable the Apple Address Book in Thunderbird?

    From PaulZag's comment above:
    To be clear you can either edit prefs.js OR use Preferences > Advanced > edit
    to add the following keys

    user_pref(â€ldap_2.servers.osx.descriptionâ€, “OS Xâ€);
    user_pref(â€ldap_2.servers.osx.dirTypeâ€, 3);
    user_pref(â€ldap_2.servers.osx.uriâ€, “moz-abOSXdirectory:///â€);
  • Tony

    I downloaded and installed your .dmg package, but I'm not seeing the Apple Address Book. I'm only seeing the default TB personal address book and collected addresses. Is there something special I need to do?

  • This is a great post, thanks!

    Thanks to your critical piece of information I successfully compiled trunk Thunderbird with the Address Book patch, it is running well - a little rough around the edges but its stable, and the functionality is awesome.

    If anyone is interested I've made post with the exact steps I went though to build Thunderbird and apply the patch, at http://icecube.co.nz/2006/10/2...
  • Mitch Diamond
    Fabulous! Thanks Rolando for providing the step-by-step instructions for us non-UNIX types. One problem: when I try to edit my Mac OSX address book contacts from within TB, it crashes the entire TB program every time. Not a big problem; I can edit it in Address Book normally, but should it work in TB? Perhaps an unrelated issue: following Rolando's prefs.js instructions, I set
    ldap_2.servers.osx.dirType: 1 as type string rather than integer. Could that make any difference?
  • Gunnar Grimnes
    I have another slight problem with this - the emails of some of my contacts (import from somewhere) have spaces on each side, this causes no problems for address book or for Mail, but in thunderbird they appear as name ...

    bugger :)
  • Celso K. Webber

    I'm wrinting this just to report that this build worked great for me! The instructions on the comments above worked OK in my environment (iBook G4, OS X Tiger, preivously running TB

    The only problem for me is that I cannot use this release together with:
    * localized menus and messages (Brazilian Portuguese);
    * my favourite Thunderbird extensions;
    * my localized spell checker.

    But the seamless integration with Apple's Address Book really impressed me!

    Now I can edit contacts in just one place. I really don't want to edit them from inside TB, but instead use the contacts from Address Book, from where I usually synchronize my Palm and my Cell Phone devices.

    Great work, I really hope this will become a standard feature or an extension in the future.

  • It worked for me on my iBook G4 in Australia.

    I used Peter's syntax and Rolando's procedure in comment #3 above.

    To be clear you can either edit prefs.js OR use Preferences > Advanced > edit
    to add the following keys

    user_pref("ldap_2.servers.osx.description", "OS X");
    user_pref("ldap_2.servers.osx.dirType", 3);
    user_pref("ldap_2.servers.osx.uri", "moz-abOSXdirectory:///");

    I also prefer the third option to not refer to a foo directory, but that's a personal choice I think
  • Rob
    I've installed the programme but can't see a third 'Address Book' option. What have I done wrong? (New user!)
  • Woo Hoo!

    I have been eagerly awaiting this day for 2 years! I just downloaded and installed your build and tweaked my prefs.js file per Peter's instructions in https://bugzilla.mozilla.org/s....

    And it works like a charm.

    Thank you SO much for all of your hard-work, efforts, diligence and perseverance! They are VERY MUCH appreciated.

  • Scott
    Will the patch apply on branch builds? I have tried w/oout success, but I may not be using the proper command. I can build trunk fine, but emails won't print. thx
  • As a follow up to my previous comment and our subsequent contacts, I like to confirm you that the plugged TB now works great also for me. Thank you for the online support.
    I think it's worth mentioning here that once downloaded, the program needs indeed some further hacking in order to work, as described by Rolando.
    I wonder why we can't just download the app and start playing with it.
    Is that a technical problem to overcome?

    Last but not least, your experiments with the mozilla source code made me want to try building something myself.
    As a matter of fact, I am posting this from my own "DeerPark" build... Nice.. ;)
  • Downloaded and installed, unfortunately it doesn't work out of the box for me.
    Have tried the setup suggested by Rolando but that doesn't work either.
    Could it be my Italian local not mathcing with the English-language build?
  • Works great! Finally my mail.app dependency days are over!
    One tiny problem, wheneven I send email I get a dialog saying something like "cannot open address book file zxc78s6td.default", i can just click ok though and everything works.

  • Rolando
    This is fantastic! Works well on my machine. Thanks to you and Peter. I have voted for the bug... what does "maybe blocker" mean?

    For timorous folks out there (like me), this is what I did...
    1. Downloaded the DMG above and opened it.
    2. Created a folder in Applications: "Thunderbird-Unofficial"
    3. Copy Thunderbird from DMG into that folder
    4a. From terminal, run
    $ /Applications/Thunderbird-Unofficial/Thunderbird.app/Contents/MacOS/thunderbird-bin -profilemanager
    4b. Create a new profile.
    4c. Launch thunderbird from there using the new profile. Ignore any bits about updating extensions, etc. Create a new (bogus?) email identity.
    5. Go to preferences-Advanced and click Advanced. Add the following entries (Ctrl-click and then Add-String):
    * ldap_2.servers.osx.description: OS X
    * ldap_2.servers.osx.dirType: 1
    * ldap_2.servers.osx.uri: moz-abOSXdirectory://foo/
    6. Close Thunderbird. Reopen. You should now be able to use the OSX address book (in addition to "Personal Address Book" and "Collected Addresses"). Your world is beautiful.

    The next time you use the current Thunderbird you'll have to specify your original ("default"?) profile by launching with the "-profilemanager" flag above. Apologies if any of the above is not kosher or harder than it needs to be--I'm just describing how I made it work.

    One problem: I tried to edit an address book entry through Thunderbird and it crashed, but that's an unnecessary feature, as far as I'm concerned. Might actually be better if it launched Address Book to edit the entries.

    Again, thanks.
blog comments powered by Disqus