<分区>
我正在用 Python 开发 GPL 许可的应用程序,需要知道 GPL 是否允许我的程序使用专有插件。这是 what the FSF has to say关于这个问题:
If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?
It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.
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. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
fork/exec 和动态链接之间的区别,除了有点人为之外,不会延续到解释语言:Python/Perl/Ruby 插件如何,它通过 import
加载或 execfile
?
(编辑:我理解为什么 fork/exec 和动态链接之间的区别,但似乎有人想要遵守 GPL 但违背“精神”——我不——可以使用 fork/exec 和进程间通信来做几乎任何事情)。
最好的解决方案是在我的许可中添加一个异常(exception),以明确允许使用专有插件,但我无法这样做,因为我正在使用 Qt/PyQt这是 GPL。