Copyleft is the hallmark of reciprocal licenses. A copyleft license allows anyone to use, study, modify, and redistribute the code (like any open source license) but requires that any redistribution of the code, or any works derived from it, be released under the same license. In essence, copyleft ensures that the code remains free and open in all derivative works.
There are different strengths of copyleft:
Strong Copyleft
A strong copyleft license applies to all derived works and in many cases even larger combined works that incorporate the copyleft code. The GNU General Public License (GPL) is the classic strong copyleft license. If you include GPL-licensed code in your software and distribute it, you must license your whole software under the GPL as well. This ensures that any program that uses GPL code becomes GPL itself when distributed, forcing source release of the entire combined work. The GNU Affero GPL (AGPL) is another strong copyleft license, with an extra condition for network use: if you run AGPL-licensed software on a server and users interact with it over a network, you must offer those users access to the source code of that software.
AGPL was created to close the “SaaS loophole” of GPL by treating network interaction similarly to distribution. In short, strong copyleft licenses impose broad requirements: any distribution (or SaaS use, for AGPL) of the software or any derivative must be under the same copyleft license, with source code provided.
Weak Copyleft
Weak copyleft licenses are more limited in scope. They typically apply only to the specific module or file that is under copyleft, not to an entire combined program. LGPL (Lesser GPL) is a weak copyleft license primarily for libraries. If you use an LGPL-licensed library in your proprietary software (for example by dynamic linking), you do not have to open source your entire software – you only have to ensure any modifications to the LGPL-covered library itself are released under LGPL, and that users can relink your program with a modified version of the library (which usually means providing object files or using dynamic linking). This allows LGPL libraries to be used in closed-source programs, satisfying the library’s authors that improvements to the library remain free while not “infecting” the whole program.
Another example of weak copyleft is the Mozilla Public License (MPL). The MPL applies on a file-by-file basis – if an MPL-licensed file is changed, the changes to that file must be released under MPL, but you can combine MPL files with proprietary files in a larger project. In summary, weak copyleft ensures that changes to the copyleft component itself stay open source, but it permits the copyleft component to be part of a larger proprietary or differently-licensed work without forcing the whole work to be open source.
Network Copyleft
This term usually refers to licenses like the AGPL mentioned above, which extend strong copyleft to software accessed over a network. The AGPL is often called a network-copyleft license because it closes the gap where someone could modify a GPL program and offer it as a web service without distributing the software (thus circumventing GPL obligations). AGPL says even in that case (where users only interact with the software as a service), the source must be offered to those users. This is important for web applications, where GPL alone would not compel source sharing if the software isn’t technically “distributed.”
Copyleft licenses can be thought of as “viral” by critics (though proponents prefer terms like protective or reciprocal). The idea is that the copyleft provisions propagate to derived works. For instance, if a proprietary program incorporates GPL code, that program must be released under GPL if it’s distributed – effectively, the proprietary license is not allowed to coexist with the GPL requirements. For this reason, license compatibility is a crucial consideration with copyleft. Not all copyleft licenses are compatible with each other either – e.g., you cannot mix GPLv2 and GPLv3 code in one program unless the GPLv2 code has an “or later” clause, because GPLv2 and GPLv3 have different terms (they are incompatible licenses).
Summary of Copyleft Types
- GPL (GNU General Public License) – strong copyleft. Any derivative or combined work distributed must be under GPL. Ensures downstream users get the exact same freedoms you did.
- AGPL (GNU Affero GPL) – strong copyleft with network clause. Same as GPL plus if users can use your modified software over a network, they must be offered the source.
- LGPL (GNU Lesser GPL) – weak copyleft. Meant for libraries. Non-(L)GPL software can link to LGPL libraries without becoming GPL, but changes to the library must be LGPL.
- MPL (Mozilla Public License) – weak copyleft at file level. MPL code and modifications stay under MPL, but you can combine with other files under different licenses in the same program.
- Other copyleft licenses: e.g. EPL (Eclipse Public License) is another weak copyleft (copyleft applies to Eclipse plugin modules, etc.), CDDL (Common Development and Distribution License) is similar (used by OpenSolaris; notably CDDL was incompatible with GPL which caused issues with ZFS and Linux).
Observation: LGPL is not “weak” in the same way MPL is, for example. Code from an LGPL project itself is fully reciprocally licensed at a project level. Any code borrowed from it for other uses as well as any alternative uses of the project itself are expected to be fully licensed under the same LGPL. Within the project itself, LGPL is “strong copyleft” just like GPL code, but the resulting executable does not necessarily have “strong copyleft” requirements – it’s effectively non-reciprocal in many uses. More details at: https://meshedinsights.com/2017/04/04/permissive-and-copyleft-are-not-antonyms/

