红帽回应对开源的承诺

news2024/11/26 4:22:18
导读红帽上周宣布了限制源代码访问性的政策,称其企业发行版 RHEL (Red Hat Enterprise Linux) 相关源码仅通过 CentOS Stream 公开,付费客户和合作伙伴可通过 Red Hat Customer Portal 访问到源代码。

红帽上周宣布了限制源代码访问性的政策,称其企业发行版 RHEL (Red Hat Enterprise Linux) 相关源码仅通过 CentOS Stream 公开,付费客户和合作伙伴可通过 Red Hat Customer Portal 访问到源代码。

此举引发了巨大争议,红帽甚至被指责 “背叛” 开源。

近日,红帽副总裁 Mike McGrath 通过官方博客做出回应,表示该公司恪守对开源的承诺。他表示,RHEL 是基于 CentOS Stream,而 CentOS Stream 的 gitlab 库是公开的,称 RHEL 闭源完全不正确。

回应全文如下:

上周末,我花了很多时间思考业界对我上一篇博客的反应。有人称我们是邪恶的;有人称我是被安插进来将红帽变成闭源的 IBM 高管 —— 这还只是其中较 “友善” 的说法。下面,有一些事情我们想澄清下。

我叫 Mike McGrath,是红帽核心平台工程副总裁。我在红帽工作已有 16 年了,在加入红帽之前,我是 Fedora 项目的志愿者。开源,以及和开源相关的所有事,对我来说非常重要。过去一周,我看到很多人对我们辛勤工作的红帽员工说了很多不友善和不实的话,这些员工和我一样,非常看重我们所做工作的核心价值。

尽管目前有关红帽的言论不一,但我们一直确保我们的辛勤工作成果对非客户也是可获得的。红帽采用并将一直采用开源开发模式。当我们发现一个漏洞或编写一个新功能时,我们会向上游贡献我们的代码。这不仅造福红帽和我们的客户,也让社区中的每个人受益。

我们不是简单地拿来上游软件包并进行重建。在红帽,成千上万的人花费时间编写代码,实现新功能、修复漏洞、集成不同的软件包,然后长期提供支持服务 —— 这些是我们的客户和合作伙伴所需要的。

这意味着我们花费了大量时间和无数个夜晚,将补丁反向移植到距现在已经有 5 到 10 年,甚至更久历史的代码上;无论何时,我们都在同时为 3-4 个主要版本流提供支持,同时对所有版本提供补丁和反向移植。

此外,当我们为 RHEL 中的问题开发修复补丁时,我们不仅仅将其应用于 RHEL—— 首先是应用于上游项目,例如 Fedora、CentOS Stream 或内核项目本身,然后再进行反向移植。维护和支持一个操作系统长达 10 年是一项艰巨的任务 —— 我们所做的工作有着巨大的价值。

我们一直并始终向上游发送我们的代码,遵守我们产品使用的开源许可证,其中包括 GPL。当我说我们遵守适用于我们代码的各种开源许可证时,我说的是事实。有那么多的人对开源软件和 GPL 产生如此多的误解,我感到震惊和失望,特别是行业观察者和那些即使是经验丰富的人,我认为他们应该更清楚事实的真相。细节,包括开源许可证和权利是很重要的,这些东西是红帽帮助形成的,也是红帽需要保护和发展的。

针对最近我们作出的围绕下游源代码的决定引起的愤怒,我感到这些愤怒情绪要么来自于那些不愿为生产红帽企业 Linux 需要付出的时间、精力和资源付费的人,要么来自那些因为自己的利益而想要重新打包它的人。这些对 RHEL 代码的需求是不诚实的。

那些在漫长的时间和夜晚中辛勤工作、相信开源价值观的热情贡献者,我们必须为他们的付出给予回报。将这些贡献者生产的代码仅仅拿来只是简单地重新打包,并进行原样转售,没有增加任何的价值,还让开源软件的生产变得不可持续。

红帽提供的价值包括关键的反向移植工作,以及在上游进行开发的未来功能和技术。如果开源软件的生产方式变得不可持续,这些都将停止,对任何人都不利。

我想特别提到重新构建者,他们与那些可能添加新的架构或编译标志的发行版不同(我们完全支持您扩展 Linux 的功能,而不是模仿这些功能)。

不久之前,红帽发现(例如 CentOS)重新构建者的工作具有价值。于是我们将 SRPM 包(源码包)推送到 git.centos.org,让他们可以轻松重新构建;我们甚至为他们去除了品牌标识。最近,我们已经认识到,拥有下游重新构建者没有价值。

曾经普遍认可的观点是,这些免费的重建版本只是为了培养 RHEL 专家,而并非是为了销售。我希望我们能够生活在那个世界,但现实并非如此。相反地,我们发现了一批用户,其中许多来自大型或超大型的 IT 组织,他们希望获得 RHEL 的稳定性、生命周期和硬件生态系统,而无需实际支持维护者、工程师、文档编写者和其他更多角色的 RHEL 的创造者。这些用户也决定不选择其他众多商业 Linux 发行版中的任何一个。

