GPL and virality

This whole “viral” terminology is pejorative and misleading, in my opinion. If anything, copyright law is what is “viral”, not the license. If you make a derived work D from parts A, B, and C, then you need to obey the license terms of A, B, and C when you distribute D (i.e. when you do something with D that is otherwise forbidden by copyright law). The more restrictive these licenses are, the more restrictive the license on D is. If the A, B, and C have mutually contradictory requirements, then you cannot legally distribute D.

(But the “viral” metaphor is kind of broken, because a virus infects you without your permission. No one forces you to use someone else’s code.)

“Permissive” free/open-source licenses like MIT and BSD impose virtually no restrictions. “Copyleft” licenses like GPL or LGPL or MPL impose more restrictions (and hence can easily be incompatible), typically to limit permission to combine the code with non-free/open-source code. Non-free licenses, e.g. licenses that only allow “non-commercial use”, impose even more restrictions. The Intel MKL license (ISSL) forbids modification, decompilation, or reverse-engineering. The more restrictions a license imposes, the more careful you have to be when distributing derived works, and the more likely you are to run into conflicting requirements.

19 Likes