So here’s one story to tell about the recent announcement that CentOS Stream will become the only CentOS. I’m not deep in these particular communities — most of this is just things I’ve picked up over the years and some light googling.
The Story
In the beginning — around the year 2000 — an enterprise software company named Red Hat™ created a linux distribution. The early days of this distro are a little murky but by 2003 there were two main linux projects coming out of Red Hat™. Both are still going today.
One distro is named Fedora — this project is a fully free and open source version of linux.
The second distro, Red Hat™ Enterprise Linux, is a version of linux based on Fedora, but that also contains proprietary binary programs whose source is not distributed with the operating system. This is the distribution companies pay for, and the distribution that Red Hat™’s training and consulting is centered around.
While both projects come out of Red Hat™ and contain similar programs, they are different distributions and behave differently.
In 2004, a linux distribution named CentOS popped up. This project’s goal was to create a distribution that was “functionally compatible” with RHEL, but that (at the time) was 100% open source and unaffiliated with the Red Hat™ organization(s). These so called RHEL clones were not uncommon, but CentOS was the one that gained a tremendous amount of use by folks building web services and solutions on top of linux. It helped that CentOS kept up with every RHEL release and matched them version for version.
In 2014 the Red Hat™ organization “joined forces” with CentOS and started sponsering CentOS development. The mechanics of all this remain murky, but it sounds like Red Hat™ hired some folks involved in the CentOS project, acquired the CentOS trademarks, and formed a board that, by — charter? –, is required to have a majority of Red Hat™ employees as board members.
Things seemed to hum along for a while. In September 2019 the project announced CentOS Stream. CentOS stream is basically a preview release for the next version of RHEL. In their own words
CentOS Stream will be a rolling-release Linux distro that exists as a midstream between the upstream development in Fedora Linux and the downstream development for Red Hat™ Enterprise Linux (RHEL). It is a cleared-path to contributing into future minor releases of RHEL while interacting with Red Hat™ and other open source developers. This pairs nicely with the existing contribution path in Fedora for future major releases of RHEL.
Finally, in late 2020 Red Hat™ announced the end of versioned CentOS support and that CentOS Stream would be their focus going forward. After this announcement, some of the original CentOS developers started up a new distro called Rocky Linux with a goal of
Rocky Linux is a community enterprise Operating System designed to be 100% bug-for-bug compatible with Enterprise Linux, now that CentOS has shifted direction.
It’s interesting to note the care that Rocky Linux takes not to use the Red Hat™ trademark when discussing their project.
Conclusions
The easy conclusion to draw is that Red Hat™ saw the massive adoption of CentOS as a risk, and set out with a deliberate strategy to mitigate that risk. That’s certainly one reading and it would be hard to deny that’s what some folks involved set out to do — but these days I find the murkier areas of the story the more interesting parts.
How much did having Red Hat’s commercial product and surrounding platform ecosystem as a lighthouse help the CentOS project be successful?
How much of the CentOS move away from formal stable releases was due to Red Hat™ being acquired by IBM?
What did the organization of CentOS look like prior to the changes in 2014? Was there a foundation involved, and if so was it an active organization or just some paperwork to formalize things? Who owned and transfered the CentOS trademarks to Red Hat? Who did Red Hat™ need to convince? Who didn’t they need to convince?
There’s an implicit, sometimes explicit, narrative about open source software where the through-line is “give everything an according to Hoyle OSL license, don’t worry about the commercial aspects, and it will all work out”.
That’s a seductive narrative — but it misses the symbiotic relationship open source projects have with the non-open-source commercial world. Almost every open source project has some relationship with this world, even if that relationship is just an individual programmer saying “Hey, look at me, I can add two plus two, you should hire me”.
Power and collaboration are weird things and the real story is always more complicated than it seems on the surface. There are no easy answers. After doing this for 20+ years the only advice I have is to strive for some form of mutualism or commensalism, be kind, and be wary of anyone who has a simple answer.