1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-13 18:40:57 +02:00
guix/gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch
Eric Bavier c5c7def1da
gnu: python-sphobjinv: Update to 2.3.1.1.
* gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/sphinx.scm (python-sphobjinv): Update to 2.3.1.1.
[source]: Use patch.
[arguments]: Replace check phase.
[native-inputs]: New field.
[propagated-inputs]: Remove python-fuzzywuzzy and python-levenshtein.

Change-Id: Id60f45b222f286c8db55e9ce11378cf5ba82c603
2024-11-20 00:03:01 -06:00

34 lines
1.1 KiB
Diff

See suggestion in https://github.com/bskinn/sphobjinv/issues/275
This prevents the module from creating an ssl context upon import, when,
during a build especially, a certificate file may not be present. Otherwise
module import would fail.
--- a/src/sphobjinv/inventory.py
+++ b/src/sphobjinv/inventory.py
@@ -30,7 +30,6 @@ Sphinx |objects.inv| files.
"""
import re
-import ssl
import urllib.request as urlrq
from zlib import error as zlib_error
@@ -218,8 +217,15 @@ class Inventory:
#: zlib compression line for v2 |objects.inv| header
header_zlib = "# The remainder of this file is compressed using zlib."
- # Private class member for SSL context, since context creation is slow(?)
- _sslcontext = ssl.create_default_context(cafile=certifi.where())
+ # Private class member for SSL context
+ _sslcontext_ = None
+
+ @property
+ def _sslcontext(self):
+ import ssl
+ if not self._sslcontext_:
+ self._sslcontext_ = ssl.create_default_context(cafile=certifi.where())
+ return self._sslcontext_
@property
def count(self):