我发现了一个GPL库(没有双重许可),正是我所需要的。不幸的是,该库上的GPL许可证与我使用的其他库的许可证不兼容。因此,我决定重写GPL库,以便可以更改许可证。
我的问题是:为了能够更改许可证,需要对库进行多大的更改?换句话说,最便宜的方法是什么?
我发现了一个GPL库(没有双重许可),正是我所需要的。不幸的是,该库上的GPL许可证与我使用的其他库的许可证不兼容。因此,我决定重写GPL库,以便可以更改许可证。
我的问题是:为了能够更改许可证,需要对库进行多大的更改?换句话说,最便宜的方法是什么?
Answers:
我不是律师,但是AFAIK(如果您看到GPLed库代码,则您编写的任何仿真库都将受到污染,并且如果他的欣赏与他的评价太相似,可能会被法官宣布为衍生作品)。
因此,过程将是编写功能规范,并请尚未看过GPL代码的人来编写该库。
编辑:请注意,用您提出问题的方式“为了能够更改许可证,需要对库进行多大的更改?” 答案显然是AFAIK:无论做什么,如果您只是修改库,则必须遵守许可条款,这样您就可以首先对其进行修改。
解决此问题的通常方法是先与图书馆的所有者联系,并询问他们是否会根据不同的许可证将其释放给您。
如果您正在与GPL不兼容的开源项目上工作,那么他们很有可能会这样做,有些项目最终会获得GPL许可,因为这似乎是最好的选择。
当然,这对两个库都适用。在宽松程度较低的许可证下获得宽松许可证双重许可证应该不是问题。
如果您使用的是商业产品,那么如果您适当地补偿他们,那么许多图书馆作者都会根据不同的许可为您提供发行版本。
如果此处建议的其他所有内容(要求双重许可,重写)都不可接受,请记住,与专有程序/库的动态链接是否被视为派生作品仍不是一个明确的案例。FSF表示是这样,但是许多律师(包括Lawrence Rosen)对此表示质疑。
因此,您可以将软件与GPLed库链接,然后确保该软件的源代码随软件的每个副本一起分发。如果有人起诉您,他们必须证明,他们对GPL这个棘手和模糊的方面的理解是正确的。出现时(例如Galoob vs Nintendo),您不能绝对确定是什么使派生有效,哪些没有。
不能派生工作的唯一方法是,如果您自己重写整个代码而不使用任何原始代码。这可能是不可行的。
围绕GPL有很多更简单的方法:
另请注意,GPL是发行许可证,因此,如果您将二进制文件分发给第三方,则只需要许可您的工作即可。并且您仅有义务向他们发布源代码,没有义务向公众发布它,除非您向公众发布二进制文件。例如,如果仅在服务器上使用代码,则没有义务释放任何代码。例如,这就是Google用经过调整的Linux内核来做到这一点的方式。
IANAL,在任何情况下,这在法律上都没有任何意义,但是,我相信,在史蒂文·利维(Steven Levy)的《黑客》一书中,他描述了RMS在白天和晚上如何为金钱编写* nix代码以便可以成为... GNU的一部分......这早于Linux ...一些免费的Unix类型系统。我相信他必须将家庭代码与日代码不同,但是他基本上是在按照您的建议进行操作。
但这在法律上可能并不重要,但是...我不确定苹果和/或微软是否获得了许可/许可证或其他东西,但是实验室没有发明用于Mac的桌面/图标/鼠标界面(或Lisa?),然后由Microsoft使用。
除了您所在辖区的法官进行的审判外,没有其他答案。但是你想冒险吗?还是要努力重写GPL库,测试等。您确定其他库与GPL不兼容吗?除非您想以非GPL库条款分发两个库,否则这实际上是非常不寻常的。
为了能够更改许可证,需要对库进行多大的更改?
在世界上的大多数地区,您需要从头开始,而不是剪掉任何东西。您需要函数/类/变量等的新名称,并且结构应不同。那你就安全了。
另一方面,如果差异工具找不到相似之处,那么...