据媒体报道:谷歌安卓(Android)操作系统中的部分基于BSD软件许可协议的发布的程序文件因使用了基于Linux系统的程序文件,但未开放软件源代码而涉嫌违反了GPL开源软件协议。但迅速有Linux专家称谷歌的行为只是调用程序接口,不存在侵权问题,相关中文报道链接:http://is.gd/3EljRe http://is.gd/3q831a 。上面的新闻都是翻译的,乍一看有点云里雾里,不过仔细研究了一下发现还是很有意思,有商业价值,下面就解读下此案,欢迎大家指正。
一、 GPL协议、LGPL协议与BSD协议的法律区别。
简而言之,GPL协议就是一个开放源代码协议,软件的初始开发者使用了GPL协议并公开软件的源程序后,后续使用该软件源程序开发软件者亦应当根据GPL协议把自己编写的源程序进行公开。GPL协议要求的关键在于开放源程序,但并不排斥软件作者向用户收费。虽然如此,很多大公司对GPL协议还是又爱又恨,爱的是这个协议项下的软件历经众多程序员千锤百炼的修改,已经非常成熟完善,恨的是必须开放自己后续的源程序,导致竞争对手也可以根据自己修改的源程序开发竞争产品。
正因大公司对GPL协议在商业上存在顾虑,因此,另两种协议被采用的更多,第一种是LGPL(亦称GPL V2)协议,可以翻译为更宽松的GPL协议。与GPL协议的区别为,后者如果只是对LGPL软件的程序库的程序进行调用而不是包含其源代码时,相关的源程序无需开源。调用和包含的区别类似在互联网网网页上对他人网页内容的引用:如果把他人的内容全部或部分复制到自己的网页上,就类似包含,如果只是贴一个他人网页的网址链接而不引用内容,就类似调用。有了这个协议,很多大公司就可以把很多自己后续开发内容的源程序隐藏起来。
第二种是BSD协议(类似的还有MIT协议)。BSD协议鼓励软件的作者公开自己后续开发的源代码,但不强求。在BSD协议项下开发的软件,原始的源程序是开放源代码的,但使用者修改以后,可以自行选择发布源程序或者二进制程序(即目标程序),当然,使用者有义务把自己原来使用的源程序与BSD协议在软件对外发布时一并发布。因为比较灵活,所以BSD深受大公司的欢迎。
二、谷歌违反开源软件协议争议的问题实质。
有了以上的基础性介绍,这个事情就比较清楚了:谷歌最近以BSD软件协议发布了Android软件下的一个程序库,该程序库中有软件调用了基于LGPL,也就是GPL V2软件协议项下的程序。因此,有律师称该行为涉嫌违反开源软件协议,但资深Linux软件专家称,谷歌的行为符合LGPL协议,其调用软件程序接口的相关内容无需开放源代码。因此,本案的核心就在与:如果在谷歌相关的程序中包含了Linux的相关软件源程序代码,谷歌就涉嫌违反开源软件协议,但如果其只是很规范的调用了Linux的相关软件程序,则不构成违反开源协议。
阅读本案相关的英文报道,有一个很有趣的事实,西方也流行“诛心之论”,用比较直白的语言说就是“你曝光谷歌违反开源协议的动机是啥?”。开源社区的程序员们发现,最初曝光此事的律师与微软公司关系密切,他们甚至还找到了这个律师在互联网上删除其与微软相关工作、合作记录的证据。此时,事情的推论就很简单了:这是微软最近打击谷歌Android软件的系列行动之一,因为除了本案,微软还以专利侵权为名起诉了使用谷歌Android软件的富士康和摩托罗拉两家公司。
最后,开源软件是一个程序宝库,里面包含了很多程序员千锤百炼的各种知识成果,开源软件协议种类很多,虽然国内的公司似乎比较偏爱GNU协议,但国内开发者不敢立刻把最新的工作成果代码开放出来的现实说明其未必符合中国国情。建议大家可以多研究其他开源软件协议,如LGPL、BSD、MIT等等。关键是符合目前国内的市场竞争格局以及中国知识产权保护现状。