重写GPL代码以更改许可证


23

我发现了一个GPL库(没有双重许可),正是我所需要的。不幸的是,该库上的GPL许可证与我使用的其他库的许可证不兼容。因此,我决定重写GPL库,以便可以更改许可证。

我的问题是:为了能够更改许可证,需要对库进行多大的更改?换句话说,最便宜的方法是什么?


3
付费给GPL库的作者以不同的许可证将其发布给您可能会更便宜。
quant_dev

3
与其问最便宜的方式,不如告诉我们完整的故事并问“做正确的事是什么?”
约翰·R·斯特罗姆

4
如果其他库与GPL不兼容,则可能是您需要更改的库。
Paul Butcher 2012年

1
另一个图书馆有什么许可证?
Andres F.

Answers:


34

我不是律师,但是AFAIK(如果您看到GPLed库代码,则您编写的任何仿真库都将受到污染,并且如果他的欣赏与他的评价太相似,可能会被法官宣布为衍生作品)。

因此,过程将是编写功能规范,并请尚未看过GPL代码的人来编写该库。

编辑:请注意,用您提出问题的方式“为了能够更改许可证,需要对库进行多大的更改?” 答案显然是AFAIK:无论做什么,如果您只是修改库,则必须遵守许可条款,这样您就可以首先对其进行修改。


3
在实践中,污染问题可能不是一个非常严重的问题。如果您要对商业实体的代码进行逆向工程,那么对于(基本上是不可避免的)侵权诉讼,阅读器和实施者之间必须有防火墙,因此您可以证明不可能从其他版本复制代码。就大多数GPL代码而言,除非您公然侵权,否则没人会起诉您,因为这样做不符合他们的利益。
Mark Bessey

1
您可能会喜欢俄罗斯轮盘赌,这是您的选择。如果出于某种原因-竞争以某种方式继承了代码,或者仅仅是竞争决定为诉讼提供资金-则您将被起诉并定罪,这可能会淹没您的公司。即使您没有被起诉,但众所周知,不良声誉可能是一个问题。
AProgrammer

2
我认为“受污染”问题主要适用于NDA。对于版权问题,这几乎没有道理。考虑到版权也适用于书籍,报纸,电影等。乔治·卢卡斯(George Lucas)可能在创作《星球大战》之前在电视上看过《星际迷航》系列,这使《星球大战》成为衍生作品吗?如果报纸记者在广播中听到某事,这是否会阻止他写同一事件?
user281377 2011年

6
洁净室方法只是证明您没有违反版权法的一种方法。据我了解-而且我又不是律师-在不了解原始作品的情况下开发的产品可能不会侵犯版权(但可能会侵犯专利)。以此知识开发的事物可能会或可能不会侵犯版权-很难证明相似性是由于随机事件或使方法自然化的问题的性质所致。
AProgrammer 2011年

1
@ammoQ:在美国,很久以前就有一个复制侵权诉讼(一个统计软件包?),即使每一行代码都已被重写,该公司仍被认为侵权。请注意,《星球大战》与《星际迷航》并不特别相似,而且报纸的记者也不会仅仅根据他或她在广播中听到的内容来撰写故事。
David Thornley

21

解决此问题的通常方法是先与图书馆的所有者联系,并询问他们是否会根据不同的许可证将其释放给您。

如果您正在与GPL不兼容的开源项目上工作,那么他们很有可能会这样做,有些项目最终会获得GPL许可,因为这似乎是最好的选择。

当然,这对两个库都适用。在宽松程度较低的许可证下获得宽松许可证双重许可证应该不是问题。

如果您使用的是商业产品,那么如果您适当地补偿他们,那么许多图书馆作者都会根据不同的许可为您提供发行版本。


8
值得一试,但是如果图书馆的所有者已经接受或使用了GPL贡献,这是行不通的,许多图书馆就是这种情况。
布赖恩

^除非他们有将原始作者的版权重新分配给原始作者的“贡献者”协议:softwareengineering.stackexchange.com/a/225577/93511
乔纳森

17

我的理解是,如果您从某作品开始并对其进行修改,则无论修改的范围有多大,最终结果都是原始作品的衍生作品。您将需要从头开始编写该库。如果您是从头开始编写该库的,但是已经看过代码,那么如果它太相似,则可能再次被起诉侵犯版权。

这些规则并非特定于软件,它们适用于各种受版权保护的事物。

我不是律师,这也不是法律建议。我也很可能不在您的管辖范围内,您应该始终对Internet上提供的法律建议持怀疑态度。如果您希望获得可靠的法律建议,则需要向律师付费。


4

IANAL,但我确实知道,在美国,任何程度的修改都不会产生非衍生作品。如果它具有从旧库中复制的任何代码,或者具有足够的内部相似性,以至于您在大学课堂上遭受抄袭困扰,那么您将无处可寻。更改函数或变量的某些名称将无济于事,也不会在源代码中四处移动代码块。您将不得不独立地重新创建它,甚至有机会。IOW,您只需要查看它提供的接口,并决定如何提供该功能并以机会的方式重新创建它。即使那样,如果有人真的在乎并发疯,您仍可能不会走出困境。

