On Tuesday, January 12, 2021 9:16 AM, Johnny Hughes johnny@centos.org wrote:
On 1/10/21 5:18 AM, Yedidyah Bar David wrote:
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:
The sources seem to be identical, right now, with the only difference being the 'Release:'.
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".
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.
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?
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
Some things, especially modules, will not matchup between stream and CentOS Linux 8. That is just how it is.
Please re-read what is asking here because you seem to be skipping over some helpful feedback.
We have no expectation Stream and CentOS/RHEL 8 to perfectly match up. Respectfully, that is not what is being asked.
Instead, please look at this from a novice user's point of view.
A novice is told from the Project Shift FAQ the following: "CentOS Stream will be getting fixes and features ahead of RHEL. Generally speaking we expect CentOS Stream to have fewer bugs and more runtime features as it moves forward in time but always giving direct indication of what is going into a RHEL release"
Then the novice's first experience switch to Stream is to get a message from dnf that packages will be "downgraded." This is the point we get to the confusion and discouraging adoption of Stream. The word "downgrade" implies Stream is not living up to being ahead in getting fixes and features.
But unlike a novice, Yedidyah Bar David has done his homework and shown Stream is providing everything it should. All the same sources and patches. It is just the Koji build number causing Stream to get flagged as a "downgrade" instead of being shown as the "side-grade" that is actually being performed.
So just please treat this as a Feature request to avoid novice user confusion:
Why is Stream using "Release: 30%{?dist}.0.1" instead of "Release: 30.0.1%{?dist}"?
The current release format is resulting in misleading output from dnf based on koji build numbers. Since CentOS 8/RHEL 8 will frequently have build number later than Stream, wouldn't it be preferable to prefix the build number such that Stream gets treated by dnf as an upgrade instead of a downgrade?