What is copyleft?
Copyleft is one of the most important concepts when it comes to distributing free and open-source software (FOSS). Before elucidating what copyleft is, we need to take a step back and take a quick look at the general concept of free and open source software.
FOSS is known for the provision of certain fundamental freedoms to the end user. As per the definition established by the Free Software Foundation, there are 4 fundamental freedoms that a piece of software needs to provide in order to qualify as free software. These are:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3).
It is obvious from the above that the FOSS licensing model is characterized with several fundamental differences from the proprietary software model. First, the end user is free to make copies without having to ask for an authorization or pay any royalties to the rightholder. Second, the end user is also free to distribute these copies. Furthermore, the end user is free to modify the software and distribute those modifications, once again without the need for any authorization from the rightholder or the need to pay royalties for these acts.
It needs to be highlighted that the key prerequisite for all these freedoms that come with FOSS is the access to the source code. Without access to the source code, the 4 freedoms would be simply postulates on paper. It is the access to the source code that gives the end user the real opportunity to study how the program works, to change the program and modify it and create derivative works. Therefore, it should be noted that it is the access to the source code together with the 4 fundamental freedoms that provides the unique benefits presented by the FOSS licensing model and makes it a viable alternative to the traditional proprietary licensing model. A program is free software only if it provides the end user with access to the source code and the 4 freedoms. The word “free” here is used not in the sense of necessarily “free of charge” (although this is most often the case) but in the sense of freedom to use, copy, modify and distribute the software.
However, with some open source licenses there is a risk that the freedoms and the access to source code might be lost when a downstream distribution occurs. As can be seen from freedoms 2 and 3 above, the end user has the freedom to distribute copies of both the original and a modified version to others. In such a scenario, it is not difficult to imagine that an end user may decide to modify the software and license this modified version as a proprietary product and thus strip it of the 4 freedoms and make it closed source software for any of the potential downstream users. This would be in clear conflict with the core idea of free software and would make the concept of the 4 freedoms meaningless.
In order to avoid such a scenario, the copyleft mechanism was developed. Copyleft is a licensing mechanism which guarantees that the software will remain free and open source when a downstream distribution occurs. Copyleft ensures that anyone who redistributes FOSS software, irrespective of the fact if this is done with or without modification, has to further pass along the 4 freedoms and the access to the source code to any subsequent users. Therefore, it would not be possible for a middleman in the distribution chain to strip the FOSS software of the 4 fundamental freedoms or make it closed source. It is important to note here that the copyleft mechanism and obligations only apply when software is conveyed externally, i.e. outside of a company or institution.
In effect, the main requirement that the copyleft mechanism imposes on a potential user of FOSS software is that when a FOSS product is further distributed, the FOSS license to be used (for both the original program and any modifications) should be the same or compatible (i.e. equally protective) with the initial FOSS license. This requirement brings about a secondary effect that access to the source code (both for the original program and any modifications) cannot be revoked in a subsequent distribution. Thus, copyleft guarantees that FOSS and any modifications to it cannot be turned into proprietary closed source products and the downstream users cannot lose the 4 freedoms and the access to source code.
The direct effect of copyleft is that any immediate downstream developers may lose some of their freedom to operate with a FOSS product but at the same time the broader community of end users clearly benefits as the freedoms and the access to source code get passed to it.
Types of copyleft
There are two main types of copyleft licenses – strong copyleft and weak copyleft licenses. As the differences between the two may have significant practical impacts on software development projects, they are outlined below in more detail.
Strong copyleft – The effect of strong copyleft is that when a FOSS component is modified, the modified version should also be distributed under the same or compatible strong copyleft license with access to source code. Similarly, if a FOSS component under strong copyleft is included in a composed work with other software components, these other components should also be distributed under the same or compatible strong copyleft license with full access to their source code. This impact has caused some to label this phenomenon as the viral effect of strong copyleft – if other components are linked or connected to the FOSS component they also inevitably will be affected by the strong copyleft. This is a crucial point for any software development projects in view of the strategies that should be considered and employed. There should be clarity at the outset what FOSS components will be used in the project, what are their licenses and how they would impact the distribution of the developed product. It could very well be the case that the use of a single strong copyleft FOSS component might prevent the distribution of the whole product under a proprietary license and furthermore result in having to provide full access to its source code.
Weak copyleft – Unlike strong copyleft, the viral effect under weak copyleft is limited only to the FOSS component and does not spread beyond. This makes it possible that other components are added or linked to the weak copyleft FOSS component without them being affected. Therefore, these other components could still be redistributed under a different FOSS license or under a proprietary license as closed source software. This also means that a combined work can be distributed under a different FOSS license or under a proprietary license. The copyleft effect will impact only the original FOSS component or its modifications which need to be redistributed under the same or compatible FOSS license with access to the source code.
Examples of strong copyleft and weak copyleft licenses
The General Public License (GPL), which has 3 versions published so far – v.1 published in 1989, v.2 published in 1991 and v.3 published in 2007, is the classical example of a strong copyleft license. GPL v3 is a complex FOSS license that ensures that any modifications of free software and any works based on free software will be kept as free software under the same license when distributed. Thus, it creates certain risks for software development projects driven with the idea of commercializing the developed software and its use necessitates a careful legal analysis and prior risk assessment.
The Affero General Public License (AGPL) is another example of a strong copyleft license. It is based on the GPL license but includes additional terms that specifically deal with distribution of software over a computer network, i.e. software distribution in the cloud. One of the most popular databases for application development in the cloud era – Mongo DB, was licensed under the AGPL up until 2018.
A third example for a strong copyleft license is the European Union Public License (EUPL). It is the first European FOSS license created under an initiative of the European Commission. The purpose of the EUPL is to encourage public administrations in the European Union to embrace the use of FOSS and reap the benefits of the FOSS licensing model.
The best example of a weak copyleft license is the Lesser General Public License (LGPL). The LGPL is mainly used for licensing of FOSS libraries as it permits the use of those libraries in proprietary programs. A software library is a file, which generally consists of pre-written code, procedures, scripts, configuration data. Typically, a developer might add a software library to a program through linking in order to achieve additional functionalities for the program or to automate a process without writing code for it. Thus, the LGPL allows that a FOSS library is linked to another program, which could be proprietary, in a way that the program that uses the library does not have to be distributed under a LGPL license.
Other examples of weak copyleft licenses are the Mozilla Public License (MPL) which covers most of the source code for the Mozilla Firefox web browser and also the Eclipse Public License (EPL) which is used for the Eclipse Integrated Development Environment and other projects run by the Eclipse Foundation.