详细介绍CPL协议
2013-05-26 10:09:05 阿炯

CPL(Common Public Liecense)是IBM提出的并通过了OSI(Open Source Initiative)批准的开源协议。主要用于一些IBM或跟IBM相关的开源软件项目中。如用Java开发环境Eclipse、RIA开发平台Open Laszlo等。

CPL也是一项对商业应用友好的协议。它允许使用者对源码进行任意的使用、复制、分发、传播、修改以及改后做闭源的二次商业发布,这点跟BSD很类似,也属于自由度比较高的开源协议。但是,需要遵循以下条款:
(1)、当使用者将源码的整体或部分再次开源发布的时候,必须继续遵循CPL开源协议来发布,而不能改用其他协议发布。除非你得到了原来源码Owner的授权。

(2)、CPL协议下,使用者可以将源码不做任何修改来商业发布。但如果要将修改后的源码开源,而且当你再发布的是ObjectCode的时候,你必须声明它的Source Code是可以获取的,而且要告知获取方法。

(3)、当使用者需要将CPL下的源码作为一部分跟其他私有的源码混和着成为一个项目发布的时候,可以将整个项目/产品以私人的协议发布,但要声明哪一部分代码是CPL下的,而且声明那部分代码继续遵循CPL。而独立的模块(Separate Module)则不需要开源。

现在Eclipse使用的许可协议EPL 1.0 (Eclipse Public License 1.0)就是继承自CPL,CPL则继承自原来的IPL(IBM Public License)。在IBM开发主页上有关于CPL的常见问题解答(FAQ),对本文内容有很好的补充。