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
|
xfsprogs
|
||||||
hfsutils
|
hfsutils
|
||||||
jfsutils
|
jfsutils
|
||||||
|
## required for fix to Defect #216 "Intermittent Python crashes at startup":
|
||||||
|
patch
|
||||||
|
|
||||||
## For better version management and development flexibility, "cryptobox-server" is
|
## For better version management and development flexibility, "cryptobox-server" is
|
||||||
## now installed as a local package from "config/chroot_local-packages".
|
## now installed as a local package from "config/chroot_local-packages".
|
||||||
#cryptobox-server
|
#cryptobox-server
|
||||||
|
|
Loading…
Reference in a new issue