这意味着,如果你曾经对开源许可感到困惑,那么以后就没有这种烦恼了。因为自由软件基金会提供了一个信息丰富、维护良好的许可证列表,不仅包括软件许可证,还包括文档和其他作品的许可证,并对自由和非自由进行了区分。
进一步了解下与软件许可相关的各种许可证及其解释吧。
自从 GitHub 推出微网站Choose A Licence以来,开源软件许可已经得到很大改进和扩展。该网站鼓励用户向项目添加许可,并指出如果用户不添加许可会发生什么。它推广了 MIT 许可证和 GNU GPLv3,并列出了一些其他许可证,包括 Apache 许可证 2 和 Unlicense——但是,如果不了解以“著佐权(copyleft)”开头的术语,或者不理解在许可语境中“自由(free)”是什么意思,就可以从 FSF 获得帮助。
根据许可网页:
著佐权是一种使程序成为自由软件的通用方法,它要求程序的所有修改和扩展版本都是自由软件。
下面这段话摘自自由软件定义:
“自由软件”是指尊重用户自由和社区的软件。大致而言,它意味着用户可以自由地运行、复制、分发、学习、修改和改进软件。因此,“自由软件”是自由的问题,而不是价格的问题。要理解这个概念,你应该把“free”想象成“free speech(言论自由)”中的 free,而不是“free beer(免费啤酒)”中的 free。我们有时称它为“libre 软件”,借用法语或西班牙语中表示“自由”的单词,从而表明我们说的并不是软件免费。
在此基础上,FSF 概述了四项基本自由:
如果程序的用户具有以下四项基本自由,程序就是自由软件:
- 以您希望的方式自由地运行程序,用于任何目的(自由 0)。
- 研究程序如何工作的自由,以及修改程序使其按您的意愿进行计算的自由(自由 1)。访问源代码是实现此目的的先决条件。
- 重新分发副本以便帮助他人的自由(自由 2)。
- 将修改后的版本分发给其他人的自由(自由 3)。这样做可以给整个社区一个从修改中获益的机会。访问源代码是实现此目的的先决条件。
正是基于这些自由,各种许可证和对它们的解释划分了许可证的分类,并用颜色对它们进行了区分:
这个列表有很好的注释,因此您可以快速掌握不同选项之间的差异,FSF 不会对它所提倡的选项和应该避免的选项保持沉默。
绿色名单是最先推荐的:
GNU 通用公共许可 (GPL)版本 3(#GNUGPL)(#GNUGPLv3)
这是 GNU GPL 的最新版本:自由软件许可证和著佐权许可证。我们推荐把它用于大多数软件包。
它继续列出其他 GNU 许可,然后按字母顺序列出许多其他兼容的许可。
黄色组几乎有同样多的许可证。它们具有自由软件许可证的资格,并且大部分是著佐权许可证,但是不兼容 GNU GPL。对它们的描述大多包括“应该避免”、“请不要使用”和“敦促不要使用”,并简要说明了这些禁令的原因。
非自由的红色组从无许可证(No license)开始,它概述了不带许可证的源代码的危险。Commons Clause 是这个列表中的一项。更令人惊讶的是 NASA 开源协议,它没有免费,因为它包含了一个条款,要求修改必须是您“原始创建”的,而自由软件开发依赖于结合来自第三方的代码。
这个列表中的许多许可项可能有些已经不存在了,比如 Sun 社区源许可证和 Sybase Open Watcom 公共许可证 1.0 版。然而其他的,比如 Oculus Rift SDK 许可证是相对较新的。
将最新的两个许可证归入这一类别的原因很有启发性。就个人公共许可证版本 3a而言,这是因为它否定了一些用户(组织、政府、企业)的四项自由,而反 996 许可证限制了将程序用于任何目的的自由。该列表总结道:
请不要将此许可证用于您自己的软件。我们将避免使用遵循该许可的软件,就像我们对所有其他非自由软件所做的那样。