TL;DR
这些事情会发生:
- 下游企业 Linux 必须改变获取源码的方式
- RHEL 的 1:1复制因为 RHEL 源码的限制而变得困难
这些事情不太可能发生:
- 红帽不按照许可协议向用户提供其产品源码
- EPEL 受到源码获取限制的直接影响
EPEL
EPEL 是 Fedora 旗下的一个项目,旨在为 RHEL 及其衍生版提供一些额外的软件包。EPEL 不受直接影响——实际上 EPEL 在编译的时候直接使用 RHEL 的软件源(而不是 CentOS 的)。
另外,有位叫 Jeff Geerling 的 Fedora 与 EPEL 贡献者声明他将要“删除对 Red Hat Enterprise Linux 的官方支持”,鉴于目前 Fedora 的 Koji 对 RHEL 的依赖,这不太现实。他在做声明的时候可能忽略了这一情况。
RHEL 的 1:1 复刻
经过多次讨论,AlmaLinux OS 基金会董事会今天决定放弃与 RHEL 1:1 的目标。
Alma Linux (曾经)是一个 RHEL 的1:1复刻发行版。1:1的意思是,他们使用红帽官方放出的 RHEL 源码,然后自己编译。这样,理论上,除了商标之外,Alma Linux 与 RHEL 没有区别。
现在,他们决定使用 CentOS Stream 源码。我认为这一决定无比正确,这不仅给了 Alma Linux 更大的自由,也更有益于社区。
毕竟,1:1复刻是一条畸形的道路。在真正的 1:1 复刻的时候,Alma Linux 作为 RHEL 的下游,给 CentOS Stream 上游项目无法做出任何贡献。因为可悲的 1:1 政策,Alma Linux 必须维持所谓的 Bug-for-Bug 兼容。用户甚至不能在 RHEL 之前获得 Bug 修复,即使这个 Bug 上游项目早就有了补丁,Alma Linux 也只能等待 RHEL 完成修复之后才能获得更新。
有些人可能会散播一种谎言,说只有从完全一致的源码构建才能保证兼容。一方面,一致的源码其实并不能真正做到完全一样。倒回到 CentOS 还没有 Stream 的年代,已经有开发者对此进行了澄清:CentOS 并不是真的 Bug-for-Bug,这不现实。 简单来说,因为复杂的构建环境,相同的源码包也不定能 Bug-for-Bug 兼容。Bug-for-Bug 不在当年的 CentOS 的兼容性范围内,也不在 Alma Linux 的兼容性范围内。他们只是枷锁。
这样畸形的流程对 Alma Linux 这种社区发行版的发展来说是很不利的。Alma Linux 无法为社区做出贡献。开发者没法修改代码,用户也没法反馈 Bug。因为用户不能直接向 RHEL 或者 CentOS Stream 反馈,必须得使用 RHEL 或者 CentOS Stream 复现才行,否则不能判断这个 Bug 是 Alma Linux 自己的失误还是上游问题。
抛开枷锁,Alma Linux 的未来更加光明。对于用户而言,Alma Linux 可能接受上游尚未接受或下游尚未发送的错误的补丁,不必等待 RHEL,这意味着更快的修复。对于贡献者而言,Alma Linux 能够和开放的上游有更多的合作。Alma Linux 现在鼓励报告 AlmaLinux 操作系统错误的贡献者也尝试在 CentOS Stream 中测试和复制该问题,以便开发者可以集中精力在正确的地方纠正它。而不是等 RHEL 动手。
道德
与其他商业 Linux 公司相比,Redhat 对于“免费”的发行版提供的支持也不差。CentOS Stream 的的版本支持与 RHEL 的大版本的更新周期绑定,一个大版本支持 5 年(RHEL 的十年支持是5年的完全支持加上5年的维护支持 )。Ubuntu LTS 每个版本是五年安全更新与修复,可以从 Canonical 订阅 Ubuntu Pro 来延长支持。openSUSE Leap 则是每个版本 18 个月,每年一个版本,预计用户会在新版本发布后 6 个月内升级到该版本。即使是从 CentOS Stream 的角度看,Redhat 为社区提供的支持并不少。
有些用户可能会因为 CentOS 的改变发生抱怨——但是话说回来,像 Redhat 这样的大公司本来就没明确承诺过“将永远把 RHEL 的源码放在 Git 仓库里面”。使用开源代码的公司有义务做的事情是遵守 GPL 等开源许可协议,而不是无条件为社区提供服务。如果用户想要享受明确的服务,那么请找个服务商签服务级别协议(service-level agreement,缩写SLA),与企业达成明确承诺的服务指标——比如质量、可用性与责任,而不是要求一家公司无偿“交出所有源码并免费为这些源码提供公开的 Git 镜像以及十年更新”。
在 Redhat 之外还有有许多优秀的公司,Ubuntu 背后的 Canonical,Alma Linux 背后的 Cloud Linux,openSUSE 背后的 SUSE。那些抱怨的用户大可这些公司里面随便找个,然后花点钱(有些公司有免费额度,甚至可以不花钱,注册账号就好),他们就会为用户提供比社区支持更好的服务与长期支持。这就是 Linux 开源的商业模式,甚至 LibreOffice 这些开源软件也是这套模式。
另外有一个点很奇怪,没有开发者去制作 Ubuntu 或者 SUSE 的企业发行版的 1:1 复制。也许是这些社区里面的朋友没有精力去做这么一个 1:1 的十年长期支持的复制,也许他们只是明白这么做没意义。