我目前正在为一个流行的开源项目添加一些功能。它是用C编写的,在每个文件中都嵌入了GPL许可文本。我要添加的功能不受项目支持。所以你可以说它是某种扩展。
在编译主项目时,我的代码会被编译。我的代码在主要项目中,它的集成程度很高。
让我更详细地解释一下。基本上我知道有两种类型的链接。
libmysqlclient链接起来。这里我使用的是libmysqlclientlibmysqlclient上添加了哈希表功能,这样用户就可以按列名访问字段。我的项目是第二类。应该是GPL吗?第一种情况怎么样(我很好奇)?
发布于 2012-07-19 16:49:29
是。GPL是一种病毒式许可;任何扩展项目的内容,甚至是与共享库的链接,都必须是GPL或兼容的许可,其中包括许多其他开源许可证,而不是所有其他开源许可证。
发布于 2023-02-23 16:39:09
您想要做的是创建一个派生的工作。要做到这一点,你需要版权持有人的许可。如果您要修改的工作是GPL许可的,那么许可证将授予您此权限。您可以私下或在公司内部使用派生工作,而无需承担任何义务。
如果您想要分发导出的作品(或仅原作),您需要版权持有人的许可。GPL许可证允许您分发工作,但前提是您在GPL许可下分发它。(并承诺提供完整的源代码)。
没有什么能使您的代码获得GPL许可。但是在某些情况下,你可以在GPL -授权你的代码或者侵犯版权之间做出选择。
发布于 2012-07-19 16:51:15
在案例(2)中,您实际上已经将代码添加到现有的GPL‘’ed项目中,GPL非常清楚地表明,您正在创建一个派生工作,该工作受GPL的约束。
在(1)的情况下,对于链接到GPL库是否要求您在GPL下授权您的产品存在一些分歧。就我个人而言,我认为你可以通过链接到一个GPL库来做你想做的任何事情。在我看来,在这种情况下,您只是在使用库,而不是创建派生的工作。
但是,还很高兴知道还有另一个名为"LGPL“的许可证,它明确规定,由于链接到LGLP库,您不必在GPL下授权产品。
https://softwareengineering.stackexchange.com/questions/157465
复制相似问题