我很难理解开放源码的使用权限。我在哪里读到过 GPL 或 LGPL 强制使用 GPL 软件的软件也必须开源发布。我想创建一个应用程序,使用一些开源的图像识别库。我可以出售这个应用程序还是它必须是开源的?
谢谢!
LGPL 允许您在不发布应用程序源代码的情况下使用和分发开源软件。
如果您选择在应用程序中使用并分发 GPL 许可的开放源码软件,那么 GPL 要求您发布应用程序的源代码。换句话说,您的应用程序也必须根据 GPL 获得许可。
GPL 和 LGPL 的区别决定了是否需要将应用程序的源代码发布给任何拥有二进制文件副本的人。无论哪种方式,您仍然可以出售应用程序。
GPL 并不禁止你销售软件,但是你必须让软件可以使用源代码。
使用的问题有点复杂。GNU/Linux 是根据 GPL 发布的。没有什么禁止您编写在 Linux 下运行的软件,而不管您的软件的许可证是什么。但是,您不能将 Linux 与您的软件一起分发。对于需要成为程序一部分的库来说,这通常是一个问题。这就是 LGPL 许可证的用途。您可以编译一个用 gcc 编写的 c 程序(因此使用 gcc 中的 LGPL 许可运行时例程库) ,并且仍然可以在不受 GPL 限制的情况下发布软件。
我想这就是它的大意。然而,这并不是任何法律意见。为了获得法律咨询,你必须聘请一名注册律师,他可以根据你的具体情况为你提供法律咨询。
希望这个能帮上忙。
IANAL,但概念相当简单。
首先,你和你的律师必须阅读 GPL和 LGPL许可证。其次,你应该阅读 GPL FAQ。据我所知,您可以这样考虑使用 GPL/LGPL 库:
如果你剪切、粘贴或链接 GPL 的代码到你的应用程序,你的应用程序必须获得 GPL 授权,然后你被要求发布代码。
但是,您仍然可以出售您的应用程序和 afaik,唯一的义务是向客户发布源代码。
If the library you link against is Lesser Gnu Public License aka LGPL then you dont need to release your own application's code but you are still required to release all modifications if you modified the lgpl'd code.
其他开发人员可以借用和修改代码,并将其作为自己项目的一部分重新发布,前提是他们的整个项目也是根据 GPL 授权的。
This prevents the code from being used in proprietary software.
LGPL
其他开发人员可以借用和修改代码,并将其作为自己项目的一部分重新发布,前提是 根据 LGPL 使用的部分(包括任何修改)是根据 LGPL 重新授权的。允许项目的其他部分拥有其他许可证。
这使得代码可以在其他专有软件中使用。
需要注意的一点是,与 GPL 本身相比,LGPL 是一个更长、更复杂的许可证,因为它包含 GPL 的全文,然后向其中添加额外的术语。
LGPL 中的许多附加条款指定了需要满足的条件,以便能够在具有其他许可证的项目中分发代码。例如,不仅必须向用户提供 LGPL 部分的源代码,而且必须允许成品软件的用户修改、重新编译或替换根据 LGPL 许可的部分软件,并在同一软件中使用这些修改后的代码。如果你发布的专有软件包含一些 LGPL 代码,一个满足这个要求的方法是将 LGPL 代码放到一个单独的动态链接库中,并且通过你的软件分发重新编译 LGPL 部分所需的头文件和文档,这样它仍然可以被链接,并且可以和提供的软件一起使用。采取措施防止修改 LGPL 代码是不可接受的,比如混淆代码本身或 API 或头文件。
请注意,LGPL 与 GPL 兼容: 如果您愿意,可以选择将代码“升级”为 GPL,并将其合并到一个完全 GPL 许可的项目中。但是,您不能反其道而行之,将 GPL 许可的代码重新授权为 LGPL。