基于开源项目二次开发违反道德吗?

2022-12-07 21:35:48 +08:00
 ggp1ot2

RT 。

想用 Python 写一个插件,在查找相关资料时,发现在 GitHub 上有老外已经写了一个相关的项目。

当然,不是 100%和我要实现的需求重合,大概有 60-70%的重合度

但是主要的逻辑代码,我自从看过他写的,就跳不出他的想法了,因为已经实现了,代码写的也挺漂亮。

我想基于他的代码,去做二次开发(删掉我不要的功能,新增我需要的特性,优化使用细节等)

======

如果我直接拿走二次开发,那么我最终的项目里面不可避免的会有他的影子,至少主要逻辑的实现上差不多。

=======

我不知道这样做,是否违反某些开源协议,至少如果我直接这样做我会觉得有点不厚道。

当然我可以重写他的代码,换换函数掉用顺序,修改修改变量名、参数名等等来魔改,改到至少一眼看不出来,但是这样更让我觉得有点 shame ,并且我也觉得,写的挺好了。

======

所以,就这种情况,如果我基于别人的项目,具体点,在他现有的代码上修改来二次开发(无法通过提交 PR 合并来实现我的需求),是否为一件 [不应该] 去做的事情。

另外,如果可以,那我的项目应该属于谁?

=======

补充,我检索到的 GitHub 项目没有几个 star ,页面提示了 MIT 协议。

7965 次点击
所在节点    程序员
55 条回复
vevlins
2022-12-08 11:19:24 +08:00
致谢、捐赠,都可以。
协议允许内的任何事情都可以做。如果二次开发基于 MIT 协议的项目让人心存愧疚,那是对软件开源运动的否定。为了支持开源事业的发展,我将带头白嫖,持续白嫖,坚决白嫖。
InHello
2022-12-08 11:19:55 +08:00
@ysc3839 赞同你的话,不过现实中大部分人往往就以自己的标准去约束别人。
hutoer
2022-12-08 11:21:20 +08:00
@ysc3839 那些“宣称自主研发”,主要是在刻意隐瞒基于开源项目修改,如果大大方方的标明,大家就没有必要批评了
nonwill
2022-12-08 11:42:31 +08:00
@InHello 同意
对原作心存敬意,但不要有“负债”感
千万别太在意所谓的“社评”,如在乎不如一开始就放弃
脸皮“厚”一点“薄”一点都没关系,要适当远离 以自己的标准去约束别人 的人(哪怕自己也是这样的人)
最后,如果,在你得罪“利益”集合后,不要试图逃离,远离它们,但适当的逗乐一下也未尝不可

https://www.zhihu.com/question/38408474/answer/1570556619
https://github.com/goldendict/goldendict/issues/1424
mr0joker
2022-12-08 12:01:08 +08:00
@hamsterbase 这位老哥说的很好 @ggp1ot2 你直接去把你的情况跟原作者表明呗。
mr0joker
2022-12-08 12:02:38 +08:00
感觉直接拿来用感觉像小偷一样哈哈,

---------------------
@ggp1ot2 你没有直接跟原作者沟通过吗?所以感觉自己是偷偷摸摸的是吗?😂
opentrade
2022-12-08 13:25:19 +08:00
问是问,做是做
vanton
2022-12-08 13:28:50 +08:00
看协议。

遵从元协议,并且标注来源。
codingBug
2022-12-08 14:56:40 +08:00
既然是 MIT ,你觉得不好意思,就写上灵感来自于 xxx ,并大量参考了 xxx ,感谢 xxx
如果你不开源,那也没人知道你用了什么
libook
2022-12-08 15:17:14 +08:00
不违反原有开源协议就行,如果原来代码没附协议,就得联系作者获得书面授权,或者让作者加个开源协议。
如果你觉得对你帮助很大,可以在自己的项目里感谢一下原项目,或者赞助原作者。
tairan2006
2022-12-08 15:26:51 +08:00
MIT 直接 fork 改就行,readme 里面提一下。
yxzblue
2022-12-08 15:30:08 +08:00
等他来起诉你 再说吧
glamoroGG
2022-12-08 15:39:27 +08:00
readme 里说一嘴,给个链接
FrankAdler
2022-12-08 16:49:57 +08:00
allgy
2022-12-08 17:09:57 +08:00
为不违反道德看协议

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

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

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

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

© 2021 V2EX