Open source licenses are all different, but they are often categorized according to an important attribute. Some open source licenses implement a clever hack invented by Richard Stallman where as a condition of the copyright license, anyone creating derived versions has to agree they will license the new version the same way as the original. In a play on words, this concept is called "copyleft."

In its strongest form, this "copyleft" idea can place a condition on the licensing of all the other code compiled together to make the eventual binary executable program. Complying with this requirement can be complicated (and expensive); as a consequence, many commercial software developers avoid the strongest forms of copyleft licensing.

There are less stringent forms of copyleft. Licenses like the MPL (Mozilla Public License) and the CDDL (Common Distribution and Development License) only require individual files that are modified to be licensed under the same license as the original and don't extend that requirement to other files used to build the executable. This is sometimes called "weak copyleft."

In discussing these licensing approaches with clients, I've often found that these terms "strong copyleft" and "weak copyleft" lead to misunderstandings. As a consequence, I prefer to use different terms.

Instead of "copyleft," use "reciprocal licensing"First, I try to address the complexity introduced by the clever, often unfamiliar term "copyleft." Instead of that term, I explain that the communities involved have norms based of reciprocal behavior: Do as you would be done by. Leading licensing specialist Eben Moglen (key co-creator of the modern GPL) explains that open source licenses embody the norms of the communities that use them. They are the "constitution of the community."

They use this copyleft concept in their licenses to embody the expectation of reciprocity by community participants. I refer to this aspect of the license as "reciprocal licensing" in an effort to acknowledge the use of copyleft to express the community expectation of reciprocity. I've found this term leads to less confusion.

Instead of "strong" or "weak" copyleft, describe the reciprocitySecond, I have found that the terms "strong" and "weak" are not well understood. What really matters to developers is the expected scope of the reciprocity by the community that's involved. The term "reciprocity" is used to indicate that the same freedom extended to the person using project code to create improved code is expected to be extended by that person to others. This does not always mean contributing code to a project; for example, the GPL only requires that a developer offers to make code available on the same terms as the original. But reciprocity does mean that consistent licensing must be maintained.

This concept helps in the case of the LGPL. That license is often described as a "weak copyleft" license since it allows combination of the resulting binary with non-GPL-licensed works (unlike the GPL itself). But the "weak" categorization is unhelpful as it means different things in different contexts.