So what is the difference between a strong copyleft license and a weak copyleft one?
The answer is that while a strong copyleft license — such as the GPL — uses these distribution terms, a weak copyleft license — such as the GNU Lesser General Public License (LGPL) — uses slightly less strict licensing terms, so a larger group of people can make use of the software .
For example, the LGPL is often used to license software libraries to encourage their usage. It does this by allowing non-free or closed source programs to use the libraries, which can be useful if they do the same job as widely used non-free libraries. "In this case, there is little to gain by limiting the free library to free software only," the LGPL explains in its preamble.
Permissive licenses — as the name suggests — allow users to do even more with the code than strong or weak copyleft licenses such as the GPL or LGPL. "One reason you may use a permissive license is if you don't mind what people do with your code, including adding their own proprietary features to it themselves," says Johnson. "There's a more obvious reason for adopting a permissive license as well: so that you can develop an open source base to a product, with help from other contributors, and then add your own proprietary features yourself," he adds.
But there is a potential drawback to using a permissive license, says Johnson. Other developers may be unwilling to contribute their own code to your open source project if it is licensed in this way, either for ideological reasons or because they may be unwilling to help any commercial project without being recompensed themselves, he says.
Cloud Loophole in Copyleft Licenses
It turns out that there is what could be regarded as a minor loophole in the wording of many copyleft licenses including the GPL when it comes to the availability of source code.
Essentially the issue is this: under the GPL (and other licenses,) source code must be made available for any modified software that you distribute. But if someone modifies your code and then offers the software as a service — from the cloud, or using a server-based computing model , for example — then they never actually distribute the new software. That means that they don't have to make the modified source code available for others to benefit from, which goes against the open source ideal.
Sign up for Computerworld eNewsletters.