gnu: python-eventlet: Set EVENTLET_NO_GREENDNS=yes by default.

This error propagates and pollutes user experience in Guix.  Until
someone tackles how to actually fix it, if it's even fixable in Guix,
change the hardcoded default.

* gnu/packages/python-web.scm (python-eventlet):
  [arguments]<#:phases>: Set EVENTLET_NO_GREENDNS=yes by default in
  phase 'avoid-OSError.
  [description]: Update the description to warn about the changed
  default.
(python-httpretty)[arguments]: Remove uneeded field.

* gnu/packages/python-xyz.scm (python-pydevd)[arguments]<#:phases>:
Unset the variable in phase 'pre-check.

* gnu/packages/tor.scm (onionshare, onionshare-cli)[arguments]
<#:phases>: Unset the variable in phase 'pre-check.

Change-Id: Ic3897a9e0006338c3bc8b4bcddab0948e76a5d87
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
Nicolas Graves 2025-07-23 18:34:04 +02:00 committed by Sharlatan Hellseher
parent 60b8b302d6
commit b960746197
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5
3 changed files with 18 additions and 25 deletions

View file

@ -623,13 +623,17 @@ Dropbox API v2.")
" and not test_patcher_existing_locks"
" and not test_dns_methods_are_green"))
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'avoid-OSError
(lambda _
;; If eventlet tries to load greendns, an OSError is thrown when
;; getprotobyname is called. Thankfully there is an environment
;; variable to disable the greendns import, so use it:
(setenv "EVENTLET_NO_GREENDNS" "yes"))))))
#~(modify-phases %standard-phases
(add-after 'unpack 'avoid-OSError
(lambda _
;; If eventlet tries to load greendns, an OSError is thrown when
;; getprotobyname is called. Thankfully there is an environment
;; variable to disable the greendns import, so use it. Note that
;; this error is propagated to child packages too, so enforce the
;; changed default.
(substitute* "eventlet/green/socket.py"
(("os\\.environ\\.get\\(\"EVENTLET_NO_GREENDNS\", ''\\)")
"os.environ.get(\"EVENTLET_NO_GREENDNS\", \"yes\")")))))))
(native-inputs
(list python-hatch-vcs
python-hatchling
@ -648,7 +652,11 @@ It uses @code{epoll} or @code{libevent} for highly scalable non-blocking I/O.
Coroutines ensure that the developer uses a blocking style of programming
that is similar to threading, but provide the benefits of non-blocking I/O.
The event dispatch is implicit, which means you can easily use @code{Eventlet}
from the Python interpreter, or as a small part of a larger application.")
from the Python interpreter, or as a small part of a larger application.
Note: In Guix, this package assumes the environment variable
@code{EVENTLET_NO_GREENDNS} defaults to @code{yes}. To try to use it, set it
to anything else.")
(license license:expat)))
(define-public python-globus-sdk
@ -781,12 +789,7 @@ of a fake DNS resolver.")
"test_request_parse_querystring"
"test_request_string_representation"
"test_request_stubs_internals")
" and not "))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
(setenv"EVENTLET_NO_GREENDNS" "yes"))))))
" and not "))))
(native-inputs
(list nss-certs-for-test
python-freezegun