自由软件的开源许可介绍(GPL、BSD、LGPL、Apache License 2.0)

开源许可可能是使用开源代码最重要的一环,他不仅赋予程序员使用代码的权利,也给程序员使用开源代码加了一定的权限。如果我们不遵守其开源规定,我们可能遭受法律的制裁。

一、GPL(GUN通用公共许可证)

GPL的英文名是General Public License。此协议规定:当一个开源软件被声明为GPL时,作为使用者的我们有权对该源代码进行修改以及重新发布,也就是此软件完全开放,但是与此同时,我们所修改的源代码也要允许被其他的使用者修改和重新发布。

GPL的撰写者是斯托曼,第一版在1989年1月发布,斯托曼是一个热衷于将软件自由化的人物,他的理想就是构建一种四海之内皆可使用的许可证,这样就能为自由软件的传播带来福音

总结:使用GPL协议二次开发的自由软件也要完全开源

GPL标志

二、BSD许可协议

BSD许可协议可以说是最宽容的一种协议,这个协议基本可以认为你可以对开源软件“为所欲为”,他允许你对使用BSD协议的开源软件进行修改并且应用在自己的软件上进行闭源。但是“为所欲为”的前提你仍然要受以下三点约束:

1、如果二次发布的作品为源代码,必须在文件中标注原有的BSD协议

2、如果二次发布的作品为二进制文件或者软件,必须在技术文档中标注原有的BSD协议

3、不可以使用开源代码的作者或者机构进行宣传

总结:为所欲为

三、LGPL(GUN宽通用公共许可证)

LGPL的英文名是Lesser General Public License,他是GPL的一个衍生。和GPL所规定的二次开发代码也必须完全开源不同,你可以在自己编写的软件中,调用由遵循LGPL协议编译而成的二进制库文件,这样你的软件部分就可以不开源,并且可以自由发售。但是如果修改遵循LGPL协议的开源代码,那么你所修改的代码也必须开源。

如果说GPL最大限度的促进了开源软件的自由传播,那么LGPL则在促进软件行业商用行为的发展方面起了很重要的作用,并且也保证了开源代码的自由传播。

总结:二次开发中如果不涉及修改开源代码,则软件可以闭源。

四、Apache License 2.0

Apache License 2.0可以与BSD类比,在尊重作者和原创的前提下,允许使用开源代码二次开发的软件进行重新发布,包括开源和闭源,但是要注意遵守以下几点:

1、在发售的软件中包含一份Apache License协议

2、修改源代码文件之后,要在被修改文件中添加说明

3、在修改开源代码和对开源代码进行衍生的部分需要带有开源代码原本的协议,以及作者所要求的需要包含的内容

4、如果发行软件时包含一份参考文件,参考文件需要包含Apache License,可以包含自己的许可,但不可以对Apache License更改。

总结:允许二次开发软件进行闭源,但需要尊重原创,并传播Apache License

最后补上一份开源许可图鉴(图源:网络)

发布了45 篇原创文章 · 获赞 63 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Groot_Lee/article/details/104849072