Hi folks,
I’m Ben and I’m Release Engineering at Mozilla. Among other things, I work on our update system and I’m currently in the process of enabling full support for Mozilla-built FirefoxOS builds.
Giovanny was asking me about updates a bit, so I thought it might be helpful if I chimed in here.
First of all, as others have said, it’s not possible for Mozilla (the company) to host builds with Gonk or other low level bits in them. I am not a lawyer, but I’d also suggest that it’s not a good idea for anyone in the Mozilla Community to do so either - those bits are legally protected in many ways. Hosting them would open you, and possibly Mozilla, to legal ramifications. Maybe some day we’ll have a device whose software is fully redistributable - but we’re not there yet. With that in mind, I’m going to continue on on the assumption that we’re only talking about gecko+gaia updates.
To provide updates you need two things:
- MARs, and a place host them. These are the files that contain gecko+gaia. They are built as part of the B2G build process and often device-specific. Most of the Mozilla-created MARs are still hosted on a private server, but I’m working to move the gecko+gaia MARs to ftp.mozilla.org. This is already happening for Flame builds.
- An update server (“AUS”). The update server contains metadata (file size, checksum, URL, et. al) about the MARs. Clients (eg, FirefoxOS) talk to it periodically. The update server decides, based on the request URL, whether or not the client should receive an update. If it should, it serves back a specially constructed XML file that points the client at it. Mozilla’s primary update server is aus4.mozilla.org.
For the MARs, I think it’s likely that Mozilla can provide hosting in some way. I can’t promise this, but I can certainly make sure such a request gets looked at by the right people.
For the update server, the frequency at which you’re providing updates will play a factor in what the best solution is. If you’re doing nightly updates, you’ll definitely want an installation of our update server, Balrog (https://wiki.mozilla.org/Balrog). If you’re providing updates much less frequently, I’d advise against something like Balrog and suggest using static files instead. Maintaining a full Balrog install will not be a trivial matter, so unless absolutely necessary I’d advise against it.
I hope that helps. I’ll do my best to reply to follow-ups in this thread.