批判一下红帽

最近开源社区最大的新闻就是红帽宣布 RHEL 不再公开源码,而是提供 CentOS Stream 的源码。而在此之前 CentOS 已经从 RHEL 的平替,变成了一个滑稽的滚动发行版。结果导致:

  1. 对很多资金紧张的企业来说,CentOS 不能用了;
  2. 基于 RHEL 源码的发行版,如甲骨文 Linux,亚马逊 Linux,Rocky Linux,在拿不到 RHEL 一比一源码的情况下,构建将更加困难;
  3. 开源社区对于红帽的信任危机,会影响红帽所主导的开源项目。

红帽是否背叛了开源?是否违反了 GPL?

CentOS Stream will now be the sole repository for public RHEL-related source code releases. For Red Hat customers and partners, source code will remain available via the Red Hat Customer Portal. …

… Red Hat customers and partners can access RHEL sources via the customer and partner portals, in accordance with their subscription agreement.

https://www.redhat.com/en/blog/furthering-evolution-centos-stream

根据红帽目前的说法,RHEL 的源码获取和使用的条件非常苛刻:

  1. 只有 RHEL 客户和合作伙伴才能获得 RHEL 的 1:1 源码;
  2. 客户和合作伙伴受到协议限制,不能再分发源码或重新构建 RHEL。(如果你做了,就停你许可协议)

第二条显然是律师设计的钻 GPL 空子的做法,但是法庭不一定会支持。就像老板说你今天可以不加班,但是明天我会辞退你,那么这家公司是否允许加班呢?是否违反劳动法呢?法律并不是玩文字游戏。

而第一条,虽然不违反 GPL,但是已经从字面上完全背离了 Open Source 的精神。

后续红帽又发文解释(同一个人,自称做开源十几年),但是这个解释更加令人失望。他似乎并没有意识到自己问题,反而认为是 Linux 社群的人不懂 GPL。让我们来看看他的惊人言论:

We will always send our code upstream and abide by the open source licenses our products use, which includes the GPL. …

I feel that much of the anger from our recent decision around the downstream sources comes from either those who do not want to pay for the time, effort and resources going into RHEL or those who want to repackage it for their own profit. This demand for RHEL code is disingenuous. …

https://www.redhat.com/en/blog/red-hats-commitment-open-source-response-gitcentosorg-changes

第一点,这个人一直在强调 RHEL 的代码会反馈给 Linux, GNU, GNOME 等上游项目,所以不需要向下游提供源码。但是你 RHEL 是作为一个完整的软件套件分发的,就需要同时分发其对应的源码给用户,并且不得限制用户修改/再分发源码。任何对 GPL 的掺杂附带条件的解释,都是对 GPL 的曲解和破坏。我很期待 RMS 来对红帽的观点进行点评。

第二点,这个人直接将下游利用 RHEL 代码的行为定性为自私自利。但是不要忘了,你红帽做出 RHEL 不也是靠利用上游代码?如果 Linux 和 GNU 都不提供给你源码,你不也一样赚不了钱?甚至红帽 2021 年退出了自由软件基金会,变成了利用 GNU 赚钱却不回馈 GNU。对于红帽的这种双重标准,我只能说是虚伪之极,无耻之极。

职业经理人正在毁掉一切

提到红帽,就不得不提 IBM。

  1. 2019 年,IBM 收购红帽。
  2. 2020 年,CentOS 卒,走得并不安详。
  3. 2023 年,RHEL 背叛开源。

如今的 IBM 已经是一家唯利是图的公司了,近些年几乎毫无创新。职业经理人掌控科技公司就会带来这种问题。而如今他们似乎也想给红帽杀鸡取卵。职业经理人们根本不懂开源,也不懂社区,甚至也不太懂企业客户。任何东西对他们来说都是工具,而他们只为股价和股东负责,为此他们很乐意牺牲任何工具,包括客户。

虽然红帽发文的人自称是资深工程师,但是我从他身上看不到一点开源精神或者社区精神。他更像是典型的大公司雇员,为公司的利益行动。从他的陈述,我们可以一窥红帽内部对于开源的态度。

如今有太多的公司怀着不单纯的目的参与开源。另一个例子是 Google 的 Android AOSP。以前你可以用 AOSP 源码构建一个全功能的移动操作系统。但是当 Android 已经统治了市场,Google 就开始将 AOSP 的功能砍掉,转移到它闭源的 Google Services 里。开源对他们来说只是一种便利的工具,只要符合资深利益,随时可以抛弃。

SUSE,甲骨文,C 社趁虚而入

红帽显然高估了自己对局面的掌控能力。其他厂商迅速做出了回应。

SUSE 宣布将投资 1000 万美元创建一个 RHEL 的开源硬分支。(目前的 openSUSE 和 SLE 发行版不会受到影响)SUSE 的系统和红帽具有很多相似性,比如都采用 RPM 打包格式,包管理器共用一部分代码,Open Build Service 也早就支持 CentOS 和 Fedora。估计创建一个 RHEL 分支并非难事。

甲骨文则是继续推销自家的 Linux,并为开源摇旗呐喊。了解甲骨文发家史的朋友看到这个标题,应该会觉得十分讽刺:Keep Linux Open and Free—We Can’t Afford Not To

C 社应该是最高兴的,Ubuntu 已经是市占率第一了,份额预计会进一步上升。在红帽的降智行为衬托直线,C 社的口碑甚至有所改善。它甚至什么都不用做就能从中受益,赢麻了。

显然,友商对红帽的行为都是不齿的。

一些前车之鉴

甲骨文收购 MySQL 后将其分成了开源的社区版和闭源的企业版。原 MySQL 创始人之一创建了硬分支 MariaDB 并迅速取代了 MySQL 在发行版中预装位置。曾经一度变成小众数据库的 Postgres 也逐渐流行起来。

Qt 公司宣布 Qt 6 将采用订阅模式,而非之前采用的买断模式。Reddit 上有很多企业版客户表示,会继续使用 Qt 5,不会升级 Qt 6。

MongoDB 直接从开源转为闭源,软件包从所有主流 Linux 发行版中被移出。大量客户改用同样支持 NoSQL 特性的 Postgres,或者用亚马逊闭源但免费的兼容数据库 DocumentDB。其 CEO 还丢下一句名言:

we didn’t open source it to get help from the community, to make the product better. We open sourced as a freemium strategy; to drive adoption.

我们的开源并不是为了获得帮助,使产品更好,而是作为免费增值策略,以推动采用。

ElasticSearch 从开源转为闭源,随后亚马逊硬分支了 OpenSearch。现在,OpenSearch 已经比 ElasticSearch 还要流行。

Node.js 曾经短暂出现一个 io.js 硬分支,以表达当时 Node.js 所属公司管理问题导致 Node.js 进展缓慢的不满。后来 Node.js 所属公司怂了,Node.js 改由基金会运营,才结束了分裂。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据