在一个健康的开源生态系统中,竞争和创新是相辅相成的。红帽、SUSE、Canonical、AWS 和微软都创建了与之相关的 Linux 发行版,并进行了品牌推广和生态系统开发工作。这些变体都使用并贡献 Linux 源代码,但没有一个声称与其他发行版 “完全兼容”。

最终,我们没有找到重新构建 RHEL 的价值,并且我们没有义务让重新构建者的工作更加容易;这是我们的呼吁。

当我们推出 CentOS Stream,大家对它的存在感到困惑。我承认,这个决定改变了长期以来的传统做法,这种改变可能会引起一些困惑。这表现在指责我们 “闭源” 了,“违背” GPL 协议。

有 CentOS Stream 二进制可执行文件;就有对应的源代码库。CentOS Stream 的位于 GitLab 的源代码仓库就是我们构建 RHEL 发布版的地方,对所有人都是公开的。称 RHEL 为 “闭源” 是绝对不真实且不准确的。

CentOS Stream 的更新速度比 RHEL 快,RHEL 虽不一定指向最新代码,但代码就是在那里的。如果你找不到它,那就是个 bug,请告诉我们。

我们还提供免费的红帽开发者订阅和用于开源基础设施的 RHEL for Open Source Infrastructure。开发者订阅为开发人员提供免费的 RHEL,并可在最多 16 个系统上使用,再次强调,这是免费的。个人可以将其用于自己的工作,而 RHEL 的客户则可将其用于员工的工作。RHEL for Open Source Infrastructure 旨在为开源项目(无论是否与红帽有任何关联)提供免费的 RHEL,满足其基础设施和开发需求。

最后,我想对所有开源公司说,无论你们的代码目前是否开源,或者你们是否考虑转向开源模式。从任何角度来看,红帽都是完全开源的,一直采用开源开发模式。我希望许多开源公司能够像我们一样取得成功。你们可以自行决定下游重建是否对你有价值,并让这一过程变得容易还是不容易。

如果是仅仅重新构建代码,而不对现有代码增加价值或进行任何修改,对于所有开源公司来说,这才是真正的威胁。这对开源来说是一个真正的威胁,有可能将开源重新变回到只适用于业余爱好者和黑客的活动。

我们不希望那样,我知道我们的社区成员、客户和合作伙伴也不希望那样。创新发生在上游。在他人的基础上进行建设性的工作正是开源的核心所在。让我们继续推动创新,相互支持,不断向前发展。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/742922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring springmvc springboot mybatis

Spring框架中的单例bean是线程安全的吗? 面试官:什么是AOP 候选人: aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产 生影响的公共行为和逻辑,抽取公共模块复用,降低耦合&#xff0c…

【专题速递】传输网络优化(长专题)

// RTC如何助力远程医疗?5G的差异化体现在哪?SMT如何将远程做到极致?7月29日LiveVideoStackCon2023上海站传输网络优化专场,为您解答。 传输网络优化 为应对互联网日益增长的加速需求、复杂的网络环境以及多种多样的视频业务&am…

第12讲:剖析 Trace 在 SkyWalking 中的落地实现方案(上)

SkyWalking 中 Trace 的相关概念以及实现类与 OpenTracing 中的概念基本类似,像 Trace、Span、Tags、Logs 等核心概念,在 SkyWalking Agent 中都有对应实现,只是在细微实现上略有区别的,其中最重要的是: SkyWalking 的…

Redis——redis的java客户端+(Jedis和SpringDataRedis)

客户端对比 一个Spring Data Redis底层可以兼容前两个 Jedis快速入门 直接使用命令名作为方法名就是Jedis好学的原因 第一步 &#xff1a; 创建一个maven项目并导入如下依赖&#xff0c;除了redis的以来还有一个junit5的依赖 <!--redis的依赖--><dependency>&l…

如何使用3D转换工具HOOPS Exchange与LibConverter进行流缓存导出?

如果您正在使用HOOPS Communicator&#xff0c;您可能想在生成流缓存模型之前利用HOOPS Exchange的高级功能和转换选项。 申请HOOPS试用 HOOPS中文网 如何使用 如您所知&#xff0c;LibConverter是HOOPS Communicator软件包中包含的一个简单的API&#xff0c;conver…

【GeoDa实用技巧100例】003:GeoDa连接并打开多种格式的数据源

GeoDa支持 shapefile、地理数据库、GeoJSON、MapInfo、GML、KML 以及 GDAL 库支持的其他矢量数据格式。该程序还将表格格式&#xff08;.csv、.dbf、.xls、.ods&#xff09;中的坐标转换为这些空间数据格式之一&#xff0c;并在不同文件格式之间转换数据。 文章目录 一、连接文…

