3 ms·
The entire post was to point out my confusion. And there aren't 50 versions of the GPL. But there are many FOSS licenses. And compatibility is speech from a hig
by davisp 17y ago
The entire post was to point out my confusion. And there aren't 50 versions of the GPL. But there are many FOSS licenses. And compatibility is speech from a high horse. GPL advocates often worry about "license compatibility" when the GPL is incompatible with any other license.
I can't release MIT licensed code that links against a GPL'd library. That's a pretty huge incompatibility if you ask me.
- jmillikin 17y agoI can't release MIT licensed code that links against a GPL'd library. That's a pretty huge incompatibility if you ask me. Of course you can. The belief that the GPL is "viral" or can somehow infect unrelated software is spread by groups opposed to widespread creation of GPL'd software. The GPL is a copyright license. It applies only to cases covered under copyright, eg, distribution of the original and derived works. This means you can release code under any license that links to GPL'd code. If you create a derived work (eg, compiled binary) from both original works, you'd need to abide by the terms of both licenses. For example, say you have an application under the MIT license, and you'd like to support a GPL'd library. The resulting license tree would look like this: MIT (app code) GPL (library code) | | ------------------- | GPL (app binary)
- davisp 17y agoSo you're saying that I can license my code under anything as long as I still follow the rules of the GPL... http://www.fsf.org/licensing/licenses/gpl-faq.html#IfLibraryIsGPL http://www.fsf.org/licensing/licenses/gpl-faq.html#IfLibrary... Does mention "or compatible license". And I'm really confused about dynamic languages that aren't explicitly compiled before distribution.
- jmillikin 17y agoYou can distribute your code under any license, no matter what, as long as it's not derived from GPL'd code (eg, you didn't copy-paste it and change a few strings). The FAQ entry deals with derived works (eg, compiled binaries). If your code's license is not GPL-compatible, then any work derived from both your code and GPL'd code cannot be legally distributed -- for example, it is illegal to distribute a binary which is statically linked against BSD-4 and GPL code. The ability to distribute binaries is why GPL compatibility is so important. This applies to dynamic languages as well. Python or Ruby code can be distributed under any license the author wishes, but works created from a combination of that code and GPL'd code must be covered by the GPL. For example, say Alice creates a Python library libalice and publishes it under the GPL. Bob writes an application BobApp which uses that library, and publishes it under the X11 license. Charlie uses py2exe to create an easily distributable version of BobApp, which includes a private copy of libalice. The licenses are: libalice: GPL BobApp: X11 Charlie's BobApp.exe: (GPL + X11 + Python license) -> GPL If you'd like, you can think of licenses mathematically: license(foo + bar) = license(foo) + license(bar). If the licenses are compatible, then the strictest license is used for the derived work. If the licenses are not compatible, the derived work cannot be distributed. US copyright law, fundamentally, is not complicated. The hard part is figuring out what "derived work" means, which depends on local laws and customs, and which you need to be a lawyer to figure out. Luckily, most cases involving software are very clear-cut, so even lay-people can get by with just a copy of the relevant regulation.