push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
{
lib,
stdenv,
python,
buildPythonPackage,
pythonOlder,
fetchPypi,
flit-core,
babel,
markupsafe,
pytestCheckHook,
sphinxHook,
pallets-sphinx-themes,
sphinxcontrib-log-cabinet,
sphinx-issues,
# Reverse dependency
sage,
}:
buildPythonPackage rec {
pname = "jinja2";
version = "3.1.6";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-ATf7BZkNNfEnWlh+mu5tVtqCH8g0kaD7g4GDvkP2bW0=";
};
postPatch = ''
# Do not test with trio, it increases jinja2's dependency closure by a lot
# and everyone consuming these dependencies cannot rely on sphinxHook,
# because sphinx itself depends on jinja2.
substituteInPlace tests/test_async{,_filters}.py \
--replace-fail "import trio" "" \
--replace-fail ", trio.run" "" \
--replace-fail ", \"trio\"" ""
'';
build-system = [ flit-core ];
dependencies = [ markupsafe ];
optional-dependencies = {
i18n = [ babel ];
};
# Multiple tests run out of stack space on 32bit systems with python2.
# See https://github.com/pallets/jinja/issues/1158
doCheck = !stdenv.hostPlatform.is32bit;
nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.i18n;
passthru.doc = stdenv.mkDerivation {
# Forge look and feel of multi-output derivation as best as we can.
#
# Using 'outputs = [ "doc" ];' breaks a lot of assumptions.
name = "${pname}-${version}-doc";
inherit src pname version;
patches = [
# Fix import of "sphinxcontrib-log-cabinet"
./patches/import-order.patch
];
postInstallSphinx = ''
mv $out/share/doc/* $out/share/doc/python$pythonVersion-$pname-$version
'';
nativeBuildInputs = [
sphinxHook
sphinxcontrib-log-cabinet
pallets-sphinx-themes
sphinx-issues
];
inherit (python) pythonVersion;
inherit meta;
};
passthru.tests = {
inherit sage;
};
meta = with lib; {
changelog = "https://github.com/pallets/jinja/blob/${version}/CHANGES.rst";
description = "Very fast and expressive template engine";
downloadPage = "https://github.com/pallets/jinja";
homepage = "https://jinja.palletsprojects.com";
license = licenses.bsd3;
longDescription = ''
Jinja is a fast, expressive, extensible templating engine. Special
placeholders in the template allow writing code similar to Python
syntax. Then the template is passed data to render the final document.
'';
maintainers = with maintainers; [ pierron ];
};
}

View File

@@ -0,0 +1,27 @@
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 --------------------------------------------------------------