源文件中的版权声明/免责声明


60

在开放源代码项目的每个源文件中放置版权声明,各种法律免责声明,甚至有时是完整的许可协议是一种常见的做法。这对于(1)开源项目和(2)闭源项目真的必要吗?通过将这些声明放在源文件中,您试图实现或防止什么?

我知道这是一个法律问题,而且我怀疑我们是否可以在程序员那里得到一个完全称职的答案。所以(这是针对程序员的,不是吗?)当您在源文件中放入合法内容时,也将听到一个有趣的消息。 ,是因为“每个人都这样做”还是您得到了法律建议?这是什么原因?

Answers:


41

这真的有必要吗

不,这不是法律要求。(我不是律师,但我已经看到一个人说过这一点。)


如果您有一个项目,其中单个文件可能会脱离上下文,那么这可能很明智-但它只需要几行就可以说:

该文件是<project>的一部分,该文件在<license>下发布。
请参阅文件<文件名>或转到<URL>以获取完整的许可证详细信息。


对于其他任何事情,您只需将LICENSE文本文件放在项目根目录中,并将任何相关的详细信息/贷项/等放在README文件中-它仍然是受版权保护的(自动),因此这只是在许可证中明确许可证的问题。自述文件。


1
+1表示不放置整个牌照样板。我只用一行:Copyright YYYY First Last. Subject to the XYZ license.
mk12

1
许多公司喜欢拥有版权线,因为他们想进行“许可证管理”。换句话说:检查从互联网复制的GPL内容。基本上,他们会在源代码中扫描版权行-实际上这只是包含“版权” /“(c)”的第一行。因此,该行应包含版权所有者(作者或公司)以及是否为自由软件的提示。 因此, @ mk12正确地显示了最小值。因为事实是->在源代码之外的任何其他地方,永远不会知道第二或第三行。
Guido U. Draheim '17

12
我想用Google搜索“ IANAL”,但是有点害怕。
Pieter De

1
@PieterDeBie“我不是律师”的简称
Adam Lindberg

如果您为<license>包含了版本号,那就太好了。LGPL 2.1是开源开发人员很好的保护盾。GPL 3.0是一种试图消耗掉所有病毒的病毒。
user922020

21

可以想象,您可以简单地在版权声明中提及一个LICENSE文件,但是不能保证一旦发布,您的代码将保持原子性。实际上,至少在其他几个项目中很有可能会将其中的点点滴滴重新混合。

这就是为什么在每个源文件中至少具有以下内容很重要的原因:

/* Copyright (C) 1883 Thomas Edison - All Rights Reserved
 * You may use, distribute and modify this code under the
 * terms of the XYZ license, which unfortunately won't be
 * written for another century.
 *
 * You should have received a copy of the XYZ license with
 * this file. If not, please write to: , or visit :
 */

通过执行此操作,您可以完成两件事:

  • 无论您的代码将来如何分解和散布,都将维护您的版权。
  • 即使有人碰巧只收到您编写的库的一小部分,也要使使用,分发和修改的条款非常明确。

很多人还在版权保护下包含其电子邮件地址,这对将来接收补丁程序很有帮助。上个月,我收到了我五年前编写的代码的补丁程序,而这个代码早已被人们遗忘。当然,这意味着要维护一个电子邮件地址并忍受一些垃圾邮件。

如果您实际上确实需要执行许可证,那么至关重要的是,另一方不能开玩笑地说这些条款是含糊不清或遗漏的。

另外,有趣的是,随着时间的流逝,您的代码片段如何进入其他代码片段。大多数人都公平竞争并尊重版权和许可条款。


2
“不幸的是,XYZ许可证的条款将再写一个世纪。” 已经有130年了,而且还在不断增加。:P
JoeZ。13年

许多公司喜欢拥有版权线,因为他们想进行“许可证管理”。换句话说:检查从互联网复制的GPL内容。基本上,他们会在源代码中扫描版权行-实际上这只是包含“版权” /“(c)”的第一行。该示例说它不是自由软件,因为它是“保留所有权利”,这意味着在第三位必须有一些许可证表,可能是LICENSE.TXT文件或真实文件。因此,您不需要样板许可文本
Guido U. Draheim '17

4

只是想注意开放源代码!=无版权。

开放源代码依赖于要求版权的人,然后采用特定的法律文件(例如GPL)来授予他人对该代码的权利。

因此,无论您决定适用于封闭源代码的内容还是适用于开放源代码的内容。


1
尽管从一个开源项目中获取单个文件比从一个封闭源文件中获取单个文件的可能性更大,所以在一个开放源代码项目中,文件头中的版权声明更有意义……
詹姆斯

1
许可证不会“放弃该版权”。它授予使用和/或修改和/或重新分发的权限。
Glenn Randers-Pehrson,2015年

@ GlennRanders-Pehrson好点,已编辑。
詹姆斯

2

对于任何开源项目

您正在定义使用和重新分发代码的条件(或不取决于这些条件)。

许可证至少可以回答以下问题:

  • 拨款:有人可以接受代码并将其发展为另一个项目吗?Google Chrome是这种现象的一个很好的例子,它基于开源Chromium项目。
    • 他们是否需要给您信誉,寻求许可等...
  • 商业用途:您的代码是否可以商业使用,例如在Photoshop中作为第三方DLL使用?如果是这样,是否适用其他条件?
  • 重新分发:您的代码是否必须在具有类似/相同许可证的软件中使用?诸如GPL之类的要求这样做的许可证称为病毒许可证(我不知道这是否定术语还是事实陈述)。

等等,这绝不是一个全面的清单,仅是让您了解许可证将要清楚陈述的问题。


1
我想我理解这一点,但是为什么要在每个源文件中放置法律声明?或者,如果他们不应该这样做,为什么人们会这样做呢?
mojuba

听起来,如果许可证与源代码分开,可以确保许可证不会丢失,这是一种安全的方法。
doppelgreener

-1

在您的代码上加上版权的另一个原因是,它可以让其他人知道是谁编写的。我希望能够看到代码来自何处以及它存在了多长时间。看看代码如何在其他项目中使用是有趣且有用的。因此,即使从法律上讲,您可能不需要在某些内容上加上版权,但出于参考原因,请添加它。-桑顿


1
这不能回答问题。问题不是是否发布版权声明,而是是否将整个许可证文本放置在每个源文件中。
布兰丁
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.