diff --git a/pkgs/development/python-modules/python-poppler/default.nix b/pkgs/development/python-modules/python-poppler/default.nix new file mode 100644 index 000000000000..85609035f009 --- /dev/null +++ b/pkgs/development/python-modules/python-poppler/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + pytestCheckHook, + setuptools, + meson-python, + ninja, + meson, + poppler, + pkg-config, + pybind11, +}: + +buildPythonPackage rec { + pname = "python-poppler"; + version = "0.4.1"; + pyproject = true; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit version; + pname = "python_poppler"; + hash = "sha256-5spcI+wCNQvyzvhaa/nxsmF5ZDbbR4F2+dJPsU7uzGo="; + }; + + patches = [ + # Prevent Meson from downloading pybind11, use system version instead + ./use_system_pybind11.patch + ]; + + build-system = [ meson-python ]; + + buildInputs = [ pybind11 ]; + + nativeBuildInputs = [ + ninja + pkg-config + ]; + + propagatedBuildInputs = [ poppler ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportCheck = [ "poppler" ]; + + meta = { + description = "Python binding to poppler-cpp"; + homepage = "https://github.com/cbrunet/python-poppler"; + changelog = "https://cbrunet.net/python-poppler/changelog.html"; + # Contradictory license definition + # https://github.com/cbrunet/python-poppler/issues/90 + license = lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.onny ]; + }; +} diff --git a/pkgs/development/python-modules/python-poppler/use_system_pybind11.patch b/pkgs/development/python-modules/python-poppler/use_system_pybind11.patch new file mode 100644 index 000000000000..a84d26e85a23 --- /dev/null +++ b/pkgs/development/python-modules/python-poppler/use_system_pybind11.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index c1ac57a..1d1ad1f 100644 +--- a/meson.build ++++ b/meson.build +@@ -13,7 +13,6 @@ poppler_dep = dependency('poppler-cpp', version: '>=0.26.0') + python_mod = import('python') + python3 = python_mod.find_installation('python3', pure: false) + +-pybind11_proj = subproject('pybind11') +-pybind11_dep = pybind11_proj.get_variable('pybind11_dep') ++pybind11_dep = dependency('pybind11') + + subdir('src') diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f201fad95c5f..855c2187c55c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10474,6 +10474,8 @@ self: super: with self; { python-owasp-zap-v2-4 = callPackage ../development/python-modules/python-owasp-zap-v2-4 { }; + python-poppler = callPackage ../development/python-modules/python-poppler { }; + python-pptx = callPackage ../development/python-modules/python-pptx { }; python-songpal = callPackage ../development/python-modules/python-songpal { };