我们常说 WordPress 是开源免费的,这里的开源是什么意思?开源必定免费吗?那为什么又有大量 WordPress 配套的付费主题和付费插件呢?
开放性源代码
- 在计算机诞生之初,软件及其源代码是随硬件设备赠送的,厂商还会鼓励大家公开讨论、互相交换、修改代码。
- 1976 年,《美国著作权法》赋予计算机程序著作权,厂商开始采取闭源收费的商业模式。
- 闭源收费、剥夺用户控制权的商业模式,引发了开源社群的强烈不满,1983年,自由软件运动兴起。
自由软件(Free Software)运动
1983 年,Unix 操作系统取消面向高校的低价宽松授权,开始收取高价授权费,且不再开放源代码。 为此,Richard Stallman 发起 GNU(GNU’s Not Unix, GNU 不是 Unix) 计划,目标是开发一套完全自由的、兼容 Unix 的开源操作系统。
1985 年,自由软件基金会(Free Software Foundation, FSF)成立,定义用户关于软件的四大基本自由:
- 可以基于任何目的使用软件。
- 可以自由研究软件运行逻辑,并按需修改。
- 可以将原始版本的软件分发给任何人,无需许可费,分发时保留版权与协议即可。
- 可以自由发布自己修改后的软件版本。
为了保障代码的持续开放,FSF 还设置了 Copyleft 强制传染规则,要求对外分发的 Free Software 的衍生作品,必须遵循完全相同的开源规则,以避免有人把 Free Software 改成闭源私有软件牟利。
1989 年,GPLv1 通用公共许可证发布,这是实现 Copyleft 约束的核心协议,1991 年迭代为 GPLv2,至今仍被广泛使用。
- Copyleft:传统版权 Copyright 用来限制他人复制、修改、分发作品,Copyleft 反过来,用于永久锁定代码开放属性,禁止他人将代码私有化。
- GPL:GNU General Public License,GNU 通用公共许可证。
开源(Open Source)的由来
1998 年,开放源代码倡议组织(Open Source Initiative, OSI)发布《开源定义》,其十条开源标准与 Free Software 定义的四大自由高度重合,但不强制要求遵守 Copyleft 强制传染规则。
- Free Software 的核心目标是保护用户永久自由,防止软件私有化,所以强制绑定 Copyleft。
- Open Source 的核心目标是推动企业协作,要兼顾商业盈利需求,所以不强制绑定 Copyleft。
此后,所有 Open Source 软件都会绑定一份经过 OSI 认证的开源协议,用来规定其衍生产品:
- 能不能商用?
- 是否必须开源?
- 分发有什么要求?
| Copyleft 类型 | 对衍生产品的约束 | 主流开源协议 |
|---|---|---|
| 无 Copyleft | 仅需保留原始版权声明 | MIT、BSD、Apache 2.0 |
| 弱 Copyleft | 修改库文件需开源,自研程序、动态链接可闭源 | LGPL、MPL |
| 强 Copyleft | 打包分发时,全部衍生代码必须同协议开源 | GPL |
| 网络强 Copyleft | 不打包分发,仅提供线上服务也需要同协议开源 | AGPL |
- 开源协议基于通用著作权法全球生效,各国政府、企业都采信 OSI 作为行业标准。
- 约束越多,开发者使用越放心;约束越少,商业公司越乐意采用。
WordPress 依托的开源协议
WordPress 是由一系列开源软件撑起来的,以下是各种软件使用的开源协议及其 Copyleft 传染性。
由于开源协议和 Copyleft 规则只约束对外分发的软件本身及其衍生产品是否开源,并不限制是否收费,所以市场上的 WordPress 配套资源既有免费的,也有付费的。
| 软件 | 软件类型 | 开源协议 | Copyleft 传染性 |
|---|---|---|---|
| Linux | 操作系统 | GPLv2 | 有 |
| Nginx | Web 服务 | BSD 宽松协议 | 无 |
| Apache | Web 服务 | Apache 2.0 | 无 |
| MySQL 社区版 | 数据库 | 服务端 GPLv2 客户端 LGPLv2.1 | 服务端有 客户端弱 |
| MariaDB | 数据库 | GPLv2 | 有 |
| phpMyAdmin | 数据库可视化管理工具 | GPLv2 | 有 |
| PHP | 后端脚本语言 | PHP License 3.01 | 无 |
| WordPress | 内容管理系统(CMS) | GPLv2 or later | 有 |
| WP 插件、主题、模板 | WordPress 衍生作品 | GPLv2 or later | 有 |
| React/Vue、UI 组件、拖拽工具库 | 网站前端框架 | MIT | 无 |
- BSD:Berkeley Software Distribution License,由美国加州大学伯克利分校发布于 1974 年。
- LGPL:Lesser GPL,多用于公共代码库,由自由软件基金会发布于 1991 年。
- MIT:由麻省理工学院(MIT)发布于 1988 年。