Forking GPL项目:我对新的fork有完整的权限还是与原始所有者有依存关系


34

我正在考虑创建一个由GPLv2许可的小型项目的分支,并且我在一些有关各种站点和论坛的研究中未能解决的一些非常具体的问题。

当我分叉代码时,我被迫按照与我相同的许可证(GPL)来发布新项目,但是我是否也可以决定以双重许可(其中之一是商业许可)发布该新项目?

分叉项目时,我是否自动拥有整个作品的版权?这是有关时,例如,在决定许可未来的变化,或者能够执行GPL许可证3 聚会


10
如果可能的话,任何人都可以简单地创建一个GPL项目并获得具有全新许可证的相同软件,从而有效地消除了任何与GPL相关的限制,并且只需一步即可取消GPL许可证。
user2485710 2014年

GPL允许商业使用!
feklee '18

Answers:


75

简短的答案:当您分叉现有项目时,通常您无权更改许可证,也没有复制代码的版权。

确实拥有对您进行的任何(非重要的)修改或添加的版权。


长答案:

获得一段代码的版权的唯一方法是自己编写代码或通过合同获取分配给您的版权。这意味着分叉现有项目不会更改原始项目或fork的代码的版权。

唯一可以更改版权许可的人是该版权的所有者。如果一个项目的代码有多个版权所有者,那么所有版权所有者必须同意更改版权许可。这意味着您无权更改您的fork许可证(甚至没有对其进行双重许可),除非现有的版权许可明确授予您对代码进行再许可的权利。


2
版权问题的良好解释。
罗里·亨特2014年

2
@ArtB,不确定GPL-> AGPL,但是LGPL特别允许您发布GPL下的修改版本(请参阅第2条)。允许您执行的操作实际上取决于初始许可证是什么。
布鲁诺

3
@ 2rs2ts不确定您说的是真的(请参阅GPLv3的第13节 ...当然,这取决于我们是在谈论GPLv2还是GPLv3)。此外,您所做的更改通常都是您的。如果将魔术小部件添加到GPL项目A,则可能确实必须重新分配GPL下的批次,但是如果将相同的魔术小部件添加到BSD项目B,则可以重新许可您的东西(而不是项目A中的东西)您想要的任何方式(与项目B的许可证兼容)。(和往常一样,如果您想确定的话,请寻求法律建议。不是吗。)
Bruno

1
请记住,无论如何,您的代码都是AFAIK(但IANAL),即您自己的代码,即,无论目标项目的许可如何,您都可以根据自己的许可发布补丁。
o0'。

4
@Lohoris:没错,您可以释放使用所需许可证编写的补丁。但是,如果不慎选择该许可证可能会使修补的代码不可分发,因为不可能满足所有许可证要求。
Bart van Ingen Schenau 2014年

24

您的分叉项目是原始项目代码的派生。换句话说,您的项目正在使用原始项目,因此您受其许可证的约束。如果事实并非如此,那么许可证将毫无意义。

因此,不,如果专有代码是从不允许的代码中派生的,则您不能根据专有许可发布代码。


Bart的答案暗示对分叉代码的许可要求要比您更严格的条件-在一般情况下哪个是正确的?
托马斯

您的答案构成了一个分叉的项目派生作品,如果原始代码在允许重新派生作品的许可的前提下,则可以重新许可。Bart的回答是,无论原始许可说什么,除非获得版权,否则您永远都无法许可叉形代码。这些等效吗?
托马斯

4
@Thomas Dan's是正确的,如果原始许可证允许重新许可,那么您可以重新许可新项目。我不相信Bart的回答说明了您对它的解释。OP讨论的是根据GPL许可的代码,因此在这种情况下两者是等效的。
塔伊米尔2014年

5
@托马斯,我不认为那里有冲突。我们两个答案的重点是,您将继续受到您从中分叉的代码的许可的约束。但是,您可以执行该代码的许可证允许的任何操作。Bart指出,如果原始作品的许可授予您许可,则可以根据其他许可来发行作品。

@Taemyr是的,我想我对Bart的答案是适用于所有许可证(如书面建议)还是仅适用于GPL(如该问题所示)感到困惑。
托马斯

17

暂时忘掉GPL,然后看看版权。当您分叉项目时,原始项目中存在的所有代码均为在原始项目中编写该代码的人的版权。您之后编写的所有代码均为您的版权。因此,除非您重写原始项目中的所有代码,否则该代码不是您的,并且您没有合法权利。

接下来,您将查看GPL许可,并检查它授予您的版权以外的其他权利。它允许您创建派生作品,这首先使整个分叉业务合法-凭借简单的版权法,将不允许您创建派生作品。接下来,只要您不分发代码,就可以使用它。因此,只要没有其他人可以使用派生的代码,GPL允许您使用它来做自己想做的事情。

但是,如果您分发分叉的代码(包括其他人的受版权保护的代码),则只有遵循版权所有者的规则,您才能获得版权所有者的许可。一个规则是,您必须根据GPL许可整个代码(包括您自己的代码)。另一个规则是您必须将源代码提供给其他人。有关详细信息,请查看GPL。

只要仍然有原始代码,更改许可证就很困难。您不能以阻止下一个人以GPL允许的方式使用代码的方式来许可您的代码,也不能允许他们使用GPL不允许的代码来做事。


1
我通常都同意您的回答,但我想您可能需要改写这句话:“根据简单的版权法,您将不被允许创作衍生作品。” 通常,假装是准确的就足够了,但是也有例外。(版权,模仿等内容失效)但是,我承认大多数内容不适用于GPL。
Patrick M
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.