[CentOS-devel] Upgrade to Stream wants to downgrade e.g. httpd

Sun Jan 10 11:18:31 UTC 2021
Yedidyah Bar David <didi at redhat.com>

Hi all,

I have a CentOS 8.3 machine I want to upgrade to Stream following [1].

After fighting with it a bit due to oVirt-specific issues [2], I
reached the current point: doing 'dnf update' updated everything
nicely, but now doing 'dnf distro-sync' wants to downgrade these
packages:

Downgrading:
 httpd       x86_64 2.4.37-30.module_el8.3.0+462+ba287492.0.1   appstream 1.7 M
 httpd-filesystem
             noarch 2.4.37-30.module_el8.3.0+462+ba287492.0.1   appstream  37 k
 httpd-tools x86_64 2.4.37-30.module_el8.3.0+462+ba287492.0.1   appstream 104 k
 mod_ssl     x86_64 1:2.4.37-30.module_el8.3.0+462+ba287492.0.1 appstream 133 k
 python3-docutils
             noarch 0.14-12.module_el8.3.0+389+6a62c88d         appstream 1.6 M
 python36    x86_64 3.6.8-2.module_el8.3.0+389+6a62c88d         appstream  19 k

I specifically mention httpd in Subject because that's the one I spent
some time looking at, but the issue is general.

I currently have httpd-2.4.37-30.module_el8.3.0+561+97fdbbcc.x86_64 .
It seems to be the result of [3], which says it was built from:
git+https://git.centos.org/rpms/httpd#2f74eecf85362e67c403b7b1386a729da3e5c33d
.

distro-sync wants to downgrade to
2.4.37-30.module_el8.3.0+462+ba287492.0.1 , which seems to be the
result of [4], which says it was built from:
git+https://git.centos.org/rpms/httpd#fcb5444a5c0aefcd065e6c4a805a454e4988b78c
.

cloning the git repo, and then checking the difference between them, I get:

$ git diff 2f74eecf fcb5444a
diff --git a/SPECS/httpd.spec b/SPECS/httpd.spec
index 8322bd8..7d66f2e 100644
--- a/SPECS/httpd.spec
+++ b/SPECS/httpd.spec
@@ -13,7 +13,7 @@
 Summary: Apache HTTP Server
 Name: httpd
 Version: 2.4.37
-Release: 30%{?dist}
+Release: 30%{?dist}.0.1
 URL: https://httpd.apache.org/
 Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
 Source1: centos-noindex-8.0.tar.gz

So:

1. The sources seem to be identical, right now, with the only
difference being the 'Release:'.

2. I failed to find where '462+ba287492' and '561+97fdbbcc' are coming
from. I assume they are automatically-generated during the build
process, but not saved in the dist-git repo. These seem to be what's
causing the "newer" version in Stream to be considered a "Downgrade" -
462 < 561. Perhaps they are some kind of timestamps, or increasing
counters, etc., and '462' was built earlier than '561', even if in all
other regards it should be considered "newer".

3. Perhaps the intention was to have the release in Stream:

    Release: 30.0.1%{?dist}

?
I think this would have caused this to not be considered a downgrade.
I might be missing something.

4. IMO this is a bit confusing/discouraging. Can/Do we do anything so
that 8-Stream packages are always >= 8.3 ones? Perhaps a fix should be
manually applied to each and every package (if at all), but just
generating a report somewhere, perhaps with a place to a link to a bug
per package as applicable, can be done in batch, more-or-less, if I
got it right. Do we have something like this? Do we want something
like this?

5. Perhaps (alternatively?), Stream's version should just be rebuilt,
e.g. with 'Release: 30%{?dist}.0.2'.

Thanks and best regards,

[1] https://www.centos.org/centos-stream/

[2] https://github.com/oVirt/ovirt-cockpit-sso/pull/30

[3] https://koji.mbox.centos.org/koji/buildinfo?buildID=14516

[4] https://koji.mbox.centos.org/koji/buildinfo?buildID=12971
-- 
Didi