Do patches need to be open source?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
velmarin
Posts: 1600
Joined: Mon Feb 21, 2011 9:48 am

Re: Do patches need to be open source?

Post by velmarin »

Code: Select all

If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module? (#GPLModuleLicense)
The GPL says that the whole combined program has to be released under the GPL. So your module has to be available for use under the GPL.
But you can give additional permission for the use of your code. You can, if you wish, release your module under a license which is more lax than the GPL but compatible with the GPL. The license list page gives a partial list of GPL-compatible licenses.
So your module has to be available for use under the GPL.
There's a lot to read,
I still understand that if the module is provided,
the module, not necessarily its source code, everything is correct.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Do patches need to be open source?

Post by Dann Corbit »

Then he has the same problem. The point of the GPL is to prevent people from taking free SW, tacking proprietary stuff on top of it and making it non-free. Dynamic linking is not exempted under the GPL. Authors use the GPL to explicitely prevent that kind of circumventing. If they had wanted to allow that, they could have chosen e.g. BSD or MIT instead.
LGPL allows for dynamic or static linking with proprietary code.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Do patches need to be open source?

Post by hgm »

Yes, but that is in the other direction: proprietry program calls LGPL library. The fact that something like the LGPL exists in addition to GPL shows that at least the designers of those licences think that proprietry code calling a GPL library is illegal.

But the issue now is whether a GPL program calling a proprietry library can be legal.

I think the GPL-toy-version / propriatry-real-version of a library (usig the same interface) will fly. Copyright does not cover the interface. There have been big court battles over that, because companies like MicroSoft of course would love that it could, so that they could forbid any third-party software source to use Windows API. But in fact they are not even allowed to keep the API a secret.

So if I modify a GPL program to use my toy library, which I also GPL, I have fully complied with the GPL and done nothing illegal. Then if I or someone else would offer a poprietry advanced library using the same interface, I don't infringe on anything. It can even use the code in the toy library, as I am the owner of that code, and can release it under as many different licences as I want.

I remember there was an MS-DOS competitor called Dr-DOS, offering the same API, and MicroSoft did not do anything to stop that. Distributing an OS that offers the same API as Linux, but through a kernel that was rewritten from scratch, would IMO not be a copyright violation. (Of course there is no incentive whatsover to do so, as Linux is free, and very hard to improve on, unlike the crappy MS-DOS.)
mar
Posts: 2554
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Do patches need to be open source?

Post by mar »

Dann Corbit wrote:LGPL allows for dynamic or static linking with proprietary code.
That's not quite true, LGPL allows dynamic linking with proprietary code, if you link statically you have to release the source to your program (i.e. linking statically practically boils down to GPL).
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Do patches need to be open source?

Post by Dann Corbit »

mar wrote:
Dann Corbit wrote:LGPL allows for dynamic or static linking with proprietary code.
That's not quite true, LGPL allows dynamic linking with proprietary code, if you link statically you have to release the sources to your program.
Wow, Really?
That is mind blowing idiotic if true
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
mar
Posts: 2554
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Do patches need to be open source?

Post by mar »

Dann Corbit wrote:Wow, Really?
That is mind blowing idiotic if true
Yes, this is why I don't like anything with GPL (no matter what prefix).
See here for example: https://stackoverflow.com/questions/101 ... ic-linking
The point is "to be able to replace LGPL code (library) with a new version", this in itself is nonsense of course because as soon as the API changes you won't be able to link dynamically anyway...

I've seen template-only C++ code under LGPL, which is nonsense as well as it gets inlined and you have to opensource your program in order to comply.

It also means that people who want to go opensource usually don't spend enough time evaluating a proper license.
Fulvio
Posts: 395
Joined: Fri Aug 12, 2016 8:43 pm

Re: Do patches need to be open source?

Post by Fulvio »

mar wrote: if you link statically you have to release the source to your program
Incorrect:
https://www.gnu.org/licenses/gpl-faq.ht ... cVsDynamic

With both static and dynamic linking the user must retain the freedom to modify a LGPL library, even if it's used in a closed source project, and the only requirement is the ability to relink the application.
mar
Posts: 2554
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Do patches need to be open source?

Post by mar »

Fulvio wrote:With both static and dynamic linking the user must retain the freedom to modify a LGPL library, even if it's used in a closed source project, and the only requirement is the ability to relink the application.
Which you obviously can't do without having the source code when you link statically, ergo I was correct. Linking statically implies the release of full source code of your program.
Fulvio
Posts: 395
Joined: Fri Aug 12, 2016 8:43 pm

Re: Do patches need to be open source?

Post by Fulvio »

hgm wrote: But the issue now is whether a GPL program calling a proprietry library can be legal.
It's not legal if the user loses the freedom to share the GPL program (the library must have a GPL compatible license).
There is however an exception for "System libraries":
https://www.gnu.org/licenses/gpl-faq.ht ... timeAndGPL
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Do patches need to be open source?

Post by Dann Corbit »

mar wrote:
Fulvio wrote:With both static and dynamic linking the user must retain the freedom to modify a LGPL library, even if it's used in a closed source project, and the only requirement is the ability to relink the application.
Which you obviously can't do without having the source code when you link statically, ergo I was correct. Linking statically implies the release of full source code of your program.
To me, this is the true danger of GPL and LGPL.

It is ambiguous.
What is legal? What is illegal? I don't think the foremost experts in the world can tell you.

That having been said, I have written code for GPL and LGPL projects.
Also BSD, Public Domain, and many others but that is neither here nor there.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.