我有一个使用LGPL下的组件的商业网络应用程序。 由于该组件具有插件架构, 我现在已经为这个使用库(LGPL)的组件创建了一个插件。 该库使用的是GPL数据源。
这是否意味着我必须为我的网络应用程序释放源代码?还是只需要释放插件的来源?
感谢您的任何意见和建议,并原谅我的英语不好。
答案 0 :(得分:11)
要100%确定,您应该阅读FAQ,然后联系熟悉软件许可的律师。不要和律师交谈,因为他们会告诉你不要使用任何免费/开源的东西只是为了安全起见,任何人都可以这么说。
无论如何,“数据源是GPL”是什么意思? GPL源代码是否已链接到您的应用程序中?
有关插件和GPL的常见问题解答中有几个问题。
我可以发布非免费程序吗? 这是为了加载GPL覆盖的 插件吗
这取决于程序如何调用 它的插件。例如,如果 程序只使用简单的fork和exec 调用和沟通 插件,然后是插件 单独的程序,所以的许可证 插件没有要求 关于主程序。
如果是程序 动态链接插件,以及它们 彼此进行函数调用 分享数据结构,我们相信他们 形成一个单一的程序,必须是 作为两者的延伸对待 主程序和插件。在 为了使用GPL覆盖的插件, 必须发布主程序 根据GPL或GPL兼容免费 软件许可证,以及条款 当GPL必须遵循时 主程序分发使用 使用这些插件。
如果是程序 动态链接插件,但是 他们之间的沟通是有限的 调用的'main'函数 插件有一些选项和等待 它返回,这是一个边界线 情况下。
使用共享内存与复杂数据结构进行通信几乎等同于动态链接。
正如其他人所指出的那样,未分发的网络应用似乎被认为是普通GPL下的私人使用(不是在Affero GPL中?)。
公司正在运行修改 网络上的GPL程序版本 现场。 GPL是否说必须这样做 发布修改后的来源?
GPL允许任何人制作修改后的版本并使用它而不会将其分发给其他人。该公司正在做的是一个特例。因此,该公司不必发布修改后的来源。
人们必须能够自由地进行修改并私下使用它们,而不必发布这些修改。但是,将程序放在服务器上以供公众交谈几乎不是“私人”使用,因此在这种特殊情况下要求释放源代码是合法的。希望解决此问题的开发人员可能希望将GNU Affero GPL用于为网络服务器使用而设计的程序。
答案 1 :(得分:7)
这是否意味着我必须为我的网络应用程序释放源代码?
没有*
或只是需要释放插件的来源?
如果您分发应用程序,那么是的,您还必须分发其LGPL部分的源代码。
您还需要确保收到您申请的任何人都有机会对其进行修改。这对于已编译的应用程序很重要 - 您需要包含必要的目标文件,以便可以使用修改后的LGPL代码版本重新链接您的应用程序。或者,使用动态链接。我们的想法是,人们需要能够修改代码中的部分LGPL并将其与您的应用重新组合。
以下是LGPL的一些要求(我不是律师):
这些仅仅是一些限制,但LGPL也为您提供了许多自由,而GPL等其他许可证则没有。如果您正在分发合并作品,其中包括其他人的LGPL许可代码:
我最近写了analysis of the LGPL license - 您可以阅读此内容以获取更多信息。
另外,请阅读actual text of the LGPL。这不会太长。
*您提到您正在使用的库具有GPL数据源。据推测,这意味着您实际上不会使用它来分发此GPL数据,只是使用它的LGPL库。
答案 2 :(得分:2)
我不是律师,但是......只要您不分发程序(使其可用作Web应用程序不是分发),您就不必为任何内容发布源代码。
答案 3 :(得分:1)
如果通过网络应用程序表示您只是在服务器上运行该软件而您没有将其分发给您的用户,那么它应该很简单。没有分发,不需要放弃来源。
(可能与GPL3不同)