首页 » Network » network_else » 正文

概览开源协议

0x00 什么是开源协议

简单的说,就是规定别人用你的开源代码可以做什么,可以修改什么,可以怎么用,用的时候要达到啥要求的一个条约。协议可以维护代码原作者的权利,尊重原作者劳动成果。开源协议有很多种,自己也可以写一份,但是如果没有特别需求,还是选一个已经写好的协议较为方便。

 

0x01 主要的开源协议

1. MIT:此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险。保留版权,而无任何其他限制。

关键词:保留版权,其他随意

代表:jQuery,.NET core,Rails

 

2. Apache:与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权。

(1)需要给代码的用户一份Apache Licence

(2)如果你修改了代码,需要再被修改的文件中说明。

(3)在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

(4)如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

关键词:专利授权,商业友好

代表:Android,apache,swift

 

3. BSD:

(1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

(2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

(3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

关键词:商业友好。

 

4. GPL:此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。

关键词:开源,免费,传染

代表:linux,bash,GIMP

 

5. LGPL:允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。LGPL开源代码很适合作为第三方类库被商业软件引用。

关键词:库引用,可商业

 

0x02 主要协议图表说明

图片来源:www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

图片来源:www.gcssloop.com/tips/choose-license

更详细的协议内容可以参考:
英文版:https://choosealicense.com

中文版:choosealicense.online

 

0x03 结语

尊重作品作者的劳动是基本道德素养,才能营造出良好的开源环境。每个人都应该尊重版权,尊重他人劳动,不仅是开源代码作品,其他作品也一样。本博客也积极做到不能转载的不转,可以转的按要求转(一些文章没写能否转载的本人默认可以转载),引用的地方注明引用源,参考到的文章都在参考资料里写出,欢迎大家监督,如果有无意侵权的地方,请联系本人LSA,大家共同维护互联网纯净和谐的环境。

 

0x04 参考资料

www.cnblogs.com/Wayou/p/how_to_choose_a_license.html

www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

blog.csdn.net/u012150179/article/details/25490535

univasity.iteye.com/blog/1292658

https://baike.baidu.com/item/开源协议/10642383?fr=aladdin

https://www.zhihu.com/question/19568896

www.gcssloop.com/tips/choose-license

https://creativecommons.org/choose/

choosealicense.online/licenses/

https://choosealicense.com

 

Comment