我在github上创建了一个elisp项目。有些源文件和函数我不想更改,有些我想大幅度更改,而其他的只想更改一点点。每个源文件顶部的原始版权都提到了它来自的项目。
1) 我应该重命名所有函数还是只重命名那些代码已更改的函数(无论多小)?
2) 如果我修改了文件中的某些功能,但不是全部/大部分,我应该重命名文件并更改顶部的版权以反映我的项目而不是原始项目吗?
3) 如果许多/所有文件都被重命名了,我应该如何将其归功于原始作者(而不是git日志中显示的提交)?
笔记
我之所以要分叉,是因为我想从一个完全不同于原著目的的方向上获取代码,而且我的分叉不会被原著作者拉进来。
原始项目和我的fork都使用GPLv3
Elisp代码按照惯例在函数/变量的名称前加上项目名称,以避免名称空间冲突。
**
编辑
**
发布后发现一些其他信息。。。
How to rebrand/copyright a forked project (GNU/GPL)?
1) 当然。事实上,不改变它至少一点点就意味着它是原始项目,这是个坏主意。
2) 您不能删除版权声明。将你的添加到顶部。
3) 为什么要删除对旧项目的引用?这是一个建议,但删除它将是不礼貌的,并且可能会产生误导。开源/自由软件社区重视正确的归因。
Need advice on attribution/copyright of heavily modified OSS code (BSD, Apache, etc) in source headers
如果你从一个文件中复制了一个函数,除非你能说服法庭该函数太小,版权无法应用,那么源文件的许可证将保留在该函数上
在Stefan的回答和stackoverflow的帖子之间,我决定:
1) 重命名所有文件和函数,即使没有更改,也可以使用我的项目名称。
2) 保留所有现有文件的原始版权(以及将旧代码移动到更合理的细分后产生的一些新文件)
3) 将我的版权添加到所有新文件和旧文件。
4) 在旧版权的上方做一个注释,在某个提交id之前检查git历史记录,以查看分叉时的原始项目,以及原始项目的url引用,以查看最新版本。
我认为这些更改应该清楚地表明,这是一个单独的项目,同时维护原始项目的信誉,避免任何名称空间冲突或版权侵犯。