引言:一场关于自由与共享的持久战
在软件产业初期,源代码被视为企业的核心资产,各家企业严格保密,不示外人。这种封闭、私有的模式,引发了理查德斯托曼等人的坚决反对。
理查德认为,软件的自由关系着人类的自由,他要让技术造福整个社会,而不是少数几家商业公司。
于是,1983年,GNU项目启动了。理查德创造性地提出了象征自由、开放、社区、共产的"Copyleft"的概念,以对标象征封闭、私有、专利的 Copyright 体系。
从传播性的GNU GPL家族,到更加宽松的Apache、MIT,开源社区与 Copyright 的斗争从未停止。GPL的传染性、Apache的开放性、MIT的极简主义,共同组成了开源许可证的三大主要流派。但无论如何演变,开源运动始终坚持着最初的理想:让软件成为人类共同的财富,而不是少数人的特权。这种共产精神,才是当今世界数字文明蓬勃发展、不断进步的内驱动力。
常见的开源许可证
GNU GPL家族
-
GNU General Public License (GPL)
- 允许自由地运行程序
- 允许自由地阅读、学习、修改代码
- 允许自由地分发原版或修改的程序
- 必须以GPL兼容的许可证开源发布修改后的程序。
- 必须保证自由分发,不得添加额外的限制。
-
GNU Lesser General Public License (LGPL)
- 在GNU-GPL的基础上,
- 允许非GPL软件链接到LGPL开源的库,无需开源
- 但对于LGPL库本身的修改,必须以LGPL或GPL发布
-
GNU Affero General Public License (AGPL)
- 在GNU-GPL的基础上,
- 必须以AGPL兼容的许可证开源发布修改后的程序。
- 通过网络提供的服务,如果使用了AGPL授权的软件,则必须开源该服务端的代码。
Apache所代表的开放性许可证
- Apache 2.0 License
- 允许免费使用软件
- 允许自由地修改、分发软件,并对修改后的软件再许可
- 必须保留版权声名
- 必须保留原始的许可证
- BSD License
- 允许免费使用软件
- 允许自由地修改、分发软件,并对修改后的软件再许可
- 允许以其他许可证分发修改后的软件
- 必须保留版权声名
MIT许可所代表的极简主义
极简、宽松,仅保留最基本的版权声明和许可声明,这就是MIT这类极简主义许可证的主要特点。
- MIT License
MIT License来自于麻省理工(MIT),它的内容总结起来非常简单:允许任何用途,只需保留版权声明和许可声明。 - Unlicense
放弃版权,将软件完全释放到公共领域。 - WTFPL
简单且粗暴的开源许可证,正文仅一句话:“Do What The Fuck You Want”,做你她娘想做的任何事。 - Beerware
如果遇到作者并觉得软件有用,可以请作者喝一杯啤酒。唯此,无他。
我该如何选择许可证
没有绝对完美的许可证,只有最适合特定场景的许可证。
严格且具有传染性的许可证,例如GNU-GPL系列,可以有效保证软件的公开和免费,但有可能挫伤其他人二次开发的积极性。选择具体使用什么许可证的时候,我们需要在这两者中做出权衡。因此,对于那些刚刚接触开源的开发者,我建议通过以下标准来合理选择许可证:
如果你的软件是一个成品,例如一个服务器,一个功能完备的程序,那么你可以选择GPL系列许可证;但是如果你开发的是一个模块、一个底层功能,那么GPL通常不是好的选择,你更应该看看BSD或者MIT这样的开放性许可证。当然,如果你希望你的软件彻底公开和自由,同时你也有一个有趣的灵魂,那么WTFPL和Beerware就是你的不二之选。
至于我?
KFC Crazy Thursday Public License
This software is provided "as is", without warranty of any kind.
However, if you find this software useful, you can buy the author a KFC Crazy Thursday meal. You can do this by V me 50 CNY on any Thursday.