Loading pkgs/applications/misc/privacyidea/default.nix +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ let doCheck = false; }); # Required by flask-1.1 jinja2 = super.jinja2.overridePythonAttrs (old: rec { jinja2 = (super.jinja2.override { enableDocumentation = false; }).overridePythonAttrs (old: rec { version = "2.11.3"; src = old.src.override { inherit version; Loading pkgs/development/python-modules/jinja2/default.nix +15 −0 Original line number Diff line number Diff line Loading @@ -6,11 +6,17 @@ , babel , markupsafe , pytestCheckHook , sphinxHook , pallets-sphinx-themes , sphinxcontrib-log-cabinet , sphinx-issues , enableDocumentation ? true }: buildPythonPackage rec { pname = "Jinja2"; version = "3.1.2"; outputs = [ "out" ] ++ lib.optional enableDocumentation "doc"; disabled = pythonOlder "3.7"; Loading @@ -19,11 +25,20 @@ buildPythonPackage rec { hash = "sha256-MTUacCpAip51laj8YVD8P0O7a/fjGXcMvA2535Q36FI="; }; patches = lib.optionals enableDocumentation [ ./patches/import-order.patch ]; propagatedBuildInputs = [ babel markupsafe ]; nativeBuildInputs = lib.optionals enableDocumentation [ sphinxHook sphinxcontrib-log-cabinet pallets-sphinx-themes sphinx-issues ]; # Multiple tests run out of stack space on 32bit systems with python2. # See https://github.com/pallets/jinja/issues/1158 doCheck = !stdenv.is32bit; Loading pkgs/development/python-modules/jinja2/patches/import-order.patch 0 → 100644 +27 −0 Original line number Diff line number Diff line Sphinx changed something between sphinx=4.5.0 and sphinx=5.3 that broke "sphinxcontrib.log_cabinet" plugin. When Sphinx tries to importlib.import_module("sphinxcontrib.log_cabinet"), it has couple other sphinxcontrib.* libraries in sys.path, and they seem to cause conflict. So here I purge sys.path from sphixcontrib-related things, import log_cabinet and put everything back, so when Sphinx will do "import_module", "sphinxcontrib.log_cabinet" will be already imported and cached. All this is quite hacky, but we are talking about merely building documentation here. If resulting html looks good, what happened in Nix sandbox stays in Nix sandbox. --- a/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 +++ b/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 @@ -1,5 +1,12 @@ from pallets_sphinx_themes import get_version from pallets_sphinx_themes import ProjectLink +import importlib +import sys + +saved_path = sys.path +sys.path = [x for x in sys.path if "sphinxcontrib" not in x or "cabinet" in x] +import sphinxcontrib.log_cabinet +sys.path = saved_path # Project -------------------------------------------------------------- pkgs/development/python-modules/sphinx/default.nix +1 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ buildPythonPackage rec { alabaster docutils imagesize jinja2 (jinja2.override { enableDocumentation = false; }) packaging pygments requests Loading Loading
pkgs/applications/misc/privacyidea/default.nix +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ let doCheck = false; }); # Required by flask-1.1 jinja2 = super.jinja2.overridePythonAttrs (old: rec { jinja2 = (super.jinja2.override { enableDocumentation = false; }).overridePythonAttrs (old: rec { version = "2.11.3"; src = old.src.override { inherit version; Loading
pkgs/development/python-modules/jinja2/default.nix +15 −0 Original line number Diff line number Diff line Loading @@ -6,11 +6,17 @@ , babel , markupsafe , pytestCheckHook , sphinxHook , pallets-sphinx-themes , sphinxcontrib-log-cabinet , sphinx-issues , enableDocumentation ? true }: buildPythonPackage rec { pname = "Jinja2"; version = "3.1.2"; outputs = [ "out" ] ++ lib.optional enableDocumentation "doc"; disabled = pythonOlder "3.7"; Loading @@ -19,11 +25,20 @@ buildPythonPackage rec { hash = "sha256-MTUacCpAip51laj8YVD8P0O7a/fjGXcMvA2535Q36FI="; }; patches = lib.optionals enableDocumentation [ ./patches/import-order.patch ]; propagatedBuildInputs = [ babel markupsafe ]; nativeBuildInputs = lib.optionals enableDocumentation [ sphinxHook sphinxcontrib-log-cabinet pallets-sphinx-themes sphinx-issues ]; # Multiple tests run out of stack space on 32bit systems with python2. # See https://github.com/pallets/jinja/issues/1158 doCheck = !stdenv.is32bit; Loading
pkgs/development/python-modules/jinja2/patches/import-order.patch 0 → 100644 +27 −0 Original line number Diff line number Diff line Sphinx changed something between sphinx=4.5.0 and sphinx=5.3 that broke "sphinxcontrib.log_cabinet" plugin. When Sphinx tries to importlib.import_module("sphinxcontrib.log_cabinet"), it has couple other sphinxcontrib.* libraries in sys.path, and they seem to cause conflict. So here I purge sys.path from sphixcontrib-related things, import log_cabinet and put everything back, so when Sphinx will do "import_module", "sphinxcontrib.log_cabinet" will be already imported and cached. All this is quite hacky, but we are talking about merely building documentation here. If resulting html looks good, what happened in Nix sandbox stays in Nix sandbox. --- a/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 +++ b/docs/conf.py 1970-01-01 00:00:00.000000000 -0000 @@ -1,5 +1,12 @@ from pallets_sphinx_themes import get_version from pallets_sphinx_themes import ProjectLink +import importlib +import sys + +saved_path = sys.path +sys.path = [x for x in sys.path if "sphinxcontrib" not in x or "cabinet" in x] +import sphinxcontrib.log_cabinet +sys.path = saved_path # Project --------------------------------------------------------------
pkgs/development/python-modules/sphinx/default.nix +1 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ buildPythonPackage rec { alabaster docutils imagesize jinja2 (jinja2.override { enableDocumentation = false; }) packaging pygments requests Loading