diff options
author | Nick Cao <nickcao@nichi.co> | 2023-09-16 08:41:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-16 08:41:37 -0400 |
commit | 990398921f677615c0732d704857484b84c6c888 (patch) | |
tree | 6207f2b616900b6846089250ec7a52ac76e0cbd3 | |
parent | cf726895756bde3d339911cb8635b848f3d6bb69 (diff) | |
parent | c53fc9a1e40b0b75e2a78497851488fc1d3b6aa7 (diff) |
Merge pull request #253564 from renesat/submit/calibre-web
calibre-web: fix static environ method in tornado
-rw-r--r-- | pkgs/servers/calibre-web/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/calibre-web/static_environ.patch | 25 |
2 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix index 607ced4606ff4..70f2287c83e70 100644 --- a/pkgs/servers/calibre-web/default.nix +++ b/pkgs/servers/calibre-web/default.nix @@ -63,6 +63,8 @@ python.pkgs.buildPythonApplication rec { # and exit. This is gonna be used to configure calibre-web declaratively, as most of its configuration parameters # are stored in the DB. ./db-migrations.patch + # environ in tornado.wsgi.WSGIContainer no longer a static method from 6.3 version + ./static_environ.patch ]; # calibre-web doesn't follow setuptools directory structure. The following is taken from the script diff --git a/pkgs/servers/calibre-web/static_environ.patch b/pkgs/servers/calibre-web/static_environ.patch new file mode 100644 index 0000000000000..4f94283a4e664 --- /dev/null +++ b/pkgs/servers/calibre-web/static_environ.patch @@ -0,0 +1,25 @@ +diff --git a/cps/tornado_wsgi.py b/cps/tornado_wsgi.py +index af93219c..cf302042 100644 +--- a/cps/tornado_wsgi.py ++++ b/cps/tornado_wsgi.py +@@ -53,7 +53,7 @@ class MyWSGIContainer(WSGIContainer): + return response.append + + app_response = self.wsgi_application( +- MyWSGIContainer.environ(request), start_response ++ self.environ(request), start_response + ) + try: + response.extend(app_response) +@@ -86,9 +86,8 @@ class MyWSGIContainer(WSGIContainer): + request.connection.finish() + self._log(status_code, request) + +- @staticmethod +- def environ(request: httputil.HTTPServerRequest) -> Dict[Text, Any]: +- environ = WSGIContainer.environ(request) ++ def environ(self, request: httputil.HTTPServerRequest) -> Dict[Text, Any]: ++ environ = super().environ(request) + environ['RAW_URI'] = request.path + return environ + |