如何为你的代码选择一个开源协议
快速选择
目前流行的开源协议有很多,并且同一款协议有很多变种,比如你或许看到过' CC Attribution-NoDerivs',' CC Attribution-NonCommercial'同属CC协议(后面会有介绍)。如此纷繁的协议该如何选择?协议太宽松会导致作者丧失对作品的很多权利,太严格又不便于使用者使用及作品的传播。所以除了协议多之外,你还要考虑你对作品想保留哪些权利,放开哪些限制。
如果你不想了解太多,只是想要一个简直直接的答案,下面给出的建议或许适合你。下方关于协议的选择及表格来自GitHub choosealicence项目。
简单宽松的协议
如果你只想要一个简单点的协议不想太麻烦的话。
MIT协议相对宽松但还是抓住了要点的。此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险,当然也没有技术支持的义务。jQuery和Rails就是MIT协议。
考虑有专利的情况
如果你的作品中涉及到专利相关。
Apache协议也是个相对宽松与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权(我的理解是软件作品中含有专利,但它授权你可以免费使用)。Apache服务器,SVN还有NuGet等是使用的Apache协议。
代码分享与促进
如果你在乎作品的传播和别人的修改,希望别人也以相同的协议分享出来。
GPL(V2或V3)是一种版本自由的协议(可以参照copy right来理解,后者是版本保留,那copyleft便是版权自由,或者无版权,但无版权不代表你可以不遵守软件中声明的协议)。此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。此协议的版本3与版本2相近,只是多3中加了条对于不支持修改后代码运行的硬件的限制(没太明白此句话的内涵)。
https://blog.csdn.net/garfielder007/article/details/80426905