4 Answers
4

Copyleft is a general method for making a program or other work free, and requiring all modified and extended versions of the program to be free as well.

The simplest way to make a program free software is to put it in the public domain, uncopyrighted. This allows people to share the program and their improvements, if they are so minded. But it also allows uncooperative people to convert the program into proprietary software. They can make changes, many or few, and distribute the result as a proprietary product. People who receive the program in that modified form do not have the freedom that the original author gave them; the middleman has stripped it away.

So copyleft implies a stronger set of restrictions in the license than the terms "Free software" or "Open Source" imply. Copyleft licenses are both free and open source licenses, but not all licenses that are free software or open source licenses are Copyleft.

Copyleft denotes a type of FOSS license that prevents, through license terms, the "proprietization" of FOSS code. If a license is not Copyleft, but it is FOSS, the user may (depending on the exact terms of the license), be able to release binary-only copies of the software, with limited distribution (e.g. license fees and criminal penalties for those who distribute the binaries without authorization from the developers), and without providing the modified source code.

According to the FSF, the Four Freedoms 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). Access to the source code is a precondition for this.

The freedom to redistribute copies so you can help your neighbor (freedom 2).

The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

A copyleft license ensures that anyone who receives the binary version of the software is entitled to the source version (including any source modifications that went into any binaries they received), and that person, in turn, is also required to pass down the four freedoms to anyone else that they pass said binaries/code on to.

A non-copyleft FOSS license could allow one person to receive the four freedoms as part of obtaining a copy of the code, but then that person can choose whether they want to give the four freedoms (or any individual one of the freedoms) to someone else that they give the software to.

It is important to note that, based on the way the copyleft was defined, a license that requires a recipient of the source or binaries to respect some freedoms, but not all of them, is not a copyleft license. It is only copyleft if each recipient of the software must grant all four freedoms to everyone they give a copy to.

For example, consider these simplistic licenses:

(1) You are given the four freedoms with respect to this software. It's up to you if you want to give others any of the freedoms or not when you distribute it further.

(2) You are given the four freedoms with respect to this software. In addition, if you distribute this software to anyone else, you must grant them Freedom 0 and Freedom 1. It's up to you if you want to give them Freedom 2, and you may not give them Freedom 3.

(3) You are given the four freedoms with respect to this software. In addition, if you distribute this software to anyone else, you must grant them all four Freedoms; otherwise, you violate this license.

The first license is a standard permissive license (similar to the BSD license), and is not copyleft because it does not require all four freedoms to be passed on.

The second license is a weird license (I've never seen one quite like this in practice) that prohibits the passing-on of one freedom; allows (optionally) another; and requires two. But the requiring of the first two isn't enough to make it copyleft. It may be free software for the person receiving a copy initially, but it cannot be free software after that, because freedom 3 is prohibited from that point onwards in the distribution chain.

The third license is a standard, copyleft-compliant license.

It's important to keep in mind that non-copyleft licenses can transform from being free/open source software to non-free, non-open source software licenses, because the enforcement of the preservation of the freedoms is not in place. Consider this distribution chain, where each letter is a person, and "A" is the person who originally wrote the first copy of the software and determined its license.

A -> B -> C -> D -> E

If this is a non-copyleft FOSS license, the only person guaranteed to have all four freedoms is A (well, technically, if he distributed it as FOSS, then B should have gotten all four freedoms, too).

If this is licensed under copyleft, then if every person, all the way down to E, does not have all four freedoms in respect to the software, then someone violated the license terms set forth by A, and is liable for copyright infringement!

Thus, when we talk about non-copyleft FOSS licenses, we have to ask the question, free for whom? -- but in the case of copyleft licensed software, the answer is, free for everyone.

Copyleft is a term coined by the FSF and implies that if you distribute a derivative work of a work under a copyleft license, you must distribute the derivative under the same license as the original work (it may however be combined with works under a permissive license that is deemed "compatible", read on). Some people use the pejorative name "viral license" for a copyleft license.

A permissive license is a license that permits re-licensing of derivative works (i.e. the derivative can have a different license than the original, and even be closed source with ARR).

Some comments about the difference:

One important property of a permissive license is that it is sublicensable and GPL compatible. This means that you can legally use a component with a permissive license in a derivative work where the other components are under GPL (or a compatible license such as Apache 2.0) and then the entire work can be made available under the GPL license. This means that you can use a library under the MIT/expat license (permissive) in a project under the GNU GPL (copyleft), and the resulting composite would be GNU GPL (copyleft).

Note that going in the opposite direction (from copyleft to permissive) is not possible. Such a derivative can never be MIT/expat, because that would violate the terms of the GNU GPL.

The FSF has made a handy reference page about what licenses are permissive and allow re-licensing, as well as the chart below specifically for GNU GPL version 3. Note that the direction of flow is always from the permissive licenses to the copyleft licenses, and not the other way.

The dotted arrow from GPLv2 to GPLv3 is for a special version of GPLv2 written "GPLv2 or later" (sometimes abbreviated "GPLv2+").

This chart introduces the terms "weak copyleft" and strong copyleft". Briefly, the difference is that "strong copyleft" insists on copyleft for a composite where at least one of the components are copyleft, while "weak copyleft" means that copyleft only apply to derivatives, not sibling components in a composite. "Copyleft" when used without an adjective, usually means "strong copyleft".

Copyleft emphasises that you can not do everything with the source. The usual example is GPL-style restrictions, which do not allow using the code in a closed-source projectexcept as SAAS. (The “left” is sometimes interpreted as: you have to give your own code back if you want to have the benefits of somebody else's open-source project.)

Permissive licenses do allow this kind of reuse; their main requirement is that of attribution. (But I suppose public-domain / CC0, where not even attribution is necessary, would also be considered permissive.)

Since you can to what the Copyleft license allows (which is pretty much), you can do something with the source. Your claim that you can't do anything with the source is wrong.
– user114Jun 24 '15 at 6:58

Oh dear, you could have made it clear that this is a language problem we're talking about...
– leftaroundaboutJun 25 '15 at 18:15

"which do not allow using the code in a closed-source project". This is definetively wrong. You can take copyleft code and use it as much as you like in closed source projects, as long as you do not distribute said project to a third party. Closed source in-house and SAAS-use of Copyleft code is allowed.
– Free RadicalJul 24 '15 at 6:03

I don't think the suing the author protection is really the main thing about permissive licenses... in fact such clauses are common for proprietary code too.
– curiousdanniiJul 27 '15 at 13:32

@curiousdannii protection against liability is the only thing all permissive licenses have. Requiring attribution is the only other clause that many (but not all) permissive licenses have.
– Abhi BeckertJul 28 '15 at 0:40