2005年,SUN公司宣布将开放操作系统Solaris的源代码,并推出CDDL(Common Development and Distribution License)作为其开放Open Solaris的许可证。CDDL许可证是MPL许可证(Mozilla Public License,用来管理Mozilla网页浏览器及相关软件)的“升级版”。它实际上是一个许可证模板,其中不包含任何发行者的特定信息,在满足开放源码软件许可证的要求下,充分尊重原始作者和贡献者的知识产权,以期获得广泛的使用。著名自由软件cdrecord的作者Jörg Schilling就在2005年2月将它最新版的star(与tar完全兼容的高速归档软件)以CDDL许可证发布,而star之前的版本都是以GPL许可证发布的。 而就在本书截稿之前,CDDL许可证已经正式获得OSI组织的认证,作为58种开源许可证之一出现在OSI网站的许可证列表中。
然而与其前身MPL许可证和GPL许可证不同的是,CDDL许可证的诞生却招致了褒贬不一的回应。赞扬者认为,CDDL许可证具备先前所有的许可证所没有的优点,比如有利于程序源代码重用、授权变更不会影响使用原授权的开发者以及该授权要求程序源代码修改必须公开等。 然而批评者却自有他们的看法,最主要的声音来自于那些关注产品、许可证之间兼容性的人士,正如某国外网站的评论员所说:“SUN公司推出的CDDL许可证使得本来就混乱不堪的多种开源许可证的‘泥潭’变得更加混乱” 。的确,在CDDL诞生之前,经OSI论证的开源软件许可协议已达五十余种之多。很多专家(包括OSI的会长Russell Nelson)纷纷指出开源许可证种类繁多已成为业界的通病,“显然,授权方案过多的问题已引起许多人关切” 。而SUN公司对此的回应则是:“(我们)曾试图在现有的开放源代码协议中选择一种,但发现没有一种许可协议能够满足我们的需求…… ”是否真的没有一种其他许可证能够满足SUN公司及Open Solaris的需求?CDDL许可证与先前许可证是否真的有本质的差别?我们不妨将从CDDL许可证与传统许可证的代表GPL及商业许可证的代表MPL的比较中得出自己的结论。
从本质上说,其实无需对GPL和CDDL做任何具体条款对比就能知道两者的不同。前者是最纯净、要求最严格的许可证,体现的是开源社区成立初始那种强烈的“追求自由”的精神理念;而后者,则是SUN作为一个商业公司为了推广自家的操作系统产品而推出的新一代开源协议,自然少了一些“不食人间烟火”的纯粹气息。因此,GPL与包括CDDL在内的其他许可证最大的区别就在于,GPL有着强烈的“传染性”——即不允许使用GPL下源代码获得的演绎作品及修改程序通过任何其他许可证发布。在这里,我们姑且不论这种“传染性”对开源运动的影响究竟是好是坏,仅从普通开发者的角度来讨论两者对社区成员的权利义务会产生什么样的影响。
1.在CDDL许可协议的6.2节中这样写道:“如果你对最初开发者或某个贡献者提起专利诉讼……声称该软件直接或间接地侵犯了你的专利权,那么该最初开发者或贡献者将分别发出一个期限为60日的通知,除非你能够在60日内撤诉,否则,60日期限届满时,该最初开发者或贡献者直接或间接赋予你的全部权利将自动终止。”
本条款意味着,你不能一边享受CDDL社区成员的待遇(使用、复制、演绎、修改其他成员的软件作品),一边又对其他成员提起诉讼,通俗地说,即“专利诉讼导致权利终止”。而在GPL许可证中并没有类似的规定,究其原因,主要是因此两种许可协议的出台前提和对待软件专利权的态度都是不同的。由于Linus和Stallman当时对待专利都持强烈的反对态度,因此在GPL许可证中根本没有明确认可专利权的效力(当然也没有明确地否认各国专利权的效力),或许这也是GPL没有明文规定“专利诉讼导致权利终止”的原因吧。比起GPL,CDDL许可证中虽然多出了“专利诉讼导致权利终止”的规定,但我们不能因此而匆忙得出“CDDL许可证比GPL许可证提供了更强保护”的结论。
2.与GPL许可证没有明确承认软件专利权不同,CDDL许可证明确承诺把所有与Solaris 10相关的专利都免费提供给用户,如“2.1最初开发者授权”条款中这样写道:“在你遵守本许可3.1节的规定,并尊重第三方知识产权的条件下,最初开发者授予你以世界范围内无需缴纳版税的非独占性权利:
(a)在最初开发者许可的知识产权(除专利权或商标权外)范围内,你可以使用、复制、修改、显示、演示、转许可并散布本许可项下原创软件(或其中的一部分),可以附有修改版本也可原封不动地使用,还可将其作为混合作品中的一部分使用;
……”
值得注意的是,此处的“在最初开发者许可的知识产权范围内,你可以使用、复制、修改、显示、演示、转许可并散布……”的行为,实质只是一种“附条件的权利许可”,即当使用者(包括复制者、修改者、演绎者……)遵守CDDL许可证的规定时,SUN公司附条件地将其享有的专利权中的部分权能让渡给使用者,但使用者并没有得到任何“永远不会被起诉”的承诺。换句话说,“听话的孩子有糖吃”,一旦这个孩子不再“听话”、或者发糖果的人认为他不再“听话”,那么是否不再给他糖吃、还是把原来的糖也要回去、甚至不“听话”的孩子要对以前得到的糖果承担责任……这都是未可知的结果。
3.在GPL许可证的第2部分有这样的规定:“b)你发布或出版的软件作品(包括程序的全部或一部分,也包括由程序的全部或部分演绎而成的作品)整体上必须受本许可协议条款约束,并允许第三方免费使用。”而这一段话却没有出现在CDDL许可证中。从软件开发者的角度理解,换言之,CDDL社区的程序员可以享有比GPL赋予的权利更多的权利:他们可以享受开源社区成员的待遇,同时又保留全部的知识产权,而不必开放属于自己的技术或者将技术提供给开源社区。
按照CDDL的要求,任何对开源代码进行的修改或扩充,也必须开放其源代码,但是基于开源程序所开发的新程序和插件则不需要开放其代码。“这让开发者有利可图,他们可以在开放源代码环境中工作,同时还有机会依靠他们的知识产权获得竞争优势,进而获取利润。”Paul Murphy评价道,“这将把大量的Linux开发者吸引到Solaris阵营来,因为Solaris可以天然地兼容Linux应用程序,这样开发者就可以在Sun的许可证保护下开发Linux应用程序,同时由此进入Sun的Sparc市场。”“吸引更多更好的开发者当然是很好的策略”,Gartner的分析师George Weiss也在其研究报告中写道,“事实上,这正是Sun准备开放Solaris源代码时所希望看到的局面 ”。
从以上分析可以看出,一个承诺遵守Solaris CDDL许可证的开发者便有了以下的优厚条件:更广阔的市场、更大的数据库、知识产权保护、对于专利诉讼的防御权和开源社区成员能够享有的所有权利。对于广大的个人开发者来说,这确实有很大的吸引力。但同时,也对“分糖果的孩子”提出了更严格的“听话”的要求,毕竟,与IBM宣布放弃五百多项专利不同,SUN公司并没有正式放弃任何一项专利,它所赋予开发者的只是一种基于自由意愿的“特权”,而“特权”似乎也意味着被授权者面临着授权人“翻手为云覆手为雨”的危险。对于GPL许可证的忠实拥护者来说,这也是他们批评甚至反对CDDL许可证的最主要的理由。
在CDDL许可证出现之前,前身MPL许可证作为一个商业公司(Netscape)推出的许可证已经在开源社区中占据了相当重要的位置。因而,我们不妨通过两者的区别列表来考量CDDL许可证对MPL许可证的继承与改良。
①See “we didn’t want anyone to see the definition and conclude that the license makes a distinction between commercial and non-commercial use”—〈Description and Rationale〉.
在SUN力排众议推出CDDL许可证并用它推广Solaris之前,商业界出现了两件大事:一是IBM公司宣布放弃其所拥有的五百多项专利;二是SUN公司极力推广其倡导的“Open Standard”行动正式启动。这似乎很难让人不把CDDL许可证的诞生同两件大事联系起来进行对比。
首先,虽然IBM公司放弃专利的宣布也引来了一些非议,比如说其放弃的并非核心专利、IBM仍有可能利用其他未放弃的专利就其产品收取高额费用等等。但无可否认的是,IBM毕竟对世界做出了这样一个“放弃专利权”的姿态,且这种放弃是毫无条件的。与之相比,SUN公司的“许可使用专利”只是一种附条件的“暂时许可”,尽管SUN公司曾经多次在各种场合承诺“不会起诉用户”,但在这个商业社会里,无论是企业还是个人都不能放弃自我保护的意识。毕竟,GPL许可证的“开放”是一种追求自由的理念;而商业公司的“开放”则是一种改变商业模式的游戏规则。破坏“自由的理念”至多只能受到道义上的谴责,而打破游戏规则却要承担实实在在的法律后果。
其次,SUN公司在推广其Open Standard的宣言之后不久推出了CDDL许可证,这两者的关系似乎也颇令人寻味。CDDL许可证的全称是Common Development and Distribution License,即“通用开发和发布许可”,这一命名习惯似乎与其他的商业公司许可证不同。如MPL许可证是以公司名称Mozilla命名,而NOKOS则是因Nokia公司而得名。与之相比,CDDL许可证一上来便摆出了“冠盖”开源社区的架势,它力图成为“通用”协议的气势难以小视。非但如此,CDDL的英文发音为kuddle,与“摇篮”(cuddle)同音。这是否意味着推出CDDL许可证只是SUN公司的开放标准计划的一个开场曲,而CDDL将成为孕育未来的通用许可证的摇篮呢?虽说这一切只是揣测,但考虑到CDDL许可证里强烈的通用性、可重用性特征 ,再加上目前开源许可协议种类繁多的混乱局面,我们不难想到CDDL许可证的意图是在未来的开源世界扮演一个“一统天下”的角色。正如SUN公司负责操作平台部门的副总裁Glenn Weinberg所说:“有了CDDL,同类社区的其他项目和许可就无需再创建新的许可协议。 ”
无论怎样,就像统一标准是一件好事一样,开源许可证的统一总要强于分散和混乱的现状,况且“天下大事分久必合”,未来总会出现一种具有“模板”性质的开源许可证,它成为开源软件许可证的统一标准或许只是时间的问题。而我们唯一可以关注和影响的,只是什么样的许可证能够承担起这样的责任。从目前来看,大多数网上开发者寄希望于GPL,然而GPL似乎无意在短时间内通过修改具体条款以担此重任;SUN公司有意于完成统一大业,然而其诚意与能力仍有待时间的检验。但无论是否有这样一个统一许可证出现,无论由谁来承担这样一个“终结者”的角色,必然会影响到Linux和其他开源软件的未来。