笔者之前写的「全方位比照 Postgres 和 MySQL」还在继续发酵,最近腾讯的公众号也公布了一篇「MySQL VS PostgreSQL,谁是世界上最胜利的数据库?」,其中在比照两者应用的开源证书时写到:
PostgreSQL License 是一个宽松的开源许可证,相似于 MIT 许可证。它容许用户自在应用、批改和散发,无需公开源代码。它也不强制任何特定的版权申明,这使得它与许多其余开源和专有许可证兼容。
MySQL 采纳 GPLv2 是一个“传染性”的开源许可证,这意味着任何基于 GPLv2 许可的代码进行批改或扩大,并且要散发的派生作品,也必须在 GPLv2 下公布。这确保了软件的自由性,但也可能限度了与非 GPL 软件的集成。
艰深来说,PostgreSQL License 反对第三方进行批改后商业化,还能够不开源。但 GPLv2 协定要求任何基于 GPLv2 软件的衍生作品也必须是开源的,所以第三方的优化成绩最终也会反馈给社区。长期来看,GPLv2 协定更能带动开源社区的倒退。
这段话对于两个证书的解释是正确的,然而最初对于 GPLv2 协定更能带动开源社区倒退的论断有待商讨。
咱们先来看一下 PostgreSQL 应用的证书。
再比照一下 MySQL 应用的 GPLv2 证书。
证书太长了,在 27 寸的显示器上都没法一屏截完😅。另外属于 Oracle 的 MySQL 还提供独自的商业证书,给那些想应用 MySQL 组件,但又无奈遵循 GPL 证书的厂商。
Google 的 Open Source 网站也做了一个归类, PostgreSQL 的证书是归在了 notice 之列。
而 GPL 证书是归在了 restricted 之列。
笔者之前在 Google 保护外部的 MySQL 和 PostgreSQL 分支以及相关联的组件,凡是要引入 restricted 证书的开源我的项目,也须要提供更多的资料来论述引入的必要性,让开源部门进行审核。毕竟还是要尽量避免净化 (Taint) Google 本人的代码。
在决定把软件我的项目开源后,首要思考的就是抉择哪种开源证书。GitHub 还为此做了特意的定制,在 GitHub 上我的项目的根目录下尝试创立 LICENSE 的文件,就能间接抉择风行的开源证书模版。
这个排序大抵是依照以后证书的风行度来的。目前支流的开源证书分几种类型:
- 你想干啥都行 – MIT, Apache 证书。
- 你能够用,但一旦用了,就要承受被异化 – GPL 证书。这类证书的特点是传染性 (infectious),我的项目要是应用 (use) 了这个证书的开源组件,那么我的项目自身也要把代码开源。自由软件基金会 (Free Software Foundation) 心愿通过这种形式把开源软件发扬光大。但「应用 / use」这个词的界定是比拟含糊的,法律上也不足判例。这个破绽也催生了补丁版 AGPL 的诞生。
- GPL 的温和版 – MPL (Mozilla Public License) 证书。被 Google 归类为 reciprocal (互惠)。如果我的项目依赖了这类证书的开源组件,我的项目自身是不会被传染的,只是针对应用的开源组件包含对其的批改须要开源进去。
- 你能够用,但不能用来凑合我 – SSPL, BSL (Business Source License) 证书。这个证书一开始是开源商业化公司针对云厂商的白嫖行为而开发的,当初扩大为制约所有其余的商业竞争对手。最近出名开源厂商 HashiCorp 就把旗下产品线的开源证书从 MPL 换成了 BSL。就是针对其余基于 HashiCorp 开源我的项目构建产品的公司,这些公司的产品和 HashiCorp 的付费版造成了间接竞争。这次改证书的行动也引发了微小的争议,紧接着社区就 fork 了其最受欢迎的产品 Terraform。
仍然保留了 tf,不过换成了豆腐 (Tofu)
目前势头还是挺旺的,5 周的星星数就堪比 Terraform 3 年多的积攒。
对于新的开源我的项目,笔者的倡议是抉择限度少的证书,也就是所谓的 liberal / permissive license。当下最广泛的是 MIT 和 Apache 证书。这两者的区别在于 Apache 有一个基金会监督该证书的应用,以及对 Apache 这个品牌以及我的项目知识产权的爱护。而如果一个开源我的项目里采纳了双证书 (dual-license),一个 Apache 证书,一个商业版证书,往往也会受到 Apache 基金会的挑战。所以像采纳双证书的开源我的项目,如 GitLab, Sourcegraph 以及 Bytebase 都是 MIT + 商业版证书的形式。
一开始没有必要采纳更有限制性的 SSPL, BSL。这类证书在 Google 的归类里也是属于禁用级别。
把我的项目开源是冀望能通过开源的流传性取得指数级的增长。让咱们再回到 MySQL 和 PostgreSQL 的证书的比照, MySQL 采纳的 GPL 系列是通过增加证书的束缚,来强制流传。而 PostgreSQL 所属的 MIT 系是通过放弃束缚,来造成天然流传。
Free Software Foundation (FSF) 提倡的 GPL 证书,带着理想主义色调,而 MIT / Apache 这类的证书更听从兽性。在商业曾经主导开源世界的明天,GPL 更能带动开源社区的论断是过于果断的。收费 (Free) 之上,更能进一步驱动开源倒退的是自在 (Freedom)。而 Free Software Foundation 的官网中文翻译虽是自由软件基金会,可 GPL 证书却显得收费无余,自在有余(free not freedom)。
你怎么看🤨?
💡 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。