20

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?

  • 4
    SO is not a lawyer.... – Chris Thompson Jun 27 '11 at 19:47
  • 2
    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 http://en.wikipedia.org/wiki/GNU_General_Public_License#Linking_and_derived_works – Thomas K Jun 27 '11 at 21:13
  • https://opensource.stackexchange.com/questions/1487/how-does-the-gpls-linking-restriction-apply-when-using-a-proprietary-library-wi | https://stackoverflow.com/questions/999468/question-on-importing-a-gpled-python-library-in-commercial-code | https://softwareengineering.stackexchange.com/questions/167773/how-does-the-gpl-static-vs-dynamic-linking-rule-apply-to-interpreted-languages – Ciro Santilli OurBigBook.com Jul 26 '17 at 08:33
  • https://opensource.stackexchange.com/questions/2139/can-i-license-python-project-under-3-clause-bsd-while-it-has-gpl-based-dependenc – Ciro Santilli OurBigBook.com Jul 26 '17 at 08:44

3 Answers3

12

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.

HTH

mac
  • 671
  • 6
  • 15
  • 2
    The section you quote is for a modified version of a given GPLv3'ed software. – tshepang Jun 28 '11 at 01: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
  • I find it not *straight forward*. It's not clear, if the stated *entire work* means *the entire work you derived from* (which would mean you're good) or *everything you derived from + everything you write in totally independent modules* (which is what this answer interprets). – DarkTrick Jan 20 '22 at 09:11
1

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.

-4

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).

zwol
  • 2,576
  • 1
  • 16
  • 16
  • 1
    @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
  • 1
    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
  • The OP has to satisfy the GPLv3 when distributing *the python module that is licensed under GPLv3*. However, code that *they* write need only be licensed *compatibly* with the GPLv3, as long as it's not an actual derivative work of the module (if it were, then they *would* have to license it under GPLv3). Whether or not code that makes use of a library interface without modifying the library is a derivative work of the library is an unsettled legal question, but I think the smart money is on "no". – zwol Jun 27 '11 at 21:23
  • Keep in mind that "distributed so as to satisfy" is not the same thing as "licensed under". I *can* distribute X11-licensed code in a way that satisfies the terms of the GPL, if I want, but I'm not *required* to, because X11 is more lenient -- and anyone that receives X11-licensed code from me as part of a GPL-compliant distribution is only obliged to honor the X11 license if they turn around and redistribute that code (without any GPLed parts). – zwol Jun 27 '11 at 21:27
  • 1
    (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.) – zwol Jun 27 '11 at 21:29
  • 2
    @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: http://en.wikipedia.org/wiki/GNU_General_Public_License#The_GPL_in_court – mac Jun 27 '11 at 23:29