了解TinyMCE的GPL协议
TinyMCE是个老牌的编辑器,查询发现TinyMCE使用的GNU-GPL开源协议,那我是否可商用,是否可以二次开发呢?带着这个疑问,了解下GPL。
解释
如下转自知乎的一个回答
GPL协议的目的就是强制代码开源和免费使用。
其最大的特点就是“开源的传染性”。也就是说,假设某公司使用了具有GPL协议的代码库,那么他理论上也必须把自己的代码库开源。
注意,这里是理论上。
实际上,大公司可以有很多方法避开这个限制。
比如,2015年的时候,小米被指责违反了GPL协议,MIUI系统是基于Android开发的,而内核Linux遵循的是GPL协议,那么小米也必须对自己的MIUI系统进行开源。
但是小米方面给出的答复是“很快就会开源”。这个很快,就慢慢拖着,反正我也不否认未来会开源。
举例
这里以一个例子来说明下。
比如商业 SaaS 产品中使用 TinyMCE,则需要确保您的使用符合 TinyMCE 许可证的条款。 GPLv2 许可证允许您在 SaaS 产品中使用 TinyMCE,但您必须遵循某些条件:
源代码的分发:如果您修改 TinyMCE 代码,则必须向收到您产品的任何人提供这些修改。由于您不打算发布网站的源代码,因此只要您不修改 TinyMCE 源代码,此要求可能不适用于您。
Copyleft 条款:TinyMCE 的任何衍生作品也必须根据 GPLv2 许可证获得许可。这意味着,如果您将 TinyMCE 合并到您的网站中,并且您的网站被视为衍生作品,则您必须在 GPLv2 许可证下提供网站的源代码。然而,关于通过 JavaScript 链接到 TinyMCE 是否构成衍生作品,存在一个灰色地带。有些人认为,只要 TinyMCE 作为一个单独的程序运行,就不会。
动态链接:如果您的网站动态链接到 TinyMCE(例如,通过 JavaScript),则通常认为它与 TinyMCE 本身是分开的,并且 Copyleft 条款可能不适用。然而,这种解释可能会有所不同,您应该咨询法律建议以确保合规。
鉴于您的网站是可公开访问的,因此请务必仔细查看 GPLv2 许可证的条款并考虑寻求法律建议,以确保您对 TinyMCE 的使用符合许可证条款并且不会无意中违反任何义务。
结论
假如我的WEB项目中用到了GPL协议的TinyMCE,即使我只是使用这个编辑器,并没有二次开发,我整个项目也都需要遵守GPL许可,即整个项目要开源。除此之外还有个办法即得到商业许可。
so,只是想商业项目中使用到TinyMCE,保险起见是不行。
其它开源编辑器
除了TinyMCE也有其它不错的选择。
比如monaco-editor,monaco是MIT协议,即可以随便商用了。我们常用的VSC中的编辑器就是使用的该项目。