从法律的角度来看就是,自由软件的权利人放弃了版权法规定的若干权利,同时又和用户(潜在的二次开发者和衍生作品的权利人)签了一份特殊的“合同”——通用公共授权协议书。从这里我们可以看出Stallman的极端自由主义倾向和理想主义成分,甚至有些共产主义色彩,但是他并不是孤独的,来自世界各个角落的很多人跟他站到了一起,这种“自由?开放?共享”的精神激发了无数志愿开发者的热情,他们废寝忘食、如痴如醉地投入到自由软件的开发中,创造出了惊人的大量的优秀作品,软件开发人员的集体智慧得到充分发挥,人们可以及时发现并解决程序中存在的问题,减少大量不必要的重复劳动,大大提高了社会效率。
开放源代码软件的概念则是第一次在由Eric S. Raymond 和Bruce Perens 等人于1998年在美国加州提出来的,继而成立了开放源代码推进会(Open Source Initiative,英文简称OSI)。它是一个非营利组织,定位为一个行业自律协会性质,从整个社区的利益出发,致力于管理和推广开源源代码的定义。OSI从软件的许可问题入手,巧妙地应用商标战略,将证明商标授权给那些经其审核认定为开放源代码软件的软件提供者使用。这样,凡被认定为开放源代码软件授权协议的,都可以标明OS、OSI等商标标识,从而得到开放源代码软件界的认可。OSI为开放源代码软件业的发展做出了重大的贡献,截止到目前为止共有58种软件发行许可获得了OSI的认证(
http://www.opensource.org/licenses/index.php)。
开放源代码的理念要相对简单,他们认为:当开发人员可以阅读、再分发、修改软件时,软件才逐步进化。人们改善它,人们定制它,人们修改它的缺陷。而且这种进化的速度令人吃惊,特别是当人们已经习惯了传统商业软件的演进速度之慢的时候。事实上,软件因为开放源代码反而质量更高,安全性更好,借用Raymond的名言就是,“更多的眼睛能够看到更多的错误(Given enough eyeballs, all bugs are shallow)”。OSI从10个方面对开放源代码做出了定义和规范,包括自由再分发、带源代码发行、允许修改和再开发、允许衍生作品发布、使用者无歧视、应用领域无歧视、许可的自包含(不依赖于其他其他许可)、许可不得针对某一产品、许可不得限制其他软件、许可必须技术中立等。如果软件产品的使用授权协议符合上述规定并经权利人提出申请,OSI就会授予“OSI Certified”证书和商标使用权。从中我们看出,GPL所严格规定的“传染性”并不是开源的必然属性,开源的范畴要广一些。
自由软件/开源软件的出现并非偶然。我们先从经济学的角度做些分析。我们知道,软件产品中用于研发的固定成本很高,由于技术的进步用于发行的边际成本却非常低,假如某些公司在某个领域形成垄断,那么极有可能获取高额的垄断利润。而在软件领域,由于用户的使用习惯、标准规范等问题,一些软件非常容易形成垄断。软件的价值越来越取决于用户的数量,一旦某一产品形成垄断,其他竞争产品无法指望与其相抗衡。现实中如此的例子不胜枚举。这样一来,巨额的垄断利润与其用于增值的劳动是不相符的,因此是不公平的。在开源软件的商业模式下,权利人不收取授权费(Royalty),而是通过提供服务(咨询、技术支持、培训等)收费,不是要合理得多吗?!此外,源代码的公开和共享也大大提高了知识产品的利用度,减少了重复开发,提高了社会效率。站在人文伦理的角度,我们也可以从中发现一些有趣的东西。通过商业软件的授权的确可以让权利人获取利益,然后它也同样带来了一些致命的问题,比如造成开发人员之间的对立和冲突、阻碍了创新的速度、降低了效率等等。人固然有追逐利益的一面,然而许多善的品性也不容忽视。比如,互助天性特别有利于软件的团队开发,在各个活跃的开源社区始终萦绕着诚信、互助和协作的气氛,开源软件的精神永批判的眼光看待以法律制度为标志的主流文化,唤醒根植于人类天性中的对自由与合作的追求,从而释放出人类社会所特有的互助风格和奉献精神。按照马斯洛的需求理论,在诸多需求之中,自我实现处于金字塔的顶端,社区中的开发人员虽然得不到物质报酬,然而他们能够贪婪地享受着创作的乐趣,慷慨地帮助别人,坦然地接受别人的帮助,幸福地体验着每天在技术、架构和管理上的进步和成长,个别杰出的设计大师还可以名留青史。数以千万计的志愿开发者的存在再次证明了“天下熙熙,皆为利来;天下攘攘,皆为利往”的谬误。当然,开源社区的运营之所以成功还有必要的技术条件,就是互联网的出现为这种可能从未谋面的虚拟团队的合作开发创造了可能。
传统的知识产权制度在网络环境和知识经济的时代之下多少遇到了些尴尬,特别是互联网和万维网的出现对知识产权提出了很多新的挑战,比如在开源软件的许可之下,软件的任意拷贝就不能视为被商业软件公司恨之入骨的“盗版”。特别是Copyleft概念的提出,令人耳目一新,它巧妙地利用版权制度,以子之矛攻子之盾,大大地出了它的洋相。Stallman在《自由软件联盟宣言书》(《GNU Manifesto》)中一针见血地指出,知识产权并不是一种固有的、先在的权利,而是通过社会立法赋予的后天的权利。既然知识产权是一种社会赋权,并且允许授权人(或曰权利人)和被授权人通过合同——使用授权协议书——的形式规定双方的权利和义务,那么就给自由软件的运作留下了足够的空间。Stallman就是从授权协议开始,点燃自由软件的圣火,这是自由软件运动的法律立足点,它使软件自由的主张找到了充分的法律依据。从这个层面上讲,自由软件是利用版权制度来反对版权的独占。
从社会发展的角度来看,开源软件社区已经形成了一种崭新的软件生产方式,它高效的管理运营模式值得进一步研究和探讨,围绕着社区的软件生态环境的研究也是一个非常有意义的课题。
在此还要一提的是与开放源代码运动的洪流相对,近年来软件专利的逆流也越来越引起人们的重视。比起版权保护,专利的保护力度更大,更加不利于软件创新和社会的进步。开源软件,特别是自由软件跟软件专利是水火不容。Stallman还特别提到,“自由软件面对的最大的威胁就是软件专利。”然而,毕竟有些国家实施了软件专利制度,对此开源软件界也只能尽力应对。
开源软件对传统著作权的理念提出了挑战,极力排斥软件专利,但是对商标却抱着欢迎的态度并积极地通过商标制度保护自己的权益。OSI能将众多的开源软件纳入旗下,其成功之处就在于利用了开源软件的认证与证明商标的使用战略。
3.不依规矩,不成方圆
虽然说新的环境下给当下的知识产权制度提出了新的需求,但是软件仍然是置于知识产权特别是著作权的保护之下,而且至少目前没有找到更好的解决方案。无论商业软件还是开源软件或自由软件,作为数字作品都受同样的法律保护。不依规矩、不成方圆,法律是规范人们行为的准绳,规定了可为、可不为的界限,人们的行为必须约束在法律允许的范围内,否则就要受到法律的制裁。义不正,利不谋;名不正,言不顺。法人也好,自然人也好,不管以何种形式侵犯了权利人的知识产权都会面临法律风险(民事责任或刑事责任)和道德风险,从而直接影响了公司或个人的品牌。企业的情况更应该是合法经营,否则经营很难具有持续性。
在我国已经普遍认识到,随着经济的发展,我们的劳动力成本优势将逐步丧失,要实现经济发展模式的转变必须依靠科技创新。在不久前闭幕的第十六届五中全会上,党中央对此予以高度重视,反复强调了科技创新、知识创新和文化创新的重要意义,并要采取强有力的措施保证创新机制的完善。知识产权制度通过保护权利人的权益,维持权利人利益和公众利益的平衡,激励创新的热情,保证对创新活动的投入。另外,我们加入WTO以后,也面临着越来越大的知识产权保护的压力。近年来的知识产权立法的速度很快,虽然还有不尽完善之处,但是已经基本上可国际接轨。在执法、教育上还较为落后,表现在软件上就是盗版光盘满大街,企业正版率低得可怜,更不用说个人使用盗版现象了。所以软件企业的回报不足,大大打击了研发的热情。从国家的知识产权保护战略布局上来看,到目前为止主要是推进政府机关正版化,2000以后互联网产业的兴起对灭杀网络盗版提出了更高的要求,2006年起版权系统要在全社会开展旨在推动企业正版化的专项行动。使用盗版软件的企业将面临巨大的压力和风险,有些明智的企业开始考虑导入开源软件,意在避开知识产权的陷阱。然而在使用开源软件的时候一定树立正确的指导观念,千万不能轻视知识产权问题,千万不能对使用授权协议一无所知,否则就是从一个火坑又跳入另一个火坑。
企业使用开源软件的需求将逐步提高,这个已经是可以预见到的趋势。与此相呼应,国内软件行业内将形成一个新的产业——开源软件服务。与纯粹的应用相比,二次开发可能会遭遇更多的著作权问题的困扰。特别是我们的软件成品开发相对落后,很多企业拥有自主知识产权产品心切,从而采用在成熟的开源软件的基础上进行开发的捷径。然而开发出来之后又不舍得把自己的劳动成果开放共享,因此陷入了进退两难的境地。有鉴于此,笔者提出如下几条建议:
第一,了解和学习开源文化,充分尊重别人的劳动。举个例子来说,有些人在一个基于BSD许可的开源软件上开发了衍生产品,非但没有公开源代码,而且连应用的原文件都改得面目全非,还删掉了头文件的声明。这种行为就属于严重的侵权,连作品的署名权都给剥夺了,这是对人权的践踏和侮辱。这种行为一旦被公开,将给开发企业带来极大的负面影响,经营将难以为继。
第二,学习开源软件的使用授权协议,掌握要点,弄清哪些可为哪些不可为,严格遵循授权协议的要求,不做授权协议禁止的事情。还是以刚才举的BSD例子来看,比起GPL来,BSD要宽松地多,它甚至允许衍生产品以闭源的形式发布,这样就会给企业更多的选择。由于GPL的“传染性”,自由软件的衍生产品必须以同样的授权发布,否则就违背了协议。隐瞒事实、寻找借口都是极不明智的短视行为,必将受到开源社区甚至全社会的唾弃,严重的还要承担法律责任。
第三,发扬开源精神,人人为我、我为人人。开源软件作为一种新的软件生产方式有重大的进步意义,在开源精神之下,辅之以有效的管理手段,会有很多优秀的产品不断涌现。特别是当在自由软件的基础上为客户做定制开发时,一定要向客户解释清楚,说明源代码开放的意义,务必得到客户的谅解和同意,否则不是自己触犯法律就是把定时炸弹埋到了客户身边。由于自由软件的精神和GNU的巨大影响,以GPL发布的开源软件还是多数,因此足以引起重视。
总之,跟开源打交道就必须熟悉和遵守开源的游戏规则,不做粗鲁蛮横的rule breaker(打破规则的人),更不要试图以身试法。在文明高度发达的今天,当一个正直的选手,公平地、有序地竞争。利用别人的劳动成果却又不履行授权协议规定的义务,这既是不光彩的,也是不公平的。
鲁迅先生在上个世纪三十年代提出费厄泼赖(fair play)应该缓行的论断,我看在当今的软件知识产权的问题中,费厄泼赖应该执行,而且应该从当下开始、从每一个player开始执行!应该是在公平的条件下与对手展开竞争,优胜劣汰,物竞天择,正是在竞争中我们得到了锻炼和成长。窃不成富,盗不为王,只有付出才有收获,此乃人间正道。
4.开源授权协议初探
前面有大量的篇幅谈到了GPL使用授权协议,它在承认著作权的前提下,通过授权协议来实现自由软件的权利要求。GPL出现最早,知名度最高,影响力最大,充分体现了对自由的执著追求。“传染性”是其最显著的特征。
LGPL(Lesser General Public License,宽松通用公共授权)最初是为函数库的发行而设计的,因此早期的名字叫做Library GPL。如字面所示,它对再发行的条件的要求较为宽松。在严格定义了“基于按LGPL发布的函数库的作品(work based on LGPLed library)”和“使用按LGPL发布的函数库的作品(work using LGPLed libary)”之后,允许后者以非LGPL的授权协议再发行。前者被认为就是法律意义上的衍生作品,而成为后者的条件是(1)作品可以在没有该库的情况下链接(比如动态链接)或(2)作品本身就是一个函数库,当然无论是(1)还是(2)作品必须是“未被感染”的状态。
美国加利福尼亚大学伯克利分校历史上为计算机特别是Unix计算机的系统的发展做出了诸多具有划时代意义的贡献,现在许多知名的开源组织都源于该校当初的一些研究项目,这些组织的作品一般都是按照BSD(Berkeley Software Distribution)授权协议发行的。BSD许可要求衍生作品发行的时候标明引用代码的出处,附上原授权协议(即BSD授权)的全部内容,将所有程序贡献者的版权声明也要一并附上,在没有获得书面许可的情况下严禁利用BSD或软件贡献者的名字来背书或促销衍生作品。它没有对衍生作品须按何种授权协议发行做出任何规定,可以说BSD授权是最宽松的、无感染性、自律型的协议,对于严研究和借鉴源代码的开发人员来讲无疑是最佳的选择。即便如此,仍然有人故意不标明引用代码的出处、不附上原版权声明,这些都是令人不齿的盗窃行为。
以开发Apache HTTP服务器的开源组织一直以来名声显赫,特别值得一提的是近年来在Java中间件和Web应用程序框架等方面做了许多卓越的工作,在业界拥有举足轻重的影响力。与BSD授权相似,Apache授权没有限制衍生作品的授权类型,但是要求源码和相关文档中必须带有引用代码的版权声明、致谢声明(标明出处),没有预先的书面许可时,不得利用“Apache”和“Apache Software Foundation”为衍生作品背书和促销,也不得以“Apache”命名(保护商标权——笔者注)。
Mozilla基金会(Mozilla Fondation)的核心成员大多来自于当初的Netscape Corporation,该组织近期发布的Firefox再次在全球掀起了浏览器风暴。1998年他们为其开放源代码软件项目设计了MPL(Mozilla Public License)授权协议。MPL将原始代码与衍生代码的授权分离,即便是经过修改,原软件的发行也必须遵循MPL代码开放的形式,衍生作品的发布形式则由作者自由选择。此外,MPL还允许多重授权(MPL/GPL/LGPL),若所做的修改并没有受到其他条款约束时,必须使用MPL或者最初开发者所特定的授权条款;若所做的修改已经受到其他授权条款约束时,只要经最初开发者同意,可以适用其原有授权条款。
下面对这四种主要的开放源代码授权协议的内容做一简要比较。
一般而言,权利人使用何种授权协议是与软件的发布目的有关的,如果是希望扩大软件的使用范围,那么就会对放宽限制,放弃更多的权利。比如,GNU组织一般要求自己的软件以GPL授权发布,但是它也明文强调如果要扩大软件/函数库的使用范围或者要替代某些商业软件/函数库,就可以使用LGPL发布。
开发人员如果要在开源软件的基础上进行开发,那么除了考虑组件间的兼容性、依赖性之外,还必须考虑借鉴、引用代码的授权协议之间的冲突,如果没有和项目经理、产品经理甚至法律顾问进行充分的沟通就随意拷贝、调用开源软件代码,就很可能给公司造成不可弥补的损失。事实上,授权协议间的冲突问题已经引起了专家学者的关注,有人已经向OSI提出建议,要他们不光进行许可协议的认证,还必须想办法协调这些问题和冲突。一般而言,如果仅仅是使用或者研究开源软件而没有产生衍生作品的时候,一般都不会引起法律上的纠纷。如果想开发专属软件,即不愿意公布自己所修改的源码,那么按BSD授权的开源软件不失为最佳;如果希望源码总是自由的,按GPL授权及按LGPL授权的软件当然理想的选择;如果想在与其它人共享代码时提供相应的保护,可以选择按MPL授权的软件,因为它允许多重授权,通过将软件分为受保护的(“封闭的”)部分和贡献(“开放的”)部分,在完全开放的GPL授权协议和封闭的BSD授权协议之间兼顾了平衡。
5.从心所欲不逾矩
安装商业软件的过程中我们都会看到一个版权声明EULA(End User License Agreement,最终用户授权协议),警告我们不得进行拷贝、分发等等。美国微软公司第一个在IBM PC机上实现了硬件与软件的真正分离,并且用版权法和合同法保证自己的权益,技术上通过和整机生产商实现绑定,从而开创了一个崭新的商业模式,达到了商业上的巨大成功,推动了软件产业的革命。
GPL授权协议本质是一种与传统知识产权观念截然不同的全新著作权体系,它保证任何人都有利用(包括使用、复制、修改、再发行等等)自由软件的自由,为此目的将软件的源代码完整地提供给使用者,并且通过法律手段保证了一些人在享有这些自由的同时不得妨碍其他人的此种自由,充分肯定的人性中奉献、合作的一面,保证了当人们需要帮助的时候能得到帮助。包括自由软件在内的开源软件成为人类的共同财富,消除了知识产权的独占性,遏制了商业软件的垄断,保证了人类财富公平地分配。