京东被指抄袭开源项目,开源背后也有版权问题吗?

昨天,GitHub 上开源项目 SeaweedFS 的作者 Chris Lu 在知乎专栏中发表文章称京东在 TigLab 开源项目中涉嫌抄袭他的源码。

开源项目 SeaweedFS 是由 Go 语言开发,用于存储大批量文件的系统,原理基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack。特点是可以在保证速度的情况下,存储上亿的文件(根据硬盘大小变化)。京东涉嫌抄袭的项目叫 ContainerFS ,是由京东开发的大规模原生文件存储系统。

京东的 TigLab 项目也是开源项目,可以查看到项目内的代码。在知乎专栏中,Chris Lu 表示这些项目中使用了他的源码,但是没有根据 Apache-2.0 协议的许可条款添加引用说明。

他列举了一些引用的地方,例如 storage/chunk.go 里面,函数名 WalkIndexFile,两种文件名”.cpx”、”.cpd”,变量名 TombstoneFileSize 等都属于 Chris Lu 随便编写的名称,但是这些名称都出现在了京东的项目中,其余还有一些 Facebook 论文中并未描述的程序结构也有相似的地方。

随后 Chris Lu 说联系了京东该项目的负责人刘海峰,在晒出的聊天截图中,刘海峰表示并不知悉 SeaWeedFS 该项目,他认为出现参数名称相同的情况,可能是因为编码的同事查看过 Chris Lu 的作品,对于其中参数名称印象深刻,所以才会使用。“参数名称相同并不能构成抄袭。”,随后称正在要求修改相同的参数名称和文件后缀名。

随后 Chris Lu 贴出了京东修改了相同参数名的 Commit 截图。京东并未作出官方回应。

在评论区有人对开源项目的使用权进行了质疑,认为既然开源了,难道不是可以随意使用该项目的代码吗?但实际上从最初代码开源开始,开源项目的版权就有明确的规定,受到相关开源协议的约束,开源并非意味着全部代码可以未经授权随意使用。

对于程序员来说,作品上传到 GitHub 或者开源中国等平台上,并不意味着就算“开源”了。在创建项目(仓库)的时候,都会有一个选项选择一个开源许可证。

一般来说,开源意味着作者希望自己的代码项目能够被他人使用,修改以及进一步研究。但因为法律依然默认开源项目享有专有版权,所以作者需要在代码中添加明确说明项目权限的许可协议,也就是版权协议 License 。

License 就是版权许可证,里面详尽表述了获取开源代码后修改者拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的。常用的开源软件协议大致有 GPL、BSD、MIT、Mozilla、Apache 和 LGPL。开源项目 SeaweedFS 就是使用 Apache – 2.0 版本的协议。

以 Apache – 2.0 版权协议为例,协议允许使用者可以将基于源代码修改后用于专利使用,也可以将源代码修改版进行商用。惟一的要求就是附带一份原作者许可和版权的申明。MIT,以及 GPLv 3 都是类似宽松的流行开源协议。

而如果不希望自己的代码被人用于商用,也可以使用 CC Attribution-NonCommercial 中文:署名-非商业性使用协议。开源届定义有几百种不同的开源协议,宽松程度不一,用以满足开源项目的各种使用场景。比如,是否允许商用,是否允许修改,修改后是否需要继续开源,开源是否必须继续使用相同协议授权等。

甚至还有 WTFPL 协议,WTFPL(Do What The Fuck You Want To Public License,中文译名:你他妈的想干什么就干什么公共许可证)是一种不太常用的、极度放任的自由软件许可证。

网络上有人翻译了乌克兰程序员简单描述六种流行开源协议的使用区分。

这几年,关于开源项目的抄袭事件发生了很多起。包括大公司阿里、华为在内,小项目也有发现自己的开源 app 代码被人直接使用上架 AppStore 赚钱等事件。

2017 年,号称“中国首位 00 后 CEO”的 17 岁创业者李昕泽被曝出涉嫌抄袭 GitHub 上的开源项目,被抄袭的国产开源项目名字叫做 AndroidTVLauncher(中文名“猫桌面”)。从证据上看,两套产品的界面,素材几乎完全一样。李昕泽的产品右上角甚至还挂着“猫桌面”的名字,但并未在产品中注明代码来源,版权等声明。

去年 9 月,阿里巴巴也被质疑和《你今天真好看》应用团队合作后抄袭了整个产品的代码和设计。随后阿里回复称暂停了相关应用内的功能,进行下一步调查。

题图来源:Flickr

我们做了一个壁纸应用,给你的手机加点好奇心。去 App 商店搜 好奇怪 下载吧。