[CentOS-devel] Balancing the needs around the CentOS platform

Mon Dec 21 19:30:57 UTC 2020
Mark Mielke <mark.mielke at gmail.com>

On Mon, Dec 21, 2020 at 7:59 AM Stephen John Smoogen <smooge at gmail.com> wrote:
> On Sun, 20 Dec 2020 at 22:19, Mark Mielke <mark.mielke at gmail.com> wrote:
>> > > CentOS point releases do *not* match as closely as possible the
>> > > corresponding RHEL point release?
>> > No, no one is saying that.  Matthew said that you can stay at a minor
>> > release of RHEL and still get security updates.  CentOS does not offer that.
>> This is not correct. Please stop saying it. CentOS is bug-for-bug
>> compatible with RHEL for *active* releases.
> We came up with the phrase "bug-for-bug" compatible during EL5 as a GOAL to aim for. CentOS was NEVER bug-for-bug compatible. We aimed for it like a target to get to but we also had to release the software eventually and don't have the extensive testing mechanisms to prove 'bug-for-bug' compatibility. Sometimes CentOS shipped packages which did not have a particular bug because we could not exactly duplicate the build environment and other times we added new bugs because our build environment is not exactly the same.

This is a good point of clarification. But, to be clear in both
directions, please let us know if you agree that these points are

1. CentOS was intended to be "bug-for-bug" compatible with RHEL as a GOAL.
2. This was especially difficult when Red Hat was not contributing to
the project, as it involved a lot of guesswork and trial and error.
3. This became easier when Red Hat began contributing, including
staging the source for build, and providing the build engines.
4. It's still not perfect, however, in almost every way there is
currently a 1:1 relationship between the exact .spec file and patch
set being used to build CentOS releases, in parallel (or a short time
later) to RHEL minor release.
5. CentOS 8 Stream is a departure from the above. What is built in
CentOS 8 Stream is *not* intended to be "bug-for-bug" compatible, but
is instead a moving target that represents the *next* RHEL minor
release. At any given point in time, it is not necessarily aligned
with either RHEL X.N, or RHEL X.N+1, but is something in between, or
may even be something beyond, such as RHEL X.N+2 depending upon RHEL
internal processes.

> Over the years as software has grown in greater complexity this divergence has become more likely. Modularity, software like rust, go, etc all require long build chains where any 'divergence' can introduce or remove bugs without a quick way to test.

Yep. The reproducibility problem inherent to RHEL has become more
complex, rather than less. Dropping CentOS 8 essentially abandons this
problem from a Red Hat perspective. Changing the subscription terms
for RHEL to allow the RHEL binaries to be directly used would solve
this problem from a Red Hat perspective (but possibly introduce
others, mostly relating to coming up with a better financially
sustainable model). Documenting (possible as configuration and code)
the build requirements for packages may be a cleaner solution.

> At best, CentOS has been "good-enough" compatible for a set of years. The only way to be bug-for-bug compatible would require a reproducible build and test environment.

I think "good-enough" is in the 99.9%+ today, depending upon what the
test is. With CentOS 8 Stream, it drops to something less, also
depending upon what the test is.

I think the people who understand the delta best, may be
under-representing the value they provided. The people who understand
it the least, never really appreciated the effort. :-)

Mark Mielke <mark.mielke at gmail.com>