From a9293da8e788ad41df8ef66c4adc8df9c17b9f16 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 28 Feb 2023 00:41:57 +0100 Subject: [PATCH] Revert "sphinx: 5.3.0 -> 6.1.3" This reverts commit 96fc61bb781dbf604f303088fbeca7fe56512426. Sphinx versions >=6.0 fail to import extensions, which represents a severe regression. Details about this issue have been posted at https://github.com/NixOS/nixpkgs/pull/210338#issuecomment-1447063024. --- ...e-normalization-equivalent-character.patch | 35 +++++++++++++++++++ .../python-modules/sphinx/default.nix | 25 ++++++------- 2 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch diff --git a/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch b/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch new file mode 100644 index 000000000000..805e724d0c8c --- /dev/null +++ b/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch @@ -0,0 +1,35 @@ +From 181617387841b695ee77b162babf9fb177002fcb Mon Sep 17 00:00:00 2001 +From: toonn +Date: Mon, 20 Sep 2021 11:39:46 +0200 +Subject: [PATCH] test-images: Use normalization equivalent character +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +One of the test images used a combining character `ä` that can be +encoded multiple ways. This means the file's name can end up encoded +differently depending on whether/which normal form the filesystem uses. + +For Nix this causes a different hash for a FOD depending on the +filesystem where it is evaluated. This is problematic because hashes +fail to match up when evaluating the FOD across multiple platforms. +--- + tests/roots/test-images/index.rst | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/roots/test-images/index.rst b/tests/roots/test-images/index.rst +index 14a2987..219842e 100644 +--- a/tests/roots/test-images/index.rst ++++ b/tests/roots/test-images/index.rst +@@ -13,7 +13,7 @@ test-image + + The caption of img + +-.. image:: testimäge.png ++.. image:: testimæge.png + + .. image:: rimg.png + :target: https://www.sphinx-doc.org/ +-- +2.17.2 (Apple Git-113) + diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix index f62c7a18b6ae..3e50d87ec87b 100644 --- a/pkgs/development/python-modules/sphinx/default.nix +++ b/pkgs/development/python-modules/sphinx/default.nix @@ -3,6 +3,7 @@ , buildPythonPackage , pythonOlder , fetchFromGitHub +, fetchpatch # nativeBuildInputs , flit-core @@ -31,33 +32,27 @@ , cython , html5lib , pytestCheckHook +, typed-ast }: buildPythonPackage rec { pname = "sphinx"; - version = "6.1.3"; + version = "5.3.0"; format = "pyproject"; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "sphinx-doc"; repo = pname; rev = "refs/tags/v${version}"; - /* One of the test images used a combining character `ä` that can be - encoded multiple ways. This means the file's name can end up encoded - differently depending on whether/which normal form the filesystem uses. - - For Nix this causes a different hash for a FOD depending on the - filesystem where it is evaluated. This is problematic because hashes - fail to match up when evaluating the FOD across multiple platforms. - */ + hash = "sha256-80bVg1rfBebgSOKbWkzP84vpm39iLgM8lWlVD64nSsQ="; postFetch = '' cd $out - mv tests/roots/test-images/{testimäge,testimæge}.png - sed -i 's/testimäge/testimæge/g' tests/{test_build*.py,roots/test-images/index.rst} + mv tests/roots/test-images/testimäge.png \ + tests/roots/test-images/testimæge.png + patch -p1 < ${./0001-test-images-Use-normalization-equivalent-character.patch} ''; - hash = "sha256-ClKAB+oQ0sdV/mssfXEkgpqbzhT3ybXPeqjQjbxqbrY="; }; nativeBuildInputs = [ @@ -93,10 +88,12 @@ buildPythonPackage rec { cython html5lib pytestCheckHook + ] ++ lib.optionals (pythonOlder "3.8") [ + typed-ast ]; preCheck = '' - export HOME=$TMPDIR + export HOME=$(mktemp -d) ''; disabledTests = [