Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 878045 - app-crypt/certbot-1.31.0 renew certs dies with dev-python/charset_normalizer-3.0.0
Summary: app-crypt/certbot-1.31.0 renew certs dies with dev-python/charset_normalizer-...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Matthew Thode ( prometheanfire )
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-23 07:47 UTC by Aidan Marks
Modified: 2022-11-25 07:14 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aidan Marks 2022-10-23 07:47:15 UTC
app-crypt/certbot-1.31.0 is unhappy with dev-python/charset_normalizer-3.0.0.

Reminds me of the previous bug I opened on certbot with charset_normalizer-2.1.0 - bug 853247.

Downgrading to charset_normalizer-2.1.1-r1 fixes this.

# equery l certbot charset_normalizer
 * Searching for certbot ...
[IP-] [  ] app-crypt/certbot-1.31.0:0

 * Searching for charset_normalizer ...
[IP-] [  ] dev-python/charset_normalizer-3.0.0:0
# 
# /usr/bin/certbot renew --quiet --max-log-backups 100 --nginx-ctl /usr/sbin/nginx --deploy-hook '/etc/init.d/postfix restart'
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 581, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 909, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.10/certbot", line 33, in <module>
    sys.exit(load_entry_point('certbot==1.31.0', 'console_scripts', 'certbot')())
  File "/usr/lib/python-exec/python3.10/certbot", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.10/site-packages/certbot/main.py", line 6, in <module>
    from certbot._internal import main as internal_main
  File "/usr/lib/python3.10/site-packages/certbot/_internal/main.py", line 23, in <module>
    from acme import client as acme_client
  File "/usr/lib/python3.10/site-packages/acme/client.py", line 32, in <module>
    import requests
  File "/usr/lib/python3.10/site-packages/requests/__init__.py", line 141, in <module>
    from . import packages, utils
  File "/usr/lib/python3.10/site-packages/requests/utils.py", line 24, in <module>
    from . import certs
  File "/usr/lib/python3.10/site-packages/requests/certs.py", line 14, in <module>
    from certifi import where
  File "/usr/lib/python3.10/site-packages/certifi/__init__.py", line 1, in <module>
    from .core import contents, where
  File "/usr/lib/python3.10/site-packages/certifi/core.py", line 3, in <module>
    from certifi._patch import _verify_dist_info
  File "/usr/lib/python3.10/site-packages/certifi/_patch.py", line 4, in <module>
    import pkg_resources
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3260, in <module>
    def _initialize_master_working_set():
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3272, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 795, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'charset-normalizer<3,>=2' distribution was not found and is required by requests
#
Comment 1 Karl-Johan Karlsson 2022-11-23 20:56:44 UTC
As of dev-python/requests-2.28.1-r1 (https://github.com/gentoo/gentoo/pull/27909) this seems to work for me.
Comment 2 Aidan Marks 2022-11-24 18:27:49 UTC
Agree, fixed in the other bug 878035 opened on the same day.

Begs the question, as this is not the first time for this version compatibility issue, is there a better way to handle the revision uplifts?
Comment 3 Larry the Git Cow gentoo-dev 2022-11-25 07:14:26 UTC
The bug has been closed via the following commit(s):

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

commit 7e1e27390394fa64b6c44e87a8c3e737ce9ef2e4
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-11-25 07:10:42 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-11-25 07:10:42 +0000

    dev-python/certifi: use importlib
    
    This avoids breaking arbitrary packages on the system because they
    happen to use certifi, as certifi will pick up if any other packages
    on the system have an unsatisfied requirement - which is often
    bogus.
    
    Bug: https://bugs.gentoo.org/826874
    Bug: https://bugs.gentoo.org/854294
    Bug: https://bugs.gentoo.org/878035
    Closes: https://bugs.gentoo.org/878045
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-python/certifi/certifi-3021.3.16-r3.ebuild     |  55 +++++++
 .../files/certifi-3021.3.16-use-importlib.patch    | 164 +++++++++++++++++++++
 2 files changed, 219 insertions(+)