首先,我们需要问问自己,为什么要费心选择许可证?
你是否
- 向公众展示你的软件?
- 以某种方式展示你的软件,让其他人相信他们可以复制或在其基础上构建?
那么,是的,你应该选择一个许可证。对你的访问者公平,并通过明确授权来支持许可的外观。
版权法默认作者控制复制、修改和分发,因此其他人需要获得作者的许可才能复制、修改或分发。如果你希望其他人可以自由复制你的软件,并有可能在其基础上构建,那么你应该选择一个许可证。开源许可证提供了必要的许可,以消除默认的版权障碍。
许多许可证可供选择
好的。假设你确实想为你的软件发布一个许可证。请不要编写你自己的许可证。有很多许可证可供选择。事实上,有太多许可证,你可能会感到不知所措,不知道该选择哪一个,但不要害怕。将一个许可证与下一个许可证进行比较,细节可能很容易让人望而生畏,但这些许可证比它们看起来更相似。所有开源许可证都提供复制和修改的许可,并且它们都提供将这些权利传递给其他人的许可。它们都为软件的接收者提供了构建和协作开发所需的权限。
选择最适合你软件的许可证有一个主要维度:Copyleft 或非 Copyleft。
我的荒岛清单
如果我在一个 荒岛上,我可能 不需要许可证不需要许可证,但假设我需要。我会把 MIT 许可证塞进口袋,把 GPLv3 放在背包里,并找个地方塞进 Apache 许可证。
在可能是一个巨大的多维空间中,有一个维度是我的起点:Copyleft ↔ 非 Copyleft。所有自由软件和开源许可证都提供复制和修改的许可,并且它们都提供将这些权利传递给其他人的许可。但是,最后一部分有两个重要的不同变体:非 Copyleft 许可证允许接收者传递他们收到的权利(通常称为“许可型”许可证);Copyleft 许可证要求必须传递某些许可。
GPLv3+ 指的是当前版本的最广泛使用的 Copyleft 许可证(需要将许可传递给其他人)。(“+”指的是标准 GPL 许可证通知中的以下短语:“许可证的第 3 版,或(由你选择)任何更高版本”。)
MIT 许可证是一个简单的许可证(少于 200 个单词),它代表了该维度的非 Copyleft 端(允许将许可传递给其他人)。
你的许可证和专利
多年来,专利越来越受到关注。因此,GPLv3 比 GPLv2 更有力地解决了专利问题。虽然 Apache 许可证的 1.0 和 1.1 版本是 BSD 许可证的变体,BSD 许可证没有明确提及专利,但 Apache 2.0 将权利授予分为单独的版权和专利部分,其中专利部分包括防御性终止条款。
Apache 许可证中的专利语言使其享有作为专利保护许可证的声誉。然而,GPLv3 具有更强大的专利语言。而且,虽然我们尚未看到这种情况在法庭上得到验证,但我认为 MIT 许可证中的权利授予包括可能类似于 Apache 中的专利权(尽管没有防御性终止条款)。Apache 很好;但是,它的声誉可能有点被夸大了。我包含它是因为其他人可能不像我一样重视简单性。
超出荒岛之外
我的荒岛清单侧重于为不受相关软件许可证约束的新项目选择许可证。但是,可能存在从你的软件与其他软件的关系中产生的许可证选择因素。
- 在许多情况下,选择与相关生态系统中其他软件已经应用的许可证相同的许可证是有意义的,而不是使用不同的许可证来增加许可的复杂性。
- 有时,应考虑与在其他许可证下软件的预期关系(例如,计划允许直接合并到专有或 Copyleft 许可证下的软件中)。这可能会偏向 MIT 或建议使用比 GPL 范围更窄的 Copyleft 许可证(LGPLv2.1, LGPLv3, MPL, EPL)。
其他人对选择许可证的看法
其他人分享了他们的想法和意见,这反过来可能会帮助你选择。
- 我应该使用哪个开源软件许可证?,Stephen R. Walli 的一篇文章
- GitHub 赞助的 choosealicense.com 项目表明,即使使用简化的特征,比较表 也可能看起来令人望而生畏。该项目建议你首先考虑三个许可证:那是我的清单!不,那是他们的清单。有趣的选择。
- 在 choosealicense.com 和 GitHub 的许可证选择器 中,Richard Fontana 讨论了该项目的原始版本。
- 十年前,Jeff Atwood 写道选择一个许可证,任何许可证. 他最后说,“这是一个雷区,伙计们。我只是想说:下次你发布代码到野外时,请帮你的开发者同行一个忙,选择一个许可证——任何许可证。”
- 自由软件基金会拥有大量关于许可证的信息,包括 如何为自己的作品选择许可证。
- 最后,开源促进会 关于许可证的信息 包括方便地访问其批准的符合其 开源定义 的许可证文本,以及“流行许可证”的简短列表。
你在选择许可证方面有什么困难?如果你在荒岛上,你会带上哪些许可证?
6 条评论