8

我知道最好尽可能实现其他库(而不是复制代码),但在某些情况下,复制代码更方便。

复制代码的正确礼仪是什么?在您的文件顶部,靠近使用的代码?如果代码被重构得面目全非怎么办?

4

3 回答 3

10

GNU GPL 对如何使用通过该许可证获得的代码非常具体。(请注意:如果您对相关代码的许可不是 GPL,而是例如 LGPL,则适用不同的规则。)基本上 GPL 归结为:

  • 如果您为自己保留代码并且不将其重新分发给其他任何人,那么您可以使用它做任何您想做的事情而无需承担任何义务。
  • 如果您打算与其他人共享您的代码,您只能在 GPL 许可下这样做。这包括您在您的发行版中提供完整的源代码(包括您自己的代码!),您向另一方明确声明此代码是根据 GPL 授权给他们的(包括您自己的代码!),并提供关于您如何更改原始代码。

即使代码被重构得面目全非:如果你想分发它,你必须遵守这些条款并让对方理解你改变了哪些部分(面目全非;-))。一定不要忘记:这不是礼仪,这是版权法!

其他许可证(例如 BSD 许可证)具有不同的条款。例如,如果您使用 BSD 许可下的代码,您只需要保留版权声明,但可以很乐意根据您喜欢选择的任何许可重新分发代码,无论是否带有源代码。

于 2009-03-19T21:30:40.290 回答
0

这取决于许可证的类型。

一般来说,许可证希望保护它们不是您的作品,而是对所有人免费的事实。这通常包括在您的项目中某处的许可证。

您可以在以下位置找到许多开源许可证及其条款的列表:http ://www.opensource.org/licenses/alphabetical

于 2009-03-19T21:28:21.857 回答
0

将代码复制到您正在做的事情中是合法地创建衍生作品,因此您必须遵守许可要求。我看过的所有开源/自由软件许可证都要求保留归属,所以这不仅仅是礼仪问题。

如果您在某处有一份信用清单,则应确保许可人在该清单中。如果它在自己的单独部分中(它自己的文件或较大文件的一部分),最好标记它并(当然)对其进行归因。

如果它被重构得面目全非,它仍然是衍生作品,而且你还在使用别人的代码,所以在法律和道德上你必须给予信任。

您当然必须遵守所有其他限制。你提到了 GPL;在这种情况下,整个产品必须根据 GPL 重新分发,或者根本不重新分发。代码是否被重构得面目全非并在文件中拆分并不重要,只要您在代码中直接使用该代码即可。代码的不同部分当然可能需要额外的许可,只要它们与 GPL 兼容,但您必须遵守 GPL 的要求才能重新分发。

于 2009-03-19T21:37:20.930 回答