Wallet dies – Thunderbird and SeaMonkey switch to Toolkit’s Password Manager

For too long now (since somewhere around April/May 2008 at least) I have had the task of switching MailNews from the old password manager code (known as wallet) to use the newer code in toolkit that Firefox has been using for a long time now.

Finally, the day has arrived for this to get pushed to the tree – the patches have now all landed, although we do have one final change to do which is to stop pulling the wallet cvs directory into the source tree when we do a pull.

What does this mean for Nightly Testers (and users when we release)?

Hopefully no-one will notice the difference, except for a few bug fixes and revised preferences display. However, as always (especially for nightly testers) it is recommended that you keep backups your profile.

What happens if I use the same profile on wallet and toolkit versions of Thunderbird/SeaMonkey?

When one of the applications with toolkit’s password manager is first run, it will create two new files in your profile directory, signons3.txt and signons.sqlite. signons3.txt is an unfortunate artefact of the upgrade. signons.sqlite is the file the toolkit’s password manager will actively use.

If you subsequently go back to a wallet version, then it will use signons.txt and store any changes to your passwords in that file. These changes won’t get picked up in the toolkit password manager version. Likewise, if you save passwords in the toolkit version, then they won’t get into the wallet version.

Why have we made the switch?

  • Provides the same interfaces as Firefox – making it easier for extensions to work across our applications.
  • Drops the old wallet password manager code which was virtually unmaintained and complicated.
  • Increases code sharing (and string sharing for localisers).
  • Moves Thunderbird and SeaMonkey slightly closer to being xulrunner based applications.
  • Helps to fix some bugs, and should make it easier to fix some others.

I’ve got a problem with the new password manager that I didn’t have with the old one, what should I do?

Although we now have lots of unit tests for various bits of the mailnews code relating to getting saved passwords and communicating them to servers, and whilst I really do hope there won’t be any new bugs, I won’t be surprised if there are some. Here’s what you should do:

  • Confirm the bug isn’t in a previous version of Thunderbird.
  • Check for duplicates
  • File a bug. We’ll need to know: the format of your username/hostname and if they have any special charaters. We may also need: a protocol log.

comm-central defaults changed to follow mozilla-1.9.1 branch

Now that mozilla-central has created a mozilla-1.9.1 release branch, we’re updating the comm-central build system to build mozilla-1.9.1 by default.

Here’s a little Q and A that I hope should answer most questions.

Q. Why are we doing this?

A. The next versions of Thunderbird and SeaMonkey will be shipped from Gecko 1.9.1 (which Firefox 3.1 will be shipped from), we need to modify our build system to move everyone onto the Gecko 1.9.1 branch (mozilla-1.9.1).

Q. Why is comm-central not branching?

A. The work and time remaining for Thunderbird 3, SeaMonkey 2 and Sunbird/Lightning is significant enough that we consider branching at this stage to be too early. We will be branching closer to the release. This will save some management of two individual branches.

Q. What happens to current build my repositories?

A. We will be updating client.py. Once you pick up that update, the next time you run client.py it will:

  • Move your existing mozilla/ directory to .mozilla-trunk
  • It will clone a new mozilla/ directory from .mozilla-trunk (so that you don’t need to download all of the mozilla-1.9.1 repository)
  • It will then make your new mozilla/ directory pull from the mozilla-1.9.1 release branch.

Q. What happens to building with mozilla-central trunk?

A. At the moment maintaining comm-central with mozilla-central trunk builds is very low priority. To start with, there will be no comm-central with mozilla-central tinderbox coverage.

We’d like to keep up with current developments so that we don’t stray too far, however the priority is for us to ship the next versions of Thunderbird/SeaMonkey from the mozilla-1.9.1 branch.

We’ll be posting more on how we’re going to manage mozilla-central trunk builds soon.

Q. I want to stick with mozilla-central trunk, how do I do this?

A. If you’re pulling a new mozilla/ tree then you can do:

python client.py checkout –mozilla-repo=http://hg.mozilla.org/mozilla-central/

Otherwise, you can manually pull mozilla-central or mozilla-1.9.1 into the mozilla/ directory.

We’ll be adding additional command-line options later.

Q. What happens to locally-cloned mozilla-central repositories?

A. These will still pull from their original locations. You’ll probably want to update their current pull locations and/or check they are pulling the correct code.