3

我有一个小型桌面应用程序,它依赖于 VLC,这是一个在 GPL 下获得许可的应用程序。它不与任何 VLC 库链接,但它创建一个 VLC 子进程并通过标准输入和标准输出流进行通信。我的应用程序将被许多客户使用。它不会成为公开可用的工具。

在这种情况下,GPL 要求我做什么?我是否只需要为这些客户开源我的代码?还是我需要向全世界公开?

编辑
一些人提到,如果我只是调用 GPL 可执行文件而不实际链接 GPL 代码,我很好。但是,在看到这些消息来源后,我对此不太确定:

我会接受可以为我澄清这个问题的答案。

4

7 回答 7

11

此答案不适用,您只是在启动 VLC

如果您所做的只是启动和分发 VLC,那么您只有义务向从您那里收到 VLC 的任何人提供 VLC 的完整(即使已修改)源代码。如果您链接到(或使用)GPL2/GPL3 代码,则 GPL 适用于您的整个代码库。这不是你的情况。

原始答案,由于一个相当模棱两可的问题

分发后,GPL 即适用。如果您将其交给您的妻子,则适用 GPL。如果您将其交给您的邻居,则适用 GPL。如果你把它给你的狗..你可能是安全的,我怀疑狗会理解它在 GPL 下的权利。

必须向任何收到您的程序副本的人提供完整的源代码。如果他们分发它,他们必须向任何获得您的程序副本的人提供完整的源代码,因为他们是分发它的人。

你不能告诉人们不要分发 GPL 代码。由于您的程序链接到它,它是一个涵盖的、组合的工作,并且许可证适用。不要要求收件人签署带有额外复制限制的 NDA 来接收 GPL 涵盖的代码,如果这样做,您就失去了分发(甚至使用)它的权利。

谷歌 readline vs editline 看看我的意思:) 或者可能是 libreadline vs libedit。

GPL 并不关心有多少人收到您的程序。一旦它离开你的手,即使是一个人,它也适用。我强烈建议你信守承诺,尤其是在处理 VLC 之类的东西时。

GPL 保证的四项自由取决于对所涉作品源代码的访问。我既同意也不同意其背后的理念,事实仍然是您受许可条款的约束。

如果你从不分发东西.. hack away。合并不兼容的许可证等。限制较少的许可证不关心(即 BSD).. 并且 GPL在您分发它时才关心。

同样,分发 GPL 代码的人负责将源代码提供给从他们那里接收副本的人。LGPL 的情况并非如此……而且 AGPL 引入了更多的治理。它留给读者作为练习来研究差异。

电子邮件licensing@fsf.org 将来有这样的问题,他们是许可证的保管人。尽管存在明显的政治冲突,但他们是非常友好和乐于助人的人。

最后

抱歉有点过分热心和过分热心,但至少我没有把克苏鲁带进去:)

于 2009-11-19T15:29:50.537 回答
4

答案主要取决于“取决于”的含义。如果您的意思是您的代码作为一个单独的进程运行,并通过套接字或管道或其他一些进程间通信方式与 VLC 通信,那么您正在使用 VLC 打包您的代码,并且对您可以执行的操作没有任何限制。如果您对 VLC 进行了实际更改,或者将您的代码与 VLC 链接,那么您的代码受 GPL 约束。两者之间的任何事情都是一个判断电话。

如果您的代码受 GPL 约束,您可以随意分发,但所有分发都将遵循 GPL 的条款。简而言之,您必须提供包含二进制文件的源代码或提供书面报价以提供源代码,并且您分发给的每个人都拥有与您相同的 GPL 权利。你不必公开你的东西,但任何从你那里得到它的人都有权这样做。您可以出售该软件,但您不能禁止其他任何人出售或免费赠送该软件。

于 2009-11-19T15:42:43.800 回答
2

您必须将源传递给每个客户。每个客户都可以自由地以任何形式向任何人发布源代码。

于 2009-11-19T15:28:41.647 回答
1

我认为您想查看GPL 常见问题解答

特别是,您可能会对此问题/答案感兴趣:

GPL 是否要求将修改版本的源代码发布给公众?

GPL 不要求您发布修改后的版本或其任何部分。您可以自由地进行修改并私下使用它们,而无需发布它们。这也适用于组织(包括公司);组织可以制作修改后的版本并在内部使用,而无需在组织外部发布。

但是,如果您以某种方式向公众发布修改后的版本,则 GPL 要求您根据 GPL 将修改后的源代码提供给程序的用户。

因此,GPL 允许以某些方式发布修改后的程序,而不是其他方式;但是是否发布它取决于您的决定。

于 2009-11-19T15:31:35.537 回答
0

取决于有点模糊。如果您需要在他们的机器上安装 VLC 并且您的程序启动 VLC,您应该没问题。但是,如果您正在使用部分代码或 VLC 的修改版本,那么您也需要发布您的代码。

于 2009-11-19T15:40:18.160 回答
0

如果您的程序是完全从头开始编写的,并且没有重复使用任何其他软件的代码,那么您可以随意许可或分发它(免费、付费、封闭、开放)。调用 VLC 子进程并不等同于重用 GPL 代码。

于 2009-11-19T15:50:10.387 回答
-3

我不是律师,但我相信您不能为了钱而分发 VLC(例如在带有您的非免费应用程序的 CD 上)。如果您使用VLC 中的任何代码,那么您的应用程序必须是开源的。

但基本上我认为你必须告诉你的客户“我不能用这个磁盘合法地分发 VLC,请从“或者可能在你的安装程序中从官方网站下载它。

于 2009-11-19T15:28:09.540 回答