前言:
眼前各位老铁们对“违反了apachelicence”大概比较讲究,大家都想要了解一些“违反了apachelicence”的相关知识。那么小编也在网摘上收集了一些关于“违反了apachelicence””的相关文章,希望大家能喜欢,看官们快快来了解一下吧!作者:邓超
0.自由软件
在软件产业发展的早期(上世纪50年代至80年代),软件主要以公用软件(public domain software)的形式存在。公用软件是指著作权过期、著作权被放弃等不被著作权保护,从而可以以任何目的进行复制、修改并销售的软件。(另外,当时的美国版权法也并不保护计算机软件——直到1980年。)彼时计算机产业主要的商业模式是销售硬件,并且免费提供与该硬件相配合的内置软件。这一商业模式如今也被苹果公司所采用,但不同的是彼时提供的内置软件包含源代码,用户可以对其进行自由修改。当然,由于尚未出现个人计算机的概念,计算机硬件和软件的用户大都是科研机构、大学、商业机构的专业人员。
从上世纪70年代起,软件产业的商业模式开始发生了变化,出现了专门从事开发与硬件厂商的内置软件相竞争的软件的公司。在免费增值(freemium)等商业模式尚未出现的当时,软件公司唯一的盈利模式似乎就是对软件进行收费,为此,软件公司开始采取各种手段防止用户修改软件(例如只发布二进制文件的目标代码,而非源代码)。到了1983年,在IBM执行“仅目标代码”策略后,几乎所有的软件公司都不再提供源代码。
对于软件行业转向收费感到不满的Richard Stallman于1983年开创了自由软件运动(Free Software Movement),并开启了目的在于编写一个兼容Unix的完全自由的操作系统的GNU项目。1985年,自由软件基金会(Free Software Foundation,简称为FSF)随即创建。根据FSF的定义,自由软件赋予用户自由使用、修改、发布该软件及其衍生版本的自由(FSF定义的4个自由)。
不同于公用软件(public domain software)这种不被著作权保护的软件,自由软件的著作权没有被放弃。因此,为了使用自由软件,必须遵守自由软件的许可协议。一般可以通过软件的许可协议来确认该软件是否是自由软件,常见的自由软件的许可协议有GPL、LGPL、MPL、BSDL等。
自由软件与免费软件的区别
自由软件(Free Software)与免费软件(free software)的英语表述相同。因此在英语语境下容易造成误解。
免费软件是无偿获取并使用的软件,其源代码一般不公开,用户并没有使用、复制、修改和发布的自由(比如现在一般用户使用的绝大部分的免费软件)。
另一方面,只要满足上述提到的4个自由,就符合自由软件的定义。因此,自由软件可以收费销售(即有偿发布),但由于同时自由软件的发布也需要是自由的(即无偿复制),因此有偿销售自由软件更多是一种理论可能,不具有实际意义。
综上,免费软件不一定是自由软件(并且一般都不是),而自由软件也不一定免费(虽然一般都是)。
1.开源软件的起源
时间来到了1998年初,网景(Netscape)公司的网络浏览器软件、即网景导航者(Netscape Navigator)的市占率受到微软Internet Explorer的大幅侵蚀。除了技术上的性能区别之外,IE的杀手锏在于:它是随着Windows操作系统而免费提供的。作为应对措施,网景公司成立了Mozilla计划并宣布网景导航者软件将作为自由软件免费提供,该软件的源代码也会公开给世界上的所有程序员去进行修改。后来以Mozilla的底层代码为基础还开发出了火狐浏览器,此处不表。
网景公司的这一计划明显受到了Eric Raymond于1997年出版的名为《大教堂与集市》一书的影响。在该书中,Eric Raymond比较了两种软件开发方式,大教堂的特点是封闭式建设、成本高、周期长、品质优异;而集市的特点是开放式建设、成本低、周期短、品质平庸。Eric Raymond提出的问题是:能否以集市的方式建造一个大教堂?背后其实就是在分析Linux成功的原因。
网景公司的上述计划促使Eric Raymond和其他人开始思考:如何将FSF有关自由软件的想法应用于商业软件产业?但是“自由软件”(free software)这一用语对于企业界并没有什么吸引力,因为:
其容易使人联想到“免费”(free);自由软件团体对于商业公司的攻击性太强;其给用户一种使用他人的软件可以不受任何制约的感觉。
为了改善这一状况,Eric Raymond等人创立了开源促进会(open source initiative,简称为OSI)并提出了“开源软件”(open source software)这一用语,并随后被广泛接纳。
1999年,OSI试图在美国注册“open source”这一商标,但是美国专利商标局认为“open source”是一个一般用语,不能作为特定个体拥有权利的商标。此后,OSI采取了欢迎“open source”作为常用词汇的立场。
开源软件与自由软件的区别
简单地讲,开源软件可以被视为是一个为了向企业界推广“自由软件”而重新包装的用语。二者都指代一个大致相同的软件类别,比如遵守GPL和BSDL许可的软件都是开放且自由的,因此,有时被合称为“自由开源软件"(Free/Libre and Open Source Software,缩写为FLOSS,或者Free and open source software,缩写为FOSS)。
但由于二者的立足点不同,还是存在略微的差异。
所有的自由软件都是开源软件,因为源代码不开放,就无法自由修改、发布。另一方面,虽然绝大多数的开源软件同时也是自由软件,但并非所有的开源软件都能被称为“自由软件”,因为即使附带了源代码,如果限制了修改、发布该源代码的自由,那么也不能称之为自由软件。
2.开源软件的法律地位
由于我国不存在以开源软件为主题的法律,因此,规制开源软件的主要法律法规是《著作权法》及其实施条例以及《计算机软件保护条例》,另外,一些开源软件的问题还可能涉及《合同法》、《专利法》等法律。
如前文所述,开源软件的源代码是公开的并可以免费使用、修改、发布,因此,一种常见的误解是开源软件不存在著作权等知识产权,但这是一种错误的认识。不同于公用软件(public domain software)这种不被著作权保护的软件,开源软件(自由软件)的著作权并没有被放弃。开源软件的使用、修改、发布虽然免费,但并非是无条件的,而是需要遵守著作权人制定的规则、即开源许可协议中规定的条件。因此,在对开源软件进行定制并使用时,仍然需要注意开源软件的著作权问题。
违反著作权人的意图而复制并销售软件程序是侵犯著作权的行为,著作权人对此可以要求侵权人停止使用,并且针对已经发生的损害要求赔偿。但目前有关开源软件的诉讼非常少,国外的少数几个诉讼最终也多以和解告终。比较著名的可能是Netfilter内核子系统贡献者Patrick McHardy(可以将其视为专利领域的NPE?)在德国发起的一系列诉讼。
3.开源软件的许可证(license)
由于开源软件是具有著作权的软件,因此,使用开源软件需要遵守著作权人制定的规则、即许可证中规定的条件。下面简单介绍一下开源软件的许可证(license)。
开源软件的许可证是开源软件著作权人(被广泛适用的大多为美国的各种私人的自由软件团体)制定的规则,而非法律的强制性规定。目前存在的开源软件的常用许可证有几十种,代表性的许可证有GPL、LGPL、BSD等。开源软件的许可证大致可以分为两类:一类是copyleft性质的许可证(再发布、修改后的软件也需要是自由软件),常见的有GPL、LGPL等。另一类是非copyleft,即,copycenter性质的许可证(再发布、修改后的软件不需要是自由软件),常见的有BSD等,这也是使用最广泛的许可证之一。
由于开源软件的性质,这些许可证具有如下的一些共通点:
3-1.开发者不承担瑕疵担保责任
瑕疵担保责任一般发生在有偿合同当中,而开源软件及其衍生产品通常以开发者无法控制的形式流通,开发者难以直接获益,因此,对于开源软件而言,开发者(即原始著作权人)并不负有瑕疵担保责任。换言之,关于开源软件的运行、除错(bug)、使用开源软件而产生的损害等,开发者不承担任何责任。另一方面,开源软件的发行商可能由于选择版本、测试、提供补丁、软件支持等而收取费用,但即便在该情况下,发行商对于开源软件本身一般也不承担瑕疵担保责任。
3-2.保留著作权标记
由于开源软件没有放弃著作权,因此,其许可协议中一般都需要以适当的形式保留源代码中的著作权标记,从而防止生成衍生产品的人谎称自己是从头开始完成作品的人。
3-3.在只是使用开源软件而不进行修改、发布的情况下,一般不需要同意开源软件的许可证。
4.代表性的开源许可证
OSI维护着一个开源许可证列表(),OSI认证的许可证意味着其符合前文提到的有关开源的10个定义。作为广泛使用的许可证,主要有:GPL、LGPL、MPL、MIT license、BSDL、Apache License等。如前文所述,许可证大致可以分为两类:著佐权(copyleft)性质的许可证以及非著佐权性质的宽松许可证(permissive license)。著佐权许可证与宽松许可证的最大区别在于:当软件被再分发(无论是否修改)时,著佐权许可证强制公开源代码(衍生作品仍然是符合GPL的自由软件);而宽松许可证不要求再分发人公开源代码(衍生作品可以变成专有软件)。GPL是典型的著佐权许可证,LGPL、MPL属于弱著佐权许可证,MIT license、BSDL、Apache License等都属于宽松许可证。
4-0.不使用许可证的后果
在没有许可证的情况下,《著作权法》以及《计算机软件保护条例》等作为默认条款发生法律效力,而不是源代码自动进入公有领域。这意味着你为某一项目做出贡献将使你成为相应作品的独家版权所有人,其他人不能对该作品进行使用、复制、分发或者修改。而该项目中出现了其他人的工作时,不能使用该作品的“其他人”中也会包括你。
4-1.GPL
首先说明GPL,即GNU GPL(General Public License,通用公共许可证)。GPL最初由自由软件基金会(FSF)的理查德斯托曼(Richard Stallman)于1989年撰写,1991年发布了第二版,2007年发布了第三版。其主要内容为任何软件及其衍生作品要被自由使用、修改、发布,必须提供源代码。GPL是自由软件运动的基础性许可证,目的是为了防止作为对象的软件被作者或者第三者独占,使得该软件可以被任何人自由使用。
GPL的传染性
在GPL下,软件的衍生版本也仍然需要使用GPL许可证,意味着GPL具有传染性。换言之,如果整个软件中只有一小段代码适用GPL,那么整个软件也都必须适用GPL,从而需要开放源代码——这不十分商业友好。因此,在开发者没有许可证意识而将GNU GPL这样具有传染性的许可证用于商用软件产品等情况下,无疑会使软件商暴露在公开源代码,或面临侵犯著作权的诉讼等风险中。
4-2.LGPL
GPL由于其传染性,要求所有衍生软件都需要符合GPL,这对大型软件所使用的库来讲是个大问题。例如,如果在GPL下发布了一个库,那么任何使用该库的软件也需要符合GPL。针对GPL的上述缺陷,于是就有了LGPL许可证。LGPL是lesser GPL的简称,也就是限制更少的GPL的意思。
根据LGPL许可证,在修改了源代码的情况下,修改后的源代码必须在相同的许可证下公开;而在使用的源代码情况下,则无需进行公开。意味着LGPL许可证允许源代码调用或链接到非GPL或LGPL许可的程序(库)。这一特性消除了软件商用的障碍。
4-3.MPL
MPL即Mozilla Public License,Mozilla公共许可证。MPL与LGPL类似,是一种介于GPL许可证与BSD许可证之间的许可证。
以网景公司将的开源基础的NPL(Netscape Public License)为基础。与GPL相同,在发布修改后的软件时,需要公开源代码。但是在将自己独立开发的文件与MPL许可的文件混合为一个项目的情况下,在GPL下独立开发的文件也需要公开源代码,而在MPL许可下可以不公开。这意味着MPL许可的文件可以与其他许可证保护的文件和专有文件结合使用,但MPL许可的源代码文件将继续保持其MPL许可状态。这是MPL许可证与能够使衍生作品成为专有的MIT许可证和BSD许可证,以及使所有衍生作品均遵循GPL许可的GPL许可证的主要差异。这样,MPL允许在保证项目的核心文件开源的情况下存在私有模块。
另外,关于专利,在不包含专利代码的情况下,MPL许可的源代码可以被自由使用、修改、发布。在包含专利代码的情况下,除了修改需要特别许可外,其他使用方式没有限制。
与GPL这种强著佐权许可证相对,MPL与LGPL是一种弱著佐权许可证。二者的差异主要在于LGPL受到(动态链接)库的约束,而MPL受到单个文件的约束。
4-4.BSDL
BSDL即Berkeley Software Distribution License,伯克利软件发布许可证,是加州大学伯克利分校撰写设计的许可证。BSD许可证包括原始的4句许可证、修改的3句许可证以及简化的2句许可证。而BSD既是该许可证本身,也泛指这一类限制较少的、宽松的许可证。
作为再发布的条件,只要保留著作权和许可证内容本身并且记载无瑕疵责任担保即可。只要满足该条件,就可以不公开源代码地发布将BSD许可的源代码进行复制、修改而生成的目标代码。
4.5 MIT License
MIT License即麻省理工学院许可证,可能是最受欢迎的许可证,其与2句BSD许可证非常相似。
4.6 Apache License
Apache License即Apache许可证,由Apache软件基金会发布。除了在Apache社区内被广泛使用外,许多非Apache软件基金会项目也使用了Apache许可证。Apache许可证与BSD许可证、MIT许可证都属于宽松许可证,不要求衍生作品和修改作品使用相同的许可证进行发布。
标签: #违反了apachelicence