From cb1bfb98a0680c1495c503a846c6b810861e2d95 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 1 Oct 2024 08:27:41 +0530 Subject: [PATCH] Linux installer: Workaround for Python 3.13 breaking SSL Fixes #2083284 [Calibre installation script fails on Fedora 41 arm64 with ssl error](https://bugs.launchpad.net/calibre/+bug/2083284) --- setup/linux-installer.py | 2 ++ setup/linux-installer.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/setup/linux-installer.py b/setup/linux-installer.py index 13fcac6be3..3c7eced38d 100644 --- a/setup/linux-installer.py +++ b/setup/linux-installer.py @@ -515,6 +515,8 @@ if has_ssl_verify: def __init__(self, ssl_version, *args, **kwargs): kwargs['context'] = ssl.create_default_context(cafile=kwargs.pop('cert_file')) + if hasattr(ssl, 'VERIFY_X509_STRICT'): + kwargs['context'].verify_flags &= ~ssl.VERIFY_X509_STRICT httplib.HTTPSConnection.__init__(self, *args, **kwargs) else: class HTTPSConnection(httplib.HTTPSConnection): diff --git a/setup/linux-installer.sh b/setup/linux-installer.sh index dd5ad053af..e3882f8a3e 100644 --- a/setup/linux-installer.sh +++ b/setup/linux-installer.sh @@ -564,6 +564,8 @@ if has_ssl_verify: def __init__(self, ssl_version, *args, **kwargs): kwargs['context'] = ssl.create_default_context(cafile=kwargs.pop('cert_file')) + if hasattr(ssl, 'VERIFY_X509_STRICT'): + kwargs['context'].verify_flags &= ~ssl.VERIFY_X509_STRICT httplib.HTTPSConnection.__init__(self, *args, **kwargs) else: class HTTPSConnection(httplib.HTTPSConnection):