Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 878107

Summary: net-misc/httpie-2.6.0 crashes start with dev-python/charset_normalizer-3.0.0
Product: Gentoo Linux Reporter: Miroslav Jaroš <mirek>
Component: Current packagesAssignee: Piotr Karbowski (RETIRED) <slashbeast>
Status: RESOLVED DUPLICATE    
Severity: normal CC: mgorny, python
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Miroslav Jaroš 2022-10-23 16:44:34 UTC
The httpie package contains within a code a dependency on the `charset-normalizer` python library stating that it must be strictly lesser than 3 and above or equal to 2. But this dependency is not reflected within the ebuild of net-misc/httpie-2.6.0. Since the `dev-python/charset_normalizer-3.0.0` was recently added to the package tree (2 days ago as of writing this issue), after full system upgrade the http binary stops working.

Reproducible: Always

Steps to Reproduce:
1. Update whole system `emerge -aUNDv @world`
2. Install net-misc/httpie
3. Execute `http` binary
Actual Results:  
The execution of `http` script fails with quite long stacktrace - can be provided if needed, but the most important piece of information is following line:

pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})



Expected Results:  
The http binary works as expected.

The problem is quite recent, because `dev-python/charset_normalizer-3.0.0` was added to the package tree 2 days ago.
Quick workaround is to merge `dev-python/charset_normalizer-2.1.1-r1` which fixes the issue.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-10-23 16:47:27 UTC
Could you share the output in full please? It matters what exactly thinks it needs older charset_normalizer. The fault is not necessarily in httpie.
Comment 2 Miroslav Jaroš 2022-10-23 16:53:04 UTC
Sure

```
$ http
Traceback (most recent call last):
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 581, in _build_master
    ws.require(__requires__)
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 909, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/mjaros/.local/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/http", line 33, in <module>
    sys.exit(load_entry_point('httpie==2.6.0', 'console_scripts', 'http')())
  File "/usr/lib/python3.10/site-packages/httpie/__main__.py", line 8, in main
    from httpie.core import main
  File "/usr/lib/python3.10/site-packages/httpie/core.py", line 7, 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 "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3260, in <module>
    def _initialize_master_working_set():
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3272, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/home/mjaros/.local/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'})
```
Comment 3 Miroslav Jaroš 2022-10-23 17:32:03 UTC
@Sam James I've noticed that my output contains some resolution within user-local site-packages. Just to be sure I've tried to execute it with clean user. The error seems to be very similar - just the resolution happens only within the global site-packages. Here's output:

```
$ http
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/http", line 33, in <module>
    sys.exit(load_entry_point('httpie==2.6.0', 'console_scripts', 'http')())
  File "/usr/lib/python3.10/site-packages/httpie/__main__.py", line 8, in main
    from httpie.core import main
  File "/usr/lib/python3.10/site-packages/httpie/core.py", line 7, 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 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'})
```
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2022-10-24 15:03:19 UTC
Upgrade requests.

*** This bug has been marked as a duplicate of bug 878035 ***