diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch')
-rw-r--r-- | nixpkgs/pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch b/nixpkgs/pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch new file mode 100644 index 000000000000..9604da87fb50 --- /dev/null +++ b/nixpkgs/pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch @@ -0,0 +1,70 @@ +diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py +index a8a3ec07c1..bcc9b86c37 100644 +--- a/src/pybind/mgr/dashboard/module.py ++++ b/src/pybind/mgr/dashboard/module.py +@@ -25,40 +25,6 @@ except ImportError: + + from .services.sso import load_sso_db + +-# The SSL code in CherryPy 3.5.0 is buggy. It was fixed long ago, +-# but 3.5.0 is still shipping in major linux distributions +-# (Fedora 27, Ubuntu Xenial), so we must monkey patch it to get SSL working. +-if cherrypy is not None: +- v = StrictVersion(cherrypy.__version__) +- # It was fixed in 3.7.0. Exact lower bound version is probably earlier, +- # but 3.5.0 is what this monkey patch is tested on. +- if StrictVersion("3.5.0") <= v < StrictVersion("3.7.0"): +- from cherrypy.wsgiserver.wsgiserver2 import HTTPConnection,\ +- CP_fileobject +- +- def fixed_init(hc_self, server, sock, makefile=CP_fileobject): +- hc_self.server = server +- hc_self.socket = sock +- hc_self.rfile = makefile(sock, "rb", hc_self.rbufsize) +- hc_self.wfile = makefile(sock, "wb", hc_self.wbufsize) +- hc_self.requests_seen = 0 +- +- HTTPConnection.__init__ = fixed_init +- +-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify +-# that the ports its listening on are in fact bound. When using the any address +-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes) +-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught +-# exception. +-if cherrypy is not None: +- v = StrictVersion(cherrypy.__version__) +- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on +- # centos:7) and back to at least 3.0.0. +- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"): +- # https://github.com/cherrypy/cherrypy/issues/1100 +- from cherrypy.process import servers +- servers.wait_for_occupied_port = lambda host, port: None +- + if 'COVERAGE_ENABLED' in os.environ: + import coverage + __cov = coverage.Coverage(config_file="{}/.coveragerc".format(os.path.dirname(__file__)), +diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py +index b7fecf8d85..dfd4160591 100644 +--- a/src/pybind/mgr/prometheus/module.py ++++ b/src/pybind/mgr/prometheus/module.py +@@ -18,20 +18,6 @@ from rbd import RBD + DEFAULT_ADDR = '::' + DEFAULT_PORT = 9283 + +-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify +-# that the ports its listening on are in fact bound. When using the any address +-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes) +-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught +-# exception. +-if cherrypy is not None: +- v = StrictVersion(cherrypy.__version__) +- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on +- # centos:7) and back to at least 3.0.0. +- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"): +- # https://github.com/cherrypy/cherrypy/issues/1100 +- from cherrypy.process import servers +- servers.wait_for_occupied_port = lambda host, port: None +- + # cherrypy likes to sys.exit on error. don't let it take us down too! + def os_exit_noop(*args, **kwargs): + pass |