Boot2Gecko/Licensing: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
{{draft}}
{{draft}}


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.
We are often asked for a list of all the [http://www.gnu.org/philosophy/free-sw.html free/libre]/[http://opensource.org/docs/osd 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.
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.
Line 7: Line 7:
==Background==
==Background==


[http://www.gnu.org/philosophy/free-sw.html Free/libre]/[http://opensource.org/docs/osd 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:
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.
* Use of the software for any purpose is unrestricted.
Line 16: Line 16:
===EULAs===
===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.
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 legal 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 guaranteed by the terms of those open source licenses.  


==Open Source Licenses==
==Licenses==


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


* [http://www.mozilla.org/MPL/2.0/ Mozilla Public License 2.0] - the main license for Gecko
* [http://www.mozilla.org/MPL/2.0/ Mozilla Public License 2.0] - the main license for Gecko
Line 28: Line 28:
* [http://www.eclipse.org/org/documents/epl-v10.php Eclipse Public License 1.0]
* [http://www.eclipse.org/org/documents/epl-v10.php 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 [https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/resources/open_source_license.html Open Source Licenses] page (that link is to the latest development version of the code).
All parts of Firefox OS also contain many files under what are called "permissive licenses" - licenses like the [http://opensource.org/licenses/MIT MIT license] or the [http://opensource.org/licenses/BSD-3-Clause 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 [https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/resources/open_source_license.html Open Source Licenses] page (that link is to the version in the latest development code).


==='Advertising Clause'===
==='Advertising Clause'===
Line 38: Line 38:
   This product includes software developed by <AUTHOR>.
   This product includes software developed by <AUTHOR>.


You can find the applicable advertising clauses by searching the [https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/resources/open_source_license.html 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:
You can find the applicable advertising clauses by searching the [https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/resources/open_source_license.html 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:


* [ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change University of California, Berkeley]
* [ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change University of California, Berkeley]
Line 44: Line 44:
* Eric Rescorla for RTFM, Inc. (waived only for files included in Boot2Gecko/Firefox OS)
* 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.
At the time of writing, the remaining clauses referred to:


==Proprietary Licences==
* Mark Brinicombe
* Brini
* The OpenSSL Project
* Eric Young (eay@cryptsoft.com)


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.
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.)


==How Do I Comply With These Licenses?==
==License Compliance==


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


# Make sure your EULA, if you have one, complies with the requirements in some of the licenses (e.g. EPL 1.0 section 4) 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 guarantee.
# Make sure your advertising strategy either complies with or avoids triggering the conditions of the BSD advertising clauses mentioned above.
# 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.
# 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.)
# Supply a copy of all of the open source code, either on the device itself or on an accompanying CD.  
# 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.
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.  


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 [http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#DistributeWithSourceOnInternet 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.
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 [http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#DistributeWithSourceOnInternet 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?
XXX provide appropriate commands for extracting this without history from hg/git? Need to warn that telling people how to get it from Mozilla may not be sufficient.
Account confirmers, Anti-spam team, Confirmed users, Bureaucrats and Sysops emeriti
4,925

edits