What do these terms mean, how do they relate to Open Source Software and why are they important in Software Development?
I expect we’ve all heard, and know at least a basic definition, of Copyright. It is used widely to protect the owners of any type of Intellectual Property (IP) from that IP being stolen, copied or used in any way without permission.
Copyleft though, is not such a common term, and one you may never have heard, yet it is something that we are being asked about increasingly frequently by our clients.
Important questions about the use of copyleft in our custom software development have come up in recent discussions when signing the contract with a new client, a new client who we are now building the cloud backend of a B2C IoT mobile app for, which will be used by tens of thousands of users concurrently. We’ve also been asked for more information on “the copyleft effect” from an existing client, who was looking to answer the due diligence questions of a big new client they were hoping to land. So you can see that it is an important subject, with far reaching impact and why we need to be experts on it. Happily, we were able to give them both a thorough explanation and answer all their queries.
So we thought now would be a good time to take a deeper look at its meaning and explain why it is important you, and whatever development team you engage, understand the ramifications before embarking on a software development project.
First of all, let’s take a look at the meaning of copyleft. It is a legal technique that also relates to IP, but rather than being used to protect IP from being copied, it is instead used to ensure that any work that is copied and distributed is done so following specified requirements. It allows others the freedom to use the work, including to modify, copy and distribute it, as long as the rights as specified are preserved in any derivative work.
So why is the concept of copyleft increasingly important to understand in the field of Software Development? This is because of the implications of using Open Source software, which makes use of these copyleft licences.
Open Source Software is very much what it says on the tin, it’s software that is free, or open, for use by developers in any project. It is a phenomenal resource, and one that has become an integral part of product development for all custom software development teams such as ours. It allows all developers access to technology of a very high-quality that has been reviewed and modified by others. In the past software developers primarily relied on proprietary code, but this has been shifting over time and now open source makes up around 90% of the components in application software. So, as a custom software development company, we make use of open source software in all our projects and you will find that pretty much every other developer on the planet will do the same.
Not all Open Source Software is created equal though, when it comes to the licences that are applied to them and the restrictions that are imposed by copyleft. Some open source software has ‘weak’ copyleft requirements and others ‘strong’ copyleft. If an open source software’s licence only affects the original work, and allows relicensing under different licences, this is known as weak copyleft. Where there is a requirement that source code must keep exactly the same licence or be relicensed again under the another strong copyleft licence, this is known as strong copyleft.
Additionally, software licences have different levels of permissiveness. If a licence is ‘permissive’, this means that the open source work can be mixed with closed source or permissive licences. If a ‘strict’ licence applies, that is not allowed.
So, to the key question, can you use Open Source software in your bespoke software development project and what are the implications of doing so? The short answer is yes, you can use it, as long as you and your developer understand the requirements of the specific licence and your developer makes sure that they comply with them.
Unlicenced software comes with significant risks, so shouldn’t be used. All the known names in the open source market licence their software, with many of them using the same licence types. There are currently over 100 licences that have been approved by the Open Source Initiative, each of which provides the exact details of what they allow you to do with their software. It’s key to look out for levels of permissiveness and obligations associated with any software that you wish to use.
.NET and React are two of the main players in our tech stack and key to the customer software development work we do and both of them have copyleft applied. They both use a MIT licence, which is a permissive licence which does not impose any limiting conditions. It is a “weak” licence, meaning that it only affects the original work and derivations can be relicensed. As a permissive licence, there are no restrictions on use, as long as the copyright notice is kept when distributing new versions. There are no implied warranties in the licence and it is very short and simple to understand.
Other notable open source projects that use the MIT licence are jQuery, Node.js, Babel and Ruby on Rails. It is a frequently used licence that continues to grow in popularity. Other licences that are similarly permissive include the Apache 2.0 and the BSD licence.
For those developers building open source code projects, such permissive licences allow them to quickly and easily licence their project and encourage companies to use their work. Permissive licences are also much more appealing for those who are looking to create a commercial application, there is no jumping through tricky compliance hoops and these licences allow them to keep any significant code changes private. Open source projects that apply a strict copyleft licence require users to share their code in the same way that the original code has been shared, which is unlikely to be an appealing option for a commercially sensitive project.
Hopefully this blog has given you a good overview of the topic of copyleft and answered any questions that you may have had about how to make use of open source software in your project. The key thing is to make sure that you are working with a custom software developer that understands the subject and can assure you that they will comply with all the requirements, which is something that we can promise at AVAMAE. It is not a daunting task for those who understand the subject, but it is important that knowledge exists, as where it doesn’t there is the real possibility of falling foul of licencing requirements. We’d love to chat to you about how we might use open source software in your project, and all other things software development. Give us a call on +44 (0) 20 3855 0690 or fill out our website form here.