【问题标题】:Does the GPL state that dependencies of GPL'd software also have to be released under the GPL? [closed]GPL 是否规定 GPL 软件的依赖项也必须在 GPL 下发布? [关闭]
【发布时间】:2023-04-07 03:33:02
【问题描述】:

我正在阅读一些较早的 Joel 关于软件的文章,偶然发现了 Project Aardvark spec,其中一个部分引起了我的注意:

许可证

VNC 是 GPL。我们基于 VNC 构建的两个组件,帮助者和受害者,需要在 GPL 下重新发布。

这没什么大不了的。代码将针对我们自己的使用进行高度优化并且需要反射器才能工作,这不会在 GPL 下发布。

这让我很吃惊,因为我确信我在某处读到 GPL 不允许这种事情发生?

【问题讨论】:

  • @Pascal:这有点苛刻。 RTFM 将回答 90% 的 StackOverflow 问题,所以这个问题和这里的大多数其他问题一样合法。
  • @Pascal - 我以前读过 GPL,但我只是 不理解它 - 它充斥着听起来很模糊的定义(例如“系统库”)和对其他的引用我也不懂的法律概念。
  • 关于软件许可的法律问题在 Stack Overflow 上是题外话,但 可能 在其 Programmers 姊妹网站上是题外话。请参阅stackoverflow.com/tags/licensing/info
  • 这个问题似乎是题外话,因为它是关于许可的。
  • 我投票结束这个问题,因为它是关于许可和法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。

标签: gpl


【解决方案1】:

这取决于反射器与其他一切的关系,由于我对项目一无所知,因此无法对此发表评论。

GPL 依赖于版权法:如果您在做版权法允许的事情,则无需关注 GPL。因此,GPL 适用于 GPL 软件的衍生作品,但不适用于分离软件。关于什么是衍生品以及什么是独立存在一些争论,但我不是律师,也没有职位。

有一点很清楚,如果一个程序没有链接到 GPL 程序,而是在它旁边并通过标准的进程间通信进行通信,那么它就是它自己的独立工作,不受 GPL 约束。

因此,如果反射器被链接,它受 GPL 约束。如果它作为自己的独立进程运行,则不是。

【讨论】:

    【解决方案2】:

    http://www.gnu.org/licenses/gpl-faq.html

    标准 IANAL 免责声明。 GPL 根据版权法强制执行,因此其病毒性规定仅适用于您制作衍生作品的情况。将源代码修改为 GPL 程序可算作衍生作品。静态链接也是如此。动态链接是有争议的。简单地调用一个 GPL 程序或以其他方式与一个保持一定距离的人进行通信绝对不会。最重要的是,这实际上取决于在这种情况下“依赖”的含义。

    【讨论】:

    • 动态链接被认为是派生的;这就是 LGPL 存在的原因。
    • 没有法庭这么说过。绝大多数律师从未这样说过。事实上,这个星球上唯一相信你传递给链接器的标志与作品是否被视为衍生作品有某种关联的人是 Richard Stallman。
    • @JörgWMittag 需要引用吗?
    【解决方案3】:

    首先,不要根据您从互联网上的人(包括我的)那里获得的法律建议做出任何商业决策。

    我认为这已在有关 GNU 许可证的常见问题中得到解决:Can I write free software that uses non-free libraries?

    他们似乎对将 GPL 代码与使用不兼容许可证的库结合起来没有任何限制,但他们尽力描述了您使用完全免费软件的动机。

    【讨论】:

      【解决方案4】:

      嗯,有很多 GPL 软件的依赖项是封闭源代码:例如,考虑在 Windows 上运行的每个 GPL 软件(即链接 Windows API DLL)。

      所以,是的,您可以使用封闭源代码的依赖项。尽管如此,正如大卫指出的那样(感谢您的评论),系统库和其他依赖项之间存在差异。 GPL 说(由我强调):

      目标代码形式的作品的“对应源代码”是指生成、安装和(对于可执行作品)运行目标代码和修改作品所需的所有源代码,包括控制这些活动的脚本。 但是,它不包括作品的系统库、通用工具或普遍可用的免费程序,它们在执行这些活动时未经修改但不属于作品的一部分。例如,对应源包括与工作源文件相关联的接口定义文件,以及共享库和动态链接子程序的源代码,该工作专门设计为需要,例如通过这些子程序之间的密切数据通信或控制流和工作的其他部分。

      所以,我想这归结为这个“反射器”是否算作“通用工具”。如果它只是为了将其包含在 GPL 软件中而编写的,我想这是一个;如果它在没有 VNC 衍生软件产品的情况下服务于有用的目的,它可能是是的

      【讨论】:

      • 不一样。 GPL 有一个单独的条款,允许软件依赖正常的系统设施,如 Windows API 或 Java 运行时。
      • 好点,我已经更新了我的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多