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

日期:09-30
京东开源项目版权

作者:罗骢

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

微软将把机器人操作系统引入Windows 10 马斯克“认怂”了,花4000万美元买了一条教训
相关阅读: