Loading pkgs/development/python-modules/pymupdf/default.nix +46 −16 Original line number Diff line number Diff line Loading @@ -2,9 +2,10 @@ , stdenv , buildPythonPackage , pythonOlder , fetchPypi , fetchFromGitHub , pytestCheckHook , python , swig , xcbuild , mupdf , freetype , harfbuzz Loading @@ -13,33 +14,32 @@ , libjpeg_turbo , gumbo , memstreamHook , fonttools }: buildPythonPackage rec { let # PyMuPDF needs the C++ bindings generated mupdf-cxx = mupdf.override { enableOcr = true; enableCxx = true; enablePython = true; }; in buildPythonPackage rec { pname = "pymupdf"; version = "1.23.3"; version = "1.23.6"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { pname = "PyMuPDF"; inherit version; hash = "sha256-AhR4rmx26IWSQdu5cGEskIColX2L1pe7oLRTHcHPT4c="; src = fetchFromGitHub { owner = "pymupdf"; repo = "PyMuPDF"; rev = version; hash = "sha256-60KT5+EGP+s7HD4UIeaf9x2QVNU9IUbC5WKEJbrIBCI="; }; postPatch = '' substituteInPlace setup.py \ --replace '/usr/include/mupdf' ${mupdf.dev}/include/mupdf ''; nativeBuildInputs = [ pytestCheckHook swig ] ++ lib.optionals stdenv.isDarwin [ xcbuild ]; buildInputs = [ mupdf freetype harfbuzz openjpeg Loading @@ -50,10 +50,40 @@ buildPythonPackage rec { memstreamHook ]; doCheck = false; propagatedBuildInputs = [ mupdf-cxx ]; env = { # force using system MuPDF (must be defined in environment and empty) PYMUPDF_SETUP_MUPDF_BUILD = ""; # provide MuPDF paths PYMUPDF_MUPDF_LIB = "${lib.getLib mupdf-cxx}/lib"; PYMUPDF_MUPDF_INCLUDE = "${lib.getDev mupdf-cxx}/include"; }; # TODO: manually add mupdf rpath until upstream fixes it postInstall = lib.optionalString stdenv.isDarwin '' for lib in */*.so $out/${python.sitePackages}/*/*.so; do install_name_tool -add_rpath ${lib.getLib mupdf-cxx}/lib "$lib" done ''; checkInputs = [ fonttools ]; disabledTests = [ # fails for indeterminate reasons "test_color_count" ] ++ lib.optionals stdenv.isDarwin [ # darwin does not support OCR right now "test_tesseract" ]; pythonImportsCheck = [ "fitz" "fitz_new" ]; meta = with lib; { Loading Loading
pkgs/development/python-modules/pymupdf/default.nix +46 −16 Original line number Diff line number Diff line Loading @@ -2,9 +2,10 @@ , stdenv , buildPythonPackage , pythonOlder , fetchPypi , fetchFromGitHub , pytestCheckHook , python , swig , xcbuild , mupdf , freetype , harfbuzz Loading @@ -13,33 +14,32 @@ , libjpeg_turbo , gumbo , memstreamHook , fonttools }: buildPythonPackage rec { let # PyMuPDF needs the C++ bindings generated mupdf-cxx = mupdf.override { enableOcr = true; enableCxx = true; enablePython = true; }; in buildPythonPackage rec { pname = "pymupdf"; version = "1.23.3"; version = "1.23.6"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { pname = "PyMuPDF"; inherit version; hash = "sha256-AhR4rmx26IWSQdu5cGEskIColX2L1pe7oLRTHcHPT4c="; src = fetchFromGitHub { owner = "pymupdf"; repo = "PyMuPDF"; rev = version; hash = "sha256-60KT5+EGP+s7HD4UIeaf9x2QVNU9IUbC5WKEJbrIBCI="; }; postPatch = '' substituteInPlace setup.py \ --replace '/usr/include/mupdf' ${mupdf.dev}/include/mupdf ''; nativeBuildInputs = [ pytestCheckHook swig ] ++ lib.optionals stdenv.isDarwin [ xcbuild ]; buildInputs = [ mupdf freetype harfbuzz openjpeg Loading @@ -50,10 +50,40 @@ buildPythonPackage rec { memstreamHook ]; doCheck = false; propagatedBuildInputs = [ mupdf-cxx ]; env = { # force using system MuPDF (must be defined in environment and empty) PYMUPDF_SETUP_MUPDF_BUILD = ""; # provide MuPDF paths PYMUPDF_MUPDF_LIB = "${lib.getLib mupdf-cxx}/lib"; PYMUPDF_MUPDF_INCLUDE = "${lib.getDev mupdf-cxx}/include"; }; # TODO: manually add mupdf rpath until upstream fixes it postInstall = lib.optionalString stdenv.isDarwin '' for lib in */*.so $out/${python.sitePackages}/*/*.so; do install_name_tool -add_rpath ${lib.getLib mupdf-cxx}/lib "$lib" done ''; checkInputs = [ fonttools ]; disabledTests = [ # fails for indeterminate reasons "test_color_count" ] ++ lib.optionals stdenv.isDarwin [ # darwin does not support OCR right now "test_tesseract" ]; pythonImportsCheck = [ "fitz" "fitz_new" ]; meta = with lib; { Loading