I hope everyone is doing well.
After struggling for so long, I’m happy to announce that I’ve pushed the Updates server to live. While I (and others) have tested against our installed versions, with the user base so broad, it’s difficult to find the edge cases. Hopefully this will help us improve the updates server.
So updates are now being served with the following caveats:
- versions <= 2.49.5: are unfortunately not supported. The main rationale for this is the fact that the changes from <= 2.49.5 to 2.53.* could corrupt client data. [*][**]
- 2.53.1 -> 2.53.4: These version still use the old aus2-community.mozilla.org domain. A simple user.js addition can fix this. That said, this domain will be decommissioned (not under our control, but I’m guessing this will be an eventuality). So when it does gets decommissioned, all versions <= 2.53.4 will be getting server not found or some such similar notice on the Update dialog. While the user.js changes can fix it until the client is updated, it’s the only workaround.
- 2.53.x: are not affected and can be updated but with the following sub-caveat:
- 2.53.7, en-US/zh-TW: Due to a build issue, the en-US client would request zh-TW updates, which it would have gotten and thus confusing the user. Workaround: Manually update to 22.214.171.124 to get the update to 2.53.8… or just install 2.53.8. Again… this applies *only* to 2.53.7 and to locales en-US and zh-TW. All other locales are unaffected.
[*] – Manual update is still possible (provided that your operating system is supported. Please *always* backup your profile. While it is possible to use the same user.js to get clients to use the new update server, versions <= 2.33 won’t actually recognize the new server due to the Certificate trust issues. Unfortunately, this can’t be helped and it is impractical to fix (especially given the small group we have at SeaMonkey central).
[**] – Technically speaking, it is possible to get the update served for at least versions >= 2.38. (Anything less is not possible due to certificate trust issues and updating these clients’ certificate info has come to the stage of being ‘impractical’ given our resources.) That said, while it is technically possible, it might just well be infeasible/impractical (again, given the resources we have). To be honest, I’m not happy about this myself; but realistically speaking, we all have only so much time to spend on this project. I feel this might be considered a cop-out/excuse.
I had the original intention when I first started the updates server project to update every (yes.. I mean *every* — incl. 1.x) single SeaMonkey version to the latest(depending on OS support); but as I mentioned before during my update investigations, it isn’t possible.
I’ll summarize here:
- 1.x and 2.0.x are no longer supported (doubt anyone can support these versions.. not even sure the code can compile on modern-day computers w/ modern day compilers.. but.. having not compiled anything lately… I could be wrong).
- Versions <= 2.33 have issues with certificate trust so they can’t even connect to the new update server without given you an “Untrusted connection issue”, if and when you use the user.js changes to point the clients to the new update server.
- 2.49.1 – 2.49.5: These can be updated to 2.53.8 but require the following:
- a special update package due to the change in update format which upgrades the 2.49.5 to 2.53.1, which can then upgrade to 2.53.8.
- user.js changes/additions.
- OS-supported. 2.49.5 is the last version that supports <=XP and <=OSX10.8
- 2.53.1 – 2.53.4: Need a change/addition to user.js to update to 2.53.8 due to server change.
On the page, it looks simple and one may wonder why the hell can’t we update anything we want to the latest and greatest(again, OS dependent). I can tell you it isn’t without trying. I know that’s not saying a lot really. Since I’ve been struggling with this for so long, I sometimes wonder if someone else might do a better job… and I think someone can. The project just needs to find that someone. In the meantime, I’m continually plugging away at this.
My next project is the crash reporter server. (Context-switching is difficult.) Hopefully, once that’s out of the way, I can go back and help out with the code.
Anyway, I’ve written a lot this time, and I do appreciate everyone’s patience (especially, my fellow devs).
It’s been very tough on everyone lately due to the pandemic so I hope everyone is keeping safe and healthy.