Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 2238526
Summary: | F40FailsToInstall: python3-plotnine+extra, python3-plotnine | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Fails To Install <fti-bugs> |
Component: | python-plotnine | Assignee: | Sandro <gui1ty> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | gui1ty, mhroncok, neuro-sig |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2023-09-12 23:03:18 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 2231790 |
Description
Fedora Fails To Install
2023-09-12 10:37:10 UTC
(In reply to Fedora Fails To Install from comment #0) > Your package (python-plotnine) Fails To Install in Fedora 40: > > can't install python3-plotnine+extra: > - nothing provides python3.12dist(scikit-misc) >= 0.2 needed by > python3-plotnine+extra-0.12.3-1.fc40.noarch Hmm, scikit-misc 0.3.0 is already in rawhide: https://bodhi.fedoraproject.org/updates/FEDORA-2023-42658c7152 > can't install python3-plotnine: > - nothing provides (python3.12dist(mizani) < 0.10~~ with > python3.12dist(mizani) > 0.9.0) needed by > python3-plotnine-0.12.3-1.fc40.noarch And python-mizani as well: https://bodhi.fedoraproject.org/updates/FEDORA-2023-0af73ca28e But for this one I'm not quite sure if the version satisfies the constraint: < 0.10~~ AND > 0.9.0. (In reply to Sandro from comment #1) > Hmm, scikit-misc 0.3.0 is already in rawhide: > https://bodhi.fedoraproject.org/updates/FEDORA-2023-42658c7152 Yet it does not provide python3.12dist(scikit-misc) = 0.3: $ repoquery -q --repo=koji --provides python3-scikit-misc ... python3.12dist(scikit-misc) = 0 python3dist(scikit-misc) = 0 And 0 is not >= 0.2, hence this dependency is not considered good enough for the resolver. It seems that the version information is missing from the GitHub sources. There is a protection to prevent accidentally providing version zero, but you disabled it via `%define _python_dist_allow_version_zero 1` in https://src.fedoraproject.org/rpms/python-scikit-misc/c/19f5d58b5ad0004c4da53a0ebd279088622c05ab?branch=rawhide Also note that `SETUPTOOLS_SCM_PRETEND_VERSION=%{python3_version}` is probably bogus, if it worked, the version would be 3.12, not 0.3.0. > And python-mizani as well: > https://bodhi.fedoraproject.org/updates/FEDORA-2023-0af73ca28e > But for this one I'm not quite sure if the version satisfies the constraint: > < 0.10~~ AND > 0.9.0. It does not. 0.10 is not < 0.10~~. (In reply to Miro Hrončok from comment #2) > $ repoquery -q --repo=koji --provides python3-scikit-misc > ... > python3.12dist(scikit-misc) = 0 > python3dist(scikit-misc) = 0 Fix in https://src.fedoraproject.org/rpms/python-scikit-misc/pull-request/8 It looks like I messed this up big time. Thanks for the intervention and the PR. I get this fixed asap. Retracing my steps, not as an excuse, but as an investigation into what lead me to believe I was doing the right thing, I rebuilt scikit-misc without the "fix". This produces the following error message: Error: The version in the Python package metadata 0.0.0 normalizes to zero. It's likely a packaging error caused by missing version information (e.g. when using a version control system snapshot as a source). Try providing the version information manually when building the Python package, for example by setting the SETUPTOOLS_SCM_PRETEND_VERSION environment variable if the package uses setuptools_scm. If you are confident that the version of the Python package is intentionally zero, you may %define the _python_dist_allow_version_zero macro in the spec file to disable this check. error: Dependency tokens must begin with alpha-numeric, '_' or '/': *** PYTHON_PROVIDED_VERSION_NORMALIZES_TO_ZERO___SEE_STDERR *** Provides: python-scikit-misc = 0.3.0-2.fc40 python3-scikit-misc = 0.3.0-2.fc40 python3-scikit-misc(x86-64) = 0.3.0-2.fc40 python3.12-scikit-misc = 0.3.0-2.fc40 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libflexiblas.so.3()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libm.so.6(GLIBC_2.23)(64bit) libm.so.6(GLIBC_2.29)(64bit) python(abi) = 3.12 python3.12dist(numpy) >= 1.22.3 rtld(GNU_HASH) I think I misread or failed to fully grasp the meaning of the first sentence: "Error: The version in the Python package metadata 0.0.0 normalizes to zero". I did not interpret that as the package "does not provide python3.12dist(scikit-misc) = 0.3". Probably due to reading further down: Provides: python-scikit-misc = 0.3.0-2.fc40 python3-scikit-misc = 0.3.0-2.fc40 python3-scikit-misc(x86-64) = 0.3.0-2.fc40 python3.12-scikit-misc = 0.3.0-2.fc40 which has all the expected version information. If that line would have stated: Provides: python-scikit-misc = 0.0.0-2.fc40 python3-scikit-misc = 0.0.0-2.fc40 python3-scikit-misc(x86-64) = 0.0.0-2.fc40 python3.12-scikit-misc = 0.0.0-2.fc40 things would more likely have fallen into place. Nonetheless, I should have investigated more thoroughly and/or asked around. Full disclosure regarding "note that `SETUPTOOLS_SCM_PRETEND_VERSION=%{python3_version}` is probably bogus": it's not. It's what I meant, because at some stage I thought the error message referred to the required Python version in the metadata. So, I intentionally set it to the Python version RPM was using during build. FEDORA-2023-d0950c307c has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-d0950c307c > If that line would have stated: > > Provides: python-scikit-misc = 0.0.0-2.fc40 python3-scikit-misc = 0.0.0-2.fc40 python3-scikit-misc(x86-64) = 0.0.0-2.fc40 python3.12-scikit-misc = 0.0.0-2.fc40 Unfortunately, that's not quite possible. The thing is, all the Provides here use the value of %{version}-%{release} directly. The Provides generator does not read any Python metadata. It's only the python3dist()/python3.12dist() Provides that are generated from Python metadata. And they are not generated at all when there is an error -- instead an invalid provide is generated to stop the build (*** PYTHON_PROVIDED_VERSION_NORMALIZES_TO_ZERO___SEE_STDERR ***), because that is currently the only way to terminate the build from a generator. It's quite tricky and complex. Nevertheless, the error message itself "The version in the Python package metadata 0.0.0 normalizes to zero." tries to say that the generator aborted not to provide python3dist(...) = 0, because that would likely be wrong. If you have suggestions to improve it, please don't hesitate to send them to https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ or https://src.fedoraproject.org/rpms/python-rpm-generators/blob/rawhide/f/pythondistdeps.py#_483 > Nevertheless, the error message itself "The version in the Python package metadata 0.0.0 normalizes to zero." tries to say that the generator aborted not to provide python3dist(...) = 0, because that would likely be wrong. If you have suggestions to improve it, please don't hesitate to send them to https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ or https://src.fedoraproject.org/rpms/python-rpm-generators/blob/rawhide/f/pythondistdeps.py#_483
I need to think that over. Looking at the output of `rpm -q --provides` on one of the failed builds, it shows indeed that only python3dist()/python3.12dist() have the version set to 0. If I can think of something that may clarify the issue and prevent others from falling into the same trap, I will certainly consider submitting a PR.
For now the issue is solved. scikit-misc has been fixed and I downgraded mizani to 0.9.3 to satisfy the requirement in plotnine 0.12.3. The next release of plotnine will likely work with mizani 0.10.0. I saw that in master the version was already bumped.
FEDORA-2023-d0950c307c has been pushed to the Fedora 39 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-d0950c307c` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-d0950c307c See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2023-d0950c307c has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report. |