oceanbase社区版木兰协议的问题

想引用并修改oceanbase部分模块的代码,作为自己软件代码的一部分(自己软件代码也会开源,可能会使用其他协议,比如Apache 2.0),想问下需要做哪些工作?比如如果对方开源协议是Apache 2.0协议,只需要在对应文件头声明出处即可,木兰公共协议v2具体需要如何操作?

你的问题我们已经收到,稍后会有同学回复

我看社区有过类似的帖子,你可以先看一下 oceanbase社区版本开源协议问题

你好,这个帖子我看过了,我这边是想用oceanbase oblib下部分基础组件的代码,如果修改和使用的话,我需要做哪些申明?

我来回答一下,

  1. oceanbase 的项目中, 只有oceanbase 的内核和oceanbase 的proxy 使用了强版权协议, 也就是木兰公共许可证, 第2版, 具体协议参考2021年5月 http://license.coscl.org.cn/MulanPubL-2.0

其他项目都是宽松协议, 要么使用apache 2.0 协议, 要么使用mit 协议, 要么使用木兰宽松协议. 基本上和apache 协议都是兼容的, 遵照类似引用apache 协议的代码即可. 网上有很多参考的方式. 通常就是需要标注出你引用代码的文件的版权拥有者和他所使用的开源协议. 一般会在项目的根目录下, 补充到NOTICE 文件当中(notice 文件需要完整协议, 可以参考很多apache 项目的做法), 并建议也补充到所在引用文件头中(使用简略版的头)

  1. 如果引用oceanbase 内核的代码或oceanbase proxy 的代码, 这个就需要非常注意.
    从合规上, apache 协议的项目是不允许使用强版权协议 (除非引用项目和被引用项目的版权拥有者是相同的人, 版权拥有者可以任意使用协议)

因为:

  1. 引用了oceanbase 的内核的代码会让你整个项目变成强版权协议, 也就是整个项目需要遵守木兰公共许可证 v2 的协议, 基本上就是要让你放弃apache 协议.
  2. 所有的apache 项目, 在捐献apache 的时候, 需要做严格的代码扫描, 不允许任何使用gpl, agpl, 木兰公共许可证的协议的代码, 带这些引用的项目是不允许捐献给apache基金会, 就是因为apache 协议和强版权协议的冲突性.

法律条款是一个很专业的事情, 以上是我的理解, 建议找专业的律师做更专业的解读.

那如果我的软件协议,设为木兰公共许可证第二版,是不是就可以引用oceanbase的部分代码了呢?或者换一种说法,如果我想用oceanbase的部分代码,我的软件代码也会开源出来,我需要做哪些工作(比如整体协议申明为木兰公共许可证第二版,引用的部分需要说明等等)