Plugins 允许在gpl应用程序上使用非gpl插件/模块的正确方法是什么?

Plugins 允许在gpl应用程序上使用非gpl插件/模块的正确方法是什么?,plugins,licensing,content-management-system,gpl,Plugins,Licensing,Content Management System,Gpl,我开发了一个开源CMS,它是根据GPLv3授权的,我想为任何人打开插件/模块体系结构,让他们贡献自己的扩展。但是,我想让贡献者自由选择他们想要的扩展许可证,而不是强迫他们使用主应用程序的许可证 我的理解是,一个普通的GPL许可证也会迫使他们以GPL代码的形式发布他们的扩展,但是由于这些是扩展,而不是应用程序的核心功能,我不清楚GPL在这里的立场是什么,或者如果有更合适的开源许可证。有一个图表,总结了各种不同的自由和开放源码软件许可证,并在第一栏评论了专有软件链接。它看起来不是特别最新,也不包括许

我开发了一个开源CMS,它是根据GPLv3授权的,我想为任何人打开插件/模块体系结构,让他们贡献自己的扩展。但是,我想让贡献者自由选择他们想要的扩展许可证,而不是强迫他们使用主应用程序的许可证


我的理解是,一个普通的GPL许可证也会迫使他们以GPL代码的形式发布他们的扩展,但是由于这些是扩展,而不是应用程序的核心功能,我不清楚GPL在这里的立场是什么,或者如果有更合适的开源许可证。

有一个图表,总结了各种不同的自由和开放源码软件许可证,并在第一栏评论了专有软件链接。它看起来不是特别最新,也不包括许可证版本,但它可能仍然是一个起点。

我认为标准做法是在许可证中写入例外条款。GCC这样做:

作为特殊例外,您可以将此文件用作自由软件的一部分 图书馆没有限制。具体来说,如果其他文件实例化 模板或使用此文件中的宏或内联函数,或编译 此文件并将其与其他文件链接以生成可执行文件 文件本身不会导致生成的可执行文件被 GNU通用公共许可证。然而,这一例外并不存在 使可执行文件可能被覆盖的任何其他原因无效 GNU通用公共许可证


由于您拥有代码,因此您拥有版权,并且可以在以后将许可证更改为LGPL(较小的gpl或库gpl)或bsd/mit许可证,这在本例中更为允许

仅仅因为您最初将代码许可为GPL,并不意味着您将来必须继续将其许可为GPL

如果你打算在修改过的GPL下发布它,那么称它为GPL是不正确的,因为它违反了所有GPL规则。。那么,如果它不是真正的GPL spirit许可证,为什么要称之为修改的GPL呢


你在这里遇到的正是GPL的问题。。它可以像病毒一样,感染你不想让它感染的代码。这是不选择gpl的一个很好的理由,因为它不像其他许可证(如MIT/BSD)那样提供自由。

只是好奇:你为什么不在非版权许可证下许可CMS本身?主要是因为我最初是以gpl的身份开始这个项目的,而这只是一个新版本。然而,由于这个新版本允许添加第三方扩展,因此似乎是时候审查哪一个是最合适的许可证了。我投票结束这个问题,因为它是关于许可证或法律问题,而不是编程或软件开发。关于细节,还有更多。听起来是个不错的答案。此外,您还需要在exception子句中非常具体地说明GPLv3覆盖的代码和插件之间的界限。