最后,最好的选择是与图书馆的作者联系,并希望您能找到安排对图书馆进行更多许可的安排。


1

如果此处建议的其他所有内容(要求双重许可,重写)都不可接受,请记住,与专有程序/库的动态链接是否被视为派生作品仍不是一个明确的案例。FSF表示是这样,但是许多律师(包括Lawrence Rosen)对此表示质疑。

因此,您可以将软件与GPLed库链接,然后确保该软件的源代码随软件的每个副本一起分发。如果有人起诉您,他们必须证明,他们对GPL这个棘手和模糊的方面的理解是正确的。出现时(例如Galoob vs Nintendo),您不能绝对确定是什么使派生有效,哪些没有。


或至少询问lib是否也可以是LGPL。
约翰

2
动态链接问题很棘手,但不要指望法官做出决定。法官可能会裁定,如果您使用Gnu许可证,则您接受Gnu定义,并且您可能不想基于尚未发生的诉讼结果来开发软件产品。
David Thornley

1

不能派生工作的唯一方法是,如果您自己重写整个代码而不使用任何原始代码。这可能是不可行的。

围绕GPL有很多更简单的方法:

  • 明确:将其投入使用,并通过套接字对其进行访问。套接字是GPL许可证的边界(除非它是臭名昭著的带有Affero子句GPLv3);
  • 在灰色区域:动态链接它。如果动态链接是否是派生作品的边界,则存在很多争议。这里的观点很少。这也可能取决于您所在的管辖区。

另请注意,GPL是发行许可证,因此,如果您将二进制文件分发给第三方,则只需要许可您的工作即可。并且您仅有义务向他们发布源代码,没有义务向公众发布它,除非您向公众发布二进制文件。例如,如果仅在服务器上使用代码,则没有义务释放任何代码。例如,这就是Google用经过调整的Linux内核来做到这一点的方式。


我不确定套接字是否会成为障碍。根据我们的律师的说法,工程师过于注重技术措施,而全球影响力却受到法律的约束。对于他们来说,发布套接字接口并在emacs lisp中给出示例使用是可以的。但是,没有提供与我们的程序一起自动安装emacs的可能性。你是正确的分配。但是请注意,您不能阻止您分发给的人进一步分发。
AProgrammer

@AProgrammer:甚至FSF都说,如果它是单独的过程,那么它们是单独的程序,因此不是派生工作。常见问题是关于插件,但逻辑仍然适用:gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

问题是关于插件,而插件本质上并不是必不可少的。我不会打赌我的公司会在两个过程中构造一个程序,一个是GPLed,因为它使用GPLed库,另一个不是因为我们想要保持源代码私有是合法的。尤其是当两者都分布在一起时。但这就是你的电话。
AProgrammer 2011年

1
@A:与其他程序的分发是“聚合”,并且由GPL明确允许。不,那不是我的电话。就个人而言,即使使用10英尺长的棍子,我也不会接触GPL库。
vartec

1

IANAL,在任何情况下,这在法律上都没有任何意义,但是,我相信,在史蒂文·利维(Steven Levy)的《黑客》一书中,他描述了RMS在白天和晚上如何为金钱编写* nix代码以便可以成为... GNU的一部分......这早于Linux ...一些免费的Unix类型系统。我相信他必须将家庭代码与日代码不同,但是他基本上是在按照您的建议进行操作。

但这在法律上可能并不重要,但是...我不确定苹果和/或微软是否获得了许可/许可证或其他东西,但是实验室没有发明用于Mac的桌面/图标/鼠标界面(或Lisa?),然后由Microsoft使用。


那将是施乐PARC,而不是贝尔实验室。
Marnen Laibow-Koser 2014年

乔布斯与施乐(Xerox)达成协议,使苹果得以在帕洛阿尔托(Palo Alto)参观该实验室。施乐公司当时没人在乎这项技术。
aledalgrande 2014年

0

除了您所在辖区的法官进行的审判外,没有其他答案。但是你想冒险吗?还是要努力重写GPL库,测试等。您确定其他库与GPL不兼容吗?除非您想以非GPL库条款分发两个库,否则这实际上是非常不寻常的。


您可以在gnu.org/licenses/license-list.html上获得Gnu许可证列表,您会注意到它分为免费的GPL兼容许可证,免费的非GPL兼容许可证和非免费许可证。GPL有一些其他许可证经常不符合的特定要求,而GPLv3的目标之一就是使兼容性更容易。
David Thornley

0

为了能够更改许可证,需要对库进行多大的更改?

在世界上的大多数地区,您需要从头开始,而不是剪掉任何东西。您需要函数/类/变量等的新名称,并且结构应不同。那你就安全了。

另一方面,如果差异工具找不到相似之处,那么...


2
如果差异工具找不到任何相似之处,则可能仍是侵犯版权。从非编程的角度来看它:我写了一本书,将其翻译成瑞典语,然后根据美国(可能还有瑞典语)版权法,您做了衍生作品。
David Thornley

@David Thornley是的,您对派生工作是正确的。
约翰
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.