首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LGPL/GPL许可

LGPL/GPL许可
EN

Stack Overflow用户
提问于 2009-04-26 09:16:07
回答 4查看 5.6K关注 0票数 8

我有一个商业web应用程序,它使用LGPL下的一个组件。由于该组件具有插件体系结构,因此我现在已经为该组件创建了一个使用库(LGPL)的插件。这个库使用的数据源是GPL。

这是否意味着我必须为我的web应用程序免费提供源代码?或者仅仅需要释放插件的源代码?

谢谢你的意见和建议,请原谅我糟糕的英语水平。

EN

回答 4

Stack Overflow用户

发布于 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用于为网络服务器使用而设计的程序。

票数 11
EN

Stack Overflow用户

发布于 2009-04-26 13:30:45

这是否意味着我必须为我的web应用程序免费提供源代码?

不是*

还是发布插件的源码所必需的?

如果您分发应用程序,那么是的,您还必须分发它的LGPL部分的源代码。

您还需要确保任何收到您的应用程序的人都有机会对其进行修改。这对于已编译的应用程序很重要-您需要包含必要的目标文件,以便您的应用程序可以与修改后的LGPL代码版本重新链接。或者,使用动态链接。这个想法是,人们需要能够修改您的代码部分,即LGPL,并将其与您的应用程序重新组合。

以下是LGPL的一些要求(我不是律师):

  • ,LGPL代码和其他代码之间必须有某种清晰的分隔。特别是,接收者必须能够修改LGPL代码,甚至用其他代码完全替换它,例如库的修改版本或更高版本。因此,如果它是编译的程序,那么LGPL代码必须是动态链接的(例如,单独的DLL或共享文件),以便它可以很容易地替代类似的库,并且仍然是可互操作的;或者,如果它是静态链接的,则必须提供所需的最少的源文件和/或目标文件,以允许使用替代库进行重新编译。除非常简单的头文件外,非LGPL部分不能包含LGPL代码的任何部分。
  • 必须清楚地指出LGPL涵盖的代码部分,包括其原始版权声明和LGPL的文本(包括它所基于的GPL )。
  • 如果组合软件在运行过程中显示版权声明,则LGPL覆盖部分的版权声明也必须出现在此处,并提供指向LGPL和GPL的链接。
  • 在某些情况下,您需要提供安装信息,详细说明如何在组合的application.

中使用LGPLd代码的修改版本

这些只是一些限制,但LGPL也为你提供了许多自由,这是其他许可证,如GPL所没有的。

  • 你不需要为应用程序的其余部分(即非LGPL部分)发布源代码。唯一的例外是如上所述-如果它都是静态链接的,那么您需要提供足够的代码(和/或目标文件),以便能够将其与LGPL代码的替代或修改版本重新链接。如果你是动态链接并通过普通的API进行交互,你不需要担心这一点。
  • 你不需要在GPL下发布你的应用程序的其余部分。您可以使用您想要的任何许可证,包括更多限制性的专有许可证,前提是在分发时遵循rules.
  • Unlike GPL版本3,该版本禁止在实施复制保护或DRM软件时使用代码,您可以在包括复制保护或DRM的应用程序中使用LGPL版本3许可代码。

我最近写了一个analysis of the LGPL license -你可以阅读这篇文章了解更多信息。

另外,请阅读actual text of the LGPL。时间不会太长。

*您提到您正在使用的库有一个GPL数据源。这可能意味着您实际上不会随同它一起分发此GPL数据,而只是使用它的LGPL库。

票数 7
EN

Stack Overflow用户

发布于 2009-04-26 09:31:08

我不是律师,但是..

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/790537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档