Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 829555 Details for
Bug 1035064
add python3-flup subpackage
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
git commit adding python3 subpackage
0001-added-python3-subpackage.patch (text/plain), 33.24 KB, created by
Jakub Dorňák
on 2013-11-27 01:41:31 UTC
(
hide
)
Description:
git commit adding python3 subpackage
Filename:
MIME Type:
Creator:
Jakub Dorňák
Created:
2013-11-27 01:41:31 UTC
Size:
33.24 KB
patch
obsolete
>From bdda7f11a18bb6c1809bb026dc97494651a22099 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Jakub=20Dor=C5=88=C3=A1k?= <jdornak@redhat.com> >Date: Wed, 27 Nov 2013 02:16:54 +0100 >Subject: [PATCH] added python3 subpackage > >--- > python-flup.spec | 61 +++-- > python3compat.patch | 737 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 783 insertions(+), 15 deletions(-) > create mode 100644 python3compat.patch > >diff --git a/python-flup.spec b/python-flup.spec >index e2c4f73..234ab4e 100644 >--- a/python-flup.spec >+++ b/python-flup.spec >@@ -1,55 +1,86 @@ >-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} >+%if 0%{?fedora} > 18 || 0%{?rhel} > 6 >+%global with_python3 1 >+%endif > > Name: python-flup > Version: 1.0.2 >-Release: 7%{?dist} >+Release: 8%{?dist} > Summary: Random assortment of WSGI servers for python > > Group: Development/Libraries > License: BSD > URL: http://trac.saddi.com/flup > Source0: http://www.saddi.com/software/flup/dist/flup-%{version}.tar.gz >+Patch0: python3compat.patch > BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) > > BuildArch: noarch > >-%if 0%{?fedora} >= 8 >-BuildRequires: python-setuptools-devel >-%else >-BuildRequires: python-setuptools >= 0.6c6 >+BuildRequires: python-devel >+BuildRequires: python-setuptools >+%if 0%{?with_python3} >+BuildRequires: python3-devel >+BuildRequires: python3-setuptools > %endif > > > %description > This package contains classes to create WSGI servers in python, e.g. fastcgi. > >+%if 0%{?with_python3} >+%package -n python3-flup >+Summary: Random assortment of WSGI servers for python >+Group: Development/Libraries >+ >+%description -n python3-flup >+This package contains classes to create WSGI servers in python3, e.g. fastcgi. >+%endif >+ > > %prep > %setup -q -n flup-%{version} >+%patch0 -p1 >+ >+%if 0%{?with_python3} >+cp -a . %{py3dir} >+%endif > > > %build >-python setup.py build >- >+%{__python} setup.py build > >-%install >-rm -rf $RPM_BUILD_ROOT >-mkdir $RPM_BUILD_ROOT >+%if 0%{?with_python3} >+pushd %{py3dir} >+%{__python3} setup.py build >+popd >+%endif > >-python setup.py install --skip-build --root $RPM_BUILD_ROOT > >+%install >+%{__python} setup.py install --skip-build --root %{buildroot} > >-%clean >-rm -rf $RPM_BUILD_ROOT >+%if 0%{?with_python3} >+pushd %{py3dir} >+%{__python3} setup.py install --skip-build --root %{buildroot} >+popd >+%endif > > > %files >-%defattr(-,root,root,-) > %doc ChangeLog > %{python_sitelib}/* > >+%if 0%{?with_python3} >+%files -n python3-flup >+%doc ChangeLog >+%{python3_sitelib}/* >+%endif >+ > > %changelog >+* Tue Nov 26 2013 Jakub DorÅák <jdornak@redhat.com> - 1.0.2-8 >+- added python3 subpackage >+ > * Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.2-7 > - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild > >diff --git a/python3compat.patch b/python3compat.patch >new file mode 100644 >index 0000000..79e9e0d >--- /dev/null >+++ b/python3compat.patch >@@ -0,0 +1,737 @@ >+diff -up --recursive flup-1.0.2.orig/flup/client/fcgi_app.py flup-1.0.2/flup/client/fcgi_app.py >+--- flup-1.0.2.orig/flup/client/fcgi_app.py 2007-10-17 18:48:03.000000000 +0200 >++++ flup-1.0.2/flup/client/fcgi_app.py 2013-11-27 02:04:55.274919096 +0100 >+@@ -136,13 +136,13 @@ def encode_pair(name, value): >+ if nameLength < 128: >+ s = chr(nameLength) >+ else: >+- s = struct.pack('!L', nameLength | 0x80000000L) >++ s = struct.pack('!L', nameLength | 0x80000000) >+ >+ valueLength = len(value) >+ if valueLength < 128: >+ s += chr(valueLength) >+ else: >+- s += struct.pack('!L', valueLength | 0x80000000L) >++ s += struct.pack('!L', valueLength | 0x80000000) >+ >+ return s + name + value >+ >+@@ -170,7 +170,7 @@ class Record(object): >+ while length: >+ try: >+ data = sock.recv(length) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([sock], [], []) >+ continue >+@@ -227,7 +227,7 @@ class Record(object): >+ while length: >+ try: >+ sent = sock.send(data) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([], [sock], []) >+ continue >+@@ -394,7 +394,7 @@ class FCGIApp(object): >+ return sock >+ >+ # To be done when I have more time... >+- raise NotImplementedError, 'Launching and managing FastCGI programs not yet implemented' >++ raise NotImplementedError('Launching and managing FastCGI programs not yet implemented') >+ >+ def _fcgiGetValues(self, sock, vars): >+ # Construct FCGI_GET_VALUES record >+diff -up --recursive flup-1.0.2.orig/flup/server/ajp_base.py flup-1.0.2/flup/server/ajp_base.py >+--- flup-1.0.2.orig/flup/server/ajp_base.py 2008-09-11 21:24:46.000000000 +0200 >++++ flup-1.0.2/flup/server/ajp_base.py 2013-11-27 02:04:55.275919093 +0100 >+@@ -170,8 +170,8 @@ def decodeString(data, pos=0): >+ return '', pos >+ s = data[pos:pos+length] >+ return s, pos+length+1 # Don't forget NUL >+- except Exception, e: >+- raise ProtocolError, 'decodeString: '+str(e) >++ except Exception as e: >++ raise ProtocolError('decodeString: '+str(e)) >+ >+ def decodeRequestHeader(data, pos=0): >+ """Decode a request header/value pair.""" >+@@ -181,14 +181,14 @@ def decodeRequestHeader(data, pos=0): >+ i = ord(data[pos+1]) >+ name = requestHeaderTable[i] >+ if name is None: >+- raise ValueError, 'bad request header code' >++ raise ValueError('bad request header code') >+ pos += 2 >+ else: >+ name, pos = decodeString(data, pos) >+ value, pos = decodeString(data, pos) >+ return name, value, pos >+- except Exception, e: >+- raise ProtocolError, 'decodeRequestHeader: '+str(e) >++ except Exception as e: >++ raise ProtocolError('decodeRequestHeader: '+str(e)) >+ >+ def decodeAttribute(data, pos=0): >+ """Decode a request attribute.""" >+@@ -210,11 +210,11 @@ def decodeAttribute(data, pos=0): >+ else: >+ name = attributeTable[i] >+ if name is None: >+- raise ValueError, 'bad attribute code' >++ raise ValueError('bad attribute code') >+ value, pos = decodeString(data, pos) >+ return name, value, pos >+- except Exception, e: >+- raise ProtocolError, 'decodeAttribute: '+str(e) >++ except Exception as e: >++ raise ProtocolError('decodeAttribute: '+str(e)) >+ >+ def encodeString(s): >+ """Encode a string.""" >+@@ -249,7 +249,7 @@ class Packet(object): >+ while length: >+ try: >+ data = sock.recv(length) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([sock], [], []) >+ continue >+@@ -276,7 +276,7 @@ class Packet(object): >+ raise EOFError >+ >+ if header[:2] != SERVER_PREFIX: >+- raise ProtocolError, 'invalid header' >++ raise ProtocolError('invalid header') >+ >+ self.length = struct.unpack('>H', header[2:4])[0] >+ if self.length: >+@@ -296,7 +296,7 @@ class Packet(object): >+ while length: >+ try: >+ sent = sock.send(data) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([], [sock], []) >+ continue >+@@ -446,12 +446,12 @@ class InputStream(object): >+ never send us an EOF (empty string argument). >+ """ >+ if not data: >+- raise ProtocolError, 'short data' >++ raise ProtocolError('short data') >+ self._bufList.append(data) >+ length = len(data) >+ self._avail += length >+ if self._avail > self._length: >+- raise ProtocolError, 'too much data' >++ raise ProtocolError('too much data') >+ >+ class Request(object): >+ """ >+@@ -616,7 +616,7 @@ class Connection(object): >+ while True: >+ try: >+ self.processInput() >+- except ProtocolError, e: >++ except ProtocolError as e: >+ self.logger.error("Protocol error '%s'", str(e)) >+ break >+ except (EOFError, KeyboardInterrupt): >+@@ -642,7 +642,7 @@ class Connection(object): >+ return >+ >+ if not pkt.length: >+- raise ProtocolError, 'unexpected empty packet' >++ raise ProtocolError('unexpected empty packet') >+ >+ pkttype = pkt.data[0] >+ if pkttype == PKTTYPE_FWD_REQ: >+@@ -654,7 +654,7 @@ class Connection(object): >+ elif pkttype == PKTTYPE_CPING: >+ self._cping(pkt) >+ else: >+- raise ProtocolError, 'unknown packet type' >++ raise ProtocolError('unknown packet type') >+ >+ def _forwardRequest(self, pkt): >+ """ >+@@ -666,7 +666,7 @@ class Connection(object): >+ i = ord(pkt.data[1]) >+ method = methodTable[i] >+ if method is None: >+- raise ValueError, 'bad method field' >++ raise ValueError('bad method field') >+ req.setMethod(method) >+ value, pos = decodeString(pkt.data, 2) >+ req.setProtocol(value) >+@@ -873,7 +873,10 @@ class BaseAJPServer(object): >+ try: >+ if headers_sent: >+ # Re-raise if too late >+- raise exc_info[0], exc_info[1], exc_info[2] >++ if hasattr(exc_info[1], with_traceback): >++ raise exc_info[1].with_traceback(exc_info[2]) >++ else: >++ raise exc_info[1] >+ finally: >+ exc_info = None # avoid dangling circular ref >+ else: >+@@ -906,7 +909,7 @@ class BaseAJPServer(object): >+ finally: >+ if hasattr(result, 'close'): >+ result.close() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] != errno.EPIPE: >+ raise # Don't let EPIPE propagate beyond server >+ finally: >+diff -up --recursive flup-1.0.2.orig/flup/server/ajp_fork.py flup-1.0.2/flup/server/ajp_fork.py >+--- flup-1.0.2.orig/flup/server/ajp_fork.py 2009-05-19 00:44:52.000000000 +0200 >++++ flup-1.0.2/flup/server/ajp_fork.py 2013-11-27 02:13:07.438750892 +0100 >+@@ -147,7 +147,7 @@ class WSGIServer(BaseAJPServer, PreforkS >+ >+ try: >+ sock = self._setupSocket() >+- except socket.error, e: >++ except socket.error as e: >+ self.logger.error('Failed to bind socket (%s), exiting', e[1]) >+ return False >+ >+@@ -173,7 +173,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/ajp.py flup-1.0.2/flup/server/ajp.py >+--- flup-1.0.2.orig/flup/server/ajp.py 2009-05-19 00:44:42.000000000 +0200 >++++ flup-1.0.2/flup/server/ajp.py 2013-11-27 02:12:57.319774469 +0100 >+@@ -149,7 +149,7 @@ class WSGIServer(BaseAJPServer, Threaded >+ >+ try: >+ sock = self._setupSocket() >+- except socket.error, e: >++ except socket.error as e: >+ self.logger.error('Failed to bind socket (%s), exiting', e[1]) >+ return False >+ >+@@ -175,7 +175,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/cgi.py flup-1.0.2/flup/server/cgi.py >+--- flup-1.0.2.orig/flup/server/cgi.py 2009-01-13 17:59:26.000000000 +0100 >++++ flup-1.0.2/flup/server/cgi.py 2013-11-27 02:04:55.275919093 +0100 >+@@ -50,7 +50,10 @@ class WSGIServer(object): >+ try: >+ if headers_sent: >+ # Re-raise original exception if headers sent >+- raise exc_info[0], exc_info[1], exc_info[2] >++ if hasattr(exc_info[1], with_traceback): >++ raise exc_info[1].with_traceback(exc_info[2]) >++ else: >++ raise exc_info[1] >+ finally: >+ exc_info = None # avoid dangling circular ref >+ elif headers_set: >+diff -up --recursive flup-1.0.2.orig/flup/server/fcgi_base.py flup-1.0.2/flup/server/fcgi_base.py >+--- flup-1.0.2.orig/flup/server/fcgi_base.py 2009-05-04 21:57:51.000000000 +0200 >++++ flup-1.0.2/flup/server/fcgi_base.py 2013-11-27 02:04:55.276919091 +0100 >+@@ -414,13 +414,13 @@ def encode_pair(name, value): >+ if nameLength < 128: >+ s = chr(nameLength) >+ else: >+- s = struct.pack('!L', nameLength | 0x80000000L) >++ s = struct.pack('!L', nameLength | 0x80000000) >+ >+ valueLength = len(value) >+ if valueLength < 128: >+ s += chr(valueLength) >+ else: >+- s += struct.pack('!L', valueLength | 0x80000000L) >++ s += struct.pack('!L', valueLength | 0x80000000) >+ >+ return s + name + value >+ >+@@ -448,7 +448,7 @@ class Record(object): >+ while length: >+ try: >+ data = sock.recv(length) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([sock], [], []) >+ continue >+@@ -505,7 +505,7 @@ class Record(object): >+ while length: >+ try: >+ sent = sock.send(data) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([], [sock], []) >+ continue >+@@ -570,11 +570,11 @@ class Request(object): >+ try: >+ self._flush() >+ self._end(appStatus, protocolStatus) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] != errno.EPIPE: >+ raise >+ >+- def _end(self, appStatus=0L, protocolStatus=FCGI_REQUEST_COMPLETE): >++ def _end(self, appStatus=0, protocolStatus=FCGI_REQUEST_COMPLETE): >+ self._conn.end_request(self, appStatus, protocolStatus) >+ >+ def _flush(self): >+@@ -597,7 +597,7 @@ class CGIRequest(Request): >+ self.stderr = sys.stderr >+ self.data = StringIO.StringIO() >+ >+- def _end(self, appStatus=0L, protocolStatus=FCGI_REQUEST_COMPLETE): >++ def _end(self, appStatus=0, protocolStatus=FCGI_REQUEST_COMPLETE): >+ sys.exit(appStatus) >+ >+ def _flush(self): >+@@ -646,7 +646,7 @@ class Connection(object): >+ self.process_input() >+ except (EOFError, KeyboardInterrupt): >+ break >+- except (select.error, socket.error), e: >++ except (select.error, socket.error) as e: >+ if e[0] == errno.EBADF: # Socket was closed by Request. >+ break >+ raise >+@@ -696,7 +696,7 @@ class Connection(object): >+ """ >+ rec.write(self._sock) >+ >+- def end_request(self, req, appStatus=0L, >++ def end_request(self, req, appStatus=0, >+ protocolStatus=FCGI_REQUEST_COMPLETE, remove=True): >+ """ >+ End a Request. >+@@ -745,7 +745,7 @@ class Connection(object): >+ >+ if not self._multiplexed and self._requests: >+ # Can't multiplex requests. >+- self.end_request(req, 0L, FCGI_CANT_MPX_CONN, remove=False) >++ self.end_request(req, 0, FCGI_CANT_MPX_CONN, remove=False) >+ else: >+ self._requests[inrec.requestId] = req >+ >+@@ -836,7 +836,7 @@ class MultiplexedConnection(Connection): >+ finally: >+ self._lock.release() >+ >+- def end_request(self, req, appStatus=0L, >++ def end_request(self, req, appStatus=0, >+ protocolStatus=FCGI_REQUEST_COMPLETE, remove=True): >+ self._lock.acquire() >+ try: >+@@ -979,7 +979,7 @@ class BaseFCGIServer(object): >+ socket.SOCK_STREAM) >+ try: >+ sock.getpeername() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.ENOTSOCK: >+ # Not a socket, assume CGI context. >+ isFCGI = False >+@@ -1092,7 +1092,10 @@ class BaseFCGIServer(object): >+ try: >+ if headers_sent: >+ # Re-raise if too late >+- raise exc_info[0], exc_info[1], exc_info[2] >++ if hasattr(exc_info[1], with_traceback): >++ raise exc_info[1].with_traceback(exc_info[2]) >++ else: >++ raise exc_info[1] >+ finally: >+ exc_info = None # avoid dangling circular ref >+ else: >+@@ -1125,7 +1128,7 @@ class BaseFCGIServer(object): >+ finally: >+ if hasattr(result, 'close'): >+ result.close() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] != errno.EPIPE: >+ raise # Don't let EPIPE propagate beyond server >+ finally: >+diff -up --recursive flup-1.0.2.orig/flup/server/fcgi_fork.py flup-1.0.2/flup/server/fcgi_fork.py >+--- flup-1.0.2.orig/flup/server/fcgi_fork.py 2009-05-19 00:45:19.000000000 +0200 >++++ flup-1.0.2/flup/server/fcgi_fork.py 2013-11-27 02:12:29.350839715 +0100 >+@@ -149,7 +149,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/fcgi.py flup-1.0.2/flup/server/fcgi.py >+--- flup-1.0.2.orig/flup/server/fcgi.py 2009-05-19 00:45:00.000000000 +0200 >++++ flup-1.0.2/flup/server/fcgi.py 2013-11-27 02:09:57.253196795 +0100 >+@@ -130,7 +130,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/fcgi_single.py flup-1.0.2/flup/server/fcgi_single.py >+--- flup-1.0.2.orig/flup/server/fcgi_single.py 2009-05-19 00:45:33.000000000 +0200 >++++ flup-1.0.2/flup/server/fcgi_single.py 2013-11-27 02:12:47.914796396 +0100 >+@@ -135,7 +135,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/preforkserver.py flup-1.0.2/flup/server/preforkserver.py >+--- flup-1.0.2.orig/flup/server/preforkserver.py 2009-05-04 22:42:06.000000000 +0200 >++++ flup-1.0.2/flup/server/preforkserver.py 2013-11-27 02:04:55.276919091 +0100 >+@@ -52,7 +52,7 @@ if not hasattr(socket, 'socketpair'): >+ import eunuchs.socketpair >+ except ImportError: >+ # TODO: Other alternatives? Perhaps using os.pipe()? >+- raise ImportError, 'Requires eunuchs module for Python < 2.4' >++ raise ImportError('Requires eunuchs module for Python < 2.4') >+ >+ def socketpair(): >+ s1, s2 = eunuchs.socketpair.socketpair() >+@@ -135,7 +135,7 @@ class PreforkServer(object): >+ >+ try: >+ r, w, e = select.select(r, [], [], timeout) >+- except select.error, e: >++ except select.error as e: >+ if e[0] != errno.EINTR: >+ raise >+ >+@@ -144,7 +144,7 @@ class PreforkServer(object): >+ # Receive status byte. >+ try: >+ state = child.recv(1) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] in (errno.EAGAIN, errno.EINTR): >+ # Guess it really didn't need attention? >+ continue >+@@ -213,7 +213,7 @@ class PreforkServer(object): >+ # Child is unavailable. SIGINT it. >+ try: >+ os.kill(pid, signal.SIGINT) >+- except OSError, e: >++ except OSError as e: >+ if e[0] != errno.ESRCH: >+ raise >+ >+@@ -229,7 +229,7 @@ class PreforkServer(object): >+ while len(self._children): >+ try: >+ pid, status = os.wait() >+- except OSError, e: >++ except OSError as e: >+ if e[0] in (errno.ECHILD, errno.EINTR): >+ break >+ if self._children.has_key(pid): >+@@ -241,7 +241,7 @@ class PreforkServer(object): >+ for pid in self._children.keys(): >+ try: >+ os.kill(pid, signal.SIGKILL) >+- except OSError, e: >++ except OSError as e: >+ if e[0] != errno.ESRCH: >+ raise >+ >+@@ -250,7 +250,7 @@ class PreforkServer(object): >+ while True: >+ try: >+ pid, status = os.waitpid(-1, os.WNOHANG) >+- except OSError, e: >++ except OSError as e: >+ if e[0] == errno.ECHILD: >+ break >+ raise >+@@ -274,7 +274,7 @@ class PreforkServer(object): >+ setCloseOnExec(child) >+ try: >+ pid = os.fork() >+- except OSError, e: >++ except OSError as e: >+ if e[0] in (errno.EAGAIN, errno.ENOMEM): >+ return False # Can't fork anymore. >+ raise >+@@ -315,7 +315,7 @@ class PreforkServer(object): >+ try: >+ parent.send(msg) >+ return True >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EPIPE: >+ return False # Parent is gone >+ if e[0] == errno.EAGAIN: >+@@ -354,7 +354,7 @@ class PreforkServer(object): >+ # Otherwise, there's activity on the main socket... >+ try: >+ clientSock, addr = sock.accept() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ # Or maybe not. >+ continue >+@@ -420,12 +420,12 @@ if __name__ == '__main__': >+ self._sock = sock >+ self._addr = addr >+ def run(self): >+- print "Client connection opened from %s:%d" % self._addr >++ print("Client connection opened from %s:%d" % self._addr) >+ self._sock.send('Hello World!\n') >+ self._sock.setblocking(1) >+ self._sock.recv(1) >+ self._sock.close() >+- print "Client connection closed from %s:%d" % self._addr >++ print("Client connection closed from %s:%d" % self._addr) >+ sock = socket.socket() >+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) >+ sock.bind(('', 8080)) >+diff -up --recursive flup-1.0.2.orig/flup/server/scgi_base.py flup-1.0.2/flup/server/scgi_base.py >+--- flup-1.0.2.orig/flup/server/scgi_base.py 2008-09-11 21:25:32.000000000 +0200 >++++ flup-1.0.2/flup/server/scgi_base.py 2013-11-27 02:04:55.276919091 +0100 >+@@ -76,7 +76,7 @@ def recvall(sock, length): >+ while length: >+ try: >+ data = sock.recv(length) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([sock], [], []) >+ continue >+@@ -99,7 +99,7 @@ def readNetstring(sock): >+ while True: >+ try: >+ c = sock.recv(1) >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] == errno.EAGAIN: >+ select.select([sock], [], []) >+ continue >+@@ -117,7 +117,7 @@ def readNetstring(sock): >+ if size < 0: >+ raise ValueError >+ except ValueError: >+- raise ProtocolError, 'invalid netstring length' >++ raise ProtocolError('invalid netstring length') >+ >+ # Now read the string. >+ s, length = recvall(sock, size) >+@@ -132,7 +132,7 @@ def readNetstring(sock): >+ raise EOFError >+ >+ if trailer != ',': >+- raise ProtocolError, 'invalid netstring trailer' >++ raise ProtocolError('invalid netstring trailer') >+ >+ return s >+ >+@@ -219,7 +219,7 @@ class Connection(object): >+ self.processInput() >+ except (EOFError, KeyboardInterrupt): >+ pass >+- except ProtocolError, e: >++ except ProtocolError as e: >+ self.logger.error("Protocol error '%s'", str(e)) >+ except: >+ self.logger.exception('Exception caught in Connection') >+@@ -236,20 +236,20 @@ class Connection(object): >+ headers = readNetstring(self._sock) >+ headers = headers.split('\x00')[:-1] >+ if len(headers) % 2 != 0: >+- raise ProtocolError, 'invalid headers' >++ raise ProtocolError('invalid headers') >+ environ = {} >+ for i in range(len(headers) / 2): >+ environ[headers[2*i]] = headers[2*i+1] >+ >+ clen = environ.get('CONTENT_LENGTH') >+ if clen is None: >+- raise ProtocolError, 'missing CONTENT_LENGTH' >++ raise ProtocolError('missing CONTENT_LENGTH') >+ try: >+ clen = int(clen) >+ if clen < 0: >+ raise ValueError >+ except ValueError: >+- raise ProtocolError, 'invalid CONTENT_LENGTH' >++ raise ProtocolError('invalid CONTENT_LENGTH') >+ >+ self._sock.setblocking(1) >+ if clen: >+@@ -430,7 +430,10 @@ class BaseSCGIServer(object): >+ try: >+ if headers_sent: >+ # Re-raise if too late >+- raise exc_info[0], exc_info[1], exc_info[2] >++ if hasattr(exc_info[1], with_traceback): >++ raise exc_info[1].with_traceback(exc_info[2]) >++ else: >++ raise exc_info[1] >+ finally: >+ exc_info = None # avoid dangling circular ref >+ else: >+@@ -463,7 +466,7 @@ class BaseSCGIServer(object): >+ finally: >+ if hasattr(result, 'close'): >+ result.close() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] != errno.EPIPE: >+ raise # Don't let EPIPE propagate beyond server >+ finally: >+diff -up --recursive flup-1.0.2.orig/flup/server/scgi_fork.py flup-1.0.2/flup/server/scgi_fork.py >+--- flup-1.0.2.orig/flup/server/scgi_fork.py 2009-05-19 00:45:57.000000000 +0200 >++++ flup-1.0.2/flup/server/scgi_fork.py 2013-11-27 02:13:23.495713517 +0100 >+@@ -142,7 +142,7 @@ class WSGIServer(BaseSCGIServer, Prefork >+ >+ try: >+ sock = self._setupSocket() >+- except socket.error, e: >++ except socket.error as e: >+ self.logger.error('Failed to bind socket (%s), exiting', e[1]) >+ return False >+ >+@@ -168,7 +168,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/scgi.py flup-1.0.2/flup/server/scgi.py >+--- flup-1.0.2.orig/flup/server/scgi.py 2009-05-19 00:45:49.000000000 +0200 >++++ flup-1.0.2/flup/server/scgi.py 2013-11-27 02:12:03.578899945 +0100 >+@@ -144,7 +144,7 @@ class WSGIServer(BaseSCGIServer, Threade >+ >+ try: >+ sock = self._setupSocket() >+- except socket.error, e: >++ except socket.error as e: >+ self.logger.error('Failed to bind socket (%s), exiting', e[1]) >+ return False >+ >+@@ -170,7 +170,7 @@ if __name__ == '__main__': >+ names.sort() >+ for name in names: >+ yield '<tr><td>%s</td><td>%s</td></tr>\n' % ( >+- name, cgi.escape(`environ[name]`)) >++ name, cgi.escape(environ[name])) >+ >+ form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ, >+ keep_blank_values=1) >+diff -up --recursive flup-1.0.2.orig/flup/server/singleserver.py flup-1.0.2/flup/server/singleserver.py >+--- flup-1.0.2.orig/flup/server/singleserver.py 2009-05-04 21:57:51.000000000 +0200 >++++ flup-1.0.2/flup/server/singleserver.py 2013-11-27 02:04:55.277919088 +0100 >+@@ -70,7 +70,7 @@ class SingleServer(object): >+ while self._keepGoing: >+ try: >+ r, w, e = select.select([sock], [], [], timeout) >+- except select.error, e: >++ except select.error as e: >+ if e[0] == errno.EINTR: >+ continue >+ raise >+@@ -78,7 +78,7 @@ class SingleServer(object): >+ if r: >+ try: >+ clientSock, addr = sock.accept() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] in (errno.EINTR, errno.EAGAIN): >+ continue >+ raise >+@@ -153,12 +153,12 @@ if __name__ == '__main__': >+ self._sock = sock >+ self._addr = addr >+ def run(self): >+- print "Client connection opened from %s:%d" % self._addr >++ print("Client connection opened from %s:%d" % self._addr) >+ self._sock.send('Hello World!\n') >+ self._sock.setblocking(1) >+ self._sock.recv(1) >+ self._sock.close() >+- print "Client connection closed from %s:%d" % self._addr >++ print("Client connection closed from %s:%d" % self._addr) >+ sock = socket.socket() >+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) >+ sock.bind(('', 8080)) >+diff -up --recursive flup-1.0.2.orig/flup/server/threadedserver.py flup-1.0.2/flup/server/threadedserver.py >+--- flup-1.0.2.orig/flup/server/threadedserver.py 2007-10-17 18:48:03.000000000 +0200 >++++ flup-1.0.2/flup/server/threadedserver.py 2013-11-27 02:04:55.277919088 +0100 >+@@ -74,7 +74,7 @@ class ThreadedServer(object): >+ while self._keepGoing: >+ try: >+ r, w, e = select.select([sock], [], [], timeout) >+- except select.error, e: >++ except select.error as e: >+ if e[0] == errno.EINTR: >+ continue >+ raise >+@@ -82,7 +82,7 @@ class ThreadedServer(object): >+ if r: >+ try: >+ clientSock, addr = sock.accept() >+- except socket.error, e: >++ except socket.error as e: >+ if e[0] in (errno.EINTR, errno.EAGAIN): >+ continue >+ raise >+@@ -162,12 +162,12 @@ if __name__ == '__main__': >+ self._sock = sock >+ self._addr = addr >+ def run(self): >+- print "Client connection opened from %s:%d" % self._addr >++ print("Client connection opened from %s:%d" % self._addr) >+ self._sock.send('Hello World!\n') >+ self._sock.setblocking(1) >+ self._sock.recv(1) >+ self._sock.close() >+- print "Client connection closed from %s:%d" % self._addr >++ print("Client connection closed from %s:%d" % self._addr) >+ sock = socket.socket() >+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) >+ sock.bind(('', 8080)) >+diff -up --recursive flup-1.0.2.orig/setup.py flup-1.0.2/setup.py >+--- flup-1.0.2.orig/setup.py 2009-05-26 16:55:51.000000000 +0200 >++++ flup-1.0.2/setup.py 2013-11-27 02:04:55.277919088 +0100 >+@@ -1,7 +1,3 @@ >+-# Bootstrap setuptools >+-from ez_setup import use_setuptools >+-use_setuptools() >+- >+ from setuptools import setup, find_packages >+ setup( >+ name = 'flup', >-- >1.8.4.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1035064
: 829555