Warning: avoid GPL-licensed dependencies

1,899 views
Skip to first unread message

Michael Currie

unread,
Jun 22, 2014, 11:27:17 PM6/22/14
to openworm...@googlegroups.com
Dear Team,

OpenWorm is being released under the MIT software license, which permits businesses from making private, proprietary modifications to the source code for profit.

Now some Python libraries are released under GPL, which I believe means that any software using it must also be released under GPL:

Can I use GPL-licensed code in my MIT-licensed project?

No. The project as a whole must conform to the terms of the GPL license and therefore must be distributed under the terms of that license. Therefore such a project as a whole must be distributed as GPL, but can still contain MIT-licensed software.

Therefore, we must be careful to not use such GPL libraries in our code.  For instance, I was looking at PyQt until I realized that sadly it was GPL-licensed.

Correct me if I'm mistaken on any of my points above as IANAL.

Sincerely,

Michael

Michael Currie

unread,
Jun 22, 2014, 11:29:33 PM6/22/14
to openworm...@googlegroups.com
Sorry about my grammar; replace "from making" with "to make"

Tom Portegys

unread,
Jun 22, 2014, 11:31:30 PM6/22/14
to openworm...@googlegroups.com
Are you sure it is GPL or GPL library license? To my understanding, you can use GPL library licensed libraries and not have to GPL license the entire codebase.

Tom


--
Visit us online at:
http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.
To view this discussion on the web visit https://groups.google.com/d/msgid/openworm-discuss/3fa54da0-7e74-4119-ac5e-1b8825b1fb88%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Michael Currie

unread,
Jun 22, 2014, 11:34:38 PM6/22/14
to openworm...@googlegroups.com
Sadly "PyQt, unlike Qt, is not available under the LGPL."

Mariusz Sasinski

unread,
Jun 23, 2014, 7:39:28 AM6/23/14
to openworm...@googlegroups.com
On Sun, Jun 22, 2014 at 08:27:17PM -0700, Michael Currie wrote:

> OpenWorm is being released under the MIT software license
> <https://github.com/openworm/org.geppetto/blob/master/LICENSE>, which
> permits businesses from making private, proprietary modifications to the
> source code for profit.


Michael,
could you please explain why are you against using GPL license in an open source project like OpenWorm?


> Now some Python libraries are released under GPL, which I believe means
> that any software using it must also be released under GPL

It's my understanding that Python, as an interpreted language is excluded
https://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#IfInterpreterIsGPL

> For instance, I was looking at PyQt until I realized that sadly it was
> GPL-licensed <http://www.riverbankcomputing.co.uk/commercial/pyqt>.

GPL is an OSI approved open source license. What's wrong with using it in an open source project?

Mariusz

Rayner Lucas

unread,
Jun 23, 2014, 9:53:29 AM6/23/14
to openworm...@googlegroups.com
Whether linking to a library in your code counts as "creating a derivative work" for licensing purposes seems to be an unanswered question: https://en.wikipedia.org/wiki/GNU_Public_License#Linking_and_derived_works. As far as I know, there has been no legal precedent to help decide the matter. It would be unfortunate to have to avoid all the excellent GPLed code out there, but if we definitely want to use the MIT License then it would be safest to err on the side of caution.

LGPL code should be fine (as it specifically permits code with other licenses to link to an LGPLed library), although as you say, that doesn't help with PyQt specifically.

IANAL either.

Rayner
Visit us online at:If so, I regretfully agree that it would be safest to avoid dependencies on any GPLed code.


http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.

Michael Currie

unread,
Jun 24, 2014, 12:08:37 PM6/24/14
to openworm...@googlegroups.com
Dear Mariusz,

>> could you please explain why are you against using GPL license in an open source project like OpenWorm? 

As it stands OpenWorm is using the MIT license.  I do not need to be for or against this to make my point, which was that if we wanted to continue using this license, we must avoid GPL-licensed dependencies.

>> It's my understanding that Python, as an interpreted language is excluded 

It's not the Python interpreter itself that is the GPL dependency, it's libraries like PyQt.  And by the language in your own linked FAQ from GNU, those libraries do force the project as a whole to be GPL-licensed:

"However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way."

>> GPL is an OSI approved open source license. What's wrong with using it in an open source project? 

