GPL和LGPL开源许可限制

时间:2009-07-11 16:21:14

标签: open-source licensing

我无法理解开源的使用权限。我在某地读到GPL或LGPL强制要求使用GPL软件的软件也必须是开源的。我想创建一个使用一些开源图像识别库的应用程序。我可以出售这个应用程序,还是必须是开源的?

谢谢!

6 个答案:

答案 0 :(得分:72)

LGPL允许您在应用程序中使用和分发开源软件,而无需发布应用程序的源代码。

如果您选择在您的应用程序中使用和分发GPL许可的开源软件,则GPL要求您发布应用程序的源代码。换句话说,您的申请还必须根据GPL许可。

答案 1 :(得分:40)

  • <强> GPL

    其他开发人员可以借用和修改代码并将其作为自己项目的一部分进行重新分发,前提是他们的整个项目也是根据GPL许可的。

    这可以防止代码在专有软件中使用。

  • <强> LGPL

    其他开发人员可以借用和修改代码并将其作为自己项目的一部分进行重新分发,前提是LGPL下使用的部分是根据LGPL重新许可的。允许项目的其他部分有其他许可证。

    这允许代码在其他专有软件中使用。

LGPL还有许多其他条件需要满足才能将其分发到具有其他许可证的项目中。例如,完成的软件的任何用户必须能够修改,重新编译或替换在LGPL下许可的软件部分,并将该修改后的代码与相同的软件一起使用。如果您要发布包含某些LGPL代码的其他专有软件,满足此要求的一种方法是将LGPL代码放入单独的动态链接库中,并使用您的软件分发重新编译LGPL所需的头文件和文档。部分以这样的方式仍然可以与所提供的软件链接和使用。采取措施防止修改LGPL代码是不可接受的,例如模糊代码本身或API或头文件。

请注意,LGPL与GPL兼容:如果您愿意,可以选择将代码“升级”为GPL并将其合并到我的第一个项目符号点中的GPL许可项目中。但是,您不能采用其他方式并将GPL许可代码重新许可为LGPL。

答案 2 :(得分:24)

IANAL,但概念相当简单。

首先,您和您的律师必须阅读GPLLGPL许可。其次,你应该阅读GPL FAQ。据我了解,您可以考虑以这种方式使用GPL / LGPL库:

  • 如果您动态或静态地与GPL或LGPL库链接,则表明您已创建衍生作品。
  • 如果您使用的是GPL库,并且您与该库相关联,那么您的软件must be released会带有compatible license
  • 如果您使用的是LGPL库,并且您与该库动态链接,则您的软件不必与兼容许可一起发布,但您仍必须遵守LGPL。
  • 如果您使用的是LGPL库,并且您与该库静态链接,则必须使用兼容许可证发布您的软件。
  • GPL / LGPL许可证与"free speech", not "free beer"中的“免费”一样。您可以创建衍生作品并以大笔资金出售,但您必须遵守GPL / LGPL。

答案 3 :(得分:8)

如果您将GPL代码剪切并粘贴或链接到您的应用程序中,您的应用程序必须根据GPL许可,然后您需要发布代码。

但是,您仍然可以出售您的应用程序和afaik,唯一的例外是您将源代码发布给您的客户。

如果您链接的库是Lesser Gnu Public License又名LGPL,那么您不需要发布自己的应用程序代码,但如果您修改了lgpl'd代码,仍然需要发布所有修改。

答案 4 :(得分:7)

GPL不禁止您销售软件。但是,您必须提供软件的来源。

使用问题稍微复杂一些。 GNU / Linux是在GPL下发布的。无论您的软件许可是什么,都没有禁止您编写在Linux下运行的软件。但是,您无法将Linux与软件一起分发。这通常是需要成为程序一部分的库的问题。这就是LGPL许可证的用途。您可以编译使用gcc编写的c程序(因此使用gcc中的LGPL许可运行时例程库),并且仍然可以在没有GPL限制的情况下发布软件。

我认为这是它的一般要点。但是,这不是任何法律建议。对于法律建议,您必须聘请经过认证的律师,该律师可以根据您的具体情况为您提供法律建议。

希望这有帮助。

答案 5 :(得分:3)

GPL与LGPL的区别决定了您是否必须将应用程序的源代码发布给拥有二进制文件副本的任何人。无论哪种方式,您仍然可以出售该应用程序。