views:

1240

answers:

6

Consider following steps:

0) Release open source Mock Program and Mock Plugin which communicate by certain interface (I), exchanging complex data structures, sharing memory and calling each other. Apply all-permissive license to it.

1) Release Plugin designed for working with any program in the way defined by interface (I). This plugin uses third-party GPL covered code and so is GPL itself. It is originally developed and tested with Mock Program. It is distributed as any GPL program, with source code available.

2) Release closed source proprietary Program designed to communicate with any plugin in the way defined by interface (I). It is originally developed, tested and shipped with Mock Plugin.

3.1) Add installation script to the Program which downloads GPL Plugin and attaches it to installed program.

3.2) Instead of installation script add instructions how to download and attach GPL Plugin manually.

So end user gets proprietary Program which benefits from GPL covered code in Plugin.

Questions:

0) If it is legal, then is not it a legal way to get benefit of any GPL covered code in any proprietary program with rather small effort of developer?

1) If it is not legal then what part of GPLv* or anything prevents whom from doing which step?

2) Is there any legal difference between 3.1 and 3.2?

3) Is there any legal difference if Mock Program and Plugin, proprietary Program and GPL Plugin are developed by single person or different persons; intentionally or not?

4) What is your opinion - is it ethical enough?

5) Are there any existing samples of such strategy?

6) Are there any easier legal ways to achieve same result - release proprietary program which may and most likely will get benefit from GPL code?

UPDATE:

Taken literally, this would imply that writing a plug-in for a closed-source program and releasing it under GPL would cause the combination to be an extension of the plug-in and thus fall under GPL, covering the entirety of the closed source program too

But that combination is not distributed, it is combined on the end user machine. Like my own modification of Linux which I do not have to opensource until I ship it. In this case end user managed to make modifications without access to source of Program - good for him, but nothing illegal I see so far.

In order to use the GPL-covered plug-ins, the main program must be released under the GPL

I saw that part of GPL faq. But plugin can be developed independently and shipped with MockProram. And it happened so that end user can take plugin from MockProgram and put it into Proprietary Program. Until that final step GPL and closed source are separated. And that step is done by end user, who has no obligations as he does not distribute combined product.

UPDATE 2

This

If a court finds that one is specifically designed to require the other, then you can expect trouble. The nature of Mock Program and Mock Plugin might play a role too, as to whether they are "real" programs or stooges. Consult an attorney.

Looks like an answer on question 3. Thanks.

+7  A: 

This is not a technical question, it is a legal question. Ask a lawyer licensed to practice in your area.

florin
+3  A: 

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

Source

Adam Hughes
It's nice to know what they believe, but it doesn't answer the question, which cannot be answered adequately here anyway. Consult a lawyer.
Adam Davis
Taken literally, this would imply that writing a plug-in for a closed-source program and releasing it under GPL would cause the combination to be an extension of the plug-in and thus fall under GPL, covering the entirety of the closed source program too.
Jamie
+1  A: 

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

If a court finds that one is specifically designed to require the other, then you can expect trouble. The nature of Mock Program and Mock Plugin might play a role too, as to whether they are "real" programs or stooges. Consult an attorney.

Jamie
A: 

I think you may be able to do it if you don't actually link the programs. Have them be separate processes, and communicate over a socket or named pipe or similar.

But really, I agree with the first poster. If you are planning to use GPL code in a non-GPL project, there are a few good options:

  1. Consult a lawyer versed in these kinds of issues
  2. Release the code to your entire project as GPL
  3. Don't use the GPL code in the place
  4. Contact authors of GPL code, offer them compensation in exchange for a license with less restrictions on your freedom to use their code.
davr
+8  A: 

This is definitely not ethical. When I choose GPL instead of, say BSD, my intention is clear - if you benefit from my code, then you SHOULD contribute back. And it is very clear how I expect you to contribute back - by providing full access to the COMPLETE system which is using my code. At the core of GPL, the intention is that someone else should be able to make modifications to such a system and build other things from it.

With steps 3.1/3.2 there are sociological problems. Who will the user ask when his system stops working? Especially when the problem is with the GPL plugin, will the GPL plugin author support such a user? Will the GPL plugin developer entertain the unethical closed-source application developer?

Given the above, nobody will attempt your question 4, 5 & 6 in a large enough scale to get noticed. Also, if you are writing commercial application from which you make lot of money, then you can typically license that GPL code from the copyright holder for use in your project for some price.

To answer question 3, if you are the sole author of GPL code, then you have full copyright to that code. You can do whatever you want with it, including using it in non-GPL project even while you have released it under GPL for others to use.

Vinay Y S
A: 

I asked a very similar question over here, but from the starting point that I'm looking making the original product open source from the start which still leaves me the ability to sell it later.

I'm not saying the GPL is right - there are some areas I really disagree with (and some I really don't understand!), but at least it's a step in the right direction.

I think it really comes down to one question:-

  • Does your software require the GPL'd code to function.

If the answer is yes, then accept it and move on. If the answer is no (as in my case), then the consensus so far is that I don't have to worry about the GPL.

James Fisher