我对开源软件的使用许可有些困惑。我在某处读到GPL或LGPL规定,使用GPL软件的软件也必须开源。我想创建一个应用程序,使用一些开源图像识别库。我能否销售这个应用程序,还是它必须是开源的?
谢谢!
我对开源软件的使用许可有些困惑。我在某处读到GPL或LGPL规定,使用GPL软件的软件也必须开源。我想创建一个应用程序,使用一些开源图像识别库。我能否销售这个应用程序,还是它必须是开源的?
谢谢!
LGPL允许您在应用程序中使用和分发开源软件,而无需发布应用程序的源代码。
如果您选择在应用程序中使用和分发GPL许可的开源软件,则需要发布应用程序的源代码。换句话说,您的应用程序也必须在GPL许可下进行许可。
GPL
其他开发人员可以借用和修改代码,并将其作为自己项目的一部分重新分发,但前提是他们的整个项目也必须在GPL下许可。这可以防止代码被用于专有软件。
LGPL
其他开发人员可以借用和修改代码,并将其作为自己项目的一部分重新分发,只要使用LGPL授权的部分,包括任何修改,都在LGPL下再次许可。该项目的其他部分允许使用其他许可证。
这允许代码在专有软件中使用。
需要注意的是,LGPL比GPL本身更长,更复杂,因为它包含了GPL的全部内容,并增加了其他条款。
LGPL中的许多附加条款规定了必须满足的条件,以便能够在具有其他许可证的项目中分发您的代码。例如,用户不仅必须获得LGPL许可的部分的源代码,还必须能够修改、重新编译或替换软件的LGPL许可的部分,并使用相同的软件与此修改后的代码一起使用。如果您发布包含一些LGPL代码的专有软件,则满足此要求的一种方法是将LGPL代码放入单独的动态链接库中,并随软件一起分发必要的头文件和文档,以便以这样的方式重新编译LGPL部分,使其仍然可以与提供的软件链接和使用。不允许采取防止修改LGPL代码的措施,例如混淆代码本身或API或头文件。
请注意,LGPL与GPL兼容:您可以选择将代码“升级”到GPL,并在完全GPL许可的项目中合并它,如我第一个要点所述。但是,您无法反过来重新将GPL许可的代码许可为LGPL。
我不是律师,但概念相当简单。
首先,您和您的律师必须阅读 GPL 和 LGPL 许可证。其次,您应该阅读 GPL FAQ。据我了解,您可以这样考虑在项目中使用 GPL/LGPL 库:
GPL不禁止您出售软件。但是您必须提供软件的源代码。
使用问题有点复杂。GNU / Linux是在GPL下发布的。无论您的软件许可证如何,都没有任何禁止您编写在Linux下运行的软件。但是,您不能将Linux与您的软件一起分发。这通常是库的问题,因为库需要成为程序的一部分。这就是LGPL许可证的用途。您可以使用gcc编译您编写的C程序(因此使用来自gcc的LGPL许可运行时例程库),并仍然可以发布您的软件而不受GPL的限制。
我认为这就是大致意思。但是,这不是任何形式的法律建议。对于法律建议,您必须聘请一位经过认证的律师,他可以为您提供适合您特定情况的法律建议。
希望这有所帮助。
GPL和LGPL的区别决定了您是否需要向任何拥有二进制副本的人发布应用程序源代码。无论哪种方式,您仍然可以销售该应用程序。