SegmentFault思否 · 2021年06月29日

开源代码被卖,程序员十三控诉慕课网侵权!

什么,十三又被惹到了?

“十三”是一个程序员的化名,他有个公众号叫“程序员十三”

一开始,我觉得是不是又是和去年(2020)那事差不多?

后来看了看,还不太一样,事情要稍稍微妙一些。

image.png
图|哆啦A梦:伴我同行2

去年就有过一档事

一年前,我关注到十三,是因为他的“新蜂商城”源代码被人卖,弄得沸沸扬扬。

有人说,卖人家开源代码真是无耻;有人说,可以卖,没问题。

后来我写了一篇文章(从MIT协议谈契约精神)说,当然可以让人卖,你用的是MIT协议,MIT是允许人家卖你代码的。

后来这事就过去了,十三痛定思痛,申请了软件著作权,并把代码改成了GPL协议授权。(虽然这些并不妨碍别人继续卖他代码)

不承想,今年(2021)居然又惹上了事情!

6月初,十三的公众号连发了几篇文章,大致就是强烈控诉“慕课网”剽窃了他的代码。

十三说,要告慕课网,已经搜集好证据,已经请好了律师。

今年事件的缘起

和去年一样,事情的发现,也是十三的朋友告诉他的,说你看看,慕课网用了你的新蜂项目当课程呢。

课程在这里:
https://class.imooc.com/sale/...

我去看了看,这个课程是“java工程师”。

我比较感兴趣的是这个宣传语:

11.png

看着真诱人,我要是年轻二十岁,我也想学。

这个课程内有多个实践项目,其终极项目是:仿“JD生鲜”大型电商平台全流程开发。

项目名称是:“慕慕生鲜”。

12.png

不得不说,文案还是挺好的。

十三看了一下该项目的页面预览图,立刻就认出了自己亲儿子的面目:

“newbee-mall 项目毕竟是我维护了 3 年的开源项目,真的是一眼就看出来了。页面是无比的熟悉,同时,心情也是无比的复杂。”

其实就是从排版、布局、按钮、字体、颜色等方面一看,就知道和自己的东西是一模一样的。

比如有一点是十三专门强调的:项目的前端页面的主要由黑、白、主色构成的,“慕慕生鲜”(以下简称“慕慕”)的主色号,正好和“新蜂商城”(以下简称“新蜂”)的一模一样:#1baeae,这并不是一个常用的颜色。

具体可以看看十三这篇文章:……这又是什么骚操作?

十三为了拿到实锤,专门花了3680元,买了这个课,下载了慕慕的源码。

十三决心看一看,源码到底是不是抄的。

时间信息还是要说明一下

虽然是十三发难慕课网,但是时间信息还是要说明一下的。

不然,会有这么一个问题:谁抄谁还说不好呢!

虽然我没有见过抄袭者告被抄袭者的,但如果被告者拿出自己在更早时间创作该作品的证据,那就不好告。

newbee-mall开源项目于2019年国庆节期间开源1。

慕课网的“Java工程师”体系课程于 2020 年上架销售。

十三申请了著作权,获取著作权的时间为:

13.png

我想,慕课网大概是拿不出早于这个时间的证据吧。

源码是抄的吗?

说起来还真有点复杂,不是完全抄袭那么简单的。

1. 绝大多数的后端代码都是重写了的。

随机挑选了一些后端代码文件,仔细对比了一下,虽然大框架差不多,但是代码确实不太一样。

如果让论文查重软件查一下,估计重复率不超过5%。

2. 版权信息全部清空了

和很多完全没有版权意识的项目一样,慕慕是完全没有版权信息的。

新蜂以前也是没有的,但经过去年那事后,新蜂源码(后端部分)的头部都改成了这个样子:

14.png

虽然我对这段不太满意(应该明确说用了什么协议),但也不便多说什么,好歹在根目录还是声明了license是GPL。

15.png
16.png

但慕慕就完全没有这个意识了。

慕慕所有的代码,都是“光头”。

image.png

第一行就是代码,这是无版权意识者的通病。

3. 不过,慕慕肯定是来自新蜂的。

慕慕至少是“接触”过新蜂的,也就是说,慕课网的人,至少是编写教程的某人,是看过新蜂代码的。

一个最明显的证据就是,十三居然在慕慕里面,发现了新蜂的logo图片和十三的收款二维码!

下图是慕慕的代码目录结构,红色箭头指示的就是没删干净的文件:

17.png

也即,慕慕代码里有下面这个文件:

image.png

还有这个文件:

image.png

这个可是十三的收款码,我用支付宝扫了一下,看上去是用于给十三捐赠用的:

image.png

你说一个做慕课网课件的人,没事在课件里放新蜂商城的logo和十三的收款码干什么呀,那分明就是拷贝过去没删干净的遗留物啊!

具体见十三的文章:……里面竟然有自己写的开源项目!

十三还认真地对比了慕慕和新蜂的每个页面,得出结论:

总得来说,慕慕生鲜算是newbee-mall的低配版,大多数功能都是一模一样的。但是慕慕生鲜中删减了很多功能,页面也删掉了几张。

另外,十三分析后发现,表设计也基本是一样的。

这里讲一下几个主要表的设计:

  1. 分类表:字段基本一模一样,没有什么区别
  2. 商品表:字段基本一致,与newbee-mall项目相比,删除了三个字段,分别是:商品原价字段、商品小标签字段、商品详情字段。
  3. 购物车表:字段基本一致,与newbee-mall项目相比,增加了一个字段。
  4. 订单表:字段基本一致,与newbee-mall项目相比,增加了两个字段,分别是发货时间和交易完成时间。

