Boot2Gecko/Licensing

From MozillaWiki
Jump to: navigation, search

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 among the rights you are granted 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 granted 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 Boot2Gecko 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 permitted for you to impose a EULA of your own on the use of those binaries. However, you should consult the open source licenses to see what restrictions they place on the terms of such a EULA. For example, it is often specified that the EULA cannot abrogate or restrict any rights the user may have, e.g. to source code, which are given by the terms of those open source licenses.

Open Source Licenses

With all of that in mind, the following licenses cover code included somewhere in Firefox OS:

All parts of Firefox OS also contain many files under what are called "permissive licenses" - licenses like the MIT license or the 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 version in the latest development 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 the phrase "All advertising materials". Note that advertising clauses referring to the following people or organizations have been waived and so may be disregarded:

At the time of writing, the remaining clauses referred to:

  • Mark Brinicombe
  • Brini
  • The OpenSSL Project
  • Eric Young (eay@cryptsoft.com)

The effect of such clauses depends on how you interpret the words "mentioning", "features or use", and "this software". 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. However, to assist in interpreting "this software", Mozilla's reading of the code suggests that the former two clauses refer to a small section of code which adds ARM architecture support to the built-in C library (an unlikely subject for advertising) and the second two refer to the "OpenSSL" library which, in Firefox OS, is used solely for connecting to secure WiFi networks. (That is, it's not used for browsing secure websites - Mozilla's NSS library is used in that case.)

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.

License Compliance

If you are shipping a device running Boot2Gecko/Firefox OS, we advise that you should:

  1. Make sure your EULA, if you have one, complies with the requirements in some of the licenses about what it should say, and that it does not attempt to restrict the recipient's rights e.g. to source code that some open source licenses grant.
  2. Make sure your advertising strategy either complies with or avoids triggering the conditions of the BSD advertising clauses mentioned above.
  3. Make sure you are shipping the copy of the Open Source Licenses page in the Settings app which matches the code you are using. (If you add code to Boot2Gecko from elsewhere which is under a different open source license, and which is not part of an app which has its own licensing information screen, you may wish to augment this page.)
  4. Supply a copy of all of the open source code, either on the device itself or on an accompanying CD.

Supplying source code 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, and shipping only those. But we suggest it is probably easier to ship everything, if it will fit on your CD or device.

You may also choose not to ship the source with the device. However, if you don't 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. You must offer the CD option as well. So perhaps it is easier to simply ship the source code with the device.

There is a page in the Settings app, next to the "Open Source Licenses" page, called "Obtaining Source Code". You should update this page to point to the place where you have supplied source code (on the device, on a CD or on the Internet).