Skip to content

gh-154053: Fix compilation of the ssl module against LibreSSL#154054

Merged
serhiy-storchaka merged 1 commit into
python:mainfrom
serhiy-storchaka:fix-libressl-sigalgs
Jul 19, 2026
Merged

gh-154053: Fix compilation of the ssl module against LibreSSL#154054
serhiy-storchaka merged 1 commit into
python:mainfrom
serhiy-storchaka:fix-libressl-sigalgs

Conversation

@serhiy-storchaka

@serhiy-storchaka serhiy-storchaka commented Jul 19, 2026

Copy link
Copy Markdown
Member

Since gh-138252 (TLS signature-algorithm support, 3.15+), _ssl fails to compile against LibreSSL, which does not provide SSL_CTX_set1_sigalgs_list() / SSL_CTX_set1_client_sigalgs_list():

Modules/_ssl.c:3867: call to undeclared function 'SSL_CTX_set1_client_sigalgs_list'
Modules/_ssl.c:3887: call to undeclared function 'SSL_CTX_set1_sigalgs_list'

With -Werror=implicit-function-declaration this is fatal, so _ssl is not built at all on LibreSSL (regression from 3.14).

This PR guards the set_client_sigalgs/set_server_sigalgs methods so they raise NotImplementedError on LibreSSL (matching how other library-unavailable features are handled in _ssl.c), and skips the corresponding test_ssl tests.

Verified:

  • OpenSSL 3.5.5: builds clean, sigalgs tests pass (unaffected).
  • LibreSSL 4.3.0 (OpenBSD 7.9): _ssl now compiles; the 7 sigalgs tests skip; the remaining test_ssl failures are identical to those already present on 3.14 (pre-existing LibreSSL divergences), i.e. no new failures.

LibreSSL does not provide SSL_CTX_set1_sigalgs_list() or
SSL_CTX_set1_client_sigalgs_list(), added in pythongh-138252, so _ssl failed to
compile against LibreSSL on 3.15+. Guard the set_server_sigalgs() and
set_client_sigalgs() methods so they raise NotImplementedError on LibreSSL,
and skip the corresponding tests.
@serhiy-storchaka serhiy-storchaka added the needs backport to 3.15 pre-release feature fixes, bugs and security fixes label Jul 19, 2026
@serhiy-storchaka
serhiy-storchaka merged commit 39b058f into python:main Jul 19, 2026
58 checks passed
@miss-islington-app

Copy link
Copy Markdown

Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.15.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Jul 19, 2026

Copy link
Copy Markdown

GH-154075 is a backport of this pull request to the 3.15 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.15 pre-release feature fixes, bugs and security fixes label Jul 19, 2026
serhiy-storchaka added a commit that referenced this pull request Jul 19, 2026
…H-154054) (GH-154075)

LibreSSL does not provide SSL_CTX_set1_sigalgs_list() or
SSL_CTX_set1_client_sigalgs_list(), added in gh-138252, so _ssl failed to
compile against LibreSSL on 3.15+. Guard the set_server_sigalgs() and
set_client_sigalgs() methods so they raise NotImplementedError on LibreSSL,
and skip the corresponding tests.
(cherry picked from commit 39b058f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant