您的位置:首页 > 其它

对常见开源协议的理解

2010-07-20 10:12 176 查看
在使用开源代码的时候,也需要注意其对应的开源协议,特别是在商业级应用中。下面就我个人针对各个常见的开源协议做个简单的汇总和理解。



假设我们使用的开源代码为 A,我们自己开发的为 B,其中使用到了A



BSD协议

1。若B开源,B中带有A的代码,则B在发布时必须带有A的BSD协议声明。

2。若B闭源,B中带有A的代码,则B在发布时必须在文档/版权声明中带有A的BSD协议声明。

3。不允许用A的作者或者任何其他信息作为B的市场推广。

总结:自由度很大,很适合商业用途。



Apache协议:

1。B发布时需要给用户一份apache许可。

2。若修改了A的代码,则需要在该代码文件里注明。

3。在B中需要带有A的协议、商标、专利声明以及A中一切要求衍生软件/类库声明的内容。

4。B中包含一个Notice文件,里面包含Apache许可证及你自己要求声明的内容。(该内容不可与apache协议本身冲突)

总结:自由度也很大,适合商业用途。



GPL协议:

1。B必须符合GPL协议(传染性),B必须开源、免费。

2。B发布时必须声明自己是GPL协议。

3。允许在B中修改A的内容。

总结:不适合商用,必须是开源、免费。



LGPL协议:

1。B若修改了A的内容,修改部分及额外衍生代码必须符合LGPL协议。

2。允许B中部分闭源,链接(Link)到A或A的衍生部分。

总结:适合一定范围内商用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: