如何正确使用GPL和MIT许可证?

自从我们的Alaukik要求我将a few scripts放在GPL许可证下,我就在想我是否做得正确。让我担心的是以下几点:
我需要在我的项目中包含整个许可证吗?还是像这样的注释就足够了:“版权归John Doe所有,2011年根据MIT许可证授权:http://www.opensource.org/licenses/mit-license.php”?
我需要使用真实姓名吗?还是使用电子邮件或其他化名在法律上更可靠?
年份重要吗?我猜应该是“是”,因为大多数国家的版权在一定期限后到期。如果我不写年份会发生什么?
我应该选择GPL还是MIT?我倾向于MIT,因为它更宽松,而且我不在乎我的脚本是否被用于闭源软件。

更新:

关于如何使用GNU许可证的页面'如何将GNU许可证用于您自己的软件'非常好。GNU网站还提供了关于如何将许可证应用于您的项目(™Flimm)的建议。这对GPL来说涵盖了很多内容。

最重要的是 - 许可证选择:
如果您想支持自由软件,请不要使用过于自由的许可证。禁止专有使用使自由软件比专有程序更具优势。理论上,某些许可证要求重新使用您的代码必须注明原始来源。但是,重新使用很难证明,一些公司可能根本不会给您信用。然而,如果您确实希望尽可能广泛地传播您的软件,即您不关心专有产品是否使用您的软件,则使用MIT或LGPL许可证。如果有疑问,请使用更严格的许可证,并添加一行说明,表示您可能会考虑根据情况允许超出许可证条款的使用。这样,商业用户拥有一个机会,可以使用与您的工作相当的项目。

底线 - 版权争议
尽可能提供更多信息,以便更容易证明这是你的创意。在你心中牵挂着关于所有权的诉讼。穷人版的版权保护是将源代码的打印副本邮寄到你的家庭地址。如果信封完好无损,邮戳是法庭上有效的证据,可以提供日期和经过验证的地址。用电子邮件而不是你的全名来识别你应该是可以的,并且足够作为证明,但是:比起后悔,安全第一


3我认为你最好坚持使用GPL或LGPL,因为它们听起来很可靠,并且与狂热者有关,通常也更容易获得法律帮助。我听说过,在每个软件包中不断复制许可证文本会让空间有限的设备开发人员感到不安。 - Barafu Albino
可能你是对的。对于GPL我研究了大部分国家的先例案例。不知道MIT的情况如何。 - con-f-use
1我认为你所说的“commercially recycled”应该是指“在专有软件中使用”,因为GPL允许对软件进行商业再分发。 - Lincity
6我不确定是否会有与麻省理工学院相关的法律案例作为先例,因为它非常宽容。只要对方没有声称你支持他们的产品,你无权干涉他们对你的代码的使用,所以你不能起诉他们。 - Oli
更正。任何人都可以因任何原因在任何时候起诉任何人,无论是荒谬的还是不荒谬的。像外籍人士许可证(在OP中模糊地称为MIT)这样的许可证并不能排除这个事实,尽管在法律程序中它们会变得明显。 - vhs
这个问题可能更适合在opensource.stackexchange.com上提问。 - vhs
3个回答

我应该先说一下: 我不是一个版权律师。 如果你真的担心某件事情,最好请教专业律师。自由软件基金会的人员可能能够帮助你。
你应该包含完整的许可证文本。即使只是将其放在项目根目录下的LICENSE文件中。如果你不这样做,我不认为会立即发生什么坏事,但从长远来看(版权就是如此),没有一个明确的许可证参考可能是一件糟糕的事情。
明确表达并不需要太多时间。
编辑:实际上,无论你选择哪种许可证,都值得考虑包含“WARRANTY”部分以保护自己。我没有证据表明不包括它意味着提供保修,但再次强调,安全起见总是好的。
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. 

版权声明(© <日期> <姓名>)在大多数地方不再是法律要求,但不包括它对任何人都没有帮助。你将更难证明你拥有版权,并且那些想以不同条件许可的人也会面临更大困难。我肯定会把它放进去... 但我猜这对于 BSD/MIT 风格的许可证来说并不是一个真正的问题。
至于使用昵称或笔名,在其他媒体中人们已经使用了几个世纪的假名。如果涉及到法律诉讼,你需要能够证明你就是那个人,所以显然可能会增加一些困难,但并非不可克服。
如果你选择 MIT 许可证,你的法律救济非常有限,这些问题可能永远不会影响到你。
版权声明中的年份并非必需,但如果您想在数十年后起诉某人,您将必须证明它是何时创建的。这可能很困难。固定的声明有助于您,而且几乎没有成本,只需要几秒钟。

我们应该在这里明确。

  • GPL允许商业再分发,但整个项目的源代码必须对任何购买副本的人开放(包括更改)。
  • LGPL适用于软件库。这些库可以包含在专有项目中,而无需重新分发整个源代码。只有在他们编辑您的代码时,才需要进行源代码分发,即使如此,他们也只需要将更改发布出来。
  • MIT代码可以自由转授权。某人可以直接使用您的代码并根据GPL、专有许可证等重新发布。

"GPL vs MIT"是一场永恒的争论。选择你真正喜欢的,而不是最方便的。如果您不愿意让潜在的邪恶人士将您的代码用于潜在的邪恶或有利益的目的,请使用具有一定追索权的许可证,如GPL。如果您真的不在乎,并且没有使用任何GPL的代码,像MIT这样更自由的许可证也可以。

记住,具有传染性的开源许可证不仅对您有好处,还确保了您的工作以相同条款对每个人都是自由的,无论如何被修改和重新发布。即使您只是随意公开代码而没有兴趣维护它,GPL也能更好地保证它的自由性。

这些决定也不需要急于做出,但你必须考虑到最糟糕的情况,才能真正知道你是否作出了正确的决定。一旦它在这些许可证下发布,就是这样,一切都结束了。


好的,非常感谢。这基本上回答了我的问题。第二点(别名等)仍需要回答。将整个许可证包含在一个简单的单文件脚本中会过度冗长,所以我不会这样做 - 只需提供参考即可。对于任何人都可以编写的小型脚本文件,我真的看不出为什么不将它们发布为MIT许可证。 - con-f-use
省略传统版权声明中的任何数据会损害您证明拥有版权的能力。您在其中放入的内容越多,证明过程就越简单。如果您放入年份、正确的名称和联系电子邮件地址,确认您的身份应该没有问题。但是,即使省略这些信息,也不会对您造成太大困扰。我建议,如果您选择使用[L]GPL许可证,请尽可能多地提供信息。如果您选择MIT许可证,随意做就好了 ;) - Oli
1麻省理工学院许可证明确规定:“上述版权声明和此许可声明应包含在所有软件的所有副本或实质部分中。”所以,根据我的理解,即使一个虚构的“邪恶公司”使用了我的代码,在他们至少还需要声明:“这部分和那部分是由John Doe版权所有”的情况下。当然,在仅有二进制发布的情况下,很难判断他们是否使用了我的代码... - con-f-use
1把你的代码拿去用于潜在的邪恶或赚钱的目的,使用一些有追索权的东西,比如GPL。除非某人将"邪恶"和"闭源"等同起来,否则GPL对于代码被用于邪恶目的的限制很少。 - reducing activity

在GPLv2许可证的末尾,有一个关于如何将许可条款应用于您的项目的指南。自由软件基金会在撰写该文件并使其在法律上有效方面付出了很多努力,因此我建议遵循他们的建议。
如果您决定使用GPL许可证,请确保包含“版本2或更高版本”的条款。这将为您以后节省麻烦,并使GPLv2项目与GPLv3以及反之互相兼容。
正如Oli所说,您在文件头部使用真实姓名或电子邮件来保留您的版权权利在法律上并不是必需的,但强烈建议这样做,以便在以后避免给您和其他人带来麻烦。
在GPL许可证和MIT许可证之间做出选择既是一种道德决策,也是一种战略决策,对于任何一种许可证都有很多支持的论点。

我必须在我的项目中包含整个许可证吗?还是一个注释……法律上足够了?
不需要聪明。只需遵循指南。通常应在您添加的每个脚本中包含GPL许可证头部。添加或确认GPL的完整文本存在于名为COPYING的文件中,并包含在源代码中。如果您想在更广泛的Expat许可作品中包含GPL脚本,则不能这样做,因为兼容性不适用于该方向。
我必须包含真实姓名吗?还是电子邮件或其他化名在法律上是安全的?
在法律方面,没有什么是百分之百的安全的。如果你的名字是Satoshi Nakamoto,最好使用其他独特的身份标识。可以是一个绰号、笔名或者甚至是比特币地址
年份重要吗?我猜应该是'是',因为大多数国家的版权在一定时期后到期。如果我不这样做会发生什么?
是的,尽管没有它,其他人可能需要更长时间来合理确定版权到期的年份。
应该使用GPL而不是MIT吗?
是的,因为这是你所说你被要求做的。从更一般的意义上讲,Expat的宽松性质可能会带来一些问题。