我现在正在开发一个小型项目,因此我计划根据开放源代码许可证进行发布(尚未决定哪个版本)。我的问题是,我使用的Python模块之一已获得GPLv3许可。由于我没有对库进行任何修改(按原样使用),我是否仍可以根据自己选择的许可来许可我的项目,还是会被迫也将其制作为GPLv3?
我现在正在开发一个小型项目,因此我计划根据开放源代码许可证进行发布(尚未决定哪个版本)。我的问题是,我使用的Python模块之一已获得GPLv3许可。由于我没有对库进行任何修改(按原样使用),我是否仍可以根据自己选择的许可来许可我的项目,还是会被迫也将其制作为GPLv3?
Answers:
您必须按照GPLv3发行软件。
该许可说明确(逗号5):
您必须根据本许可将整个作品作为一个整体许可给拥有副本的任何人。因此,本许可证以及所有适用的第7条附加条款,将适用于整个作品及其所有部分,无论其包装方式如何。本许可不授予以任何其他方式许可作品的许可,但是,如果您单独收到该许可,则不会使该许可无效。
我认为非常简单。根据FSF(以及AFAIK的一些法院裁决),如果程序本身也不是GPL,则任何形式的库链接都将受到侵犯。
另一方面,LGPL的设计正是为了允许非自由程序链接到自由库。
高温超导
安全的做法是释放您在与GPLv3 兼容的许可证下编写的代码。GPLv3当然是与其自身兼容的,但是您可以选择很多其他许可证。在FSF的许可证清单是自以为是,但可被视为对这个问题,其中其他许可证与GPL的哪个版本兼容的权威。
我个人建议您使用“或根据需要选择任何更高版本”的语言在GPL版本2下许可代码。这样就实现了与GPLv3和GPLv2代码的兼容性,从而实现了与Copyleft许可证的最大兼容性。如果您不希望有版权,请使用X11许可证。
如果您不希望发布源代码,则不应在任何 Copyleft许可下重复使用代码或数据-Copyleft的全部目的是增强源的可用性,因此在封闭源代码程序中使用Copyleft的材料是不道德的即使您没有违反许可证书的内容(我也不会告诉您该怎么做;如果您受约束并确定了,请咨询实际的版权律师)。