分享一次被老外指责违反 MIT 协议的故事

2018-12-26 14:12:58 +08:00
 coloz

我的项目:
https://github.com/blinker-iot/blinker-library/

经过如下:
https://github.com/blinker-iot/blinker-library/issues/287

简单说下经过,

  1. 我们开发了一个名为 blinker 的物联网解决方案,现有的功能类似米家、阿里智能、home assistant。
  2. 我们并没有使用这个哥们儿的项目代码。
  3. 我们确实借鉴了其使用 C++模板类的方式,去构建了通信类,这在 issues 中一开始也说了。
  4. 但我们并不认为这个做法违法了 MIT 协议,项目更不是该项目的衍生版本,哥们一开始就说我们盗窃知识产权,这让我很不爽。

我的处理方式,
由于我和同事脾气都不太好,加上这哥们儿居然连 logo 和配置文件也觉得是一样,开始的时候回答简单粗暴了点。
结果,这哥们儿貌似开始在 FB 上声讨我,因为不是英语国家的人,说的可能是俄语啥的,翻译出来也看不太懂。
最后,我们换了一种写法,并添加了感谢信息,自认为算是结束了这个讨论。

总结下经验

  1. 虽然我自以为已经很注意相关协议,在文档和 readme 中都注明了使用到的项目,但还是没料到这种事,国人在国际上名声不太好,老外一开始就会主观的认为你不守规矩,所以大家做开源软件,真是要一开始就把 readme 写得滴水不漏,避免老外指责。

  2. 除了要写 readme,还要及时更新,很多人和我们一样把 github 当仓库用,但缺忽略了 github 也是个公告板,如果用了漏写了什么,可能会遭人诟病。

  3. 之前经常鼓励别人多看开源项目,学习别人好的写法,但现在我认为,如果觉得别人写法好,也不要学习,反而应该竟可能规避。

  4. 学好英语,避免和老外交流出现错误的表达,如果英语不好,直接用中文回复,让老外自己翻译,用了错误的表达,会刺激到老外。

  5. 遵纪守规,尽力维护中国程序猿形象

16096 次点击
所在节点    程序员
58 条回复
fullpowers
2018-12-26 16:26:47 +08:00
https://github.com/SoyM/Esp32bot 这个会不会也侵权了
bumz
2018-12-26 16:44:36 +08:00
@Kirscheis #40 这个不一定吧

如果你把它的每一行代码都替换成了新的,新作品 100% 没有原作品的代码,那么它就已经不再包含「 sufficient protectable expression from a prior work 」,也就不再是 derivative work 了

case: lame, http://lame.sourceforge.net/about.php
Kirscheis
2018-12-26 17:28:22 +08:00
@bumz

感谢你的讨论

我个人认为如果新的代码都和原功能彻底无关的话,确实有可能没有 sufficient protectable expression from a prior work,不过很难想象会有人从一个作品出发去衍生成另一个完全无关的东西...... 而一旦你的功能或者设计上有任何类似的地方,都无法说清楚不是 derivative work,根据以往的情况来看,即使是你个人在完全读懂原本代码的基础上从头自己实现,依然会被认为属于 derivative work,这也是 chinese wall 必要性的来源。

不过对于你举的例子 lame,我记不太清楚它的历史了,但我大概记得它在开始时并不是 dist10 的一个衍生,而是作为一个独立的 patch。虽然运行依赖于 dist10,不过从第一行代码起就是 GPL 的吧。举个类似的例子的话,就很像是当年各种 windows 下的简单窗口程序,它们的工作都依赖于 windows API,离开 windows 都无法运行甚至编译,但也不能说这些程序都是 windows 的衍生作品吧。

至于后来的 lame 的逐步实现并从 patch 变成彻底独立的软件,我认为这其中并不侵权的主要原因是由于 MP3 标准是确定的,兼容性要求导致其相似性,因此不存在创造性元素,举例来说,NEC vs. Intel, 1990
atonku
2018-12-26 17:35:53 +08:00
@jeffcott 楼主我倒是不知道,但是我怕老外能看懂我的中文,看不懂我的英语
admirez
2018-12-26 17:54:49 +08:00
借鉴了人家的思路,连个感谢都舍不得写?
CHYK
2018-12-26 18:13:48 +08:00
最好声明原作者。。。这个还是蛮重要的。

