【问题标题】:Right way to include heavily-customized java oss in personal java oss project? [closed]在个人 java oss 项目中包含高度定制的 java oss 的正确方法? [关闭]
【发布时间】:2010-05-31 17:23:22
【问题描述】:

我想知道处理这种代码情况的文化上可接受的方式是什么。我有一个获得 MIT 许可的个人项目。我遇到了一种情况,我需要某个功能,而另一个 MIT 许可项目包含该框架。我不得不大幅修改原始代码,将 LOC 增加三倍。这些主要是 Java 类。

由于我在原始基础上添加了很多内容并修复了几个错误,因此我实际上只是重用了对象和基本变量的底层框架。 java 包中有另一个开发者的名字,每个文件都有一个带有他名字的许可声明。

我知道许可证需要保留在文件中,但是对于我非常大的修改的归属呢?我是否仅限于在许可证中添加第二个注释,其中包含我的姓名、日期和我贡献的内容,还是在某些时候新代码与原始代码无法识别,可以将其声明为我的包的一部分现在,重命名包并将其完全集成到我的项目中,并在自述文件中说明种子代码来自何处?

由于修改了这么多,我不能使用旧的 jar 文件作为我的项目的 ext。我可以完全分叉代码并将我的更改添加到分叉中,并为我提供一些归属。

处理这个问题的正确方法是什么?

【问题讨论】:

  • 为什么不直接联系框架的原作者呢?
  • 我当然可以,但我想看看是否有某种普遍接受的做法。

标签: java licensing open-source


【解决方案1】:

对于这种程度的变化,我认为重命名项目那部分的包并使其成为项目的一部分是非常合理的。这些变化太密集了,不能说这是一个扩展。当然,在您的项目页面上注明原作者只是出于礼貌(如果许可证没有要求)。

如果可能的话,将您的错误修复贡献回原始项目会更好(如果可能的话),或者至少报告错误,如果它们不是已知问题,则在旧代码库中修复它们。

【讨论】:

  • 谢谢。我同意,错误修复是我应该尝试将其推送到原始版本中的东西。您认为我应该完全创建一个新的 fork(如果是的话,是否可以在 fork 中重命名包),或者只是重命名包并将类文件直接包含在我的主项目中?
  • @deet,如果您打算单独维护它(或者如果它对单独的项目具有实际价值),我只会分叉,否则我会将其作为您项目的一部分进行维护。关于在 fork 中重命名包,我认为这非常重要。即使包名称中没有商标问题,叉子也应该有一个全新的名称。
  • 如果我要重命名包,无论是否在分叉中,我应该如何维护原始代码的归属?许可证文本最初放置在每个 java 文件中。我可以将其提取到 LICENSE 文件或项目根目录中的 README 中吗?就足够了吗?
  • 我认为版权应该保留在源文件本身上(因为您可能会将其他文件添加到相同或相似的位置),但我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
相关资源
最近更新 更多