软件许可
软件许可协议是一种具有法律性质的合同或者指导文件,目的在规范受著作权保护的软件的使用或者发布行为。通常许可方式会允许用户使用单一或者多个该软件的复制,若没有许可途径而使用软件,将被视作侵犯著作权法赋予软件开发者的权利。从效用上说,软件许可是软件的开发者和用户之间的一份合约,保证用户在许可范围内正当使用软件的权利,以及超出许可协议范围使用时软件开发者追责的权利。
多数软件/数据的许可分类可以参考下表:
授予的权力 | 公有领域 Public Domain | 宽松FOSS1)许可(如BSD许可) | Copyleft FOSS(如GPL) | 免费软件 共享软件 免费增值软件 | 专有许可 | 商业秘密 |
---|---|---|---|---|---|---|
保留版权 | 不保留 | 是 | 是 | 是 | 是 | 是(且非常严格) |
演示权 | 允许 | 允许 | 允许 | 允许 | 允许 | 严厉禁止 |
复制权 | 允许 | 允许 | 允许 | 通常允许 | 不允许 | 严厉禁止,且有保密法律法规专门保护 |
修改权 | 允许 | 允许 | 允许 | 不允许 | 不允许 | 不允许 |
再发布权 | 允许 | 允许,但应遵从许可中的再发布条款 | 允许,但应遵从许可中的再发布条款 | 通常允许,但应遵从许可中的再发布条款 | 不允许 | 严厉禁止 |
再许可权2) | 允许 | 允许 | 不允许 | 不允许 | 不允许 | 不允许 |
示例 | SQLite | Mozilla Firefox | Linux Kernel | Irfanview | Microsoft Windows | AWS的服务器端程序 |
- 版权法规保护之外是公有领域软件,这些软件的作者放弃版权,任何人可以以任何方式处理这些软件的二进制和源代码。
- 商业秘密软件是不受版权法规约束的另一类软件,由于这些软件连使用权都不会释出,因此它们受到的更多是保密法规的保护。
- 版权法规覆盖的主要是两类软件:专有许可软件和FOSS软件。两者的明确区别是是否向用户授予再发布软件的权利,FOSS软件将再发布权授予用户,为了保证用户可以行使这一权利,通常也将软件的源代码开放,而专有许可软件则禁止用户再发布,通常的做法是封闭源代码。
专有许可
专有许可软件的标志是最终用户许可协议(EULA,End-User License Agreement)授予用户使用一个或者多个软件副本的权利——但是这些副本的所有权依然归版权方所有,用户只有使用权而没有所有权。因此,EULA往往需要明确定义软件使用的术语,例如允许安装的设备数量、安装的次数等,同时对不被版权方认为是“合理使用”的行为做出禁止指令,如逆向工程、多个用户同时使用等。
而且,由于EULA规定了软件的副本所有权归属于版权方,因此,用户必须接受EULA,否则将无法使用该软件。
专有许可的形式有很多种,包括最简单的永久许可、浮动许可、计量许可等等。最常见的是单个用户或者多个用户批次购买(多用户购买通常可以享受一定折扣),某些制造商会开放批量许可,只要不超过购买的数量,该组织内的所有用户可以同时使用某个软件。某些软件则采用订阅制,一个用户或者数个用户按一定时间段付费使用某个软件,典型的如Microsoft 365和Adobe Creative Cloud。
软件许可通常还包括维护,维护协议界定了软件接受升级维护的持续时间、是否允许接受次要更新和主要更新。如Windows 10的维护协议允许用户终身接受所有主要更新和次要更新,而按年度购买的安全软件(如NOD32)允许用户在一年内接受所有主要更新和次要更新,某些软件(如GoodSync)的维护协议只包含了次要更新,每次主要更新都需要重新购买,维护协议在一个主要版本的生命周期内始终有效。
维护可能包含技术支持,维护协议包含了技术支持的可用时间、响应时间等。
一些软件商为政府、学校提供了特殊的许可条款。
FOSS许可
总体上说,FOSS许可可以分成两大类:不允许用户更改许可协议的Copyleft类许可和较为宽松的其他FOSS许可。
FOSS许可列表
许可证 | 作者 | 允许使用不同许可证的链接 | 允许使用不同许可证再发布 |
---|---|---|---|
Academic Free License | Laurence E. Rosen | 是 | 是 |
Affero通用公共许可(AGPL) | FSF | 仅AGPLv3+ | 否 |
Apache | Apache软件基金会 | 是 | 是 |
苹果公共源代码许可 | Apple | 是 | 否 |
艺术许可协议(Artistic License) | Larry Wall | 是 | 有限制 |
伯克利数据库许可 | Oracle | 否 | 否 |
BSD许可 | 加州大学董事会 | 是 | 是 |
Boost许可 | boost.org | 是 | 是 |
CeCILL | CEA/CNRS/INRIA | 否 | 否 |
通用开发与散步许可3) | 是 | 是 | |
Code Project Open License | The Code Project | 是 | 否 |
CPL(Common Public License) | IBM | 是 | 否 |
Cryptix General License | Cryptix基金会 | 是 | 是 |
Eclipse公共许可 | Eclipse基金会 | 是 | 否 |
教育社区许可 | 是 | 是 | |
Eiffel论坛许可 | NICE | 是 | 是 |
欧盟公共许可 | 欧盟委员会 | 是 | 有明确的兼容性列表 |
Fair License | 是 | 是 | |
GPL | FSF | 否 | 否 |
LGPL | FSF | 是 | 否 |
Hacktivismo Enhanced-Source Software License Agreement | Hacktivismo/cDc | ||
IBM公共许可 | IBM | 是 | 是 |
Intel开放源代码许可 | Intel | 是 | 是 |
ISC许可 | ISC | 是 | 是 |
LaTeX项目公共许可 | LaTeX项目 | 是 | 是 |
MIT许可 | 麻省理工学院 | 是 | 是 |
Mozilla公共许可(MPL) | 是 | 有限 | |
Netscape公共许可 | 是 | 有限 | |
OPaC开放公共许可 | OPaC birhgt ideas | 否 | 否 |
Open Software License | Laurence Rosen | 是 | 否 |
OpenSSL许可 | OpenSSL项目组 | 是 | |
PHP许可 | PHP团队 | 是 | 是 |
Public Domain | 无版权方 | - | - |
Python软件基金会许可 | Python软件基金会 | 是 | 是 |
QPL | Qt框架 | 否 | 否 |
Sun工业标准源代码许可 | Sun Microsystems | 是 | 否 |
Sun公共许可 | Sun Microsystems | 是 | 否 |
Sybase Open Watcom Public License | 是 | 否 | |
W3C软件通知与许可 | W3C | 是 | 是 |
XCore开放源代码许可 | XMOS | 是 | 是 |
XFree 86 | 是 | 是 | |
Zlib授权 | 是 | 是 | |
Zope公共许可 | Zope基金会 | 是 | 是 |
重要的FOSS许可
GPL
GNU通用公共许可(GNU General Public License)是使用非常广泛的自由软件许可证,赋予了用户允许、学习、共享、修改软件的一切自由。GPL最初由Richard Stallman为GNU计划而编写。
GPL是一个Copyleft许可证,任何基于GPL作品的作品只能以GPL协议再发布。
目前,GPL已经发布至第三版(GPLv3),GPL是使用最广泛、最流行的许可证。根据Freshmeat的统计,截至2004年,75%的自由软件采取GPL协议发布。SourceForge的统计表明其托管的Repository中有68%采用GPL协议。一些著名且重要的软件也多采用GPL协议发布,如Emacs、Linux Kernel、gcc等。
LGPL
GNU宽通用公共许可(GNU Lesser General Public License,LGPL)是FSF发布的自由软件许可证,允许企业和软件开发者使用,或者将LGPL授权的软件集成到他们自己的软件内(即便是专有许可也被允许),同时不会受到Copyleft强制开源的限制。LGPL许可通常被用于一些GNU库。
LGPL有机会转换成其他类型的许可,一个很典型的例子是DivX,早期DivX的雏形是LGPL许可的自由软件,但是当软件渐渐成型时,DXN利用LGPL的漏洞将DivX转变成专有许可,导致参与开发人员的愤怒,并催生了XviD。
Apache许可
Apache许可最初是为Apache HTTP服务器编写,目前已经发布2.0版。
Apache许可与GPLv3兼容,但是并非Copyleft许可。Apache许可允许修改后的软件使用其他许可再发布。但是,未修改的部分必须沿用Apache许可,在每个许可文件中,必须保留再分发代码中任何部分的原始著作权、专利、商标和归属通知,而且每处更改都必须增加一条通知,说明对该文件做出了修改。
Apache许可与GPLv3兼容,但是和GPLv1、v2均不兼容。
BSD许可
BSD许可来自BSD操作系统。BSD操作系统就是以BSD许可发布的。
与严格的GPL许可与限制众多的专有许可相比,BSD许可相对宽松,甚至和Public Domain有得一拼。BSD被认为是“Copycenter”的(中间著作权),即介于标准的Copyright与Copyleft之间。
Take it down to the copy center and make as many copies as you want.
下载软件,然后想要多少拷贝就做多少拷贝。
BSD并不限制再发布的许可,可以继续以BSD许可发布,也可以转为专有许可发布。甚至BSD许可本身的文本被视为Public Domain,其中的“Regents of the University of California”(加州大学董事会)、“University of California, Berkeley”(加州伯克利分校)都可以被用户替换成自己的名称再次发布。由于BSD极高的自由度,一些商用产品使用BSD代码也很常见,微软、苹果的产品中都使用了不少BSD的技术和组件。
老的BSD被称为“四句版BSD许可”,内容如下:
* Copyright (c) 1982, 1986, 1990, 1991, 1993 * 著作权由加州大学董事会所有。著作权人保留一切权利。 * * 这份许可证,在用户符合以下四条件的情形下,授予用户使用及再散播本 * 软件包装源代码及二进位可执行形式的权利,无论此包装是否经改作皆然: * * 1. 对于本软件源代码的再散播,必须保留上述的著作权宣告、此四条件表列,以 * 及下述的免责声明。 * 2. 对于本包二进位可执行形式的再散播,必须连带以文件以及/或者其他附 * 于散播包装中的介质方式,重制上述之著作权宣告、此四条件表列,以及下述 * 的免责声明。 * 3. 所有提及本软件功能或是本软件使用之宣传材料,都必须包还含下列之交 * 待文字: * “本产品内含有由柏克莱加州大学及其软件贡献者所开发的软件。” * 4. 未获事前获取书面许可,不得使用柏克莱加州大学或本软件贡献者之名称, * 来为本软件之派生物做任何表示支持、认可或推广、促销之行为。 * * 免责声明:本软件是由加州大学董事会及本软件之贡献者以现状("as is")提供, * 本软件包装不负任何明示或默示之担保责任,包括但不限于就适售性以及特定目 * 的的适用性为默示性担保。加州大学董事会及本软件之贡献者,无论任何条件、 * 无论成因或任何责任主义、无论此责任为因合约关系、无过失责任主义或因非违 * 约之侵权(包括过失或其他原因等)而起,对于任何因使用本软件包装所产生的 * 任何直接性、间接性、偶发性、特殊性、惩罚性或任何结果的损害(包括但不限 * 于替代商品或劳务之购用、使用损失、资料损失、利益损失、业务中断等等), * 不负任何责任,即在该种使用已获事前告知可能会造成此类损害的情形下亦然。
但是其中的第四条款引起了GNU计划相关人士的不满,原因有两个:第一是项目参与人很多的话,鸣谢阵容会太过于庞大,第二是GPL不允许增加别的限制条款,而这一限制条款导致BSD与GPL相抵触。1999年7月22日,BSD许可办公室主管William Hoskins将第四条款删除,形成了新的BSD许可,即“三句版BSD许可”。
MIT许可
MIT许可最初是为X Window系统而编写。它也是非常宽松的许可。它的宽松程度超过四句版的BSD许可,与三句版的BSD许可相当。
MPL许可
MPL许可(Mozilla Public License,Mozilla公共许可)是由Mozilla基金会开发并维护的许可证。它融合了BSD许可和GPL许可的特性,追求平衡专有软件和开源软件开发者之间的顾虑。
MPL许可被用于发布诸如Firefox、Thunderbird等Mozilla基金会旗下的软件,其他如LibreOffice也在使用MPL许可(同时也是用LGPLv3+)。
PHP许可
PHP许可最初是为PHP开发的许可。PHP与GPL不兼容,因为PHP许可限制了“PHP”一词的使用。
PHP许可的要求如下:
1. 包含PHP许可证中的著作权声明部分。
2. 任何衍生作品的标题和名字都不得包含“PHP”一词。
3. 代码无论以任何形式再发行,都必须带上下面这句话:This product includes PHP software, freely available from <http://www.php.net/software/>
常用软件的许可类型
列表中的软件许可有可能随着时间而调整,如Sandboxie就在2020年从专有许可调整为GPLv3。
软件 | 许可类型 |
---|---|
Microsoft Windows | 专有许可 |
Microsoft Office | 专有许可 |
Manjaro | 各个组件各自的许可,多为GPL |
Synology DSM | 专有许可 |
LibreOffice | GPL、LGPLv3+、Apache,备用协议为MPLv2 |
Sandboxie | 专有许可(5.30之前) GPLv3(5.31.4之后) |
WordPress | GPLv2+ |
DokuWiki | GPL |
Visual Studio Code | MIT(源代码) GPL(二进制) |
Firefox | MPLv2 |