
Kelly1024
2023/05/10阅读:18主题:前端之巅同款
如何为自己的开源项目选择许可证
就结论而言,如果你很随意、不在乎,那就选择MIT协议,如果要为自己的权益提供尽可能的保障,那就GPL🛡️
为自己的软件知识产权选择许可证的必要性在于,如果不去选择,则默认为放弃了自己的全部权利,包括署名权。许可,就是提供给使用你劳动成果的人有一定的权限,不过你仍然拥有版权和专利(如果申请了的话)。开源许可证使得我们发布开源软件产品变得简单。
通过OSI(Open Source Initiative)组织批准的许可证目前有78种。当前流行的6种GPL,LGPL,Apache,MIT,BSD和MPL都是OSI批准的许可证。GitHub建了一个很赞的网站choose a license,提供了各主流许可证的协议文本,并对它们作了详细的介绍和比较。
这里仅对最最常见的三种协议GPL,Apache和MIT进行简单介绍和比较。
GPL
GPL(GNU General Public License)许可证是一个开放源码许可证,只要在软件产品中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL许可证的产品,则该软件产品也必须采用GPL许可证发布,并且不论以何种形式发布,都必须同时附上源代码。这就是所谓的“传染性”。其他细节与Apache许可证类似,如:
-
软件及衍生产品可以用于商业目的。 -
产品可以被自由地分发、修改。 -
同时提供额外的专利授权。 -
产品再发布时包含一份原始许可声明和版权声明。 -
如果修改了源代码,包含一份代码修改说明。
Apache
Apache许可证中,软件产品可以自由修改、发布和商用,该许可证还为用户提供专利许可,只须满足以下条件:
-
包含一份原始许可声明和版权声明 -
如果修改了源代码,包含一份代码修改说明。 -
不得使用其原始商标
MIT
MIT许可证是一个简短、宽松的许可证,唯一的要求就是保留原始版权和许可声明。你可以:
-
商业使用。软件及衍生产品可以用于商业目的。 -
自由地修改、发布。软件可以被自由地拷贝、修改、发布。
如何选择?
MIT最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。Apache协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL可以说最霸道,对代码的修改部分也必须是GPL的,同时基于GPL代码而开发的代码也必须按照GPL发布。
从限制他人权利的强度而言,GPL > Apache > MIT。
就结论而言,如果你很随意、不在乎,那就选择MIT协议,如果要为自己的权益提供尽可能的保障,那就GPL🛡️
作者介绍
