1. 开源软件及开源许可证
1.1. 开源软件概述
开源软件即将源代码开放的软件,软件代码包括源代码和目标代码,在软件开发过程中,程序员通过使用编程语言如C语言、Python语言等写出来的可供本领域技术人员识别的代码即为软件源代码,而目标代码为将程序员写出来的源代码通过计算机处理器处理识别的二进制代码。开源软件将源代码开放给不特定的人,在遵循开源许可证协议的情况下可供他人使用,检查、修改和重新分发,其目的就是吸引更多的程序开发者参与进来,不断对软件项目进行修改、完善软件的缺陷,提高软件质量发挥集群智慧的效果。
开源软件不等同于免费软件。这本就是两个不同的概念,免费软件由开发商供客户免费下载使用,如微信、抖音等软件,但并未公开免费软件的源代码,更不可能允许用户对源代码任意修改,进行二次发布,而开源软件,在发布软件时就公开了源代码,并且通常用户可以对源代码进行修改,再分发,二者概念的含义并不相同。同时,开源软件也是存在收费项目的,开源软件并非慈善事业,其背后也离不开商业资金的支撑,没有商业资金的支撑,开源项目也难以持久。比如一部分CAD开源软件公司提供的软件是开源免费的,但也提供一些插件需要由客户付费使用以完成特定的工作任务。再比如,众所周知的安卓系统为开源系统,同时配备了一些付费服务,安卓手机上的音乐、邮箱等服务需要手机厂商通过付费获得授权。
开源软件也并不完全等于自由软件。首先,自由软件在理念上追求任何人都可以自由使用、修改、二次分发软件的权利,它是一种思想运动,反对软件的私有,强调软件共享,软件的知识产权专有权保护是这一思想运动的首要抗争对象,这点并不同于开源软件,开源软件在理念上并不排斥知识产权专有权的保护。其次,二者对许可证的接受标准不同。自由软件和开源软件都是受开源许可证约束的软件类型,但是自由软件的接受标准更为严格,只接受那些完全尊重用户的自由的许可证才被接受,开源软件的接受标准相对更为宽松,往往只要满足源代码公开这一条件即可[1]。综上可见,自由软件更为极端,属于开源软件的一个子集,但其并不完全等同于开源软件。
1.2. 开源许可证概述
为研究开源软件的著作权保护问题,绕不开对开源许可证概念的理解。开源许可证是指软件开发者将源代码公开的同时授权他人使用、修改、再分发该代码的法律协议。我国的软件受到著作权相关法律的保护,软件一旦创作完成,任何人不可在不经权利人同意授权的条件下修改、使用和再分发该软件的源代码,但是开源软件的开发者在公开源代码的同时选择一种开源许可证,即选择了一种法律协议,他人也就可以在遵守这一法律协议的前提下使用、修改和再分发这一开源件,客户一但违反这一法律协议就可能会造成侵权问题。
目前世界上常见的许可证有数十种,按照开源软件使用、修改和分发的限制成都对开源许可证进行分类可分为宽松型许可证、强传染型许可证、弱传染型许可证三大类。宽松型许可证允许客户可以更大自由地使用、修改和分发软件而不必要求客户发布其衍生作品时以相同的许可证为条件发布如MIT许可证,作者只是想保护版权,而无任何其他限制;强传染型许可证要求后续的衍生作品仍然按照相同的许可证协议进行发表,确保整个项目的源代码开放,以GPL许可证,为代表,它对使用该许可证代码的修改、分发有严格规定,只要开源项目的一部分使用了GPL许可证,这个开源整个项目就必须选择GPL许可证,就如同传染病一样;弱传染性许可证,约束强度介于宽松型许可证和强传染型许可证之间,如果一个软件部分代码包含在该类型的许可证协议下,允许部分代码在特定条件下保持闭源,但仍然要求某些核心部分保持开源,如MPL许可证协议允许在其授权下的源代码与开发者个人文件进行混合,闭源商用,但在MPL授权下的代码文件必须遵守MPL许可证并保持开源[2]。
2. 开源软件不排斥著作权保护
著作权法保护作品的表达,根据相关法律规定,计算机软件的源代码经创作完成即产生著作专有权,任何主体不可在未经著作权人同意的情况下侵犯其相关权益,软件的登记并非软件著作权的生效条件,仅仅是产生一定的公示、推定作用。而开源软件的诞生即是为了打破著作权等知识产权的专有保护,更好促进技术领域内相关技术人员的交流,让软件开发更为高效,进而促进科技产业发展。二者在理念上就相互排斥,开源软件似乎不需要经过著作权法来保护,但实则不然。
一方面,著作权的存在是软件开源的前提。软件项目开发者将软件上传至开源社区,公开其软件源代码的行为实质上就是对软件著作权权利的处分行为,著作权人有权选择是否对其作品进行公开发表,相似地,公开软件源代码的行为也是一种发表行为。同时,软件开发者在发表时会选择一种开源许可协议,这一许可协议是一种权利人向不特定人做出的附条件的著作权许可合同,著作权人将其著作权相关权益附条件地许可给他人,就是以著作权的存在为基础。
另一方面,软件开源并非对著作权的放弃。软件开源的本质是授权,软件开发者以许可证的形式向社会公众授予一种特定、广泛的权利。公众可以自由对软件进行使用、运行,也可以根据自身需要自由修改、再分发,这些权利的来源都是软件著作权的授权。开源许可证规定了公众对软件可以行使的权利的同时也规定了公众应当遵守的义务,一旦公众违反了相应义务,就会面临对软件著作权的侵犯。
3. 开源软件著作权归属问题复杂
开源软件整体作为一个作品,属于《著作权法》授权客体,但鉴于开源软件这一作品的特殊性,其存在多个完成主体,包括在开源社区发布开源项目的管理者和参与开源项目修改、再分发工作的众多项目参与者,在作品完成主体众多的情况下,谁对开源软件享有著作权,是一个值得探讨的问题。
3.1. 开源软件作品类型定性困难
认定著作权的归属首要任务是明晰开源软件作品的类型。首先,开源软件存在一众主体,项目贡献者和项目管理者对作品的完成都有一定的贡献,符合合作作品的表现形式,但是如果认定开源软件为合作作品会进一步衍生维权主体过多,而司法资源有限难以进行侵权判定等一系列问题。其次,开源软件作为一个综合体汇聚来自多个主体的智力成果,是否属于汇编作品?答案是否定的,开源软件通过添加代码、重写之前的代码等方式不断积聚群体智慧,并非简单地对每个主体编写的代码进行汇编,积聚的内容在选择上也没有独创性,所以开源软件不能认定为汇编作品。最后,开源软件发布后不断经过项目参与者在原来代码的基础上修改错误、完善内容,形式上似乎也符合演绎作品的表现形式[3]。
言而总之,开源软件可能会构成合作作品或者是演绎作品,但二者存在一个共同问题,即创作主体众多,维权主体众多,而且主体遍布在世界各地,很难以有限的司法资源解决问题。可如果法律不保护项目参与者的独创性贡献,似乎也加重对项目参与者个人权益的侵犯。所以厘清开源软件作品类型至关重要,是解决权利归属问题的前提。
3.2. 开源软件主要贡献者能否享有著作权
一个开源软件项目的不断发展、完善产生了除了开源项目管理者外的多个项目贡献者,在罗盒公司诉玩友等公司的案件中[4]涉案开源软件(VirtualApp)存在32位项目贡献者,法院直接认定其他贡献者将自己贡献作品内容的相关权利让渡给项目管理者罗盒公司,从而认定罗盒公司有权提起诉讼,但是法院忽略了对贡献者协议(GLC)内容的说理,不当剥夺了贡献者对自身贡献内容的专有权,显然也是不合理的。贡献者协议与开源许可证不同,开源许可证作用对象是项目使用者,一般发挥着授予著作权的作用,其本质是对外承诺其他人可以用自己的软件做什么,而贡献者协议的作用对象是项目贡献者,发挥的作用明确版权等权利的归属问题,其本质是贡献者对项目的承诺,确保项目贡献者所贡献的源代码不会产生知识产权等法律纠纷,二者不能混为一谈。
对项目贡献者,特别是主要贡献者的相关著作权等权利,法律也要给予足够的重视,不能一刀切的认定贡献者的著作权被转让出去剥夺其应有的权利,当然也不能不作区分地一律保护,这也可能会出现权利人滥用权利进行烂诉的风险,需要促使权利的分配达到一定平衡点。
4. 明确开源软件著作权的归属
4.1. 明确开源软件作品类型
开源软件不应该视为合作作品。根据我国《著作权法》相关规定,两个人以上完成的作品为合作作品。参与创作的每一个主体的独创性表达汇聚成一个作品,若作品可分割,则每个创作完成单位对其独创性表达部分享有著作权,如若作品不可分割,则作品作为一个整体由创作完成单位共享[5]。开源软件作为包含项目管理者和众多项目贡献者在内的多个主体的作品不应当认定为合作作品,项目管理者在整个作品中占据绝对的主导地位,当其在开源社区中发布开源项目时,设立源代码的主分支和其他分支,项目贡献者在提供所贡献的源代码时并非直接将贡献代码编入主分支中,而是向项目发起者发起一个拉取请求,能否将源代码拉取到主分支还需要项目管理者根据情况决定,最终的决定权在项目管理者。如果认定开源软件属于合作作品,合作的每个主体在主观上存在创作合意,那么这一创作合意仅在项目管理者同意拉取的情况下能成立,若管理者不同意,显然具备创作合意这一说法无从谈起。同时,司法实践结合在案的证据和事实认定也不将开源软件认定为合作作品。
开源软件也不应认定为演绎作品。演绎作品是以之前已经存在的作品为基础,对其进行改编、翻译。开源软件虽然存在项目贡献者对开源项目主分支的内容进行修改、补入等操作,但是能否将其编写内容并入到主分支,依然由项目管理者决定,其完成创作的方式更类似于给版权所有人提供建议,自身不存在决定权,与演艺作品的改变、翻译不能混为一谈。
开源软件应当认定为单独属于项目管理者的作品。项目管理者往往是软件的提出方与运营方,对开源软件作品的基本创作内容有独创贡献,对软件的内容的完善、补充也有决定力,应当认定具备开源软件完整的著作权。
4.2. 以贡献者协议为中心认定主要贡献者的权利
法院在认定主要贡献者是否对所贡献源代码享有权利不应当“一刀切”地否定贡献者的权利,应当在审查贡献者协议内容的基础上作进一步认定。目前,世界越来越多的开源项目开始重视贡献者协议,主要分为个人贡献者协议(ICLA)和企业贡献者协议(CCLA),前者适用于个人贡献者,后者适用于代表企业进行贡献的员工,协议的签署由被代表的公司完成,这是一个以规定贡献者权利义务为内容的协议,明确了版权的归属。其不同于开源许可证的制式化要求形式,不同的开源软件可以自由制定贡献者协议,当然其协议内容当遵循合同的有效要件,不得法律、法规的强制性规定、不得违背公序良俗。
具体如何应用:在认定主要贡献者如何享有相应权利时首先应当审查开源项目是否存在合法有效的开源贡献者协议,存在的情况下,法院就应当遵从当事人的意思自治,按照协议约定的内容分配权利内容,不能直接跳过这一步骤。如若开源软件项目中不存在相关贡献者协议,就要看整个开源软件能否进行分割,若可以分割,则应当认定每个创作完成人分别对各自包含自身独创性表达的部分享有著作权,若整个开源项目难以进行有效区分,整个作品视为一体,原则上著作权归项目管理方所有,但是如果有证据证明项目贡献者贡献了涉案开源项目的主要源代码,本文认为可以认定著作权有主要贡献者和项目管理者共有。
当然关于主要项目贡献者与项目管理者共享著作权时,诉讼中的被告可能会以涉案开源软件系原告与他人共有为由抗辩,这时原告需要提供另一共有人明确拒绝起诉的相关证据材料,这会对加大原告举证义务的同时也无端地拖延审判的继续进行。对此需要进一步明确项目的主要贡献者享有对原告(往往是项目管理者)利益分配请求权,若被告仅以上述理由抗辩,原审可以继续进行,若主要项目贡献者要求分配原告所得赔偿,可以另行起诉。
5. 结语
随着互联网技术、人工智能的快速发展,开源软件的项目不断发展丰富,明确开源软件著作权的归属是开源软件相关侵权纠纷得以解决的重要前提。具体认定方法还要随着司法裁判的丰富持续完善总结。