Bug 2238526 - F40FailsToInstall: python3-plotnine+extra, python3-plotnine
Summary: F40FailsToInstall: python3-plotnine+extra, python3-plotnine
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-plotnine
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Sandro
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: F40FailsToInstall
TreeView+ depends on / blocked
 
Reported: 2023-09-12 10:37 UTC by Fedora Fails To Install
Modified: 2023-09-21 00:15 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-09-12 23:03:18 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Fedora Fails To Install 2023-09-12 10:37:10 UTC
Hello,

Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py
If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/

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
  
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
  
If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.


If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks.


P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors. To reproduce, use the koji/local repo only, e.g. in mock:

    $ mock -r fedora-40-x86_64 --config-opts mirrored=False install python3-plotnine+extra python3-plotnine


P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages

Thanks!

Comment 1 Sandro 2023-09-12 11:08:38 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.

Comment 2 Miro Hrončok 2023-09-12 14:54:17 UTC
(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~~.

Comment 3 Miro Hrončok 2023-09-12 15:11:31 UTC
(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

Comment 4 Sandro 2023-09-12 21:27:49 UTC
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.

Comment 5 Fedora Update System 2023-09-12 22:22:25 UTC
FEDORA-2023-d0950c307c has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-d0950c307c

Comment 6 Miro Hrončok 2023-09-12 22:46:30 UTC
> 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

Comment 7 Sandro 2023-09-12 23:03:18 UTC
> 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.

Comment 8 Fedora Update System 2023-09-13 02:51:42 UTC
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.

Comment 9 Fedora Update System 2023-09-21 00:15:48 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.