6月18日晚,SegmentFault思否收到Apache基金会提供的消息,云计算解决方案服务商博云在使用开源项目ApacheSkyWalking时,违反了该项目声明的ApacheLicenseVersion2.0开源协议规定。
ApacheLicenseVersion2.0中明确注明了,当使用声明了ApacheLicenseVersion2.0的软件时,需要有显著的声明,不得有隐瞒和可以忽略的色彩。而博云在产品的宣传文件中,并没有进行相关内容的展示以及说明。
Apache基金会发现该问题后,通过邮件与博云进行了问责沟通:
沟通后,博云方面积极进行了调整,并表示“没有把ApacheSkyWalking装扮成自有产品的意思”,但确实在引用开源项目时做的不规范,违反了开源协议规定。
随着开源主义的发展和开源项目的日渐丰富,越来越多的开发者和企业会使用开源的软件和源码。但在实际使用的过程中,很多人对于开源协议以及引用规范并不是十分清晰,进而引起各种不必要的争议甚至法律纠纷。
ApacheSkyWalking因为有强大的社区背书,被侵权后才能被迅速发现并得以顺利维权,而很多开源项目,哪怕声明了相关的开源协议,仍在被默默的被违规侵权使用。
对此,我们呼吁各企业和开发者在使用开源项目前,认真了解开源项目的意义与价值,遵守相关的开源协议,尊重他人的劳动成果。
我们整理了一些与开源相关的基础知识,并以通用的开源协议ApacheLicenseVersion2.0为例,和大家解读一下如何正确遵守开源协议。
什么是开源协议?
开源授权协议的产生,是为了更好地保护开源项目的产权。开源协议作为一种契约和授权方式,是用户合法使用软件作品的一个凭证,就相当于软件作者与用户之间签订的一份合同,而且是在有相应行为就默认接受的。违反协议将侵犯专利所有人的知识产权,专利所有人可以提起诉讼。
企业只有真的理解了开源协议,才能享受到开源带来的便利,并有效降低知识产权侵权风险。
对于开源授权协议的定义,我们可以参考百度百科词条:
自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议。
开源许可协议有很多种,常见的开源许可协议有Apache、BSD、GPL(GNU)、LGPL、MIT等。乌克兰程序员PaulBagwell曾画过一张分析图,说明应该如何选择开源协议。下面是阮一峰中文翻译版本:
如果正确遵守开源协议
开源虽好,但在选择开源软件进行项目开发时一定要慎重,不仅仅要对其性能进行检测,也需要对充分考虑其采用了哪种开源协议、是否存在知识产权风险,再具体的使用过程中需要如何遵守协议的规定与规范。
上图是Apache软件基金会在年年度报告中,披露的ASF软件在全球各个国家的下载量排名。可以看到,中国已然成为Apache软件基金会项目下载量最大的地区。
作为全球最大开源消费国,ASF在国内有广泛的群众基础。今天我们就以ApacheLicenseVersion2.0为例,来为大家解读如何正确遵守开源协议,避免引发不必要的风险。
ApacheLicenseVersion2.0鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。ApacheLicence也是对商业应用友好的许可,使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
协议中明确写出,只要遵守该许可的条款和条件的前提下,每位贡献者将被授予永久的、全球性的、非排他性的、免费的、免版税的、不可撤销的版权许可,以复制、准备衍生作品、公开展示、公开使用、再许可、分发本作品和其衍生作品(无论是以“源码”还是“目标”形式)。
也就是不仅可以用,还可以对基于ApacheLicenseVersion2.0的作品或衍生作品进行修改或增补,并应用到商业项目。但前提是满足以下几个条件:
需要给代码的用户一份ApacheLicence;如果你修改了代码,需要在被修改的文件中说明;在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有ApacheLicence。你可以在Notice中增加自己的许可,但不可以表现为对ApacheLicence构成更改。
总结下来,就是需要在相关产品的发行版本,Notice文件、源码或文档里,添加归属声明的可读拷贝,并给接收者提供开源项目中提供的ApacheLicenseVersion2.0许可证的拷贝,在分发的衍生作品的源代码中,必须保留本作品源码中的所有版权、专利、商标和归属声明。
公司在使用ApacheLicenseVersion2.0授权的开源软件,进行分发的过程中,不应隐瞒或故意忽略提及对此软件的使用。
其他的开源协议也类似,都有非常明确的使用规范与要求,在选择开源软件进行项目开发时一定要提前阅读协议。规范使用开源协议既是对开源协议的尊重,也可以避免自身的法律风险。
*ApacheSkyWalking,SkyWalking,Apache,Apachefeatherlogo版权属于Apache软件基金会。
扩展阅读:
《ApacheLicene2.0协议英文文档》