各种开源协议的核心内容,主要有4点:
(1)使用该软件用于何目的的权利;
(2)对软件工作原理的知情权(即是否能查看软件源代码);
(3)重新发布软件副本的权利;
(4)改进软件并将其发布的权利。
常见的开源协议:
FPL(自由公共许可证):
代表软件:mysql
(1)使用权利:允许内部自由使用,但不提供技术支持;商业使用必须申请商业许可证;
(2)源代码:开放;
(3)分发权利:允许免费分发,但必须遵守FPL其他条款,如要求分发mysql和其派生产品的全部源代码;并与Mysql分本FPL本身;
(4)修改发布权:未知。
BSD开源协议:
代表软件:BSD软件系统
(1)使用权利:自由使用不受限;
(2)源代码:开放;
(3)分发权:允许自由分发,但要包含软件(或源代码)中的BSD协议;
(4)修改发布权:允许二次开发,但必须要随软件(或在源代码)附来原来代码中BSD协议,且不可以用原来产品名字和原来的源代码作者或机构作市场推广;二次开发的软件免费、商业发布都可以,是否开源都可以。
GPL开源协议(v2):
代表软件:Linux
(1)使用权:自由使用;
(2)源代码:开放;
(3)分发权:允许自由分发,但收受者也同样有此权利,收受者不得放弃此权利;
(4)修改发布权:允许二次开发并出售,但收受人有权向您免费索要源代码或得知源码获取方式。收受人也有权修改此源码并自由发布,收受者不得放弃此权利。
Apache 2.0协议:
(1)使用权利:自由使用;
(2)源代码:开放;
(3)分发权:允许自由分发,需附带Apache协议;
(4)修改发布权:附带原来代码的协议、商标、专利声明和原作者规定的说明;修改了代码需要附带说明,并带Apache协议。
各协议的对比图: