开源软件及其法律风险

题问:使用开源软件时需要注意哪些法律风险?

开源软件及其法律风险

作者|邓超(科技领域知识产权业务,微信号:tmtlvshi)

*本文经作者授权发布,不代表其供职机构及「高杉LEGAL」立场与观点,且不作为针对任何个案的法律意见或建议*

近日,华为公司发布了基于微内核的分布式操作系统——鸿蒙,并宣布将鸿蒙开源,开源软件这一术语再次进入大众视野。实际上,开源软件早已成为众多企业和软件项目的基础设施。但另一方面,大多数的软件开发者甚至是法律人士对于开源软件的认识不足,甚至有人误以为“开源软件是免费的,因此可以不受限制地随意使用。”

不同于公有软件,开源软件的著作权既没有被放弃也没有过期,其修改和发行等仍然要受到版权法或者开源软件许可证的制约(自己修改并使用开源软件而不对外发行时不需要遵守许可证)。对开源软件的法律问题缺乏认识会使软件开发商和发行商面临法律风险。在一些极端情况下,软件开发商可能需要将包含开源代码的软件产品的全部源代码公开。例如在2007年,作为Linux社区成员指责华硕公司没有遵守GPL许可证的回应,华硕公司公布了其运行Linux操作系统的Eee PC的完整源代码,包括asus_acpi组件和所有核心数据。对于希望完全掌控软件的企业而言,将全部源代码开源显然是不可接受的,因此,使用开源软件的企业有必要了解开源软件的法律风险。

一、自由软件、开源软件与免费软件

在进入正题之前,简要说明上述三个概念的关系。

自由软件与免费软件的英语表述(free software)完全相同,因此在英语语境下容易造成混淆。免费软件是无偿获取并使用的软件,其源代码不公开且用户不能自由修改。另一方面,自由软件需要满足自由软件基金会(Free Software Foundation,FSF)定义的4个自由,即自由使用、修改、发行该软件及其衍生版本的自由。因此,免费软件不一定是自由软件(并且一般都不是),而自由软件也不必须免费(虽然一般都是)。

而自由软件与开源软件都指代一个大致相同的软件类别(有时被合称为“自由开源软件”,Free& Open Source Software,FOSS)——虽然二者存在略微的差异。开源软件可以被视为是一个为了向企业界推广“自由软件”(因为自由软件容易令人联想到免费,从而不是那么商业友好)而重新包装的用语。所有的自由软件都是开源软件,因为源代码不开放,就无法自由修改、发行。而另一方面,并非所有的开源软件都能被称为自由软件。因为即使源代码被公开,如果修改、发行的自由被限制,那么也不符合自由软件的定义。

二、开源软件的许可证

如上所述,开源软件的修改、发行等虽然免费,但并非是无条件的,而是需要遵守各种(绝大多数为美国)私人自由软件团体制定的规则,即许可证(license)。每个许可证都可以被看作是一份冗长的许可合同。本部分对常见的许可证进行简要说明。

常见的许可证主要有GPL、LGPL、MPL以及MIT、BSD、Apache,各个许可证还可能有不同的版本。可以将这些许可证大致分为两类:著佐权许可证(copyleft license)以及宽松许可证(permissive license)。二者最大区别在于:在软件被修改并再发行时,著佐权许可证仍强制要求公开源代码(衍生软件需要开源);而宽松许可证不要求公开源代码(衍生软件可以变为专有软件)。GPL是典型的强著佐权许可证,LGPL、MPL属于弱著佐权许可证,MIT、BSD、Apache都属于宽松许可证。

另外,由于开源软件的性质,这些许可证一般具有如下两个共通点:开发者不承担瑕疵担保责任以及保留著作权标记。瑕疵担保责任一般发生在有偿合同中,而开源软件及其衍生软件通常都是免费提供的,因此,开发者并不负有瑕疵担保责任。另外,由于开源软件的著作权没有被放弃,因此,许可证中一般都需要以适当的形式保留源代码中的著作权标记。

1、GPL

首先说明GPL,即GNU GPL(General Public License,通用公共许可证),其主要内容为任何软件及其衍生软件要提供源代码,从而允许被自由使用、修改、发行。GPL是自由软件运动的基础性许可证。

在GPL下,软件修改后的衍生软件仍然需要适用GPL,这意味着GPL具有传染性。换言之,如果整个软件中有一段代码适用了GPL,那么整个软件也都必须适用GPL并开放源代码——这不是十分商业友好。因此,在开发者没有许可证意识而将GPL这样具有传染性的许可证用于商用软件产品的情况下,无疑会带来较大的法律风险。

2、LGPL

GPL的传染性给软件所使用的库带来了问题。例如,如果一个软件链接到GPL下的库,由于在法律意义上该软件加上其链接的库都属于衍生软件,因此根据GPL的规定,衍生软件需要开源。针对GPL的这一缺陷,于是就有了LGPL许可证。在LGPL下发布一个库时,链接到该库的软件可以不适用LGPL或GPL,换言之,可以不公开源代码。LGPL的这一特性消除了在GPL下软件商用的障碍。

3、MPL

MPL即Mozilla Public License,谋智公共许可证。MPL与LGPL类似,是一种介于GPL许可证与宽松许可证之间的弱著佐权许可证。二者的差异主要在于LGPL针对库,而MPL针对单个文件。在将自己独立开发的文件与其他文件混合为一个项目的情况下,在其他文件适用GPL许可证时,独立开发的文件也需要公开源代码;而在其他文件适用MPL许可证时,则独立开发的文件可以不公开源代码。这意味着MPL下的文件可以与闭源文件结合使用,结合后,MPL下的文件将继续保持其MPL状态。

4、BSD

BSDL即Berkeley Software Distribution License,伯克利软件发行许可证,是加州大学伯克利分校撰写的许可证。BSD许可证包括原始的4句许可证、修改的3句许可证以及简化的2句许可证。BSD既是该许可证本身,也泛指这一类限制较少的宽松许可证。BSD、MIT以及Apache许可证都属于宽松许可证,允许将这些许可证下的软件修改后的衍生软件以闭源形式发行。

5、MIT License

MIT License即麻省理工学院许可证,是本文提到的诸多许可证中最简单的,也是目前最受欢迎的许可证。

6、Apache License

Apache License即阿帕奇许可证,由阿帕奇软件基金会发布。1.1版的阿帕奇许可证类似于BSD许可证和MIT许可证。2004年发布的2.0版阿帕奇许可证则加入了两项专利条款,因此,在宽松许可证中被认为提供了最佳的专利保护。

7、许可证的选择

是否可以自定义一个许可证而不使用上述的许可证呢?答案是:可以,但没必要。因为有成百上千个现成的许可证可供选择,并且考虑到兼容性,最好使用现成的许可证。另外,使用常见的许可证将使他人更易于理解自己的项目。因此,最重要的决定是选择著佐权许可证还是宽松许可证。在很多情况下,许可证的选择受到其前任选择的限制。

在不选择许可证的情况下,著作权法等法律会发生效力,源代码不会自动进入公有领域。这意味着为某一项目做出贡献的相应源代码不能被他人修改或者发行。

三、开源软件的法律风险

由于几乎所有的开源软件团体都位于美国,且有的许可证(例如MPL 1.1)规定了管辖法院为美国法院且适用法律为美国法,因此,在本部分中,除了基于中国法进行分析外,还会介绍美国的一些判例。另外,我国迄今未发生过与开源软件许可证有关的诉讼。虽然在一些软件著作权侵权纠纷中,被告会以使用的代码为开源代码进行抗辩,但没有案例直接涉及开源软件许可证本身。

最近的Artifex诉Hancom案就是一起外国公司在美国被美国公司起诉的案例。其案情为:美国的Artifex公司拥有并发布了一款名为Ghostscript的pdf软件。针对该软件,Artifex公司提供了两种许可方式:商用许可或者GPL下的开源许可。韩国的Hancom公司将Ghostscript整合进其Hangul软件中,但其并没有从Artifex公司购买商用许可,也没有根据GPL许可证将整合有Ghostscript的Hangul软件开源,因此违反了GPL许可证。2016年12月,Artifex公司在加州北区联邦法院起诉Hancom公司版权侵权以及违反开源软件许可证。Hancom公司提出了撤销案件的动议,包括原告不能针对被告在美国境外的侵权行为根据美国版权法提起诉讼。2017年4月,法院否决了被告的动议并认为“至少有一些侵权行为是在美国发生的”并且“美国的行为与境外侵权之间存在必要的联系”。2017年年底,双方达成庭外和解。

虽然与开源软件许可证相关的诉讼在美国等地偶有发生,但总体数量较少。其原因可能有如下两点:第一,侵犯软件版权的最重要形式——盗版,在开源软件中并不存在。盗版是发行软件而不向权利人支付许可费的行为,但开源软件本身就允许免费发行,只有在发行修改后的软件并且没有遵循许可证规定的情况下才构成违约或侵权。第二,在遵守许可证方面,与法律诉讼相比,开源社区更加依赖于程序员间的自律。违反许可证的行为会导致开源社区的不满或抱怨,从而导致被开源社区排斥。因此,与商用软件相比,开源软件和开源社区总体而言是友好的。

1、合同和著作权

在我国,开源软件许可证毫无争议地是许可人与被许可人之间的合同。被许可人在违反许可证设定的义务时构成合同违约,同时,根据具体情况还可能构成著作权侵权。我国合同法第122条规定,在违约与侵权构成责任竞合时,当事人需择一地主张权利。

在美国,开源软件许可证的法律性质仍存在争议,有观点认为许可证是可以寻求版权法救济的单方的许可;有的则认为许可证是可以寻求合同法救济的双方的合同。美国法律规定合同需要当事人达成合意才具有可执行性。而在开源许可证的情况下,许可人并不知晓被许可人,并且被许可人也没有进行过任何明示的承诺(例如在签字页签名或者点击“我同意”按钮),从而美国法院有时会由此认为开源软件许可证不构成合同。例如,FSF的官方观点就认为GPL是一种许可,因为其不需要相对方的合意,并且可以在版权法下得到充分的救济。

违反许可证仅构成合同违约还是构成版权侵权,Jacobsen诉Katzer案给出了一些启示。根据美国第九巡回上诉法院早先确立的一个判例(升阳诉微软),“如果许可人对作品进行非独占许可,那么就放弃了起诉被许可人版权侵权的权利”,仅能起诉合同违约,同时,“如果许可的范围受限并且被许可人在该范围外行动,那么许可人可以起诉版权侵权”。因此,Jacobsen案主要讨论的焦点在于条件(condition)与承诺(covenant)的区分。限制许可范围的条款为“条件”,违反条件构成版权侵权;未限制许可范围的合同条款为“承诺”,违反承诺构成合同违约。由于区分条件和承诺涉及到具体条款的解释,因此适用的是各州的州法。

其案情为:Jacobsen管理着一个名为JMRI的开源软件组。JMRI编写了一个名为DecoderPro的软件,允许铁路模型爱好者使用其计算机对控制火车模型的解码器芯片进行编程。DecoderPro以艺术许可证1.0发布,并且可以从SourceForge网站下载。Katzer提供一个也用于对解码器芯片进行编程的竞品软件Decoder Commander。在开发过程中,Katzer的雇员从Decoder Pro下载了解码器定义文件并用于Decoder Commander,但Decoder Commander软件没有遵守艺术许可证,例如没有记载版权声明等。2006年9月,Jacobsen向地区法院申请临时禁令,但法院于2007年8月认为该案仅仅是合同违约,而没有批准Jacobsen申请的禁令。Jacobsen向联邦巡回上诉法院提起上诉。

上诉的争议在于艺术许可证的条款究竟是版权许可的条件,还是仅仅是版权许可的承诺。如果被违反的艺术许可证的条款是限制许可范围的条件,那么会受到版权法的约束;如果其仅仅是承诺,那么会受到合同法的约束。Jacobsen认为艺术许可证的条款限定了许可的范围,在该限制之外的使用构成版权侵权。Katzer则认为这些条款没有限制许可的范围,并且仅仅是提供使用作品的合同条款的承诺,违反这些条款既不适用损害赔偿也不适用禁令。上诉法院认为根据加州法律,艺术许可证中的条款是可执行的版权条件,于2008年8月将案件发回重审。双方于2010年2月达成庭外和解。

该案的意义在于美国法院确认了艺术许可证1.0的条款构成可执行的版权条件,从而在违反该许可证的条款时构成版权侵权。与中国法类似,美国法下版权侵权的救济往往优于合同违约的救济(例如在版权侵权案件中,权利人可以要求诉前禁令,败诉方负担律师费,惩罚性赔偿等等),因此,这一裁决有利于软件权利人行使其权利。

2、专利权

对开源软件的另一个常见误解是开源软件不能申请专利。如上所述,开源软件许可证主要围绕著作权,并不妨碍软件权利人将其技术申请专利。针对开源软件的专利风险主要可以分为外部风险和内部风险。

外部风险是指不受开源软件许可证约束的一方针对开源软件的使用者发起的专利请求。例如,微软公司早期对开源软件采取敌意的姿态,因为其将Linux等开源软件视为Windows等商业软件的威胁。微软公司于2009年2月起诉导航设备制造公司TomTom侵犯其多项专利,该多项专利中有2项涉及FAT文件系统,包括TomTom产品在内的Linux内核都在使用该文件系统。该案也是微软公司第一次针对Linux发起专利诉讼。2009年3月,TomTom同意向微软支付一笔专利许可费从而迅速与微软达成了和解。但随着软件行业转向云计算,微软也转变了对开源软件的态度。微软公司在2018年收购了最大的开源软件托管平台GitHub,并于当年携带其6万件专利加入了开放发明网络(OIN,OpenInvention Network)——一个旨在保护Linux自由运行而持有防御性专利池的团体。综上,虽然可以通过自由实施(Freedom to Operate, FTO)来识别,但外部风险总体而言较难控制。

内部风险是开源软件的贡献者针对开源软件使用者发起的专利请求,是本节讨论的重点。

(1)明示的专利许可

大约一半的开源许可证包括明示的专利许可,但是其范围可能会根据许可证的用语而不同。具有明示专利许可条款的许可证包括GPL 3.0、Apache 2.0、MPL1.1和2.0等。例如,MPL 2.0的5.2节规定了“如果您通过声明的专利侵权索赔发起针对任何实体的诉讼(不包括宣告式判决、反诉和交叉诉讼),声称一个贡献者版本直接或间接侵犯某项专利权利,依据本许可第2.1条授予您对适用软件的任何和所有权利将被终止。”在适用具有明示专利许可条款的许可证下,可以较好地控制专利的内部风险。

(2)默示的专利许可

默示的专利许可是指被许可人在一定条件下认为权利人默示了被许可人对专利技术方案的实施。在默示许可的情况下,许可人的行为和语言使得被许可人相信其获得了专利许可,或者从公平和诚实信用的角度来看,权利人不应该起诉使用人专利侵权。无论在中国还是美国,司法承认的默示许可的案例都很少见。

我国并没有支持默示许可的直接法律依据。在知识产权局的《专利侵权行为认定指南》中提到了两种默示许可的情形,分别是基于产品销售产生的默示许可以及基于先前使用而产生的默示许可。前一情况与(2011)知行字第99号的案情类似,其案情为:江苏微生物研究所拥有一项关于药用制剂的专利权,其认为福药公司生产的注射液落入该专利权的范围。福药公司则认为其原料药购自于专利权人及其许可人,且该原料药仅能用于生产该注射液(专利产品的药用制剂),因此不构成专利侵权。最高院在判决中认为:“专利实施许可并不只有书面许可一种方式,默示许可亦是专利实施许可的方式之一。例如,如果某种物品的唯一合理的商业用途就是用于实施某项专利,专利权人或者经专利权人许可的第三人将该物品销售给他人的行为本身就意味着默示许可购买人实施该项专利。”从而肯定了默示的专利许可。

美国最高院早在1927年的DeForest Radio Telephone诉United States案中即确立了默示的专利许可规则。其案情为:De Forest将其真空管专利许可给ATT公司,但许可合同不包括为美国政府使用的制造和销售。在战争中的美国政府要求ATT公司制造大量的真空管,但遭到拒绝,美国政府随即将订单发给通用电气公司。为了让美国政府快速获得真空管,ATT公司向通用电气公司和美国政府提供了信息、图纸和模板,并允许其人员参观并学习ATT制造真空管的过程。在美国政府寻求制造并使用真空管的回应中,ATT公司声明:“这会侵犯我方的专利。我方不会阻止……但将来可能会处理侵权问题。”对此,美国最高院认为:“权利人向他人展示的任何语言或者行为,使得他人正当地推定权利人同意其使用专利来制造、使用或销售专利产品,构成了许可以及针对侵权行为的抗辩。……本案的情况清楚示出公司不仅完全同意美国政府制造并使用专利产品,而且帮助了制造和使用,通过这样,给出了许可……”在De Forest案中,美国最高院认为即使专利权人声称在事后可能收取许可费,但其陈述和行为仍可能构成默示许可。

对于没有记载明示许可的许可证而言,其是否给出了默示许可,迄今仍没有经历过法院的裁决。开源软件许可证的这种模糊性的原因在于一些许可证并非是由受过法律训练的人起草的,并且还有一些许可证是在软件被认为不能专利的时候起草的。因此,很多开源许可证对于专利权的语言是非常模糊的。例如一些许可证中的用语“使用”软件,在中国法和美国法的语境下可能相当于一种专利的默示许可,因为只有两国专利法规定的权利人的权利才包括禁止他人使用、销售、许诺销售、进口专利产品;而两国的著作权法规定的权利人的权利则包括禁止他人复制、修改、发行作品等。例如在Ximpleware公司诉Versata软件公司案中,美国法院认为GPL 2.0记载的“使用”软件这一用语等于权利人给出了默示的专利许可,至于该许可是否能扩大至诸如销售权、进口权等,法院没有详细阐述。

(3)专利权用尽

不同于许可,权利用尽(或首次销售)原则是指知识产权权利人自己或者经其同意将含有知识产权的产品销售后,不能干预该产品的进一步销售,也不能干预购买者对相关有形产品的使用。获得了有形产品的物权不意味着同时获得了有形产品所承载的无形的知识产权,而权利用尽原则正是为了解决物权与知识产权的冲突而设立的。我国专利法第69条第1项规定了专利产品的权利用尽,而在美国,专利的权利用尽没有记载在专利法的条文中,而是一项普通法原则。

权利用尽原则是否适用于通常免费下载的开源软件,在Cascades诉三星电子一案中可以得到一些启示。该案案情为:2011年,Cascades起诉三星电子和HTC专利侵权,认为两被告生产并销售的智能手机使用了作为安卓操作系统一部分的DalvikJIT编译器,从而侵犯了其750号专利。2014年,Cascades与谷歌达成和解和许可协议。谷歌向Cascades一次性支付了许可费并获得了非独占性许可,但许可协议仅针对谷歌的产品而不涵盖运行安卓操作系统的第三方产品。三星和HTC声称,由于Cascades与谷歌之间的许可协议,根据首次销售原则,Cascades不能向下游厂商主张专利侵权。而Cascades则认为,谷歌将安卓操作系统交给三星或者HTC不是“授权的”销售,因此没有用尽Cascades在操作系统中的专利权。最终,法院认为三星和HTC证明了向其销售的安卓操作系统(Dalvik JIT编译器)是授权的,并且三星和HTC也满足权利用尽的其他条件,三星和HTC的抗辩成立。

3、商标权

不同于旨在激励独创性作品和创造性发明的版权法和专利法,商标法的目的是通过保证产品或服务的来源从而保护消费者。版权和专利权是一种产权,而商标从根本上关注的是消费者保护或者市场竞争。因此,使用商标与开源软件的原则并不矛盾。

在我国,在与软件和软件开发相关的类别中,“开源”汉字或者“open source”英文都不是注册商标;在美国,“open source”英文也不是注册商标。这意味着无论在我国还是美国,“开源”或者“open source”是可以自由使用的通用词汇,不存在需要获得许可的情形。

另外,无论在我国还是美国,在与软件和软件开发相关的类别中,OSI和/或其图形都是注册商标。这意味着一个许可证要得到OSI的认证后(符合OSI给出的有关开源的10个定义)才能使用OSI相关的标志,否则可能构成商标侵权。OSI是开源促进会(open source initiative)的简写,其维护着一个开源许可证列表(opensource.org/licenses)。

还值得注意的商标问题是描述性使用或指示性使用。例如,在我国和美国,在软件和软件开发相关的类别中,MIT都是麻省理工学院的注册商标。在使用MIT许可证时,如果超出必要限度地使用MIT三个字母,以致于暗示该软件由麻省理工学院赞助或者背书,那么就可能构成商标性使用从而侵犯麻省理工学院的注册商标权。

四、应对措施

虽然开源软件的法律风险比较容易识别,但是大多数软件开发商并没有意识到这一点。一些软件开发商对于自己产品使用开源软件的具体情况没有认识。内部法务和外部律师需要对开源软件的合规风险进行教育,提升开发团队的合规意识。同时,制定开源软件相关的审批流程,以确保产品中不会被违规嵌入开源软件。

对于采购软件或委托开发的民商事主体而言,在软件供应商管理方面也需要将开源软件的合规性要求写入合同中,以引导软件供应商认真对待许可证以及源代码问题。在很多情况下,完全可以约定禁止使用开源软件。

另外,由于GPL这类的强著佐权许可证要求任何与其链接的源代码(包括公司希望保持闭源的源代码)完全公开,因此,往往需要删除GPL下的代码或者重新改写。

*「高杉LEGAL」致力于中国民商法实务研究,由高杉峻(个人微信号:gaoshanlawyer)出品。投稿请寄:gaoshanLEGAL@163.com*

编辑于 2019-11-09 23:22