我用 Java 开发了一个客户端-服务器应用程序。我想使用包含我的程序的 jar 和放置在不同目录中的 Qtjambi jar (LGPL) 的 zip 文件分发客户端。在服务器端,我有一个使用 mysql 连接器 (GPL) 与 MySQL 数据库通信的 servlet。我需要在哪个许可证下发布我的软件?我需要公开我的源代码吗?
非常感谢罗塞拉
您不必公开您的源代码。您可以在任何您想要的许可证下发布客户端。
LGPL 允许动态链接到不同许可下的软件。将其用作单独目录中的库即可满足此条件。只需记住将带有 GNU LGPL 的文本文件放入库目录中,并提及可以找到 LGPL 库的源代码的位置。
然而,GPL 不允许动态链接。因此,当您的服务器包含 GPL 软件时,您只能在 GNU GPL 下分发它。但是,只要您自己使用服务器,就不会分发它。GPL 仅适用于软件的分发。只要您将软件留给自己,您就完全没有义务。根据 GPL,让人们通过网络连接到您的软件并不是一种分发形式,因为 GPL 软件不会离开您的硬件。
还有一个称为 Affero 通用公共许可证 (AGPL) 的许可证,通过要求通过网络使用该软件的人获得许可证来填补这个漏洞,但普通 GPL 不需要类似的东西。