GPL和LGPL开源许可限制

我无法理解开源的使用权限。 我在某处读到GPL或LGPL强制使用GPL软件的软件也必须公开发布。 我想创build一个使用一些开源图像识别库的应用程序。 我可以卖这个应用程序还是必须是开源的?

谢谢!

LGPL允许您使用和分发开源软件与您的应用程序,而不会释放您的应用程序的源代码。

如果您select在您的应用程序中使用和分发GPL许可的开源软件,GPL要求您发布应用程序的源代码。 换句话说,您的应用程序也必须在GPL下获得许可。

  • GPL

    其他开发人员可以借用和修改代码,并将其作为他们自己的项目的一部分重新分发,只要他们的整个项目也在GPL下获得许可。

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

  • LGPL

    其他开发人员可以借用和修改代码,并将其作为自己项目的一部分进行重新分配,只要LGPL下使用的部分在LGPL下重新获得许可。 项目的其他部分被允许有其他许可证。

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

LGPL有一些额外的条件需要满足,以便能够与另一个许可证分配到一个项目。 例如,完成软件的任何用户必须有可能修改,重新编译或replaceLGPL许可的软件部分,并使用相同的软件使用此修改后的代码。 如果您发布的是包含一些LGPL代码的专有软件,满足这一要求的一种方法是将LGPL代码放入一个单独的dynamic链接库中,并与您的软件一起分发重新编译LGPL所需的必要头文件和文档这样一来,它仍然可以与所提供的软件连接和使用。 采取措施防止修改LGPL代码(如混淆代码本身或API或头文件)是不可接受的。

请注意,LGPL与GPL兼容:如果您愿意,可以select将代码“升级”到GPL,并将其合并到完全GPL许可的项目中,如第一项要点所述。 您不能以其他方式重新授权GPL授权代码为LGPL。

IANAL,但概念相当简单。

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

  • 如果您dynamic或静态链接到GPL或LGPL库,您已经创build了衍生工作。
  • 如果您使用的是GPL库,并且与该库链接,则必须使用兼容的许可证 发布您的软件。
  • 如果您使用的是LGPL的库,并且您dynamic链接该库,则不必使用兼容的许可证发布软件,但是您仍然必须遵守LGPL。
  • 如果您使用的是LGPL的库,并且您与该库静态链接,则必须使用兼容的许可证来发布您的软件。
  • GPL / LGPL牌照的意思是“免费”,如“言论自由”,而不是“免费啤酒” 。 您可以创build衍生工作并以大笔资金出售,但您必须遵守GPL / LGPL。

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

使用的问题稍微复杂一点。 GNU / Linux是在GPL下发布的。 无论您的软件许可证是什么,都不禁止您编写在Linux下运行的软件。 但是,您不能将Linux与您的软件一起分发。 对于需要成为程序一部分的图书馆来说,这往往是一个问题。 这就是LGPL许可证的用途。 你可以编译用gcc编写的ac程序(因此使用来自gcc的LGPL许可的运行时例程库),并且仍然可以在没有GPL限制的情况下发布你的软件。

我认为这是它的一般要义。 不过,这不以任何方式提供法律意见。 对于法律build议,您必须保留一名可以根据您的具体情况向您提供法律build议的注册律师。

希望这可以帮助。

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

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

如果你链接的库是小Gnu公共许可证又名LGPL,那么你不需要发布你自己的应用程序的代码,但是如果你修改了lgpl'd代码,你仍然需要发布所有的修改。

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