同一安装程序包安装的两个程序是否仍然是GPL下的聚合?

时间:2009-02-17 14:38:32

标签: installer gpl aggregate

假设我有两个应用程序:一个是“服务器”应用程序,在GPLv3下获得许可,另一个是“客户端”应用程序,并根据非GPL兼容许可证获得许可。服务器作为Windows服务运行,客户端是普通的Windows应用程序,它们只通过TCP / IP和XML进行通信(根本没有链接)。

我知道我可以在同一媒体上分发这两种内容,或者在一个zip文件中一起分发这些内容,作为GPL的“聚合”。

但是,我是否可以编写一个安装程序,在一个过程中安装服务器和客户端,只是为了用户友好?

4 个答案:

答案 0 :(得分:2)

我相信您可以编写一个安装程序,为每个软件启动两个单独的安装程序。确保你提醒用户他将要发生,为了使它更明显,你可以给他们一个自定义选项,允许他们只安装一个或另一个(即使没有另一个人不能工作)

但如果您这样做主要是为了避免GPL许可使用封闭源代码软件,那么您仍然会受到攻击。他们可能无法合法地做任何事情,但如果你对足够多的人感到厌烦,你可能会很快找到一些开源竞争。

- 亚当

答案 1 :(得分:1)

只要

“唯一的条件是您不能在许可证下发布聚合,禁止用户行使每个程序的个人许可证授予他们的权利。”

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

那么你应该对安装程序没问题。没有必要提供点击等,如其他海报所述:

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

然而,主要问题不是安装,而是你正在做的是衍生作品(它不像链接或不链接那么简单):

[..]管道,套接字和命令行参数是通常在两个独立程序之间使用的通信机制。 [...]但是,如果通信的语义足够密切,交换复杂的内部数据结构,那么也可以将这两个部分视为一个更大的程序。

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

答案 2 :(得分:0)

要非常小心!

您必须确保有两个单独的许可证点击,一个用于GPL v3代码,一个用于非专有代码。您还需要极其认真地确保用户了解他们对GPL v3代码的权利,并证明您已经履行了您的义务,并且可以使该代码可用。

IANAL。我没有仔细检查GPL v3的措辞,以确保没有其他问题。

如有疑问,请考虑咨询SFLC(软件自由法律中心)。


细微差别

下面有一系列广泛的评论 - 请阅读。本说明部分是对评论的回应。

GPL不直接是EULA(最终用户许可协议)。它更像是软件开发人员的许可。但是,它确实赋予软件接收者某些权利,并且GPL对您作为软件开发人员规定了义务。特别是,它要求您作为开发人员明确授予您哪些权利以及授予您向其提供GPL软件的人员的权利。

您不必显示GPL的文本。您可能只是说“软件包X是根据GNU通用公共许可证版本3的条款分发的。您可以在http://www.fsf.org/licensing/licenses/gpl.html找到此许可证的条款。由于此许可证,您拥有一定的权利。您可以获得源代码通过从[ ...一个合适的URL ... ]下载来自我们的Package X的代码。当它与Package Y一起使用时,我们为Package X提供有限的支持。 ...等等...等等...等等... ”。

显示GPL本身的一个优点是您不必对其进行任何解释 - 并且难以解释法律文件,尤其是对于非律师(例如我!)。您可能希望明确表示用户拥有权利,而不必同意任何事情;这是明智的(我相信准确)。

请注意,收取Package X(假设的GPL v3软件)的费用是合法的 - 只要您提供实际支持。这是允许的。您没有义务为从其他地方获得X包的人提供支持;您可以限制对您自己客户的支持。但是,您无法阻止您的客户获取源,或者将X包的来源转发给他们自己的朋友,同事或客户。

我还不是律师 - 如果您需要法律建议,请准备支付费用与具有软件许可和GPL经验的律师交谈。

答案 3 :(得分:0)

我认为安装程序没有链接到它正在安装的内容,因此它在我看来像一个聚合中的三个独立程序,其中一个是GPLv3。在任何情况下,我都没有看到启动不同的安装程序进程会做任何事情:这是一个聚合,或者它是一个派生的工作。

当然,这取决于衍生作品的定义,据我所知,这是一个未定的法律问题。但是,我会继续使用单个安装程序,并确保一些着名的文档提到了不同的许可证。