深入了解 CSS 变量,让 CSS 创造更多可能!

日常开发中所说的 CSS 变量&#xff0c;实际上是 CSS 的变量函数 var() 与 CSS 自定义属性的统称。 CSS 变量带来的提升: 使得开发和维护成本更低了&#xff0c;如让整个网站的换肤变得更容易&#xff1b;改变了在图形交互效果的实现中 JavaScript 的占据比重&#xff0c;使得…

EasyUI Pagination 分页的两种做法小结

EasyUI Pagination 分页的两种做法小结 EasyUI 的 datagrid 支持服务器端分页&#xff0c;但是官方的资料比较少&#xff0c;以下总结了两种 datagrid 的服务器端分页机制&#xff0c;一种是datagrid默认机制&#xff0c;另一种是利用 Ajax 获取数据并填充 Datagrid&#xff0c…

矩形面积 (力扣)数学推理 JAVA

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, b…

系统驱动作业

作业1 myled_time.c #include <linux/init.h> #include <linux/module.h> #include<linux/of.h> #include<linux/gpio.h> #include<linux/of_gpio.h> #include<linux/timer.h>struct device_node *dnode; unsigned int gpiono; struct t…

Redis — 不仅仅是缓存

1*qIy3PMmEWNcD9Czh_21C8g.png Redis是一种快速、开源的内存键值&#xff08;NoSQL&#xff09;数据库&#xff0c;远远超越了缓存的功能。Redis使用RAM进行操作&#xff0c;提供亚毫秒级的响应时间&#xff0c;支持每秒数百万次请求。Redis主要用于缓存&#xff0c;但它也可以…

【CSS】文字渐变色

CSS设置文字渐变色 background-image: -webkit-linear-gradient(bottom,red,#fd8403,yellow); -webkit-background-clip: text; // 设置背景作用域 -webkit-text-fill-color: transparent;

docker数据卷权限管理--理论和验证

一、Docker容器中用户权限管理 Linux系统的权限管理是由uid和gid负责&#xff0c;Linux系统会检查创建进程的uid和gid&#xff0c;以确定它是否有足够的权限修改文件&#xff0c;而非是通过用户名和用户组来确认。 同样&#xff0c;在docker容器中主机上运行的所有容器共享同一…

【DC系列06】DC-6靶机复盘

【DC系列06】DC-6靶机复盘 我们打开这个靶机后首先还是先对靶机进行一个ip扫描&#xff0c;然后再单独对这个ip进行一个全局扫描。 扫描后ip地址是192.168.102.147。 我们再单独扫描一下 nmap -A 192.168.102.147 -p-这个靶机有一个特点就是扫描到ip后&#xff0c;你需要往…

vulnhub靶机渗透:PWNLAB: INIT

PWNLAB: INIT 靶机环境介绍nmap扫描端口扫描服务扫描漏洞扫描扫描总结 80端口目录爆破LFI利用 3306端口回到80端口文件上传 获得立足点横向移动提权总结参考 靶机环境介绍 https://www.vulnhub.com/entry/skytower-1,96/ 靶机IP&#xff1a;192.168.56.103 kali IP&#xff…

OceanBase 特殊的 INT 与时间类型隐式转换问题

本文作者分享了Oceanbase时间与数值类型隐式转换导致查询结果不符合预期或“不正确”问题的排查思路。 作者&#xff1a;任仲禹 爱可生 DBA 团队成员&#xff0c;擅长故障分析和性能优化&#xff0c;文章相关技术问题&#xff0c;欢迎大家一起讨论。 本文来源&#xff1a;原创投…

create-react-app -V 报错无法将“create-react-app”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

create-react-app -Vcreate-react-app : 无法将“create-react-app”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果 包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + create-react-app -V + ~~~~~~~~~~~~~~~~+ CategoryInfo …

移动端 van-datetime-picker 组件不支持选择秒,自己写组件支持选择 “年月日时分秒”

需求 使用 van-datetime-picker 组件写时间选择时&#xff0c;不支持选择 “秒” 要求能够选择精确到秒 代码 封装组件 TimePicker <template><div><!-- 弹出层 --><van-popup get-container"body" v-model"isPicker" position&qu…

实时数仓-DWS层

理论依据&#xff1a;指标体系 如果表有相似&#xff0c;可以抽取成一张表 轻度聚合&#xff1a;比如聚合10秒的先放到DWS&#xff0c;这样ADS在计算的时候&#xff0c;会更快

计讯物联5G工业路由器加速赋能公交车监控系统解决方案智能升级

一、方案概述 为提升公交车智能化管理水平为目的&#xff0c;保障公交车营运人员和乘客的安全&#xff0c;计讯物联以公交车智能调度营运为核心&#xff0c;推出计讯物联5G公交车一站式解决方案&#xff0c;通过构建感知层、传输层、设备层、应用层四层架构&#xff0c;通过感…