开发者

Does the GPL state that dependencies of GPL'd software also have to be released under the GPL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

This question does not appear to be about programming within the scope defined in the help center.

Closed 7 years ago.

Improve this question

I was reading through some of the older Joel on software articles and came across the Project Aardvark spec, one particular section caught my eye:

Licenses

VNC is GPL. The two components we’re buildi开发者_运维百科ng based on VNC, the helper and victim, will need to be re-released under GPL.

This is not that big a deal. The code will be highly optimized for our own use and will require the reflector to work, which will not be released under GPL.

This surprised me as I'm sure that I read somewhere that the GPL didn't allow exactly this sort of thing?


That depends on the relationship the reflector has to everything else, and since I don't know anything about the project I can't comment on that.

The GPL relies on copyright law: if you're doing something permissible under copyright law you don't need to pay attention to the GPL. Therefore, the GPL applies to derivative works of GPLed software, but doesn't to separate software. There is some debate as to what counts as derivative and what separate, but I'm not a lawyer and don't have a position.

One thing that is clear is that, if a program doesn't link to a GPLed program, but sits alongside it and communicates through standard inter-process communication, it's its own separate work, and not subject to the GPL.

Therefore, if the reflector is linked in, it's subject to the GPL. If it runs as its own separate process, it isn't.


http://www.gnu.org/licenses/gpl-faq.html

Standard IANAL disclaimer. The GPL is enforced under copyright law, and therefore its viral provisions only apply in cases where you are making a derivative work. Modifying the source code to a GPL'd program counts as making a derivative work. Static linking does, too. Dynamic linking is debatable. Simply invoking a GPL'd program or otherwise communicating with one at arm's length definitely does not. The bottom line is that it really depends on what "dependency" means in this case.


First, don't make any business decisions based on legal advice you get from people on the internet - including mine.

I think this is addressed in the Frequently Asked Questions about the GNU Licenses: Can I write free software that uses non-free libraries?

They don't seem to have any restriction against combining GPL code with libraries that use incompatible licenses, but they do their best to describe your incentive for using completely free software.


Well, there's a lot of GPL software whose dependencies are closed source: Consider, for example, every GPL software running on Windows (i.e. linking the Windows API DLLs).

So, yes, you are allowed to use dependencies that are closed source. Nevertheless, as David points out (thanks for the comment), there is a difference between system libraries and other dependencies. The GPL says (highlighting by me):

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.

So, I guess it boils down to whether this "Reflector" counts as a "general-purpose tool". If it was written just for the purpose of including it into the GPL'ed software, I guess this is a no; if it serves a useful purpose without the VNC-derived software product, it might be yes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