CherryPy now gets patched during Live CD build. Fixes defect #216.
This commit is contained in:
parent
c5643b0434
commit
b9d56c4682
3 changed files with 48 additions and 0 deletions
25
config/chroot_local-hooks/50cnas-cherrypy-fix.sh
Executable file
25
config/chroot_local-hooks/50cnas-cherrypy-fix.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# License: This script is distributed under the terms of version 2
|
||||
# of the GNU GPL. See the LICENSE file included with the package.
|
||||
#
|
||||
# $Id: $
|
||||
#
|
||||
# this script is part of the build process of CryptoNAS
|
||||
#
|
||||
# 2008-11-27 James Crofts backported workaround from CherryPy src repository.
|
||||
# See http://www.cherrypy.org/ticket/686 and
|
||||
# http://devel.cryptobox.org/ticket/216.
|
||||
#
|
||||
|
||||
## Stop the build process if any of the following steps fail
|
||||
set -e
|
||||
|
||||
##Hack to prevent intermittent cherrypy crashes at startup
|
||||
DIFF="/usr/share/cryptonas-live/_cpwsgiserver.py.diff"
|
||||
##These two files are identical before the patch and must be identical
|
||||
##afterward as well:
|
||||
patch /var/lib/python-support/python2.4/cherrypy/_cpwsgiserver.py < ${DIFF}
|
||||
patch /usr/share/python-support/python-cherrypy/cherrypy/_cpwsgiserver.py < ${DIFF}
|
||||
##Remove the now-obsolete "compiled" Python file.
|
||||
rm -f /var/lib/python-support/python2.4/cherrypy/_cpwsgiserver.pyc
|
|
@ -0,0 +1,20 @@
|
|||
--- chroot/usr/share/python-support/python-cherrypy/cherrypy/_cpwsgiserver.py 2006-04-24 18:37:45.000000000 -0700
|
||||
+++ chroot/usr/share/cryptonas-live/_cpwsgiserver-copy.py 2008-11-27 22:53:49.000000000 -0700
|
||||
@@ -200,10 +200,17 @@
|
||||
response = request.wsgi_app(request.environ,
|
||||
request.start_response)
|
||||
for line in response:
|
||||
request.write(line)
|
||||
except socket.error, e:
|
||||
+ msg = e.args[1]
|
||||
+ if msg == "Bad file descriptor":
|
||||
+ # Our socket was closed
|
||||
+ return
|
||||
+ if msg == "Resource temporarily unavailable":
|
||||
+ # Just try again. See http://www.cherrypy.org/ticket/479.
|
||||
+ return
|
||||
errno = e.args[0]
|
||||
if errno not in socket_errors_to_ignore:
|
||||
traceback.print_exc()
|
||||
except (KeyboardInterrupt, SystemExit), exc:
|
||||
self.server.interrupt = exc
|
|
@ -37,6 +37,9 @@ e2fsprogs
|
|||
xfsprogs
|
||||
hfsutils
|
||||
jfsutils
|
||||
## required for fix to Defect #216 "Intermittent Python crashes at startup":
|
||||
patch
|
||||
|
||||
## For better version management and development flexibility, "cryptobox-server" is
|
||||
## now installed as a local package from "config/chroot_local-packages".
|
||||
#cryptobox-server
|
||||
|
|
Loading…
Reference in a new issue