I don't disagree that GPL is a valid OSI-approved open-source license.  So is the MIT license.  Both are valid choices.  But basically the argument against GPL appears to be that it prohibits commercial exploitation.  As such, it is more restrictive.


Sincerely,

Michael

Stephen Larson

unread,
Jun 24, 2014, 12:34:20 PM6/24/14
to openworm-discuss
Thanks Michael for pointing this out.  I also found the point Rayner was making online doing some research as well, but for now, it seems like the main restriction of GPL is that if someone else decides they want a different license, they can't change it down the road.  This means some people won't use GPL code, as we are finding here, which actually limits dissemination of the code.  This seems like the opposite of what we want.  

In addition, as this discussion is pointing out, there is a lot more hassle associated with policing GPL propagation, and time is probably better spent just coding.

By the way, the GPL doesn't explicitly "prohibit commercial exploitation" either.  From the GNU FAQ:

If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? (#GPLCommercially)

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.

These requirements are the condition for including the GPL-covered code you received in a program of your own.

This underscores that the restriction is just that GPL propagates to more GPL.  A different FAQ question says specifically that GPL can't be made to restrict commercial use.  But in practice it tends to restrict commercial use because often business don't want to release their code under GPL, they instead want to sell software licenses.  Some companies like Red Hat though have a different model that is compatible with GPL.

Thanks,
  Stephen



Project coordinator
"Talk is cheap, show me the code" - L. Torvalds


--
Visit us online at:
http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.

Mariusz Sasinski

unread,
Jun 24, 2014, 12:49:51 PM6/24/14
to openworm...@googlegroups.com
On Tue, Jun 24, 2014 at 09:08:37AM -0700, Michael Currie wrote:
> *>> GPL is an OSI approved open source license. What's wrong with using it
> in an open source project? *
>
> I don't disagree that GPL is a valid OSI-approved
> <http://opensource.org/licenses> open-source license. So is the MIT
> license. Both are valid choices. But basically the argument against GPL
> appears to be that it prohibits commercial exploitation. As such, it is
> more restrictive.

Your example with PyQT is not a best one in my opinion - after all the library is GPL'ed and if some commercial entity wants to use it they have to buy a commercial license anyway.

OW is an open source/open science project, so personally I don't see a reason why "commercial exploitation" should be a important consideration for, or against a software license.
In fact, it probably would be better to move from MIT to GPL license.


Mariusz

Mariusz Sasinski

unread,
Jun 24, 2014, 1:43:29 PM6/24/14
to openworm...@googlegroups.com
On Tue, Jun 24, 2014 at 09:33:38AM -0700, Stephen Larson wrote:
> Thanks Michael for pointing this out. I also found the point Rayner was
> making online doing some research as well, but for now, it seems like the
> main restriction of GPL is that if someone else decides they want a
> different license, they can't change it down the road.

I don't see how GPL prevents you from changing the license at a later time. Any piece of software can have dual licensing afaik.
All you need it to have every contributor to agree to the change, but this is the case with any open source license and is not GPL specific.

> This means some
> people won't use GPL code, as we are finding here, which actually limits
> dissemination of the code.

Linux/GNU is a proof that this is not the case. I also believe that most people working on the OW code, do it because they want everyone to have access to new and better tools, developed specifically to study the C Elegans. They don't do it so some commercial entity can take advantage of the code and turn it into profit.


Mariusz

Stephen Larson

unread,
Jun 24, 2014, 1:57:32 PM6/24/14
to openworm-discuss
On Tue, Jun 24, 2014 at 10:31 AM, Mariusz Sasinski <mar...@stormbyte.com> wrote:
On Tue, Jun 24, 2014 at 09:33:38AM -0700, Stephen Larson wrote:
> Thanks Michael for pointing this out.  I also found the point Rayner was
> making online doing some research as well, but for now, it seems like the
> main restriction of GPL is that if someone else decides they want a
> different license, they can't change it down the road.

I don't see how GPL prevents you from changing the license at a later time. Any piece of software can have dual licensing afaik.
All you need it to have every contributor to agree to the change, but this is the case with any open source license and is not GPL specific.

Because all derivative works of GPL-based code, per the GPL license, have to be released under a GPL license.  So you are prevented from releasing derivative works under a different license, i.e. changing the license.  If you want to change the license, you'd have to remove all GPL-based code from your project.  From http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic

Does the GPL require that source code of modified versions be posted to the public? (#GPLRequireSourcePostedPublic)

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you. 


> This means some
> people won't use GPL code, as we are finding here, which actually limits
> dissemination of the code.

Linux/GNU is a proof that this is not the case.

Yes but the PyQT example that Michael is making shows that it can be the case sometimes, because it raises questions and causes concern, which logically has a chilling effect on the use of the code.  Not in every case, but in some cases.
 
I also believe that most people working on the OW code, do it because they want everyone to have access to new and better tools, developed specifically to study the C Elegans. They don't do it so some commercial entity can take advantage of the code and turn it into profit.

Yes, I agree.  If so, then we should want to use a license that ensures that there are no chilling effects or questions in peoples mind to picking up and using new and better tools, which is not what GPL does.  I didn't make this argument up, there are plenty of other people who have come to this conclusion; its a really old debate (e.g here and here):

The GPL attempts to force people and businesses to release their source code. There is nothing wrong with that, except I don't think it qualifies as "free software". I want anybody to be able to do anything they want with my programs and/or its source code. I have no reason to restrict their activities. 

If you release some GPL code, I probably can't use it. Period. End of story (ignoring these commentaries about the story). Now, maybe you don't care if I can't use it, but isn't that why you're releasing it? The GPL is meant to protect us, but who and what does it protect us from? I can't release it in a closed source product, and I don't want to, but you're also keeping honest, open source enthusiastic developers from using your project.
 
Thanks,
  Stephen

Mike Vella

unread,
Jun 26, 2014, 2:47:51 PM6/26/14
to openworm...@googlegroups.com
I really don't support any license changes - I don't mind if anything I've done gets used for commercial purposes by someone, good for them!

If any specific part of the project uses GPL-licensed code then that specific part can be GPL-licensed.




Mariusz

--
Visit us online at:
http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.

Mariusz Sasinski

unread,
Jun 26, 2014, 2:50:59 PM6/26/14
to openworm...@googlegroups.com
Stephen,

> Because all derivative works of GPL-based code, per the GPL license, have to be released under a GPL license. So you are prevented from releasing derivative works under a different license, i.e. changing the license.

You can't change the license for the part of the code that someone else developed, but you can change the license of your own code, or even release it as a dual license software. PyQT is the best example - it's released under the GPL license but they also sell a commercial version that is not GPL'ed. Another example is the QT library which is available under GPL, LGPL, and a commercial version of the code.


>Yes, I agree. If so, then we should want to use a license that ensures that there are no chilling effects or questions in peoples mind to picking up and using new and better tools, which is not what GPL does.


What chilling effects? This discussion began with PyQT - a commercial software, with an optional open source license. In our situation, the worst case scenario is that part of the code that requires PyQT will have to be released under the GPL. That's the price you have to pay if you want to use this library and I don't think that's a steep price. What's more - OpenWorm currently uses jLems which does not have any licenses and technically should not be really used with Geppetto.

And did anyone ever worry about these little gems from the SPH repository?

** Portions of this file are UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon
** Graphics, Inc.; the contents of this file may not be disclosed to third
** parties, copied or duplicated in any form, in whole or in part, without
** the prior written permission of Silicon Graphics, Inc.
**

** THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL TO
** NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY THIRD PARTY
** IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORPORATION.



>I didn't make this argument up, there are plenty of other people who have come to this conclusion; its a really old debate (e.g here


It's "the Internets" - billions of opinions from billions of people. The fact is there are many pros and cons for any license, and I'm not against one or the other, but I'm perplexed by the warning issued by Michael.

Michael has the best documented, organized, and commented repository from all of the OW project. We can only dream that every OW repository was this meticulously managed. He's got well commented code, documentation, instructions, citations, etc. Ironically the repository has one major flaw - it lacks any license. According to the standard copyright law it's my understanding that this means that his whole repository does not contain software that can be considered open source! At the same time he has issued a warning about the GPL.

Of course it's not his fault. OW just lacks some guidelines regarding licensing, and if this issue will be continually ignored the situation will get progressively worse.

OpenWorm is advertised as an opensource, open science project. Billions of dollars are spent by taxpayers all over the world on science, yet too often the results are hidden behind the paywalls of scientific journals, scientific software is either commercialized or not released at all, tools and devices are patented. Open Science is suppose to change this.

Is it really helpful to open science if parts of the code and the results OW generates will be later hidden, modified and commercialized by some entity?
The MIT license does makes it easier to integrate some libraries, but it also makes it easier to repackage and sell the code without contributing anything back to the community. The GPL License, on the other hand, is more restrictive but it requires that any modifications or improvements are shared, yet it does not prevent anyone from making money on the software, and there are many examples that prove this to be true.



I guess the question this community should answer itself is what's more important - to make it easier to commercialize Geppetto and other OW software or to have the freedom to use any available programming library that's
necessary to get the results that benefit the open science movement?



Mariusz

Stephen Larson

unread,
Jun 26, 2014, 9:46:49 PM6/26/14
to openworm-discuss
On Thu, Jun 26, 2014 at 10:04 AM, Mariusz Sasinski <mar...@stormbyte.com> wrote:
Stephen,

>  Because all derivative works of GPL-based code, per the GPL license, have to be released under a GPL license. So you are prevented from releasing derivative works under a different license, i.e. changing the license.

You can't change the license for the part of the code that someone else developed, but you can change the license of your own code, or even release it as a dual license software.  

Yes, this is the whole thing though.  Here's why PyQT is allowed to both have a GPL license and a commercial license that is not GPL'ed: because the group in charge of selling the commercial licenses holds the copyright for 100% of the PyQT library.  If, however, they used any already pre-existing GPL'ed code licensed by someone else, then the rules of GPL are that they could not have a commercial license where GPL didn't also apply.

This is not the case in OpenWorm.  We reuse a lot of other code bases, and we want this to continue.  If any of those code bases were GPL licensed, then we could not have a license apply to that particular OpenWorm repo that didn't have the GPL included with it.  And if some downstream user wanted to reuse OpenWorm code but didn't want the GPL to apply to it, we wouldn't be in a position to offer them a license where that was true.  This is the fundamental restriction folks are trying to avoid.
 
PyQT is the best example - it's released under the GPL license but they also sell a commercial version that is not GPL'ed. Another example is the QT library which is available under GPL, LGPL, and a commercial version of the code.

This is great for these libraries, but we don't operate under those conditions.  We do take advantage of other existing libraries in our work and many of us want others to take advantage of our libraries without having to worry about whether they will to be forced to include GPL as well.  Hence the understandable desire by some authors to avoid using code that creates entangling restrictions.  This is the "chilling effect"; hope it is clearer this time.



>Yes, I agree. If so, then we should want to use a license that ensures that there are no chilling effects or questions in peoples mind to picking up and using new and better tools, which is not what GPL does.


What chilling effects? This discussion began with PyQT - a commercial software, with an optional open source license. In our situation, the worst case scenario is that part of the code that requires PyQT will have to be released under the GPL. That's the price you have to pay if you want to use this library and I don't think that's a steep price.  What's more - OpenWorm currently uses jLems  which does not have any licenses and technically should not be really used with Geppetto.

And did anyone ever worry about these little gems from the SPH repository?

** Portions of this file are UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon
** Graphics, Inc.; the contents of this file may not be disclosed to third
** parties, copied or duplicated in any form, in whole or in part, without
** the prior written permission of Silicon Graphics, Inc.
**

** THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL TO
** NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY THIRD PARTY
** IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORPORATION.


Apparently not because there's never been an issue filed on it before.  Now there is.   Looks like this is only 2 months old, so I can understand how it has slipped past notice.  Thanks for bringing it to our attention.
 

>I didn't make this argument up, there are plenty of other people who have come to this conclusion; its a really old debate (e.g here


It's "the Internets" - billions of opinions from billions of people.

And you are another one of them too.  I pointed to them out of the merits of their arguments, not just because they hold a contrary position to yours.
 
The fact is there are many pros and cons for any license, and I'm not against one or the other, but I'm perplexed by the warning issued by Michael.

Michael has the best documented, organized, and commented repository from all of the OW project. We can only dream that every OW repository was this meticulously managed. He's got well commented code, documentation, instructions, citations, etc. Ironically the repository has one major flaw - it lacks any license. According to the standard copyright law it's my understanding that this means that his whole repository does not contain software that can be considered open source! At the same time he has issued a warning about the GPL.

Of course it's not his fault. OW just lacks some guidelines regarding licensing, and if this issue will be continually ignored the situation will get progressively worse.

I appreciate your passion on the licensing issue, and you have motivated me to add a draft proposal on licensing to the OpenWorm docs.   By the way, the docs are free to everyone to fork and propose pull requests on policies whenever folks spot omissions or improvements that are needed.


OpenWorm is advertised as an opensource, open science project. Billions of dollars are spent by taxpayers all over the world on science, yet too often the results are hidden behind the paywalls of scientific journals, scientific software is either commercialized or not released at all, tools and devices are patented. Open Science is suppose to change this.

Is it really helpful to open science if parts of the code and the results OW generates will be later hidden, modified and commercialized by some entity?

It seems like we want the same things here but have very different views on how to accomplish it and what the pitfalls are.  I haven't heard anyone advocate hiding away any of the code that OpenWorm generates or that somehow this is possible with an MIT license but not with a GPL license--this is a very extreme argument.  The approach we've been practicing to keep the code for the public benefit of open science is the general policy that if the code is part of OpenWorm, it is public on GitHub.  If someone wanted to hide code that was generated as part of OpenWorm it would be pretty obvious in change logs or a whole repo would mysteriously disappear, which would generate some outcry.  The GPL license isn't going to stop that from happening; the transparency of this community is going to stop it from happening.  
 
The MIT license does makes it easier to integrate some libraries, but it also makes it easier to repackage and sell the code without contributing anything back to the community. The  GPL License, on the other hand, is more restrictive but it requires that any modifications or improvements are shared, yet it does not prevent anyone from making money on the software, and there are many examples that prove this to be true.

I guess the question this community should answer itself is what's more important - to make it easier to commercialize Geppetto and other OW software or to have the freedom to use any available programming library that's
necessary to get the results that benefit the open science movement?

Your position seems to have become "GPL is the only license that gets the results that benefit the open science movement", despite your earlier assertion that you weren't against one or another license.  The Apache Foundation has a ton of open source projects under its umbrella that operate happily and enable "the freedom to use any available programming library", and they use the Apache license which is more similar to the MIT license than the the GPL.  To say that OpenWorm doesn't serve open science by not enforcing a GPL license on its repos is equivalent to saying that the Apache Foundation is not serving the open source community by allowing its OS projects to not use GPL.  I just haven't seen the evidence that supports that position, as there are many successful and thriving OS projects under the Apache foundation that aren't GPL licensed.

At the end of the day though, this isn't really about my opinion, it is the consensus of the community of authors writing code for OpenWorm that are choosing what licenses they feel comfortable with.  To date we've been hearing a lot from just one voice in favor of GPL and most others seem to not be so concerned with the status quo of using MIT.  I'm going to hold off on this thread for a while now, but I would invite anyone who would like to continue the conversation about OpenWorm and licenses to open up an issue on the docs repository to discuss the wording of the recent draft license guidelines I put up, as I think this will most constructively move the conversation into actions rather than just more arguments.

Thanks,
  Stephen

Chris Jensen

unread,
Jun 26, 2014, 11:39:15 PM6/26/14
to openworm...@googlegroups.com
When the original question of licensing came up, I advocated for GPL, but the majority choice was for MIT (N.B. the "MIT license" is a rather ambiguous term since MIT has used a number of different licenses). I still believe that GPL is the most appropriate license for OpenWorm because it contains the strongest protections for maintaining the FOSS nature of the project well into the future, even after all of us here have moved on to other projects.

The MIT license is one very small step shy of public domain. The risk with that type of license is that a profit motivated entity may adopt the code, extend it significantly such that the population of users prefers the extended code to the original, and make their extended version closed source. This effectively converts a FOSS project into a closed source project.

On the other hand, there is nothing stopping a group, or individual, from forking the entire repository, making changes, and attaching the GPL to the modified version. 

The MIT license is essentially no license. The GPL is a very strong FOSS license. Both licenses have benefits and disadvantages. I prefer the GPL, despite the chilling effect that it may cause.


--
Visit us online at:
http://openworm.org
http://blog.openworm.org
http://github.com/openworm
http://twitter.com/openworm
https://plus.google.com/s/openworm
---
You received this message because you are subscribed to the Google Groups "OpenWorm-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openworm-discu...@googlegroups.com.
To post to this group, send email to openworm...@googlegroups.com.
Visit this group at http://groups.google.com/group/openworm-discuss.
Reply all
Reply to author
Forward
0 new messages