0

我正在开发一个爱好 Java 项目,该项目被打包成一个 .deb 文件,其中包含几个具有不同许可证的不同 JAR,例如:

  • 谷歌 Gson(Apache 许可证)
  • HSQLDB(基于 BSD)
  • 休眠 (LGPL)
  • (ETC)

即使我真的还没有准备好发布或销售这个想法/项目/软件,我仍然想知道这些通用许可证一般允许什么和不允许什么。例如,我听说 GPL 是“最糟糕的”(甚至不允许引用/动态链接库而不发布所有内容),但我不知道这是不是真的,我真的不太了解其他许可证。

例如,如果我要出售我的软件,是否允许以下​​任何一种情况:

  1. 将所有依赖的 JAR 打包在一个 .deb 包中,然后由 apt 使用自定义存储库分发和安装。
  2. 仅将我的代码打包在 .deb 中,并让用户自己安装依赖的 JAR(并在启动我的应用程序时指定 JAR 的类路径)。
  3. 出售安装了我的软件的预配置盒子,以及 Linux 发行版和所有相关的 JAR(仅收取实际硬件成本,任何额外费用将由软件收取)。

提前致谢!

4

2 回答 2

2

您应该阅读每个许可证并检查您的预期用途。您列出的大多数不应该为您引入太多额外的工作。如果您不想发布您创建的衍生作品或复合作品的源代码,则必须小心不要在具有 copyleft 的许可证下使用任何代码,因为这些代码通常需要完整 (GPL) 或部分(LGPL)。也可能存在与类路径异常类似的东西,其中一些代码在 GPL 家族下获得许可,因此它实际上取决于具体条款。

Apache 或 BSD-Like 许可证没有 copyleft(但它们也有您必须遵守的条款)。

您可以做的最好的事情是仔细阅读每个许可证,并澄清您对同行群体和法律支持的具体问题。

否则,您可以考虑将您的软件也作为自由软件发布,这通常对整个社区都有好处。但这是你的决定。

于 2012-02-08T22:12:03.950 回答
0

只是要明确一点 - 我不是律师,所以你的里程可能会有所不同。如果您打算从中赚钱...请律师处理您的许可证。但是,这是我对 GPL/LGPL 的理解

所有这些场景都被认为是发布二进制文件,因此无论您使用哪种方法,都以相同的方式受 GPL/LGPL 约束。

在 GPL 下,实际上无论何时发布二进制文件(在本例中为 JAR 文件),您都必须发布源代码。您可以随时为您的软件副本收费——您只需要随它一起发布源代码。此外,在这种情况下,您的代码将需要在 GPL 下发布。

根据我的理解,在 LGPL 下,只要您让用户能够将这些共享库替换为较新的版本,就可以将其与共享库(库 JAR)捆绑在一起。实际上,只要包含许可证并且库的源代码可用,您就可以将共享库捆绑到您的包中。

google/bsd 许可证通常比 LGPL 更宽松,但我没有足够的知识给你一个粗略的细分。

于 2012-02-06T22:59:41.497 回答