红帽拒绝被“白嫖”,限制 RHEL 源码访问,下游发行版反抗:别担心,我找到了两种新方法!
当前,一方面,关于红帽决定停止向非客户免费分发 RHEL(Red Hat Enterprise Linux)源代码的争议依然在持续。
另一方面,红帽这条新规惹得 AlmaLinux、Rocky Linux 等 RHEL 下游发行版不满之际,后者还是在马不停蹄地寻找出路。
这不,短短一周后,CentOS 的创始人 Gregory Kurtzer 创立的 Rocky Linux 项目最新发文表示,如今已经找到了继续获取 RHEL 源代码的方法了,甚至已与律师确认过了这是属于合法获得,也不会损害其对开源软件的承诺。
然而,他们的“走捷径”方式却再次引发了不小的风波。也有人观望,猜测红帽是不是会有进一步的“封禁”动作,一场有关开源的硝烟即将四起。
前情:红帽宣布新规惹来“背叛开源”的争议
在分享 Rocky Linux 的新方法之前,对于不了解事情起因的小伙伴可以先简单回顾一下前情。
事情具体要从 6 月 21 日谈起,那时红帽发布了一则《Furthering the evolution of CentOS Stream》(进一步推动 CentOS Stream 的发展)的公告,宣布「CentOS Stream 将成为公共 RHEL 相关源代码发布的唯一仓库。而对于 Red Hat 客户和合作伙伴,依然可以根据其订阅协议通过 Red Hat Customer Portal 获得 RHEL 源代码」。
为什么这则公告会引起争议呢?
用两张图稍作解释,相信很多人对 Fedora、CentOS 和 RHEL 都不太陌生,它们同属于同一大型项目家族,不过要分上下游关系。
其中,在红帽官宣“2021 年底 CentOS 8 将不再维护”这一消息之前,三个项目是这样的关系:
Fedora => RHEL => CentOS
知名的 Linux 发行包 Fedora 处于上游,由红帽赞助,在开发流程中,很多新功能和新特性会首先加入到 Fedora 中,它相当于“试验基地”。等功能稳定后再加入 RHEL。然后基于 RHEL,移除不能自由使用的红帽商标之后,再构建出 CentOS。CentOS 凭借无成本、易获取的特性,成为企业级 Linux 发行版本中最常用的系统之一。
不过,正如上文所说,红帽决定在 2021 年底停服 CentOS 8,并带来了滚动发布的 CentOS Stream 项目。
彼时,有人吐槽称,IBM 花费 340 亿美元收购红帽之后,发现 CentOS 做得太好了,导致很多人不愿意订阅红帽的付费服务,所以才“干掉” CentOS。
然后上下游关系就变成了:
Fedora => CentOS Stream => RHEL
所谓滚动版本 CentOS Stream 并不是定期进行更新的,而是始终保持所有功能的更新,而拥有最新的功能(从内核到用户空间应用程序)会导致系统不稳定的问题,因此很可能存在漏洞或稳定性问题。所以,很多人并不敢贸然直接用 CentOS Stream。
值此之际,也有一拨人想要继续使用以前的 CentOS。恰巧,之前红帽都会把 RHEL 的公共源代码同步到到 git.centos.org,所有人都可以直接使用,于是这拨人基于 RHEL 打造了 1:1 二进制兼容的系统,譬如 AlmaLinux、Rocky Linux、EuroLinux 等。
令他们有些郁闷的是,好景不长,红帽在 6 月 21 日发布的新规导致 RHEL 源代码不会再同步至 git.centos.org 上,且此源码只对红帽的客户和合作伙伴开放使用。
简单而言,没有付费,就没法直接使用 RHEL 的公共源代码了,这无疑对 RHEL 的下游带来不可估量的影响。
开源 vs 拒绝“白嫖”?
也正因此,很多人认为红帽违背了开源精神。
红帽前员工 Jeff Law 在 Fedora-devel 列表中直接发表了一条长的评论,指出,红帽公司的做法在技术上可能是合法的,也许对其业务有好处。然而,对我来说,这在道德上是不合情理的。了解我的人知道我不是一个狂热分子,但我确实有一套基本的道德价值观,而红帽公司越过了那条线。
另一个最古老的 RHEL 重建版本 Springdale Linux 的维护者也指出此举会给他们带来麻烦。作为一个由学术界设计和支持的版本,Springdale 曾经被称为 PUIAS Linux,是以普林斯顿大学和高级研究学院命名的,它甚至比 CentOS Linux 还要早。
甚至有人吐槽:“所以,现在你要为红帽的东西付费。那 Linus(Linux 之父)现在可以向红帽收取使用他的内核的费用吗?”
在不少开源人士看来,红帽此举不仅会对多个社区带来不便,也会损害外界对红帽在开源方面信任。
然而,站在红帽公司的角度来看,其核心平台副总裁 Mike McGrath 表示:
针对最近我们作出的围绕下游源代码的决定引起的愤怒,我感到这些愤怒情绪要么来自于那些不愿为生产红帽企业 Linux 需要付出的时间、精力和资源付费的人,要么来自那些因为自己的利益而想要重新打包它的人。这些对 RHEL 代码的需求是不诚实的。
......
我想特别提到重新构建者,他们与那些可能添加新的架构或编译标志的发行版不同(我们完全支持您扩展Linux的功能,而不是模仿这些功能)。
......
最终,我们没有找到重新构建 RHEL 的价值,并且我们没有义务让重新构建者的工作更加容易;这是我们的呼吁。
.......
如果是仅仅重新构建代码,而不对现有代码增加价值或进行任何修改,对于所有开源公司来说,这才是真正的威胁。这对开源来说是一个真正的威胁,有可能将开源重新变回到只适用于业余爱好者和黑客的活动。
Rocky Linux 另辟蹊径
然而,红帽的回应并不能让很多以社区方式驱动的企业级 Linux 组织、开发者们信服。
开发者 Jeff Geerling 表示:
我讨厌 Red Hat 的回应,他们称任何想要 CentOS 的人都是吃闲饭的人,事实上:
1. 成为 OSS 用户而不做出贡献在道德上并没有什么问题。
2. 我认识的几乎所有 RH 员工、贡献者、(以前的、现在的)倡导者都依赖 CentOS。
因此,除了信任问题和许可问题之外,我只是感到遗憾的是,做出这一决定的高层似乎与 CentOS 对整个 Red Hat 生态系统的长期健康的价值相去甚远(也许还包括 OpenShift) )他们不是一次而是两次杀死了它。
为了践行开源的原则,也为了抵制红帽的新规,有些下游项目开始“另辟蹊径”。
其中,Rocky Linux 在 6 月 29 日最新发布了一篇《保持开源开放》的公告,指出,红帽最近表达了他们的观点,即他们“在 RHEL 重建中找不到价值”。虽然我们认为这种观点是狭隘的,但红帽采取了强硬的立场,并且仅允许其付费客户访问 RHEL 的源代码。这些源代码主要由不属于红帽的上游开源项目包组成。
其实这一点,也有网友曾吐槽过:
Rocky Linux 在公告中写道,“以前,我们按照他们的建议,只从 CentOS Git 存储库获取 Rocky Linux 的源代码。但是,此存储库不再托管与 RHEL 对应的所有版本。因此,我们现在必须从多个来源收集源代码,包括 CentOS Stream、原始上游软件包和 RHEL SRPM。
此外,红帽的服务条款 (TOS) 和最终用户许可协议 (EULA) 规定了试图阻止合法客户行使 GPL 所保障的权利的条件。当社区争论这是否违反了 GPL 时,我们坚信这样的协议违反了开源的精神和宗旨。因此,我们拒绝同意他们,这意味着我们必须通过坚持我们的原则和维护我们权利的渠道获得 SRPM(“源代码形式的 RPM 包)。”
基于此,Rocky Linux 分享了两种方式获得 RHEL 源代码:
一种选择是使用基于 RHEL 的 UBI 容器镜像,可从多个在线来源(包括 Docker Hub)获得。使用 UBI 映像,可以轻松可靠且不受阻碍地获取红帽源代码。我们已经通过 OCI(Open Container Initiative)容器对此进行了验证,它完全按预期工作。
另一种方法是使用付费的公共云实例。有了这个,任何人都可以在云中启动 RHEL 镜像,从而获得所有软件包和勘误表的源代码。这是最容易扩展的,因为我们可以通过 CI 管道完成所有这些工作,启动云镜像以通过 DNF 获取源代码,并自动发布到我们的 Git 存储库。
Rocky Linux 还特别说道,「由于 GPL 的强大功能,这些方法成为可能。没有人可以阻止 GPL 软件的重新分发。重申一下,这两种方法都使我们能够合法地获得 RHEL 二进制文件和 SRPM,而不会损害我们对开源软件的承诺或同意妨碍我们权利的 TOS 或 EULA 限制。我们的法律顾问向我们保证,我们有权获得我们收到的任何二进制文件的源代码,确保我们能够按照我们的初衷继续推进 Rocky Linux。如果不幸,Red Hat 决定加大力度对社区产生负面影响,Rocky Linux 将继续为整个开源社区的最大利益服务。」
争议不断
不过,对于 Rocky Linux 提出的新的方法,有人担心红帽应该不会在这方面让步,如果找到绕过这些限制的方法,那么红帽极有可能会进一步提出新的限制,所以“另辟蹊径”未必是明智之举。
与此同时,外媒 The Register 也评价道,「任何企业都有合法权利捍卫其开发的模型和产品。撇开大量不真正了解开源许可证如何工作的愤怒的人不谈,我们的印象是,这里的核心问题是,有很多人觉得仅仅因为这是 Linux,他们有某种权利免费获得它。不幸的是,他们没有。这不是自由软件中的“自由”的意思,而且从来都不是。红帽投入了大量的工作来开发自由软件,确保其代码能够回到上游,并生产安全、可靠和长期稳定的支持版本的固有快速变化的 FOSS 软件,主要针对大型企业客户。
经过十多年的尝试,红帽可能终于找到了关闭 RHEL 重建售后市场的方法。它从来没有义务以一种使竞争者很容易构建相同副本的形式来提供现成的源代码。
也许批评者是对的:从长远来看,这可能对红帽有害,但它进入企业软件销售的行动是非常成功的,就目前而言,这实际上可以帮助红帽公司。」
参考:
https://rockylinux.org/news/keeping-open-source-open/
https://blog.csdn.net/bandaoyu/article/details/128712908
https://www.theregister.com/2023/06/28/rocky_linux_rhel_ripples/
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/YYPMJAFR3GQPF3P74I7FGK45UYFOWNUS/
推荐阅读: