From ed9beb7f26087920dbed5bbe645f80a1b88239ab Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Sat, 15 Nov 2025 11:52:00 +0100 Subject: [PATCH] python313Packages.pymupdf: 1.26.4 -> 1.26.6 https://github.com/pymupdf/PyMuPDF/releases/tag/1.26.5 https://github.com/pymupdf/PyMuPDF/releases/tag/1.26.6 --- .../pymupdf/conftest-dont-pip-install.patch | 12 ++++++++++ .../python-modules/pymupdf/default.nix | 23 ++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 pkgs/development/python-modules/pymupdf/conftest-dont-pip-install.patch diff --git a/pkgs/development/python-modules/pymupdf/conftest-dont-pip-install.patch b/pkgs/development/python-modules/pymupdf/conftest-dont-pip-install.patch new file mode 100644 index 000000000000..da2607e0a1ea --- /dev/null +++ b/pkgs/development/python-modules/pymupdf/conftest-dont-pip-install.patch @@ -0,0 +1,12 @@ +diff --git a/tests/conftest.py b/tests/conftest.py +index 8b9bd31b..472f57b8 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -29,7 +29,6 @@ def install_required_packages(): + print(f'{__file__}:install_required_packages)(): Running: {command}', flush=1) + subprocess.run(command, shell=1, check=1) + +-install_required_packages() + + # Need to import pymupdf only after we've installed pymupdf-fonts above, + # because pymupdf imports pymupdf_fonts, and copes with import failure. diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix index 1ecf81796a86..8b34e256a327 100644 --- a/pkgs/development/python-modules/pymupdf/default.nix +++ b/pkgs/development/python-modules/pymupdf/default.nix @@ -2,7 +2,6 @@ lib, stdenv, buildPythonPackage, - pythonOlder, fetchFromGitHub, python, toPythonModule, @@ -45,22 +44,33 @@ let in buildPythonPackage rec { pname = "pymupdf"; - version = "1.26.4"; + version = "1.26.6"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchFromGitHub { owner = "pymupdf"; repo = "PyMuPDF"; tag = version; - hash = "sha256-bzyScV7vznuBQNP8nTjHL2exIs/rVmJBH+soyuAwIGI="; + hash = "sha256-CYDgMhsOqqm9AscJxVcjU72P63gpJafj+2cj03RFGaw="; }; + patches = [ + # `conftest.py` tries to run `pip install` to install test dependencies. + ./conftest-dont-pip-install.patch + ]; + # swig is not wrapped as Python package postPatch = '' substituteInPlace setup.py \ - --replace-fail "ret.append( 'swig')" "pass" \ + --replace-fail "ret.append('swig')" "pass" \ + --replace-fail "ret.append('swig==4.3.1')" "pass" + ''; + + # `build_extension` passes arguments to `$LD` that are meant for `c++`. + # When `LD` is not set, `build_extension` falls back to using `c++` in `PATH`. + # See https://github.com/pymupdf/PyMuPDF/blob/1.26.6/pipcl.py#L1998 for details. + preConfigure = '' + unset LD ''; nativeBuildInputs = [ @@ -123,6 +133,7 @@ buildPythonPackage rec { "test_4457" "test_4445" "test_4533" + "test_4702" # Not a git repository, so git ls-files fails "test_open2" ];