我的应用程序使用2个库(未修改)。第一个是GPL,第二个是LGPL。这意味着我的应用程序需要在GPL和LGPL下发布,因为这两个库将随我的应用程序一起发布。没关系。现在,应用程序公开了插件基础结构,因此任何人都可以为它编写插件。插件将无法直接与文本开头提到的那两个库进行通信,因为他们不知道应用程序背后的内容。插件不随应用程序一起提供。用户将能够从应用程序的开放/公共插件列表中选择要安装的插件。
问题:
这样的事情可能吗?
感谢。
答案 0 :(得分:4)
你做了一些毫无根据的假设。
例如,您假设您的应用必须获得LPGL许可,因为其中一个库是。那是不真实的。如果您的应用程序获得GPL许可,则可以使用LPGL库。这是合乎逻辑的,因为GPL许可证实际上是LGPL的超集。
GPL也不是病毒式的。 GPL库的版权所有者不能要求您将GPL强加于第三方插件。 (他可以要求你按照这些条款分发你自己的插件.GPL没有。包装为插件但功能类似于强制库的库是一个灰色区域。)
所以,Q1:No。Q2:是的,保持这些插件可选,界面定义明确。 Q3。你不能,真的。许多国家/地区在版权法中都有例外,当版权法用于限制互操作性时,会限制版权法的范围。由于所描述的插件恰好存在于您的程序与其Web服务之间的互操作性,因此版权法将受到限制。其次,这适用于全球,GPL许可证禁止您对您的计划施加限制。因此它不能拒绝这样的商业插件。
答案 1 :(得分:1)
热烈的辩论。具体来说,如果程序提供的API用于转发呼叫,则插件基本上在逻辑上依赖于所述库,因此被一些人认为受GPL约束。至少必须合理地确定所述插件可以“自己”/“独立地”运行并且不依赖于代码 - 从法律角度而不是技术角度。难以制定,IANAL等,最佳做法不是留在灰色地带;更好的发布代码:比律师便宜,让用户也开心。
如果所说的插件合理地独立于所使用的库(参见第1点),您可以选择您喜欢的任何许可证。
您无法逼真地阻止某人为您的程序编写与非免费服务接口的插件。您可以阻止用户通过使用数字签名等技术措施来使用此类插件,但这也可能会对freebeer服务和freefreedom代码作者的作者产生影响。