When it comes to software, open source is an interesting and sometimes complex topic. Yet open source software has a huge number of benefits, which can be leveraged in different ways depending on your approach.
The best way to ensure that you gain the greatest benefits for your given scenario is to ensure that you have a thorough understanding of the options you should consider. In this article, we explore the different types of open-source software licences and what they mean.
What Is Open Source Software? Why Do I Need a Licence?
Before we dive into the details of the different open source software licences, let’s first answer the question what is open source software. Although we could easily go into the technicalities, it can be explained simply in the following way…
Typical software is closed source. This means its source code is kept secret and is protected by the original developer of the software. Open source takes a different approach, allowing anyone to access and edit the source code.
However, open source isn’t just a free-for-all - the original developers will want to ensure that their software is accessed and developed in a responsible way. This is where licences come in. They outline exactly how external developers can use the open source code.
Types of Open Source Licences
There are two main types of open source software licences available: Copyleft and Permissive. We explore what these are and what they mean in more detail below.
Copyleft is a common type of licence that you will find attached to many open source software. This license requires that any software that is derived from the original software must follow the same licence terms. In practice, this means that a standardized licence can be applied across the open source software and any associated software, add-ons etc.
The term is purposefully similar (yet opposite) to copyright. Where copyright seeks to protect copyrighted material from being used by others, copyleft seeks to offer freedom of the use of materials.
The most popular/common copyleft licences include:
- GPL - General Public Licence - When you distribute under the GPL licence you must make all source code available
- AGPL - Affero GPL - The same as GPL, but also stipulates that all source code must be shared even when the software isn't distributed, such as when it is available via a network
- LGPL - Lesser GPL - Similar to GPL and AGPL, except smaller projects accessed through larger projects do not require distribution of the larger project
- WPL - Eclipse Public Licence - Allows all software types (including proprietary software) to be combined, as long as non-EPL elements remain independent as separate modules
Permissive licences allow developers flexibility over how they reuse, modify and distribute software. Common permissive licences include:
- MIT Licence - Anyone can do what they want with the code, but the original copyright and licence notice need to be distributed with any software using it.
- Apache Licence - Larger projects, modifications and derivative works are allowed to carry different licencing terms.
- Berkeley Source Distribution Licence - preserves licence notices, but like the MIT licence allows larger projects to be distributed without source code. It also allows projects to be distributed under different licence terms.
- Unlicenced - The source code is open to the public domain with no conditions
It is clear that there are a lot of different licences to consider when it comes to open source software. Although open source is all about offering others access, each licence offers the original developer a different approach to sharing their code with the world.
Those that use open source software need to be fully aware of the type of licence they are using to ensure they do not breach that licence in any way.