9

开源

6 月 18 日晚,SegmentFault 思否收到 Apache 基金会提供的消息,云计算解决方案服务商博云在使用开源项目 Apache SkyWalking 时,违反了该项目声明的 Apache License Version 2.0 开源协议规定。

Apache License Version 2.0 中明确注明了,当使用声明了 Apache License Version 2.0 的软件时,需要有显著的声明,不得有隐瞒和可以忽略的色彩。而博云在产品的宣传文件中,并没有进行相关内容的展示以及说明。

Apache 基金会发现该问题后,通过邮件与博云进行了问责沟通:

Apache

沟通后,博云方面积极进行了调整,并表示“没有把 Apache SkyWalking 装扮成自有产品的意思”,但确实在引用开源项目时做的不规范,违反了开源协议规定。

clipboard.png

随着开源主义的发展和开源项目的日渐丰富,越来越多的开发者和企业会使用开源的软件和源码。但在实际使用的过程中,很多人对于开源协议以及引用规范并不是十分清晰,进而引起各种不必要的争议甚至法律纠纷。

Apache SkyWalking 因为有强大的社区背书,被侵权后才能被迅速发现并得以顺利维权,而很多开源项目,哪怕声明了相关的开源协议,仍在被默默的被违规侵权使用。

对此,我们呼吁各企业和开发者在使用开源项目前,认真了解开源项目的意义与价值,遵守相关的开源协议,尊重他人的劳动成果。

我们整理了一些与开源相关的基础知识,并以通用的开源协议 Apache License Version 2.0 为例,和大家解读一下如何正确遵守开源协议。

什么是开源协议?

开源授权协议的产生,是为了更好地保护开源项目的产权。开源协议作为一种契约和授权方式,是用户合法使用软件作品的一个凭证,就相当于软件作者与用户之间签订的一份合同,而且是在有相应行为就默认接受的。违反协议将侵犯专利所有人的知识产权,专利所有人可以提起诉讼。

企业只有真的理解了开源协议,才能享受到开源带来的便利,并有效降低知识产权侵权风险。

对于开源授权协议的定义,我们可以参考百度百科词条:

自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议。

开源许可协议有很多种,常见的开源许可协议有 Apache、BSD、GPL(GNU)、LGPL、MIT 等。乌克兰程序员 Paul Bagwell 曾画过一张分析图,说明应该如何选择开源协议。下面是阮一峰中文翻译版本:

开源协议

如果正确遵守开源协议

开源虽好,但在选择开源软件进行项目开发时一定要慎重,不仅仅要对其性能进行检测,也需要对充分考虑其采用了哪种开源协议、是否存在知识产权风险。

开源协议那么多,虽然大致相同但不同的开源协议还是会存在一些不同的使用规范。

clipboard.png

上图是 Apache 软件基金会在 2019 年年度报告中,披露的 ASF 软件在全球个国家的下载量排名。可以看到,中国已然成为 Apache 软件基金会项目下载量最大的地区。

作为全球最大开源消费国,ASF 在国内有广泛的群众基础。今天我们就以 Apache License Version 2.0 为例,来为大家解读如何正确遵守开源协议,避免陷引发不必要的风险。

Apache License Version 2.0 鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。Apache Licence 也是对商业应用友好的许可,使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

协议中明确写出,只要遵守该许可的条款和条件的前提下,每位贡献者将被授予永久的、全球性的、非排他性的、免费的、免版税的、不可撤销的版权许可,以复制、准备衍生作品、公开展示、公开使用、再许可、分发本作品和其衍生作品(无论是以“源码”还是“目标”形式)。

也就是不仅可以用,还可以对基于 Apache License Version 2.0 的作品或衍生作品进行修改或增补,并应用到商业项目。但前提是满足以下几个条件:

  1. 需要给代码的用户一份 Apache Licence;
  2. 如果你修改了代码,需要在被修改的文件中说明;
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;
  4. 如果再发布的产品中包含一个 Notice 文件,则在 Notice 文件中需要带有 Apache Licence。你可以在 Notice 中增加自己的许可,但不可以表现为对 Apache Licence 构成更改。

总结下来,就是需要在相关产品的 发行版本,Notice 文件、源码或文档里,添加归属声明的可读拷贝,并给接收者提供开源项目中提供的 Apache License Version 2.0 许可证的拷贝,在分发的衍生作品的源代码中,必须保留本作品源码中的所有版权、专利、商标和归属声明。

公司在使用 Apache License Version 2.0 授权的开源软件,进行分发的过程中,不应隐瞒或故意忽略提及对此软件的使用。

其他的开源协议也类似,都有非常明确的使用规范与要求,在选择开源软件进行项目开发时一定要提前阅读协议。规范使用开源协议既是对开源协议的尊重,也可以避免自身的法律风险。

Apache SkyWalking, SkyWalking, Apache, the Apache feather logo 版权属于 Apache 软件基金会。

扩展阅读:

Apache Licene 2.0 协议英文文档:
http://www.apache.org/license...

OpenCV 拟更改授权协议,从 BSD 变更为 Apache License 2
https://segmentfault.com/a/11...

思否开源项目支持计划,为开源项目助力!

开源项目支持计划

很高兴可以看到,开源正迎来最好的发展时期。

20 年前的开源项目,基本上是由个人开发者主导的。但随着开源精神的发展以及开源文化的普及,越来越多的企业与科技公司参与到了开源生态的建设当中。

但归根结底,开源更多的是一种社会化活动,很多的项目创意也是来自个人或者小型团队。个人有了兴趣,有了想法,并进而动手形成项目,而后建立社区,或者成立公司继续推进。这种模式将会持续存在,也是技术创新的一种健康和合理途径。所以游离于大公司外的开源项目和植根于大公司内的开源项目,会长期共存。

但根据社区部分开源作者的反馈,大部分的优质个人开源项目很难进行有效的传播推广。


为助力优质开源项目成长,SegmentFault 思否社区作为服务于开发者的技术社区,正式推出「SFOSSP - 思否开源项目支持计划」,我们希望借助社区的资源对开源项目进行相关的宣传推广,并作为一个长期项目助力开源事业的发展,与广大开发者共建开源新生态。

有意向的开源项目负责人或团队成员,可通过邮箱提供相应的信息(开源项目地址、项目介绍、团队介绍、联系方式等),以便提升交流的效率。

联系邮箱:pr@segmentfault.com

clipboard.png


阿遂
10k 声望907 粉丝

老编辑,深夜撰稿者。