Much has been written about Mozilla trying to force people to use their new sync service. If, like me, you run your own sync server for Firefox, you’ve mostly been ignoring this because there’s still no real way of running your own sync server for the new service (and if you simply keep upgrading, Firefox keeps working with your old server).
However, recently I had cause to want to connect my old sync server to a new installation of firefox without just copying over all the config files (one of the config settings broke google docs and I couldn’t figure out which one it was, so I figured I’d just blow the entire config away and restore from sync). Long ago Mozilla disabled the ability to connect newer Firefoxes to an old sync server, so this is an exposé of how to do it. I did actually search the internet for this one, but no-one else seems to have figured it out (or if they have, they’re not known to the search engines).
There are two config files you need to update get new Firefox to connect to sync (note, I did this with Firefox 37; I’ve not tested it with a different version, but I’m pretty sure it will work). The first is that you need to put your sync key and weave user login into logins.json. Since the password and user are encypted in this file, the easiest way is to use a password manager extension, like Saved Password Editor add on. Then you need two new password entries of type “Annotated” under the host chrome://weave. For each, your username is your weave username. For the first, you’re going to add your weave password under the annotation “Mozilla Services Password”. For the second, add the Firefox key with all the dashes removed as the password under the annotation “Mozilla Services Encryption Passphrase”. If you’ve got all this right, password manager will show this (my username is jejb):
Next you’re going to close firefox and manually edit the prefs.js file. To sync completely from scratch, this just needs three entries, so firstly strip out every preference that begins ‘services.sync.’ and then add three new lines
user_pref("services.sync.account", "<my account>"); user_pref("services.sync.serverURL", "<my weave URL>"); user_pref("services.sync.username", "<my weave user name>");
For most people, the account and weave user name are the same. Now start Firefox and it should just sync on its own. To check that you got this right, go to the Sync tab of preferences and you should see something like this
And that’s it. You’re all done.