10

我想重用一些在 BSD 许可下许可的代码,但我不知道如何明确我写的内容、重用的内容和修改的内容。

假设我要重用代码的项目具有以下目录结构:

project/
|-- LICENSE.txt
|-- module1/
|   |-- file1.c
|   |-- file2.c
|   `-- file3.c
|-- module2/
`-- module3/

LICENSE.txt 的内容是一个 BSD 许可证,即它的内容是:

Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
[...]

(有关全文模板,请参见维基百科。)

此外,版权仅在 LICENSE.txt 文件中声明,而不是在每个单独的源代码文件中。

如果我现在将 project/module1/ 下的所有内容复制到我自己的项目中:

my_project/
|-- module1/
|   |-- file1.c
|   |-- file2.c
|   `-- file3.c
|-- my_file1.c
|-- my_file2.c
|-- my_source_code1/
`-- my_source_code2/

我应该如何声明我不是 module1 下文件的版权所有者?将原始 LICENSE.txt(标题中包含原始版权所有者)复制到 module1 子目录就足够了吗?或者我应该为每个单独的文件添加版权标题?

如果我修改了 module1 下的任何文件怎么办?然后我应该以某种方式将自己添加为我修改的文件的额外版权所有者吗?

注意:我完全可以对我编写的代码使用相同(或兼容)的许可证。

4

4 回答 4

3

复制LICENSE.txt到您的module1目录中,并在您的文档(自述文件、许可证等)中提及您使用项目的这一部分。BSD 风格的许可证非常自由:只要您给予应有的信任并尊重其要求(这通常涉及提供未经修改的许可证和版权声明),您可以对代码做任何您想做的事情。

如果您修改任何文件,一个好的做法是在文件标题、更改周围和全局文档中提及它。如果修改后的文件没有版权声明,只需添加一个描述您的更改的内容。这样用户就可以知道哪些文件被修改了,谁修改了,为什么以及如何修改。

就这么简单:以非常描述性的方式进行。与 GPL 风格的许可证相反,没有正式的程序可遵循。这是比法律工作更多的文件。

于 2009-01-20T16:01:37.947 回答
1

我喜欢在源代码的注释中引用许可证——这样更容易,因为人们更有可能打开源文件并四处玩弄,而不是先检查目录结构。一个简单的注释说明代码的版权归 X 所有,并由 Y 许可,这有助于将某人引导到适当的许可文件。

于 2009-01-20T15:57:27.313 回答
1

您不想在这里误读版权。所以,我会尽量采用以下结构:

my_project/
|-- the_other_project
|    |-- LICENSE.txt
|    |-- module1/
|    |   |-- file1.c
|    |   |-- file2.c
|    |   `-- file3.c
|-- my_file1.c
|-- my_file2.c
|-- my_source_code1/
`-- my_source_code2/

除此之外:

  • 每个文件都应有一个标题,提及版权、所有者和许可
  • 在您自己的许可证中提及您正在使用另一个项目的部分代码
  • 如果您修改其他项目中的代码,请在项目的源文件中添加您的版权和名称。

那是如果您没有对其他源代码进行太多修改。如果您要重写所有内容,只需在您的许可证中提及其他代码的来源。

于 2009-01-21T09:07:57.093 回答
1

我刚刚发现在 GPL 许可项目中维护许可许可文件:开发人员指南,由软件自由法律中心发布。尽管它专门讨论了将 BSD 风格的许可证(他们称之为许可)合并到 GPL 许可代码中,但我认为第 2.1 节中的建议,包括未修改的许可文件,将是一个很好的一般性建议。我引用:

如果外部项目使用单个 COPYRIGHT 文件方法,则开发人员应从该文件中复制所有版权所有者的姓名,并将其连同许可许可要求的任何版权、许可和保修免责声明一起放在顶部合并的源文件。

如果您修改包含的文件并且您的项目GPL,则上述文档中有两个相关部分:

您修改包含的文件并且您的项目不是GPL 的情况显然没有在文档中解决。但是根据我从其他答案中收集到的信息,我想说,只要您用于项目的许可证不是病毒式的,那么正确的做法是将自己作为版权所有者添加到版权标题中您修改的文件并在文档中的某处提及包含代码的来源。

于 2009-01-22T13:41:08.697 回答