如何选择开源许可证&如何修改项目使其符合某种开源许可证
作者:zyl910
很多文章介绍了详细的解说了各种开源许可证及它们的区别。但是,具体该选择哪一种许可证?如何修改项目使其符合某种开源许可证?就很少见到指导了。于是本文探讨这两个问题。
一、如何选择开源许可证
阮一峰《如何选择开源许可证?》中的图片清晰的展示了各种开源许可证的区别——
可是,对于新手来说,一下子见到这么多种许可证,还是会感到有些眼花缭乱,难以抉择。
于是,我建议最初时只关注三种开源许可证——
1) 如果您想为GPL世界添砖加瓦,或者项目引用了GPL许可证的模块,那么当然得使用GPL许可证;
2) 如果您想分享自己的编程心得,不想让许可证限制了知识的传播,这时可使用MIT许可证;
3) 如果您想更强的控制源代码,或者考虑商业化,那么推荐Apache许可证。
例如在写博客或写书时,可使用MIT许可证。
二、如何修改项目使其符合某种开源许可证
若要使项目使其符合某种开源许可证,一般需要做以下三步操作——
1) 【必须】 在项目根目录放置一个“LICENSE”文件。
2) 【可选】 修改各个源码文件,在文件顶部使用注释语句写上许可证的说明。
3) 【可选】 修改readme文件,写上许可证的说明。
注意只有第一步是必须的,后面两步的内容时可选的。
关于“LICENSE”文件的规范格式可参考各许可证的说明,见“参考文献”中的相关链接。
参考文献
~~~~~~~~
《GNU General Public License (GPL)》. http://www.opensource.org/licenses/gpl-license
《详细介绍 GPL 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2826
《The MIT License (MIT)》. http://www.opensource.org/licenses/mit-license.php
《详细介绍 MIT 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2829
《Apache License, Version 2.0》. http://www.apache.org/licenses/LICENSE-2.0
《详细介绍 Apache Licene 2.0 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2828
《The BSD 3-Clause License》. http://opensource.org/licenses/BSD-3-Clause
《The BSD 2-Clause License》. http://opensource.org/licenses/BSD-2-Clause
《详细介绍 BSD 开源协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2825
《如何选择开源许可证?》. 阮一峰, 2011-05-02. http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
《9个主流的开源许可协议[整理]》. Univasity, 2011-12-05. http://univasity.iteye.com/blog/1292658
如何选择开源许可证&如何修改项目使其符合某种开源许可证的更多相关文章
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- 82天突破1000star,项目团队梳理出软件开源必须注意的8个方面
近期,我们在GitHub上开源了微服务任务调度框架SIA-TASK,82天,收获了1000+个star!由于这是SIA团队第一次开源项目,开源的相关工作,团队之前并没有太多的经验,因此我们特别整理了本 ...
- 微软开源Kubernetes服务网格项目Open Service Mesh
尽管微服务环境提供可移植性,允许更快更频繁的部署周期,甚至还能让组织创建关注于特定领域的团队,但这也伴随着对于流量管理.安全以及可观测性等需求的增长.在整个生态系统中,针对这些需求的服务网格模式的实现 ...
- 开源巨献:Google最热门60款开源项目
文章整理于互联网.本文收集了 60款 Google 开源的项目,排名顺序按照 Github ★Star 数量排列. 0.机器学习系统 TensorFlow ★Star 62533 TensorFlo ...
- Android Studio修改项目名和包名
为了提高开发效率,有时候需要使用现有的一些开源项目,记录一下自己修改项目名和包名的方法. 1.首先,修改包名(清单文件里找), ①展开所有包 ②选中想要修改的包,shift+F6(也可右键Refact ...
- 如何成为一名合格的Apache项目Committer,参与Apache开源贡献的正确姿势
近日,孙金城老师在 "Open Source Promotion Plan - Summer 2020" 开源软件供应链点亮计划做了<如何成为一名合格的Apache项目Com ...
- myeclipse如何修改Web项目名称,eclipse如何修改项目名字
myeclipse如何修改Web项目名称 1.复制一个现有的项目,重命名项目名称 2.这里的项目名称重新命名了,但是Web项目本质下的名称还是没有改变的.所以需要更改,更改方法-->选择项目右击 ...
- eclipse下修改项目名导致tomcat内发布名不一致的解决方法 .
eclipse下修改项目名导致tomcat内发布名不一致的解决方法 . ------------------------------------------------------- 解决方案: 直接 ...
- 关于PowerBuilder 9.0中如何修改项目工程名字
关于PowerBuilder 9.0中如何修改项目工程名字,首先要找到三个文件,xxx.pbl.xxx.pbt.xxx.pbw这三个文件,为何要找这个三号个文件呢? 因为在使用PowerBuilder ...
随机推荐
- [学习笔记] 七步从AngularJS菜鸟到专家(4和5):指令和表达式 [转]
这一篇包含了"AngularJS - 七步从菜鸟到专家"系列的第四篇(指令)和第五篇(表达式). 之前的几篇展示了我们应用的核心组件,以及如何设置搭建一个Angular.js应用.在这一部分,我们会厘 ...
- CSS中父元素高度没有随子元素高度的改变而改变,应该如何解决?
如果子元素没有设置浮动(float),父元素实际上会根据内容,自动宽高进行适应的. 当子元素增加了浮动后,最简单的处理方法是给父元素添加overflow:hidden属性,此时父元素的高度会随子元素的 ...
- webview 实现滑动前进后退功能
实现该功能大家一定会想到在OnTouchListener里实现 webview.setOnTouchListener(new OnTouchListener() { @Override public ...
- Valid Sudoku leetcode
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...
- poj 3635/hdu 1676 Full Tank? 车辆加油+最短路
http://acm.hdu.edu.cn/showproblem.php?pid=1676 给出一张图,n<=1000,m<=10000. 有一辆车想从图的一个地方到达另外一个地方,每个 ...
- [PHP-Socket] Socket Programming in PHP
Simple Client-Server socket program in PHP Introduction Sockets are used for interprocess communicat ...
- JAVA学习博客---2015.5
上一次的学习博客写的和流水账差不多,有点生硬的和背目录一样,所以既然学习的目的是程序,那么这个月的学习博客就用程序来说点东西吧.这个月看了一些C和JAVA的视频,开始看别人写的程序,能看的懂但是自己去 ...
- 解决Maven中OutOfMemory错误
当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出.如: [INFO] Building jar: / ...
- Makecert.exe(证书创建工具)
Makecert.exe(证书创建工具) .NET Framework 4.5 其他版本 2(共 3)对本文的评价是有帮助 - 评价此主题 证书创建工具生成仅用于测试目的的 X.509 证 ...
- [Xamarin] 客製化的ListView之章 (转帖)
上次我們說到簡單的的SimpleExpandableListItem1 來做選單 老闆不會因為這樣而滿足的,因為總是希望一個獨一無二,而且漂亮的List 選單 這篇我們來看看如何實作最後結果為自訂每一 ...