Add a patch for python eventlet, when using install_venv.py (see FAQ # 1485)
This commit is contained in:
parent
94ccd2f4a1
commit
d137ffdc2f
24
tools/eventlet-patch
Normal file
24
tools/eventlet-patch
Normal file
@ -0,0 +1,24 @@
|
||||
# HG changeset patch
|
||||
# User Soren Hansen <soren@linux2go.dk>
|
||||
# Date 1297678255 -3600
|
||||
# Node ID 4c846d555010bb5a91ab4da78dfe596451313742
|
||||
# Parent 5b7e9946c79f005c028eb63207cf5eb7bb21d1c3
|
||||
Don't attempt to wrap GreenPipes in GreenPipe
|
||||
|
||||
If the os module is monkeypatched, Python's standard subprocess module
|
||||
will return greenio.GreenPipe instances for Popen objects' stdin, stdout,
|
||||
and stderr attributes. However, eventlet.green.subprocess tries to wrap
|
||||
these attributes in another greenio.GreenPipe, which GreenPipe refuses.
|
||||
|
||||
diff -r 5b7e9946c79f -r 4c846d555010 eventlet/green/subprocess.py
|
||||
--- a/eventlet/green/subprocess.py Sat Feb 05 13:05:05 2011 -0800
|
||||
+++ b/eventlet/green/subprocess.py Mon Feb 14 11:10:55 2011 +0100
|
||||
@@ -27,7 +27,7 @@
|
||||
# eventlet.processes.Process.run() method.
|
||||
for attr in "stdin", "stdout", "stderr":
|
||||
pipe = getattr(self, attr)
|
||||
- if pipe is not None:
|
||||
+ if pipe is not None and not type(pipe) == greenio.GreenPipe:
|
||||
wrapped_pipe = greenio.GreenPipe(pipe, pipe.mode, bufsize)
|
||||
setattr(self, attr, wrapped_pipe)
|
||||
__init__.__doc__ = subprocess_orig.Popen.__init__.__doc__
|
@ -103,6 +103,12 @@ def install_dependencies(venv=VENV):
|
||||
pthfile = os.path.join(venv, "lib", "python2.6", "site-packages", "nova.pth")
|
||||
f = open(pthfile, 'w')
|
||||
f.write("%s\n" % ROOT)
|
||||
# Patch eventlet (see FAQ # 1485)
|
||||
patchsrc = os.path.join(ROOT, 'tools', 'eventlet-patch')
|
||||
patchfile = os.path.join(venv, "lib", "python2.6", "site-packages", "eventlet",
|
||||
"green", "subprocess.py")
|
||||
patch_cmd = "patch %s %s" % (patchfile, patchsrc)
|
||||
os.system(patch_cmd)
|
||||
|
||||
|
||||
def print_help():
|
||||
|
Loading…
Reference in New Issue
Block a user