On 14 November 2016 Pycom made its source code publicly available under a GPLv3 compatible Open Source Licence. Here are some frequently asked questions that may help understand more about the licence and what it means.
What is an Open Source GPL Licence?
The GNU General Public License (GNU GPL or GPL) is a widely used free software license, which guarantees end users the freedom to run, study, share and modify the software. The GPL is a copyleft license, which means a derivative work can only be distributed under the same license terms.
What does the GPLv3 Licence cover?
The GPLv3 licence covers all Pycom’s source code that runs on Pycom’s boards. It does not cover Pycom hardware which remains proprietary.
What are the restrictions of the GPLv3 Licence?
Essentially, we’re releasing the code under GPLv3, but we are leveraging the ability under that licence to require people distributing the code to retain fairly comprehensive licensing, attribution and disclaimer notices.
Anyone will be able to take the code and use it in conjunction with boards that are not genuine Pycom branded. However, if you do so, and distribute the boards to third parties, you will be subject to extensive notice requirements.
Why did Pycom opt for GPLv3?
We wanted to give every developer using our boards the opportunity to do exactly what they want with the boards and source code. Doing so, however, we need to retain some ability to continue protecting Pycom’s commercial interests which amongst others include funding development of new boards as well as the free tools and solutions we’re making available too. To protect the community against manufacturers who configure boards to only accept specific firmware, even if they otherwise technically comply with the requirements of the GPL, we opted for GPLv3, which has specific provisions against ‘TiVoisation’. We have opted for GPLv3 ‘or any later version’, (‘GPLv3+’) so that if the Free Software Foundation releases future versions of GPL (there is none in the pipeline at the moment), the software will automatically be made available under that version as well, and you can choose which version you want to apply to the code you are using. We may relicense future version of the code under a different licence (e.g. GPLv4).
Does the GPL require that source code of modified versions be posted to the public?
The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This also applies to companies. A company can make a modified version and use it internally without ever releasing it to third parties or outside of the company.
But, if you release the modified version to the public in some way (including compiling the code and embedding it in firmware of a device, and then selling the device), the GPL requires you to make the modified source code available to the open source community. The GPL also allows you to distribute software under the GPL privately to another individual or company, provided that the recipient is also provided with appropriate access to the source code, but in that case, there is no way to prevent the recipient from releasing the code to the public in general (or any other third party) if they wish to do so (and that release will, of course, be under the GPL).
What compliance is there for the source code users?
We’ve written about compliance here: www.pycom.io/compliance and we are writing a specific document to explain it better. We’ll post the document on the compliance page as soon as it’s ready.
How do I contribute source code?
What is a Contributor License Agreement?
Contributions to our software are accepted under the terms of the Pycom Contributor License Agreement, based on the Apache 2.0 contributor license agreement (CLA), the license being in favour of Pycom Limited.
Signing the agreement means you allow Pycom and to our open source community recipients a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your contributions and any derivative works. This allows Pycom to include your code in future releases of the software, and to license it under GPLv3 and/or other licences at our option. Note that you retain all rights in the code you contribute yourself, so are under no restriction in relation to your own use or exploitation of that code (other than granting an exclusive licence to someone else).
If you want your company to be able to contribute to the project as a whole, rather than as individuals, please contact us and we can provide you with a corporate licence agreement as an alternative.
What do I need to do if I want to develop a commercial product using the Pycom source code?
You can absolutely do that. You are allowed to sell products that use the code covered under the GPLv3 Licence but only under the terms of the Licence meaning that you have to make the source code available to recipients of the product (which in practice usually means to the community at large) under GPLv3+ which means the recipients must be allowed to redistribute and modify it as described or alternatively you have to get a private licence from Pycom.
What if I don’t want my product to be open source?
If you do not want to contribute your code back to the community, it is possible to get a private version of the software but this can only be granted by Pycom.
Typically, there are two scenarios:
- If you are using a genuine Pycom development board such as WiPy, LoPy or SiPy you are good to go to your heart’s content. There are no licence fees for the use of source code under the GPLv3, provided, of course, that you comply with its terms. You can also take advantage of the waiver that we grant you to relax compliance with attribution requirements. For more information, see https://www.pycom.io/wp-content/uploads/2016/11/OPENSOURCE-Pycom-Licences-v1_FINAL.pdf
- If you are not using genuine Pycom hardware, there are a number of obligations set out in the terms of the Licence. You will also have to comply with extensive attribution and notice requirements, which include the requirement to implement code in your version of the software to provide all users of your hardware with attribution and licensing information through your user interface. We are able to provide waivers for this requirement on a case-by-case basis on request. Please feel free to contact us if you would like more information, or to discuss terms on which a waiver may be granted.
All the terms are laid out in the Pycom GPLv3 terms available at [https://www.pycom.io/wp-content/uploads/2016/11/OPENSOURCE-Pycom-Licences-v1_FINAL.pdf] and if in doubt as to what this means please get in touch with us at [email protected]
Does the GPL allow me to distribute copies under a nondisclosure agreement?
No. The GPL states that anyone who receives a copy from you has the right to redistribute copies, modified or not. You are not allowed to distribute the work on any more restrictive basis: the GPL explicitly outlaws any attempt to apply restrictions to recipients in this way.
If someone asks you to sign an NDA for receiving GPL-covered software copyrighted by the FSF, please inform the FSF by writing to [email protected]
If the violation involves GPL-covered code that has some other copyright holder, please inform that copyright holder, just as you would for any other kind of violation of the GPL.
Any additional questions can be sent to [email protected]. We will be updating this document accordingly.