如题。每次开源项目更新后第二天,闭源的程序就能跟进一样的功能。使用 IDA 反编译后发现其闭源程序部分实现逻辑相似度较高,只是使用了不同语言,而对方认为他用另一个语言重写了就是没有相似度、和开源原作无关联。
开源的时候不知道江湖水深,选择的是 MPL-2.0 ,是只能认栽了吗?
1
sduoduo233 3 天前 via Android
开源还不让别人用?直接闭源算了
|
2
mayli 3 天前
啊?这玩意相似度也不行?
|
![]() |
3
levelworm 3 天前
这种都不算逆向了吧,就是实现相同的功能。我觉得道德上也没啥问题。法律上来说,应该也不算修改代码和发布代码。不过怎么说呢,就算违反道德和法律,一般也没啥办法,做开源嘛,就是给别人用的,一定会有人白嫖。这种还好了不算白嫖。
|
![]() |
4
Linho1219 3 天前 via Android ![]() 这不是好事吗,至少你的项目有比较高的价值以至于有人愿意迁移代码。你应该反思的是:为什么他的用户宁愿用人家闭源的也不用你开源的?没做跨平台?移植麻烦?缺支持?如果真的有这样的问题,那确实是你的项目满足不了人家的需求,该人家赚钱;如果两个项目完全是平替关系,那是否是你的宣传问题?
|
5
Dimole OP 忘了提了,他闭源后在闭源群里诋毁开源的版本,说开源版本会丢数据
但是实际经过测试并没有丢过 |
6
Dimole OP @sduoduo233 什么时候不让用了?
|
![]() |
9
caola 3 天前
使用不同的语言,理论上只能算仿造,而不算直接用你的源码。当然有很多大公司也一样不会遵守开源协议的的,开源只能挣那些愿意遵守开源协议的用户。
很多公司开源只是为了引流,让用户使用自己的付费高级功能、服务、或版本。 又或者完全不区分免费或付费功能,单纯为了吸引用户使用自己的其他服务。 |
10
mayli 3 天前
不如把项目贴出来,让大家别猜谜语 :)
|
![]() |
11
ashong 3 天前 via iPhone
没理解生气的点,
重构? 闭源? 盈利? 夺流? |
![]() |
12
baobao1270 3 天前
首先,开源本身维权就非常困难
其次,就算对方也开源,你要证明「代码逻辑的相似度」也很困难 最后,你没有对方的源代码而只有二进制,那么你自己都没有可信的证据证明「对方使用了你的代码」 |
![]() |
14
msg7086 3 天前
查看了你的源代码以后新写类似的其他语言的代码到闭源项目,是违反开源许可证的。
著作权法保护的是代码实现,如果对方是看了你的源代码然后用其他语言实现一遍,跟直接把你的代码抄过去是相同的性质,这个在著作权法下属于改编或者翻译。 比如说有人用中文写了本书,你擅自翻译成英语,这当然侵犯了翻译权或者改编权。你可以说汉字和拉丁字母长得不像所以就没有相似度吗。 至于维权,这确实有点难,因为开源软件没有收益,所以即使被侵犯著作权也很难主张损失。最多只能要求 cease and desist ,收益和付出不成比例。 |
![]() |
15
kk2syc 3 天前
国内互联网因为开源发展,也会因为开源毁灭。偷鸡摸狗的获利,创作者可能都饿死了。
|
16
fbichijing 3 天前 ![]() 这种事情和 license 没有关系吧。
诋毁的话是编程者自己的道德问题,别管他就是了。世界那么大,什么人没有。 至于说换语言写闭源。如果将这件事换个角度,是不是就好理解了。 不是经常看到一些不错的商业或者闭源软件,想要自由使用的时候总会想着用熟悉的语言自己实现,做一个简单的出来。事情似乎好像差不多?当然,看着开源实现难度就大幅下降这个没得说。 细细想来,换个 license 就能规避吗?是 license 能限制的吗?印象中 unix 的诞生也是一些人花了不少时间重写了一些具有 license 限制的程序才存在的,是不是换句话说,这些具有 license 的程序的持有者并无法通过 license 来限制其他人重写它。众所周知,Linux 基于 gplv2 许可证,并且也是开源的。理论上说,只要你足够强足够有人手,时间和精力,也可以重新用别的语言或者相同语言完全重构整个系统,然后换一个几乎没有什么限制的许可证? |
![]() |
17
bk201 3 天前 ![]() 你一个版本开源,一个闭源,闭源的引入新 feature ,那你功能始终领先对方
|
![]() |
18
wegbjwjm 3 天前 via iPhone
改成闭源,增加新功能
|
![]() |
19
ersic 3 天前
抄思路没办法
|
20
cryptovae 3 天前 ![]() 建议把项目地址发出来看看,参考之前 PakePlus
|
21
kinghly 3 天前 via Android
你造车,别人也造车。
|
![]() |
22
peteretep 3 天前
选择开源前就要想清楚,
这就是开源的效果啊, 人家不参考不复制,那开源的意义在哪里? |
![]() |
23
iorilu 3 天前
这很正常把
这已经是文明的了 再说了, 如果你不愿意这样, 那完全可以关闭开源, 并且从性能功能超过对方不就行了 |
24
Greendays 3 天前
用另一种语言写了那就是人家的东西了。
|
![]() |
25
WillBeethoven 3 天前
我的所有开源项目都是 AGPL-3.0 最严格的条款。
- 代码修改后再发布时必须同许可证开源 - 代码仅跑在自家服务器、供外部用户通过网络使用时必须开源 |
![]() |
26
a33291 3 天前
@WillBeethoven OP 描述这种好像没办法,类似 TX 直接"借鉴"别人的创意,并未直接借用任何产物
|
27
zzz22333 3 天前
既想开源又不想被白嫖,建议还是不要开源了。
|
![]() |
28
WillBeethoven 3 天前
@a33291 对方留下了可比对的“文本相似度”证据,如果没有那是真没办法了。
|
![]() |
30
Foxkeh 3 天前
那就许可证改掉
|
![]() |
31
belin520 3 天前
那你以后闭源就好了
|
![]() |
32
hxsf 3 天前 ![]() > "而对方认为他用另一个语言重写了就是没有相似度、和开源原作无关联"
首先,直接阅读你代码然后自己再写一份(不论语言)都是侵犯你著作权的! 像规避著作权侵犯,一般最稳健的做法是使用净室设计( Clean-room design )( https://en.wikipedia.org/wiki/Clean-room_design )百科里也有相关案例(正反面) BTW 净室方法不能规避专利。 |
33
dcsuibian 2 天前 ![]() 第一个层面:
首先,如果对方是大量参考了你的代码然后翻译成另一种语言,那他这种实际属于派生作品。如果他闭源分发了,那就是违法开源协议。 第二个层面: 即使他违反开源协议,你要举证也是非常困难的。 建议: 谁主张谁举证。如果你觉得他说开源版本会丢数据的言论不实的话,你可以大大方方地在项目相关文档中说明并驳斥,要求对方提供证据。但是不要说对方抄袭(否则这个就是你来举证了)。 他诋毁你是因为他怕抢不走你的用户。 项目本身开源免费的话,那你大大方方的就可以了。开源是你的优势,闭源是他的劣势。如果是完全相同的功能,用户为啥要选择闭源版本? 同时如果他增强了你的功能,你可以直接拿过来,毕竟你是开源的,他是闭源的。你肯定没法抄他的。 久而久之他的就不会有啥用户的。 另外多说一嘴: 如果是我开源,不打算赚钱搞开闭源版本的话,那直接就是 MIT 协议起手了。这样就不用担心这种问题。 因为许可证相当宽松,基本怎么样都不违反。甚至即使被我讨厌的人拿去用了,我也会继续开源,毕竟本来就没有任何限制。 |
34
HENQIGUAI 2 天前
是这样的,无论你选择什么协议,其实都只是相当于一个君子协定。你就算闭源打包加壳的代码,他们都会解密拆壳反编译的。
|
35
GeruzoniAnsasu 2 天前
没错所以真正的开源项目一定有商业版:
如果厂商只会抄 -> 那么他的产品一定落后于商业版 如果厂商不止抄 -> 但他产品不开源,那口碑一定不如开源+商业版 如果厂商抄完了还开源 -> 大家都开源,那太好了 全赢! |
36
CKylinMC 2 天前
啊?佬,是你吗?我看见一个项目刚给所有 contributers 询问要不要换 AGPL3 ,理由完全一样的
|
![]() |
37
newaccount 2 天前 ![]() 你可以在项目里加个页面叫耻辱柱,把对方钉死在上面
|
![]() |
38
iv8d 2 天前
直接闭源,要想炒照样能炒,你拿出证据直接扔出来。
|
40
fbichijing 2 天前
感觉 #17 和 #36 这两种方法都很有趣。
从 #17 引申一下,或可以让自己的闭源领先开源几个版本或者一段时间。不过从程序角度可能客观来说,可能只是加大了一点难度? #36 的方法感觉很好玩。 |
![]() |
41
NewYear 1 天前
开源一定会遇到这些问题:
被人白嫖拿去用 被人白嫖拿去做商业项目,赚得盆满钵满 被人白嫖设计思想仿造 被人骂 甚至,被人实现后进行“微创新”,体验大幅度上升,用户流失。 其实在这个时候,我们作为开源软件作者,已经失去了当年开源的愿景了。 我们当时为什么要开源这个软件呢?为什么我们开源了还这么痛苦? 这里建议参考一下 Redis 的历史,作为一个开源项目,最开始他肯定是没有想过要赚大钱然后和各大互联网厂商拼杀,但当他看到各大互联网厂商用它赚钱后,就开始对抗……各种矛盾升级…… (例如他选择只开源基础部分,并将大量增强功能避免,并继续开发更强大的闭源功能,需要付费使用,又从授权上想从互联网厂商分利润等等) 直到有一天,各大互联网在这个领域玩不下去了,成本太高,未来不可控 得,干脆联合起来成立一个组织,把对方的工程师挖过来,自己再用自家的资源,从头到尾把他的功能全部实现,管你开源闭源,在不违反开源协议的情况下,全部实现一遍。 然后 Redis 作者,选择了更激烈的对抗手段,试图接管所有“连接 Redis 服务器的客户端组件”,拉黑掉互联网厂商实现这个数据库产品。。。。 后续我就没太关注了,但我知道一点,Redis 的名声臭了,即便后续再宣布全部开源,也没有意义了,各大互联网厂商不可能抛弃自己的项目,又跑回去用他的“开源软件”。 还有一个例子是 S/S 、S/S/R ,大家所熟知的软件。 我从记忆里简单整理,不保真:简单来说,就是后者除了实现自己的功能,又不断的在抄前者的功能,导致前者怎么都不可能在功能上竞争得过后者,最后两个项目好像都黄了。 好了,回到主题,为什么我们开源了,还要被骂? 在这个事情里,首先我们要认知到开源软件的局限性,也就是“被人白嫖等等”(上面列了清单),这是无法避免的。 那如何应对呢? 在这里,一定要有“公关思维”,回忆一下,什么是公关思维?这里可以建议楼主看几期咱们外/交/部回复记者的发言。 1 、脸皮一定要厚!你说什么,我不在意:我只在意我说什么,我说世界上只有一个中/国,那世界上就不可能有两百多个国家和地区。你问了也白问,我继续占有主动权。 2 、学会吹捧自己!五千年古国,印度的万年古国,这都是我们实实在在的战绩,战绩可查!是谁创立了这个类别的软件?是谁有良好的品质才选择了开源?是谁接受大家的意见(甚至是骂娘的语言)?是谁引领了这个潮流,让相似的软件如雨后春笋一个个诞生? 3 、不要太过于在意他人的看法,因为你控制不了别人的看法,你控制不了别人的行为,你控制不了天气的变化,你越在意,你越痛苦。这种时候一定冷静,不要因为情绪而反击他们,冷静想想自己能做什么。是不是咱们可以要求对方提供相关证据,或者复现方式,“我们一定会重视并进行复现和修复”呢?更希望其他用户提供线索,以帮助咱们软件存在隐性漏洞。。。 最后我想说两点: 1 、一个软件被另一个软件替代是很正常的,但软件嘛,都是功能上的区别,他可以做你也可以做,没关系的。也希望你自己可以理解。 2 、当时开源这个软件时的愿景,一定是你能获得正面的反馈,从而心理上更舒服。但要运营一个软件项目,往往会遇到很多困扰,有些事你去处理了没什么太大价值,不处理又难受。。。所以如果实在太累,违背了当初的愿景,甚至让自己变得痛苦。。。。那么放手,也是一种不错的选择。 最后的最后: 你可以把我这大段文字丢给 AI ,让它给出一个合适的意见,再搭配你自己的想法,接下来怎么做其实很容易决定的。 最后的最后的最后: 感谢开源。 |
42
julyclyde 1 天前
对的,这叫 cleanroom engineering
|