Bug 44944

Summary: support for cryptography 39
Product: Sisyphus Reporter: Stanislav Levin <slev>
Component: python3-module-opensslAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: lav
Version: unstable   
Hardware: x86_64   
OS: Linux   
Bug Depends on:    
Bug Blocks: 49358    

Description Stanislav Levin 2023-01-17 15:58:04 MSK
certbot depends on PyOpenSSL. PyOpenSSL 22.1.0 (current version in Sisyphus) in turn pins its runtime dependency on cryptography to `>=38.0.0,<39`. Sisyphus' cryptography has version 39.

This breaks certbot:
```
[builder@localhost .in]$ certbot --debug --help 
Exiting abnormally:
Traceback (most recent call last):
  File "/usr/bin/certbot", line 36, in <module>
    sys.exit(load_entry_point('certbot==1.32.0', 'console_scripts', 'certbot')())
  File "/usr/share/certbot/certbot/main.py", line 19, in main
    return internal_main.main(cli_args)
  File "/usr/share/certbot/certbot/_internal/main.py", line 1705, in main
    plugins = plugins_disco.PluginsRegistry.find_all()
  File "/usr/share/certbot/certbot/_internal/plugins/disco.py", line 241, in find_all
    plugin_ep = cls._load_entry_point(entry_point, plugins, with_prefix=False)
  File "/usr/share/certbot/certbot/_internal/plugins/disco.py", line 261, in _load_entry_point
    plugin_ep = PluginEntryPoint(entry_point, with_prefix)
  File "/usr/share/certbot/certbot/_internal/plugins/disco.py", line 60, in __init__
    self.plugin_cls: Type[interfaces.Plugin] = entry_point.load()
  File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 2470, in load
    self.require(*args, **kwargs)
  File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 2493, in require
    items = working_set.resolve(reqs, env, installer, extras=self.extras)
  File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 800, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (cryptography 39.0.0 (/usr/lib64/python3/site-packages), Requirement.parse('cryptography<39,>=38.0.0'), {'PyOpenSSL'})
```

PyOpenSSL 23.0.0 bumped dependency on cryptography to `>=38.0.0,<40"`:
https://github.com/pyca/pyopenssl/pull/1175
Comment 1 Stanislav Levin 2023-04-24 11:21:33 MSK
@Every@ major release of cryptography breaks this package.

I suggest to get rid of upper limit:
https://github.com/pyca/pyopenssl/blob/d788a4f1ee2cfe0642ea9e0533bb840077a88ca6/setup.py#L101
Comment 2 Vitaly Lipatov 2023-08-01 01:08:14 MSK
Проверил, что текущая
python3-module-openssl-23.2.0
работает с текущей
python3-module-cryptography-41.0.2
Comment 3 Stanislav Levin 2023-08-01 11:36:27 MSK
Эта проблема происходила и будет происходить при каждом несовместимом (по мнению авторов pyopenssl) обновлении cryptography. Например, сейчас они считают, что "cryptography>=41.0.0,<42". Мое предложение в силе https://bugzilla.altlinux.org/show_bug.cgi?id=44944#c1
Comment 4 Vitaly Lipatov 2024-02-18 03:09:42 MSK
(Ответ для Stanislav Levin на комментарий #3)
> Эта проблема происходила и будет происходить при каждом несовместимом (по
> мнению авторов pyopenssl) обновлении cryptography. Например, сейчас они
> считают, что "cryptography>=41.0.0,<42". Мое предложение в силе
> https://bugzilla.altlinux.org/show_bug.cgi?id=44944#c1
Пока решил не игнорировать мнение авторов pyopenssl и добавил
аналогичную зависимость к пакету, чтобы требуемая версия cryptography всегда была в репозитории.
Начиная с
python3-module-openssl.git 23.2.0-alt2