
Recently there was an announcement from red hat on their code submission decision at get.centos.org and it was followed by some unrest in the “community”. This made me curious to know how this ecosystem works and why sentiments were high, How rhel, centos, centos stream are related to each other, what is their community/business relationships with each other etc. So, lets try to find out.
There are may opensource project like kernel, qemu, gnome, glibc, iproute2 and 1000s more. All these projects have their own repos, written in different languages, different administration ways etc. The relevant projects which are needed to make an operating systems are compiled from their source code and go into building an operating system while maintaining appropriate versioning mappings. Such an effort is called Fedora. So, fedora is an open source operating system which maintains its own life-cycle with being in-sync with all these projects for versioning.
When Fedora is down streamed, packaged, much more testing execution is done, bug fixes, re-branded and SLAs, it becomes RHEL (Bug fixes go to Fedora working branch rawhide). red hat distributes its source code as “source RPM packages” which contain the original, unmodified upstream project’s source code, a collection of patches, and a “spec file” (ending in “.spec”) that enumerates the patches and describes how the package is to be installed. After few months, all source rpms published at git.centos.org which is now stopped with recent announcement.
So, process flow was, Fedora–> RHEL–>CentOS. Sometime in Sep 2021, red hat announced different flow and new is Fedora—>CentOS–>RHEL. Now, CentOS X releases before RHEL X but it is untested, may not have fix which RHEL X has as both have their own rolling updates. See this (courtesy red hat public website),

In old model, getting changes into CentOS Linux involves contributing to the upstream projects that are included in the distribution. This includes, but is not necessarily limited to, contributing to Fedora. Change that make it into Fedora might be in the next release of RHEL, which will then be in the next CentOS rebuild. This process can take years.
However, source RPMs were kept published at get.centos.com.
Now, with recent announcement, That has stopped. I will not go in to “Why” part, but i can try to write How it impacts the world? So, many small scale environments either in production or testing in labs use CentOS rather then RHEL. By using CentOS, they get similar reliability experience of RHEL and same time remains independent of RHEL licensing, SLAs etc. Though using CentOS does not give the level of support which RHEL subscribers get. Does it mean all those CentOS consumers have no way now? No, Here comes CentOS Stream.
CentOS Stream is extension of CentOS but with some “terms of usage and distribution” by red hat. However, till git.centos.org had source RPMs, few rhel “ecosystems” kept using it and publishing “RHEL grade” OS under their brands as CentOS Linux is no-cost and free to redistribute. That gets impacted now as no source RPMs are git.centos.org and CentOS Stream has some “terms”. Also, Unlike CentOS, CentOS Stream provides a way to contribute directly, cutting this process down to weeks or days.
Fedora, CentOS stream, RHEL have their own versioning, release time lines and support years.
Now, let me talk on something related but not directly.
There are two types of RPM packages:
source RPM (SRPM)
binary RPM
SRPMs and binary RPMs share the file format and tooling, but have different contents and serve different purposes. An SRPM contains source code, optionally patches to it, and a SPEC file, which describes how to build the source code into a binary RPM. A binary RPM contains the binaries built from the sources and patches. So, you don’t need source code compilation.
So, why i am talking about it, it is about the “others” i mentioned in blog headline, SUSE and Ubuntu.
SUSE Linux is available under two brands, openSUSE and SUSE Linux Enterprise. openSUSE is a free, community distribution driven by the openSUSE Project. SUSE Linux Enterprise is SUSE’s tested and certified open-source solution for major enterprises. So, I see OpenSUSE as Fedora and SUSE Linux as RHEL. But, I dont see anything similar to CentOS Stream.
When i tried to get SUSE source code, i got from https://www.suse.com/source-code/
“Typically, the source code is distributed along with the binaries. You can also send us a written request to provide the source code for a SUSE product by addressing your written request to:”
Debian is Upstream for Ubuntu. So i see Debian as Fedora and Ubutu as RHEL. Again, I don’t see CentOS Stream like thing here too. Then, a source code from tested, bug fixed branch/version is not available for Ubuntu too.
Hope, some confusion is cleared now or did it give birth to new questions? :-). Let me know.