Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 834522 - dev-python/jaraco-functools-3.5.0-r1: pkg_resources.DistributionNotFound when required by dev-python/cheroot
Summary: dev-python/jaraco-functools-3.5.0-r1: pkg_resources.DistributionNotFound when...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Louis Sautier (sbraz)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-03-03 08:42 UTC by Wolfgang Müller
Modified: 2022-06-08 03:49 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
python trace when starting up 'cheroot' (file_834522.txt,2.31 KB, text/plain)
2022-03-03 08:44 UTC, Wolfgang Müller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wolfgang Müller 2022-03-03 08:42:53 UTC
jaraco-functools was updated recently to be built with flit instead of setuptools. As a result at least one package, dev-python/cheroot, does not run anymore, instead giving the following error when starting up:

    pkg_resources.DistributionNotFound: The 'jaraco.functools' distribution was not found and is required by cheroot

mgorny tracked this down to discrepancies in how build tools respect non-alphanumeric characters in wheel files. The older PEP 376 [1] states that

    name is converted to a standard distribution name by replacing any runs of non-alphanumeric characters with a single '-'.

but was never fully implemented by the standard libraries, instead finding a place in third-party tools. This was then superseded by a different standard for wheel files. Currently [2], 

    "In distribution names, any run of -_. characters (HYPHEN-MINUS, LOW LINE and FULL STOP) should be replaced with _ (LOW LINE) [..]". However, since older tools relied on an older standard, a full stop _must_ be accepted by them.

When installed by setuptools, jaraco-functools is installed with a full stop. When installed by flit, jaraco-functools is installed with an underscore.

To find its own version [3] cheroot uses pkg_resources which does not support new replacement rules of wheel files and therefore fails to load with the new version of jaraco-functools.

[1] https://www.python.org/dev/peps/pep-0376/
[2] https://packaging.python.org/en/latest/specifications/binary-distribution-format/#escaping-and-unicode
[3] https://github.com/cherrypy/cheroot/blob/b2c619f3e60682b9405a87cea48e8d30801b6048/cheroot/__init__.py#L13

Reproducible: Always

Steps to Reproduce:
1. Install dev-python/cheroot
2. Try running 'cheroot' from a shell

Alternatively, without installing dev-python/cheroot:

1. Open up a python REPL
2. Run the following:

    import pkg_resources; pkg_resources.require('jaraco.functools')
Actual Results:  
cheroot crashes with "pkg_resources.DistributionNotFound". See full log in attachment.

Expected Results:  
cheroot starts up
Comment 1 Wolfgang Müller 2022-03-03 08:44:05 UTC
Created attachment 766189 [details]
python trace when starting up 'cheroot'
Comment 2 Larry the Git Cow gentoo-dev 2022-03-04 07:57:43 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b68e88a901e7ac4a2f44f1d4dfec654d2fd8240

commit 5b68e88a901e7ac4a2f44f1d4dfec654d2fd8240
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2022-03-04 07:54:27 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2022-03-04 07:56:57 +0000

    dev-python/jaraco-text: Rename dist-info for pkg_resources
    
    Bug: https://bugs.gentoo.org/834522
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 .../{jaraco-text-3.7.0-r1.ebuild => jaraco-text-3.7.0-r2.ebuild}   | 7 +++++++
 1 file changed, 7 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b26d8560caf2b1d6da968ea1639d627f4c364979

commit b26d8560caf2b1d6da968ea1639d627f4c364979
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2022-03-04 07:53:29 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2022-03-04 07:56:54 +0000

    dev-python/jaraco-functools: Rename dist-info for pkg_resources
    
    Bug: https://bugs.gentoo.org/834522
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 ...-functools-3.5.0-r1.ebuild => jaraco-functools-3.5.0-r2.ebuild} | 7 +++++++
 1 file changed, 7 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6826f591416a13631c62aec8ee4bb563e295c7a2

commit 6826f591416a13631c62aec8ee4bb563e295c7a2
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2022-03-04 07:50:33 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2022-03-04 07:56:51 +0000

    dev-python/jaraco-context: Rename dist-info for pkg_resources
    
    Bug: https://bugs.gentoo.org/834522
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 ...raco-context-4.1.1-r1.ebuild => jaraco-context-4.1.1-r2.ebuild} | 7 +++++++
 1 file changed, 7 insertions(+)
Comment 3 benland100 2022-06-07 19:42:20 UTC
(In reply to Larry the Git Cow from comment #2)
> The bug has been referenced in the following commit(s):
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=5b68e88a901e7ac4a2f44f1d4dfec654d2fd8240
> 
> commit 5b68e88a901e7ac4a2f44f1d4dfec654d2fd8240
> Author:     Michał Górny <mgorny@gentoo.org>
> AuthorDate: 2022-03-04 07:54:27 +0000
> Commit:     Michał Górny <mgorny@gentoo.org>
> CommitDate: 2022-03-04 07:56:57 +0000
> 
>     dev-python/jaraco-text: Rename dist-info for pkg_resources
>     
>     Bug: https://bugs.gentoo.org/834522
>     Signed-off-by: Michał Górny <mgorny@gentoo.org>
> 
>  .../{jaraco-text-3.7.0-r1.ebuild => jaraco-text-3.7.0-r2.ebuild}   | 7
> +++++++
>  1 file changed, 7 insertions(+)
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=b26d8560caf2b1d6da968ea1639d627f4c364979
> 
> commit b26d8560caf2b1d6da968ea1639d627f4c364979
> Author:     Michał Górny <mgorny@gentoo.org>
> AuthorDate: 2022-03-04 07:53:29 +0000
> Commit:     Michał Górny <mgorny@gentoo.org>
> CommitDate: 2022-03-04 07:56:54 +0000
> 
>     dev-python/jaraco-functools: Rename dist-info for pkg_resources
>     
>     Bug: https://bugs.gentoo.org/834522
>     Signed-off-by: Michał Górny <mgorny@gentoo.org>
> 
>  ...-functools-3.5.0-r1.ebuild => jaraco-functools-3.5.0-r2.ebuild} | 7
> +++++++
>  1 file changed, 7 insertions(+)
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=6826f591416a13631c62aec8ee4bb563e295c7a2
> 
> commit 6826f591416a13631c62aec8ee4bb563e295c7a2
> Author:     Michał Górny <mgorny@gentoo.org>
> AuthorDate: 2022-03-04 07:50:33 +0000
> Commit:     Michał Górny <mgorny@gentoo.org>
> CommitDate: 2022-03-04 07:56:51 +0000
> 
>     dev-python/jaraco-context: Rename dist-info for pkg_resources
>     
>     Bug: https://bugs.gentoo.org/834522
>     Signed-off-by: Michał Górny <mgorny@gentoo.org>
> 
>  ...raco-context-4.1.1-r1.ebuild => jaraco-context-4.1.1-r2.ebuild} | 7
> +++++++
>  1 file changed, 7 insertions(+)

This fix appears to be no longer needed, and currently results in these ebuilds failing. I removed the "fix" from the ebuilds, and could emerge the packages again.
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-08 03:49:56 UTC
(I suspect the issue was actually because of the now reverted eclass change?)