diff options
author | Eric Bavier <bavier@posteo.net> | 2024-11-19 23:34:15 -0600 |
---|---|---|
committer | Eric Bavier <bavier@posteo.net> | 2024-11-20 00:03:01 -0600 |
commit | c5c7def1da89a5fc518dd96d2430fe1749041d29 (patch) | |
tree | 9b9af47782c5f3361d2bd79e4b9d2f7431a90a61 | |
parent | 188fee428f7725751eadd8bcfa822c59990bdc3d (diff) |
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
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch | 34 | ||||
-rw-r--r-- | gnu/packages/sphinx.scm | 20 |
3 files changed, 51 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 7b09b61d8c6..265e70101c2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1934,6 +1934,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \ %D%/packages/patches/python-sip-include-dirs.patch \ %D%/packages/patches/python-sgmllib3k-assertions.patch \ + %D%/packages/patches/python-sphobjinv-defer-ssl-import.patch \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ %D%/packages/patches/python-typeguard-python3.10.patch \ %D%/packages/patches/python-uqbar-python3.10.patch \ diff --git a/gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch b/gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch new file mode 100644 index 00000000000..96c2c897034 --- /dev/null +++ b/gnu/packages/patches/python-sphobjinv-defer-ssl-import.patch @@ -0,0 +1,34 @@ +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): diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 31f53cf377d..191ebd268b0 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -1092,18 +1092,30 @@ executed during the Sphinx build process.") (define-public python-sphobjinv (package (name "python-sphobjinv") - (version "2.0.1") + (version "2.3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "sphobjinv" version)) (sha256 (base32 - "126lgm54c94ay3fci512ap4l607gak90pbz0fk98syxvj5izrrzx")))) + "10x4g92agj6aai0lj0xpcx58zlm1zamzws1w9dczsl1izpz07ij7")) + (patches (search-patches + "python-sphobjinv-defer-ssl-import.patch")))) (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) + (native-inputs + (list python-dictdiffer python-pytest python-pytest-check + python-sphinx python-stdio-mgr)) (propagated-inputs - (list python-attrs python-certifi python-fuzzywuzzy - python-jsonschema python-levenshtein)) + (list python-attrs python-certifi python-jsonschema)) (home-page "https://github.com/bskinn/sphobjinv") (synopsis "Sphinx cross-reference tool") (description "Sphinx objects.inv inspection/manipulation tool.") |