-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
rhel-10.0
-
None
-
No
-
None
-
rhel-sst-centos-stream
-
None
-
False
-
-
None
-
None
-
None
-
None
-
None
What were you trying to do that didn't work?
EPEL 10 is designed to integrate with RHEL 10 minor versions, included CentOS Stream 10 as the leading minor version. The plan is described in greater detail in the original proposal. A key part of that plan has been that RHEL 10 will be aware of its minor version and set the dnf variable releasever_minor, while CentOS Stream 10 will leave this variable unset. Support for releasever_minor (and the corresponding releasever_major) was merged in dnf last year and is already available in the version of dnf we have available in RHEL 10. However, the logic for setting this relies on releasever being set to the full version, e.g. 10.0. Currently it is set to just 10. That results in the follow values in the RHEL 10 Beta:
- releasever = 10
- releasever_major = 10
- releasever_minor = unset
These are the expected values for CentOS Stream 10, but not for RHEL 10. As best I can tell, we have two possible paths forward to resolve this.
The first option would be to change the system-release(releasever) virtual provides in the redhat-release package from 10 to 10.0. This option feels more correct to me, but would be a change from the format used in RHEL 9. For whatever it's worth, this variable has changed format before. In RHEL 7 it was set to variant-named values like 7Server, but in RHEL 8 it was set to 8. This change would result in these values in RHEL 10:
- releasever = 10.0
- releasever_major = 10
- releasever_minor = 0
The second option would be to change dnf's logic to allow releasever_minor to be set while leaving releasever set to just the major version. This would be more compatible with how releasever was set in RHEL 9, and would effectively make releasever_major an alias for releasever. However, a code change in dnf would be quite a bit more complex than changing a virtual provides in redhat-release. This approach would result in these values:
- releasever = 10
- releasever_major = 10
- releasever_minor = 0
What is the impact of this issue to you?
Having releasever_minor set one way or the other is critical to how we have structured the EPEL 10 infrastructure and packaging pipeline. Not getting this addressed would involve significant rework for EPEL 10, including possible code changes to MirrorManager and changes to the already established mirror directory structure.
Please provide the package NVR for which the bug is seen:
redhat-release-10.0-14.4.el10
dnf-4.20.0-6.el10
How reproducible is this bug?:
always
Steps to reproduce
python3 -c 'import dnf; print({k: v for k, v in dnf.Base().conf.substitutions.items() if k.startswith("releasever_")})'
Expected results
{'releasever_major': '10', 'releasever_minor': '0'}
Actual results
{'releasever_major': '10', 'releasever_minor': ''}