具体见 ……更多实锤看这里

4. 最重要的是,通过对前端代码的分析,慕慕和新蜂的前端有超过90%的雷同。

证据在哪呢?

十三是找到了:由webpack按需加载来谈一谈慕课网涉嫌抄袭开源项目的事件

这篇文章,从原理上,从具体分析上,从代码对比上,十三证明了至少在前端,慕慕是抄新蜂的。

十三的结论:

最终的比对结论:(前端)代码重复度为90%以上,不仅仅抄袭页面代码,连文案也完完整整的抄袭,这是赤裸裸的抄袭行为!除以上列举的代码抄袭外,还有login.js文件、register.js文件、header.js文件、search.js文件、cart.js文件、personal.js文件、personal-sidebar.js文件、pay-select.js文件、order-settle.js文件、my-orders.js文件、order-detail.js文件、order-settle.js文件、alipay.js文件、weixin-pay.js文件,这些文件的代码重复度也基本都达到了90%以上。

十三想要什么结果

十三在他写的多篇文章里面说:

“我每年都会花不少时间在newbee-mall这个项目的优化和维护上,今后我也会继续用心维护这个开源项目的。这是我的作品,你们不能就这么堂而皇之的侵犯我的合法权益。”

我和十三交流了一下,他希望慕课网:

下架课程,道歉,赔偿。

慕课网的法务已经和十三的律师有所交流,但似乎并不顺畅,十三说,他近期就要把慕课网告上法庭。

十三很有信心,因为知识产权侵权两大要件:“接触”和“实质性相似”,从证据上,从公证上,他都准备好了。

具体会发展成什么样,我们拭目以待吧。

那么,如何评判此事?

我觉得,慕慕不管是文案创意、架构设计还是代码基础上,从已有证据看,确实是基于新蜂的(至少是前端)。

如果你是基于(based on)新蜂的,你就要遵循新蜂所采用的GPL v3协议。

而慕慕没有做到。

慕慕应该做什么?

1. 应该按照GPL协议,对慕慕也采用GPL协议发布。

这很容易做到,在源码根目录下放一个License文件(或Copying文件),里面是GPL全文。

然后在合适位置声明自己用的是GPL。

2. 应该保留十三的名字。

这也很容易做到,保留新蜂每个文件的文件头即可。

3. 声明自己修改过。

找个合适的、醒目的地方,说明自己在十三的原版上,做了修改,修改日期是什么时候。

我曾经写过一篇人话版GPL v3解读,里面详细说明了GPL到底都说了什么,对此兴趣的可以读一下。

如果做到了这三点,慕课网仍然可以卖自己的课(GPL允许你卖),仍然可以只是买了课的学员才能下载源码(接收者能得到源码即可,并不要求你分发给全世界),仍然可以不通知十三,也不给十三钱。
如果做到这三点,十三再不服气,也是告不倒你的。

偏偏慕慕一条也没有做到。

即便慕课网说他用的是新蜂还是MIT协议时(2020年5月20日之前)的版本,那也要遵循MIT协议,做到上面说的第2条。

后记

本来就要说完了,又看到知乎上有一个匿名评论:

image.png

这就有点令人无语了,MIT是开源不假,GPL更是正经八百的开源啊,而且还是自由软件,还是copyleft啊,FOSS属性更多啊!

这哪里是“假开源”了?

开源协议在一定程度上,可以看作是在遵守《著作权法》前提下,作者和使用者之间签订的合同,只不过没有签字而已,使用者只要用,就表明接受这个合同。

现在使用者违反合同了,当然可以维权了,当然可以不让再用了。

违规了,就要改啊,不改就可以告你啊!

多说两句

开源开发者,并不是不食人间烟火的神仙圣贤,在当前物质尚未达到极大丰富的社会里,开源项目的作者,也需要活路,也希望能有额外的捐赠或者赞助。

在什么也得不到的情况下,至少要给人家贡献者一个“名誉”,如果拿了代码,连虚名都不能给人家(而且还是人家在协议里明确要求了的),那可就真是过分了。

这种事还是有好几桩的:

比如当年的 Asim诉go-chassis案
再如:开源项目被人拿去做课程卖了1000多万是什么体验

包括十三的文章,看下来,开源作者,看见别人用自己的代码赚钱或牟利,有愤懑,有控诉,有不满,更有无奈,除了争一个名分,也在尝试可能的回报。但由于开源协议是允许别人卖的,如果人家做到了“留名”,不给任何回报也是无话可说的。

所以我说:

开源作者不需要太害羞,要钱也没什么可耻的,正如近几年来,很多开源项目把开源协议改为商业协议,你也可以改。如果你认为收入很重要,可以不再用MIT、Apache、GPL这些开源协议,可以改用你满意的协议,或者你自己全新设计的协议,比如可以加一条:“本项目源码开放,可无条件用于学习和研究;但如果将本项目用于商业目的,请自觉将商业营收的1/10打给本项目作者,账号为:……”。

当然这种写法就不符合OSI的开源协议定义了,这违反了OSD第1条。

按你的想法来,自由一点,不用非要符合OSI或者FSF的要求。

不要害羞。也不需要那么高尚。

毕竟你是作者,你有权利要求这些。

扩展阅读:
2006-2021,哪些数据库最受欢迎?

image.png

推荐阅读
关注数
4184
内容数
856
SegmentFault 思否旗下人工智能领域产业媒体,专注技术与产业,一起探索人工智能。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息