我有一个商业web应用程序,它使用LGPL下的一个组件。由于该组件具有插件体系结构,因此我现在已经为该组件创建了一个使用库(LGPL)的插件。这个库使用的数据源是GPL。
这是否意味着我必须为我的web应用程序免费提供源代码?或者仅仅需要释放插件的源代码?
谢谢你的意见和建议,请原谅我糟糕的英语水平。
发布于 2009-04-26 09:31:29
要100%确定,您应该阅读FAQ,然后联系熟悉软件许可的律师。不要和律师交谈,因为他们会告诉你,为了安全起见,不要使用任何免费/开源的东西,这是任何人都可以说的。
不管怎样,你说的“GPL数据源”是什么意思?GPL源代码是否链接到您的应用程序中?
FAQ中有几个关于插件和GPL的问题。
我是否可以发布一个非免费程序,用于加载包含GPL的插件?
这取决于程序调用其插件的方式。例如,如果程序只使用简单的fork和exec来调用插件并与之通信,那么插件就是独立的程序,因此插件的许可证对主程序没有任何要求。
如果程序动态地链接插件,并且它们彼此进行函数调用并共享数据结构,我们认为它们形成了单个程序,该程序必须被视为主程序和插件的扩展。为了使用GPL覆盖的插件,主程序必须在GPL或与GPL兼容的自由软件许可证下发布,并且当分发主程序与这些插件一起使用时,必须遵循GPL的条款。
如果程序动态链接插件,但它们之间的通信仅限于使用某些选项调用插件的“main”函数并等待它返回,这是一种边界情况。
使用共享内存与复杂数据结构通信相当于动态链接。
正如其他人指出的那样,未分发的web应用程序似乎在普通的GPL下被视为私人使用(而不是在Affero GPL中?)。
一家公司正在网站上运行一个GPL程序的修改版本。通用公共许可证说他们必须发布他们修改过的源代码吗?
GPL允许任何人制作一个修改过的版本并使用它,而不需要将它分发给其他人。这家公司正在做的是一个特例。因此,该公司不必发布修改后的源代码。
对于人们来说,有自由进行修改并私下使用它们是必不可少的,而不需要发布这些修改。然而,将程序放在服务器机器上供公众对话几乎不是“私人”使用,因此在这种特殊情况下要求发布源代码是合法的。希望解决这个问题的开发人员可能希望将GNU Affero GPL用于为网络服务器使用而设计的程序。
发布于 2009-04-26 13:30:45
这是否意味着我必须为我的web应用程序免费提供源代码?
不是*
还是发布插件的源码所必需的?
如果您分发应用程序,那么是的,您还必须分发它的LGPL部分的源代码。
您还需要确保任何收到您的应用程序的人都有机会对其进行修改。这对于已编译的应用程序很重要-您需要包含必要的目标文件,以便您的应用程序可以与修改后的LGPL代码版本重新链接。或者,使用动态链接。这个想法是,人们需要能够修改您的代码部分,即LGPL,并将其与您的应用程序重新组合。
以下是LGPL的一些要求(我不是律师):
,
中使用LGPLd代码的修改版本
这些只是一些限制,但LGPL也为你提供了许多自由,这是其他许可证,如GPL所没有的。
我最近写了一个analysis of the LGPL license -你可以阅读这篇文章了解更多信息。
另外,请阅读actual text of the LGPL。时间不会太长。
*您提到您正在使用的库有一个GPL数据源。这可能意味着您实际上不会随同它一起分发此GPL数据,而只是使用它的LGPL库。
发布于 2009-04-26 09:31:08
我不是律师,但是..
https://stackoverflow.com/questions/790537
复制相似问题