Boot2Gecko/Licensing
We are often asked for a list of all the free/libre/open source software licenses associated with Boot2Gecko/Firefox OS. This page attempts to answer that question, and related ones. While Mozilla attempts to provide guidance on these questions in an effort to be helpful, you need to take full responsibility for your interpretation of and compliance with open source licensing terms.
Note that if you are a Firefox OS user, there is no need for you to read or agree to any of the open source license agreements. Complete freedom to use the covered software is guaranteed by all open source licenses. However, the vendor of your device or third party software providers may require your acceptance of some of their agreements.
Background
Free/libre/open source licenses have certain things in common, which qualify them for that designation. Among the rights that you are guaranteed when receiving such software are:
- Use of the software for any purpose is unrestricted.
- Distribution of the code or binaries to others is unrestricted.
Therefore, unlike most proprietary licensing, you can be sure that none of these licenses will restrict what you can do with the software, or who you can give it to. And if you get it from us, there will never be charges associated with it. It is also therefore true that you do not need an agreement with Mozilla to manufacture or ship a device which uses the Boot2Gecko code. Note, however, that Mozilla retains all rights to its trademarks, including but not limited to "Firefox OS" and the associated logos. Therefore, you need an agreement with Mozilla in order to ship a "Firefox OS" device or one which uses the Firefox or Mozilla name or branding.
EULAs
Because there are no restrictions on what the software can be used for, open source licenses are not EULAs (End User License Agreements). There is no need to present them to users for their 'acceptance', and Firefox OS does not do so. For code under some open source licenses (e.g. the MPL), it is acceptable for you to license binaries you have compiled yourself under different terms, and so it is legal for you to impose a EULA of your own on the use of those binaries. However, that EULA cannot abrogate or restrict any rights the user may have, e.g. to source code, which are guaranteed by the terms of those open source licenses.
Open Source Licenses
With all of that in mind, the following open source licenses cover code included somewhere in Firefox OS:
- Mozilla Public License 2.0 - the main license for Gecko
- Apache Public License 2.0 - the main license for Gaia
- GNU General Public License 2.0 - the main license for the Linux kernel
- GNU Lesser General Public License 2.1
- Eclipse Public License 1.0
All parts of Firefox OS also contain many files under what are called "permissive licenses" - licenses like the MIT license or BSD license. These licenses have no standard text, and so come in a large number of similar variants. With the exception of one occasionally-found clause (see below), most authorities judge all the variants of one of those licenses to have equivalent legal effect. You can see the full list of variant forms on the Open Source Licenses page (that link is to the latest development version of the code).
'Advertising Clause'
Some variants of the BSD license have an 'advertising clause', which runs something like the following:
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by <AUTHOR>.
You can find the applicable advertising clauses by searching the Open Source Licenses page for "All advertising materials". Note that advertising clauses referring to the following people or organizations have been waived and so may be disregarded:
- University of California, Berkeley
- The NetBSD Foundation
- Eric Rescorla for RTFM, Inc. (waived only for files included in Boot2Gecko/Firefox OS)
You should consult your lawyers regarding the interpretation of such clauses and what effect, if any, they should have on the advertising strategy of you or your partners or distributors.
Proprietary Licences
All source code which is part of the Boot2Gecko project is open source. However, in order to ship a device, may need to acquire and ship e.g. proprietary hardware drivers supplied by the chipset manufacturer of your hardware. Compliance with such licenses is out of scope for this page.
How Do I Comply With These Licenses?
If you are shipping a device running Boot2Gecko/Firefox OS, we advise that you should:
- Make sure your advertising strategy either complies with or avoids triggering the conditions of the BSD advertising clauses mentioned above.
- Make sure you are shipping an up-to-date copy of the Open Source Licenses page in the Settings app. Unless you add code from elsewhere under a different open source license, the copy you get from the Boot2Gecko repository should be correct and up-to-date.
- Supply a copy of all of the open source code, either on the device itself or on an accompanying CD.
This is not required for all open source licenses - some licenses require all the source, some only require the source to changes you have made, and some don't require you to ship the source at all. So you do have the option of working out which parts it is required for and which parts it is not required for. But we suggest it is probably easier to ship everything, if it will fit on your CD or device.
If you do not ship the source with the device then, at least for the parts under the GPL, you will need to set up a mechanism for sending CDs to anyone who asks for them (see section 3 b. of the GPL version 2). You can also offer the source code for download at a URL, but according to the Free Software Foundation, creators of the GPL, this by iself is not sufficient to meet the requirements. So perhaps it is easier to simply ship the source code with the device.
XXX provide appropriate commands for extracting this without history from hg/git?