我正在开发一个软件系统的原型,该原型(至少在开始时)将是封闭源代码。
为了节省时间,我正在考虑使用(即静态链接)在GPLv3下获得许可的库,因此我可以快速测试设计。如果在此阶段分发软件,则必须随同分发源代码。
如果我不这样做,但是让自己确信我的系统可以运行,然后在分发之前用我自己的代码替换GPL库,该怎么办?结果会被GPL“污染”吗?
我感觉是否在我的Git历史记录中保留GPL库可能会有所作为。
我正在开发一个软件系统的原型,该原型(至少在开始时)将是封闭源代码。
为了节省时间,我正在考虑使用(即静态链接)在GPLv3下获得许可的库,因此我可以快速测试设计。如果在此阶段分发软件,则必须随同分发源代码。
如果我不这样做,但是让自己确信我的系统可以运行,然后在分发之前用我自己的代码替换GPL库,该怎么办?结果会被GPL“污染”吗?
我感觉是否在我的Git历史记录中保留GPL库可能会有所作为。
Answers:
GPL 写道:
您可以根据第4节的条款,以源代码的形式,根据本程序或为从本程序产生的修改而传达的作品,但前提是您还满足以下所有条件:
因此,此条件仅在您的工作“基于”库的情况下适用,该许可证的定义如下:
“修改”作品是指除需要进行精确复制外,还需要获得版权许可才能从全部或部分作品中复制或改编全部或部分作品。产生的作品称为早期作品的“修改版本”或“基于”早期作品的作品。
也就是说,当且仅当它是根据版权法的衍生作品时,您的程序才“基于”该库。在不同的司法管辖区中,该术语的法律定义有所不同,通常不会直接针对软件。例如,美国版权法规定:
“衍生作品”是指基于一种或多种先前存在的作品的作品,例如翻译,音乐编排,戏剧化,虚构化,电影版本,录音,艺术品复制,删节,缩编或任何其他形式的作品可以重铸,转换或改编。由编辑性修订,注解,细化或其他修改组成的作品,总体上代表着原创性作品,是“衍生作品”。
这对软件意味着什么,必须由法院根据较早的类似裁决加以解释。我对您所在管辖区的相关判例法还不太熟悉,无法确定地说法院将如何判决您的案件。有人可能会说“用自己的代码替换GPL库”是一种翻译,尤其是在您的代码受GPL实现强烈启发的情况下。即使重用GPL库的API也会使您陷入困境(请参阅Oracle vs. Google)。
如果答案对您很重要,我建议您寻求有能力的法律建议,而不要在互联网上询问陌生人。
只要您在链接到GPL的库时不向任何人发布该软件,就可以保证安全。仅当您分发软件时,GPL的病毒性方面才会发挥作用。
当然,如果您可以找到许可更宽松的图书馆,那就更好了,例如LGPL或APL2或MIT。
我认为您的问题实际上不是关于GPL的。它涉及原型以及将来是否将其用作可交付软件系统的基础。
如果您要制作一次性原型,并且不打算在可交付使用的系统中重用任何代码,请继续使用GPL库。
但是,如果您要发展原型(很多管理人员都在努力争取!),则可以采用以下三种方法:
我建议您采用第一种方法,因为这样您便拥有开源的工作,将来可以将它们用作专业产品组合的一部分。
第二种方法也很好,因为无论如何这就是您应该设计系统的方式,创建所需的确切函数/类,然后将它们存根,直到您拥有可以填充该功能的库或自定义代码。