Page 5 of 13

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 2:02 am
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.

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 2:20 am
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.

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 10:09 am
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.)

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 10:40 am
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).

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 10:42 am
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

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 10:52 am
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.

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 11:20 am
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.

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 12:12 pm
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.

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 12:17 pm
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

Re: Do patches need to be open source?

Posted: Thu Feb 22, 2018 12:23 pm
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.