github里汇聚了非常多的资源,也有非常多的大牛和公司开源了优秀的项目。
第一次写分享,计划从 license 开始讲起,毕竟要想安全免费的使用github里面的项目一定要对项目的使用边界有所理解。
常见的开源许可证包括:
1 apache license 2.0
2 gnu general public license v3.0
3 mit license
打开github随意搜索一个常用词,github的列表里包括: 项目名,简述,开发语言,关键字,星数,语言类型,许可证,最近更新时间
如图:
下面我们来大概了解一下不同license解释以及使用边界
1 apache license
apache许可证(英语:apache license),是一个由apache软件基金会发布的自由软件许可证,最初为apache http服务器而撰写。apache许可证要求被授权者保留著作权和放弃权利的声明,但它不是一个反著作权的许可证。
此许可证最新版本为“版本2”,于2004年1月发布。
apache许可证在apache社区内外被广泛使用。apache基金会下属所有项目都使用apache许可证,许多非apache基金会项目也使用了apache许可证:据统计,截至2012年10月,在sourceforge上有8708个项目使用了apache许可证。
许可条件
apache许可证是宽容的,因为它不会强制派生和修改产物使用相同的许可证进行发布(与一些著作权许可证不同,参见比较)。但它仍然要求对所有未修改的部分应用相同的许可证,并且在每个许可文件中,必须保留在分发代码中的任何原始著作权,专利,商标和归属通知(不需要包括任何部分的派生作品);并且在每个更改的许可文件中,都必须添加一条通知,说明对该文件进行了更改。
如果声明文本文件作为原始作品发布的一部分包含在内,则派生作品必须在包含该通知文本文件的可读副本,可以是文档或显示在软件中。
声明文件的内容不会修改许可证,因为它们仅用于提供信息,并且可以在许可证文本中添加更多属性声明,前提是这些声明不能被理解为修改许可证。修改可能有适当的著作权声明,并可能为修改提供不同的许可条款。
除非另有明确规定,否则许可证持有者向授权者提交的任何文稿将根据许可证的条款进行,没有任何条款和条件,但这并不排除与授权者有关的这些贡献有单独的协议。
2 gnu general public license v3.0
gnu通用公共许可协议(英语:gnu general public license,缩写gnu gpl 或 gpl),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。许可证最初由自由软件基金会的理查德·斯托曼为gnu项目所撰写,并授予计算机程序的用户自由软件定义(the free software definition)的权利。gpl是一个copyleft许可证,这意味着派生作品只能以相同的许可条款分发。这与宽松自由软件许可证有所区别 ,如bsd许可证和mit许可证就是其中被广泛使用的例子。gpl是第一个普遍使用的copyleft许可证。
到2005年,gpl版本3开始由斯托曼起草,由伊本·莫格林和软件自由法律中心(software freedom law center)提供法律咨询。2005年底,自由软件基金会 (fsf)宣布了gpl(gplv3)第3版的工作。2006年1月16日,公布了gplv3的第一个“讨论稿”,公众咨询开始。公众咨询原计划为九至十五个月,但最终延长至十八个月,其中出版四份草案。2007年6月29日,官方正式版gplv3于由fsf发布。
3 mit license
mit许可协议之名源自麻省理工学院(massachusetts institute of technology, mit),又称“x许可协议”(x license)或“x11许可协议”(x11 license)
mit内容与三条款bsd许可协议(3-clause bsd license)内容颇为近似,但是赋予软件被许可人更大的权利与更少的限制。
被许可人权利
被许可人有权利使用、复制、修改、合并、出版发行、散布、再许可和/或贩售软件及软件的副本,及授予被供应人同等权利,惟服从以下义务。
被许可人义务
在软件和软件的所有副本中都必须包含以上著作权声明和本许可声明。
其他重要特性
此许可协议并非属copyleft的自由软件许可协议条款,允许在自由及开放源代码软件或非自由软件(proprietary software)所使用。
mit的内容可依照程序著作权者的需求更改内容。此亦为mit与bsd(the bsd license, 3-clause bsd license)本质上不同处。
mit许可协议可与其他许可协议并存。另外,mit条款也是自由软件基金会(fsf)所认可的自由软件许可协议条款,与gpl兼容。
注:以上关于license 的解释来源于维基百科,图片来自于 github
下面是使用开源项目需要注意的内容:
1 开源许可证即授权条款。开源软件并非完全没有限制。
2 最基本的限制,就是开源软件强迫任何使用和修改该软件的人承认发起人的著作权和所有参与人的贡献。
3 任何人拥有可以自由复制、修改、使用这些源代码的权利,不得设置针对任何人或团体领域的限制;不得限制开源软件的商业使用等。
4 许可证就是这样一个保证这些限制的法律文件。
5 请任何开发者要记清楚一点,任何开源的项目都有不同的使用边界,没有带 license说明的开源项目建议不要使用。
6 许可证从松到严,mit –> apache –> gpl。
下面画了一张图总结与概述, 一张图就能看明白许可证协议与规范。
喜欢的话就关注点个赞吧