【问题标题】:GNU GENERAL PUBLIC LICENSE software as part of commercial product [closed]GNU GENERAL PUBLIC LICENSE 软件作为商业产品的一部分 [关闭]
【发布时间】:2009-05-23 08:27:48
【问题描述】:

我正在为中小型公司开发 CRM 系统,我想将 GPL 软件作为一个模块集成到我的系统中(根据我的需求进行一些修改)。将其作为商业产品许可是否合法?

谢谢。

【问题讨论】:

  • 坦率地说,从有效的合法来源而不是编程论坛提出这个问题不是更明智吗?
  • 我投票结束这个问题,因为它是题外话,因为它是关于许可或法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。

标签: licensing gnu commerce


【解决方案1】:

在商业产品中使用 GPL 是一件非常复杂的事情。在 GPLv2 时代,有一个灰色地带,在 GPLv3 中已经被彻底清除了。要提供详细信息,您应该让我们知道您正在使用哪个模块以及它属于哪个 GPL 版本。

这一切都归结为“您的代码是 GPL 模块的派生作品”。举一个愚蠢的例子。如果 GPL 模块是一个冒泡排序并且您的应用程序使用该模块的 API,那么它是一个派生作品,所以一切都属于 GPL。如果您围绕模块创建 web 服务,则 web 服务是 GPL,但使用 web 服务的任何东西都不是。在一个更加灰色的区域中,如果您有使用另一种排序算法的旧代码,并且您制作了一个“包装”层来更改将 API 从旧排序转换为新排序,那么只有包装层是 GPL,因为原始应用程序是不是派生作品(它在您使用 GPL 模块之前可用,并且没有考虑到 GPL 模块编写)。请注意,这一切都值得商榷,但基于 GPLv2 的这种解释存在诸如非 GPL 二进制 Linux 内核模块之类的东西。

就像 Neil 已经说过的:遵循 GPL 并不意味着您必须发布您的代码。只有当拥有您的软件许可证的人要求它时,您才应该提供它。除非他/她实际购买了该应用程序,否则一个随机的人不能只索要代码。当然,只有一个人必须购买它,然后他/她对代码做任何他/她想做的事情(例如发布它)。

【讨论】:

    【解决方案2】:

    这取决于您所说的“商业产品”是什么意思。如果您使用 GPL 代码,您的代码将被 GPL 覆盖,并且您不能为其提供删除 GNU 许可证限制的许可证。这并不意味着您不能销售该产品,而是意味着您必须根据要求向您的被许可人提供其源代码。

    【讨论】:

    • 其实我打算把它卖给一些当地的公司。我将对其进行修改并集成到其余模块(由我编写)。
    • 那么你必须提供源代码 - 用于整个 shebang,而不仅仅是修改后的 GNU 东西。
    • 好吧,我将在这里扮演魔鬼的拥护者:在这里保护您的财产的唯一方法是使用代码混淆器。但是 GPL 与 GPL 完全一样是有原因的,我会为它辩护......在这种情况下我自己......任何时候!
    • 那我必须提供整个系统的源代码吗?还是仅适用于 GNU 模块之一?其余模块完全由我编写。
    • @shuxer:回答您的评论:是的。甚至是自己写的部分。引用:“将 ABC 与其他模块静态或动态链接是基于 ABC 的组合工作。因此,GNU 通用公共许可证的条款和条件涵盖了整个组合。”这真的很讨厌,我知道......
    【解决方案3】:

    像往常一样,IANAL,但是:

    如果您使用的是根据 GPL 许可的软件模块,则您的软件将属于“衍生作品”的定义,因此也已根据 GPL 许可。

    不过,您需要自己查看“衍生作品”的确切定义。

    【讨论】:

    【解决方案4】:

    如果您的产品不附带任何 GPL 许可软件,我认为您没问题。

    • 然后用户必须下载程序
    • 如果您对 GPL 程序进行任何更改以进行分发,则必须发布这些更改

    【讨论】:

    • 他说他想在他的产品中使用 GNU 代码,所以他将提供 GPL 许可代码。
    • GPL 中没有任何内容要求您发布任何内容。您必须向您的被许可人提供来源。
    猜你喜欢
    • 2011-06-22
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多