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-%%7Bversion%7D.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