Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on a small project right now that I plan on releasing under an open-source license (haven't decided which yet). The question I have is that one of the Python modules I use is licensed under GPLv3. Since I'm not making any modifications to the library (using it as-is), can I still license my project under a license of my choosing or will I be forced to also make it GPLv3?

share|improve this question
SO is not a lawyer.... –  Chris Thompson Jun 27 '11 at 19:47
If you include the module, yes, you have to follow the license. If you import a module which is installed separately on the user's computer, I think it's a grey area. See en.wikipedia.org/wiki/… –  Thomas K Jun 27 '11 at 21:13
add comment

migrated from stackoverflow.com Jun 27 '11 at 19:52

This question came from our site for professional and enthusiast programmers.

3 Answers

You will be obliged to release the software under GPLv3.

The license says explicitly (comma 5):

You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

Quite straightforward, I think. According to the FSF (and AFAIK some court ruling) any kind of linking of libraries is a violation if the program itself is not GPL too.

The LGPL on the other hand has been designed precisely to allow a non-free program to link to free libraries.


share|improve this answer
The section you quote is for a modified version of a given GPLv3'ed software. –  Tshepang Jun 28 '11 at 1:36
@Tshepang The section is for "a work based on the Program". IANAL but my understanding is that it certainly covers any program which links in a Python module. –  MarkJ Jun 28 '11 at 11:26
@Tshepang - Yes, it is. This is the way the FSF intend any software linked to a GPL library (otherwise there wouldn't be a LGPL around!). @MarkJ - You are correct, see my comment about court rulings to Zack's answer. –  mac Jun 28 '11 at 11:47
Interestingly enough, this answer got 5 upvotes and 2 downvotes. Now, since this is not youtube (like/dislike) a downvote means "this answer is not useful". I would be interested to know why the downvoters thought it is not useful: to the best of my knowledge the answer is technically correct and answer the question posed by the OP... so I would be very interested to know in which way I could make it more useful. :) –  mac Jun 28 '11 at 15:26
add comment

How are the various GNU licenses compatible with each other?

See the section of the table labeled I want to use a library under:

The table here is pretty clear cut and easy to understand without someone that is a not a lawyer giving their un-qualified opinion.

share|improve this answer
add comment

The safe thing to do is release the code you write under a license which is compatible with the GPLv3. The GPLv3 is of course compatible with itself, but there are quite a few other licenses you could pick. The FSF's license list is opinionated but may be considered authoritative on the question of which other licenses are compatible with which versions of the GPL.

I would personally recommend that you license your code under GPL version 2 with the "or at your option any later version" language. That achieves compatibility with both GPLv3 and GPLv2 code and thus maximal compatibility with copyleft licenses. If you don't want a copyleft, use the X11 license.

If you don't want to release your source code you should not reuse code or data under any copyleft license -- the whole point of copyleft is to enforce availability of source, so it is unethical to use copylefted material in a closed-source program even if you're not violating the letter of the license (I will not tell you how to do that; consult an actual copyright lawyer if you are bound and determined).

share|improve this answer
@Zack - Zack, are you sure about your interpretation of compatible? I always understood compatible licenses as "additional permissions" (i.e. as "extra freedoms" as in releasing the program with a double license). I don't think you can replace GPLv3 with something else, even if that something else is "compatible". See the first para of comma 7 of the GPLv3. Am I wrong? –  mac Jun 27 '11 at 20:16
No. The GPL has nothing to say about compatible licenses. It says you must use the License - i.e. GPLv.3. The whole point is that you can't release your code under a license that isn't a copyleft license. –  Jeremy Jun 27 '11 at 20:17
I think the idea with compatible licenses is that its possible to combine the works of multiple liecenses to create a derivative work of both under the GPL, but I'm not sure. –  alternative Jun 27 '11 at 21:16
(I am aware that the FSF officially disagrees with me about whether code that makes use of a library interface without modifying the library is a derivative work of the library.) –  Zack Jun 27 '11 at 21:29
@Zack - After some more research I am afraid it's not only the FSF that disagrees, but also courts in USA, France and Germany. Some of the legal litigation ended up with court ruling in favour of free software, but most ended up with the offender coming to an extra-court settlement (basically opening up their code or removing the free code from their products). I start my research from wikipedia and went on from there, in case you want also to investigate some more: en.wikipedia.org/wiki/… –  mac Jun 27 '11 at 23:29
show 2 more comments

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.