什么,十三又被惹到了?
“十三”是一个程序员的化名,他有个公众号叫“程序员十三”
一开始,我感觉是不是又是和去年(2020)那事差不多?
起初看了看,还不太一样,事件要稍稍奥妙一些。
图|哆啦A梦:伴我同行2
去年就有过一档事
一年前,我关注到十三,是因为他的“新蜂商城”源代码被人卖,弄得满城风雨。
有人说,卖人家开源代码真是无耻;有人说,能够卖,没问题。
起初我写了一篇文章(从MIT协定谈契约精力)说,当然能够让人卖,你用的是MIT协定,MIT是容许人家卖你代码的。
起初这事就过来了,十三痛定思痛,申请了软件著作权,并把代码改成了GPL协定受权。(尽管这些并不障碍他人持续卖他代码)
不承想,往年(2021)竟然又惹上了事件!
6月初,十三的公众号连发了几篇文章,大抵就是强烈控告“慕课网”抄袭了他的代码。
十三说,要告慕课网,曾经收集好证据,曾经请好了律师。
往年事件的缘起
和去年一样,事件的发现,也是十三的敌人通知他的,说你看看,慕课网用了你的新蜂我的项目当课程呢。
课程在这里:
https://class.imooc.com/sale/java2020
我去看了看,这个课程是“java工程师”。
我比拟感兴趣的是这个宣传语:
看着真迷人,我要是年老二十岁,我也想学。
这个课程内有多个实际我的项目,其终极我的项目是:仿“JD生鲜”大型电商平台全流程开发。
项目名称是:“慕慕生鲜”。
不得不说,文案还是挺好的。
十三看了一下该项目标页面预览图,立即就认出了本人亲儿子的面目:
“newbee-mall 我的项目毕竟是我保护了 3 年的开源我的项目,真的是一眼就看进去了。页面是无比的相熟,同时,情绪也是无比的简单。”
其实就是从排版、布局、按钮、字体、色彩等方面一看,就晓得和本人的货色是截然不同的。
比方有一点是十三专门强调的:我的项目的前端页面的次要由黑、白、主色形成的,“慕慕生鲜”(以下简称“慕慕”)的主色号,正好和“新蜂商城”(以下简称“新蜂”)的截然不同:#1baeae,这并不是一个罕用的色彩。
具体能够看看十三这篇文章:……这又是什么骚操作?
十三为了拿到实锤,专门花了3680元,买了这个课,下载了慕慕的源码。
十三信心看一看,源码到底是不是抄的。
工夫信息还是要阐明一下
尽管是十三发难慕课网,然而工夫信息还是要阐明一下的。
不然,会有这么一个问题:谁抄谁还说不好呢!
尽管我没有见过剽窃者告被剽窃者的,但如果原告者拿出本人在更早工夫创作该作品的证据,那就不好告。
newbee-mall开源我的项目于2019年国庆节期间开源1。
慕课网的“Java工程师”体系课程于 2020 年上架销售。
十三申请了著作权,获取著作权的工夫为:
我想,慕课网大略是拿不出早于这个工夫的证据吧。
源码是抄的吗?
说起来还真有点简单,不是齐全剽窃那么简略的。
1. 绝大多数的后端代码都是重写了的。
随机筛选了一些后端代码文件,认真比照了一下,尽管大框架差不多,然而代码的确不太一样。
如果让论文查重软件查一下,预计反复率不超过5%。
2. 版权信息全副清空了
和很多齐全没有版权意识的我的项目一样,慕慕是齐全没有版权信息的。
新蜂以前也是没有的,但通过去年那预先,新蜂源码(后端局部)的头部都改成了这个样子:
尽管我对这段不太称心(应该明确说用了什么协定),但也不便多说什么,好歹在根目录还是申明了license是GPL。
但慕慕就齐全没有这个意识了。
慕慕所有的代码,都是“光头”。
第一行就是代码,这是无版权意识者的通病。
3. 不过,慕慕必定是来自新蜂的。
慕慕至多是“接触”过新蜂的,也就是说,慕课网的人,至多是编写教程的某人,是看过新蜂代码的。
一个最显著的证据就是,十三竟然在慕慕外面,发现了新蜂的logo图片和十三的收款二维码!
下图是慕慕的代码目录构造,红色箭头批示的就是没删洁净的文件:
也即,慕慕代码里有上面这个文件:
还有这个文件:
这个可是十三的收款码,我用支付宝扫了一下,看上去是用于给十三捐献用的:
你说一个做慕课网课件的人,没事在课件里放新蜂商城的logo和十三的收款码干什么呀,那明显就是拷贝过来没删洁净的遗留物啊!
具体见十三的文章:……外面居然有本人写的开源我的项目!
十三还认真地比照了慕慕和新蜂的每个页面,得出结论:
总得来说,慕慕生鲜算是newbee-mall的低配版,大多数性能都是截然不同的。然而慕慕生鲜中删减了很多性能,页面也删掉了几张。
另外,十三剖析后发现,表设计也根本是一样的。
这里讲一下几个次要表的设计:
- 分类表:字段根本截然不同,没有什么区别
- 商品表:字段基本一致,与newbee-mall我的项目相比,删除了三个字段,别离是:商品原价字段、商品小标签字段、商品详情字段。
- 购物车表:字段基本一致,与newbee-mall我的项目相比,减少了一个字段。
- 订单表:字段基本一致,与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条。
后记
原本就要说完了,又看到知乎上有一个匿名评论:
这就有点令人无语了,MIT是开源不假,GPL更是正经八百的开源啊,而且还是自由软件,还是copyleft啊,FOSS属性更多啊!
这哪里是“假开源”了?
开源协定在肯定水平上,能够看作是在恪守《著作权法》前提下,作者和使用者之间签订的合同,只不过没有签字而已,使用者只有用,就表明承受这个合同。
当初使用者违反合同了,当然能够维权了,当然能够不让再用了。
违规了,就要改啊,不改就能够告你啊!
多说两句
开源开发者,并不是不食人间烟火的神仙圣贤,在以后物质尚未达到极大丰富的社会里,开源我的项目的作者,也须要生路,也心愿能有额定的捐献或者资助。
在什么也得不到的状况下,至多要给人家贡献者一个“声誉”,如果拿了代码,连虚名都不能给人家(而且还是人家在协定里明确要求了的),那可就真是过分了。
这种事还是有好几桩的:
比方当年的 Asim诉go-chassis案。
再如:开源我的项目被人拿去做课程卖了1000多万是什么体验。
包含十三的文章,看下来,开源作者,看见他人用本人的代码赚钱或牟利,有愤懑,有控告,有不满,更有无奈,除了争一个名分,也在尝试可能的回报。但因为开源协定是容许他人卖的,如果人家做到了“留名”,不给任何回报也是无话可说的。
所以我说:
开源作者不须要太害羞,要钱也没什么可耻的,正如近几年来,很多开源我的项目把开源协定改为商业协定,你也能够改。如果你认为支出很重要,能够不再用MIT、Apache、GPL这些开源协定,能够改用你称心的协定,或者你本人全新设计的协定,比方能够加一条:“本我的项目源码凋谢,可无条件用于学习和钻研;但如果将本我的项目用于商业目标,请盲目将商业营收的1/10打给本我的项目作者,账号为:……”。
当然这种写法就不合乎OSI的开源协定定义了,这违反了OSD第1条。
按你的想法来,自在一点,不必非要合乎OSI或者FSF的要求。
不要害羞。也不须要那么崇高。
毕竟你是作者,你有权力要求这些。
文|卫剑钒
1 新蜂代码(https://github.com/newbee-ltd/newbee-mall/tree/master/src/main/java/ltd/newbee/mall)
相干浏览:
破费3680元买了一个慕课网的Java待业班课程,外面居然有本人写的开源我的项目!