之后,还有,不适合展开的就是,我可没有说印度同事的坏话啊 :p
感觉一展开就会引来异常骂战,这里没有印度的朋友吧,逃、
chinvo
2018-12-26 18:24:50 +08:00
怎么说呢,前面的部分确实是楼主不对,用了别人的模板类,如果改动不大确实应该给模板类的文件加上版权声明,如果只是借鉴思路,最好也在文件或者 readme 写明。

但是楼主一开始的表达直接说自己的项目是对方的一个衍生品,瞬间落了下风。

后面老外要求删掉 ASCII art 就无理取闹了,ASCII art 并不是他个人的专利,也不是他个人的 idea,这点不能向他妥协。
coloz
2018-12-26 18:38:57 +08:00
@admirez @chinvo 没有这个意识,写作过程中,没有意思到使用泛型编程算是他的特有一个思路。
如果意识到,肯定也不会这么写了,现在已经添加了了感谢,并且换了个写法。
所以我做了总结,要学会规避他人写法
bumz
2018-12-26 18:40:15 +08:00
@Kirscheis #43 lame 一开始作为 derivative work,是 GPL,当最后一行原作代码被移除后,它得以解除 derivative work,使用 LGPL 版权。类似的例子还有 BSD,系统地移除了来自 AT&T Unix 的代码后获得了属于自己的版权。

保护功能的是 patent。copyright 不保护功能和想法,只保护表达 (expression)。所以哪怕你的功能和原代码相同,只要你采用不同的方式实现,就 ok
coloz
2018-12-26 18:41:32 +08:00
@Kirscheis 您说的是,所以新的代码换了个写法
Kirscheis
2018-12-26 19:29:18 +08:00
@bumz 谢谢,学习了。感谢已发送
creatorz
2018-12-27 08:00:09 +08:00
@sswxysswxy 其实是我 hhhhh 实在看不下去这种 SX 了。跳出来骂两句
neoblackcap
2018-12-27 13:21:39 +08:00
@w01230 MIT 能复制,分发,只是要保留作者的原来 MIT 声明,但是假如你的东西是用了 MIT,别人的实现里面有用他的专利,那么你就悲剧了。MIT 授权协议不管专利,据我了解 GPLv2 好像也是没有。GPLv3 不知道有没有。
唯一一个详细说明专利授权的开源协议是 Apache 2.0,所以优先使用 Apache 2.0 的项目
w01230
2018-12-27 13:35:24 +08:00
@neoblackcap 多谢,原来还有这个东西,如果别人的也是 MIT,但是有别人的专利,这种授权还要交专利费?
neoblackcap
2018-12-27 14:13:24 +08:00
@w01230 你们都不研究授权协议,当初 React 的授权协议风波不就是这样吗?违反专利当然是需要付专利费,所以理论上你可以在 GPL 或者 BSD 的代码里面埋一个专利坑。然后等别人用了,你就挥动你的专利大棒去收专利税。
coloz
2018-12-27 17:12:15 +08:00
@neoblackcap MIT 也可以这么做么?
neoblackcap
2018-12-28 03:51:25 +08:00
@coloz 当然可以,BSD,MIT,GPLv2 这些都是在版权问题,都是围绕著作权做文章。但是专利是独立的,是专利法管的,要是 BSD 这些有用的话,FFmpeg 就不用附带一句他们实现的东西有可能违反专利法了,https://ffmpeg.org/legal.html。

不过你要知道专利法是看国家的,比如我们国家就不保护已公开的算法思想,一旦开源,我们国家的专利法是帮不了你的。还有就是,你不能要求我们国家学加拿大。你想用中国的法去办俄罗斯的人也是不行的。你要去多个国家申请专利,这样你的法律大棒才能挥起来。所以一般这事也就跨国企业能玩。
HADB
2021-11-01 18:41:12 +08:00
是我的话,一开始直接说一下,借鉴了你的 template ,我会加上声明。不就完事儿了。对方本来要求的就是添加声明,而确实也借鉴了他的项目,哪怕一点点借鉴,我觉得也是值的加上一个声明的。就不会有后续这些事了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX