[CentOS-devel] De-branding in CentOS Stream 9

Sun Dec 5 00:26:44 UTC 2021
Phil Perry <pperry at elrepo.org>

On 04/12/2021 23:30, Josh Boyer wrote:
> On Sat, Dec 4, 2021 at 3:50 PM Neal Gompa <ngompa13 at gmail.com> wrote:
>>
>> On Sat, Dec 4, 2021 at 3:21 PM Phil Perry <pperry at elrepo.org> wrote:
>>>
>>> On 04/12/2021 17:16, Neal Gompa wrote:
>>>> On Sat, Dec 4, 2021 at 11:58 AM Phil Perry <pperry at elrepo.org> wrote:
>>>>>
>>>>> On 23/11/2021 12:24, Alex Iribarren wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> While trying to run the CentOS functional tests on CS9[*], I noticed
>>>>>> that several fail because of branding issues. For example,
>>>>>> p_httpd/httpd_centos_brand_server_tokens.sh expects the server string to
>>>>>> match `Apache.*\ (CentOS)`, when in fact the server line is:
>>>>>>
>>>>>> Server: Apache/2.4.51 (Red Hat Enterprise Linux 9) OpenSSL/3.0.0
>>>>>>
>>>>>> This got me thinking about how de-branding is supposed to work in CS9. I
>>>>>> would guess the usual process would have to be reversed now, where Red
>>>>>> Hat would remove the CentOS brand from CS9 packages and add the Red Hat
>>>>>> brand for the RHEL 9.0 builds, but clearly this isn't happening yet. I
>>>>>> guess this is an oversight?
>>>>>>
>>>>>> Cheers,
>>>>>> Alex
>>>>>>
>>>>>> [*] I know, I know, but I have to run *something* before you guys
>>>>>> release your own functional test suite for CS9!
>>>>>
>>>>> In the absence of anyone from the project commenting, I'm wondering how
>>>>> RHEL branding could have possibly got into a CentOS Stream release in
>>>>> the first place?
>>>>>
>>>>> The pictorial representation we are given is clear:
>>>>>
>>>>> https://blog.centos.org/2021/12/introducing-centos-stream-9/
>>>>>
>>>>> CentOS Stream is forked from Fedora Rawhide and exists upstream of any
>>>>> RHEL release so it's hard to envisage how this could possibly have
>>>>> happened. Surely now it is a case of RH removing CentOS branding for
>>>>> their RHEL release if Stream is truly the upstream development of RHEL?
>>>>>
>>>>> Wouldn't it be simpler to just call it RHEL Stream and do away with the
>>>>> extra layer of obfuscation and confusion, as that's more what it looks
>>>>> like (if it walks like a duck...)
>>>>
>>>> That would be a significant deviation of Red Hat's own brand strategy.
>>>> *All* of Red Hat's products have a "project brand" and a "product
>>>> brand".
>>>>
>>>> This has two major advantages:
>>>>
>>>> 1. It enshrines branding as an aspect of differentiation for the Red
>>>> Hat offering
>>>> 2. It makes it easy for third parties to make their own branded
>>>> product offerings based on the project and strengthen the ecosystem.
>>>>
>>>> In this particular case with Apache HTTPD, it's happening because
>>>> CentOS Stream uses the "Red Hat Enterprise Linux" BZ support product,
>>>> and that's how it gets set at build-time.
>>>>
>>>> See here: https://gitlab.com/redhat/centos-stream/rpms/httpd/-/blob/9d1c57410b67b48856876b6068b36bd3d1aa32d5/httpd.spec#L6
>>>>
>>>> It's an easy fix, I'll have it proposed momentarily.
>>>>
>>>>
>>>>
>>>
>>> Hi Neal,
>>>
>>> Thanks for the explanation, most helpful. However, again I'm confused as
>>> the spec file referenced above has two references in the changelog to
>>> having been rebuilt for RHEL 9 Beta. Again, how can anything that has
>>> happened downstream in a RHEL 9 Beta end up back in the upstream Stream
>>> product? The fact the two changelog entries are 2 months apart suggest
>>> there is little separation between the RHEL 9 Beta and CentOS Stream 9.
> 
> RHEL 9 Beta was built from CentOS Stream 9.  We had a soft opening
> back in April, and RHEL 9 work has been flowing through CentOS Stream
> 9.  It takes a while to create any RHEL release, Beta or otherwise, so
> having 2 commits months apart reference 9 Beta isn't uncommon.
> 
>>> Clearly the pictorial representation presented of the relationship
>>> between Stream and RHEL is not an accurate one.
> 
> It is accurate.  Can you help me understand what is confusing?  It
> shows CentOS Stream 9 being a continuously delivered OS, with RHEL
> releases being derived from it.  In this case, work went into CentOS 9
> Stream and a while later it showed up in 9 Beta.
> 

The pictorial representation shows RHEL 9 Beta (or any RHEL release for 
that matter) being forks off the continuously delivered CentOS Stream. 
There is no feedback loop shown whereby once forked, anything that 
happens in RHEL 9 Beta can end up back in Stream, as Stream has moved on 
since then.

As you say, this fork happened back in April. The httpd SPEC file shows 
a rebuild for RHEL 9 Beta on April 16th, and again on June 16th. How can 
the rebuild for RHEL 9 Beta on Jun 16th (or at least the changelog 
entry) that occurred 2 months _after_ the fork end up back in Stream? 
Their paths diverged (at least) 2 months previously, never to meet again 
according to the pictorial representation?

Maybe it's just semantics, or a naming thing, but there are irresolvable 
inconsistencies between the pictorial representation presented and the 
SPEC file changelog entries.