diff --git a/pkgs/applications/misc/pdfposter/default.nix b/pkgs/applications/misc/pdfposter/default.nix new file mode 100644 index 000000000000..5261fe3dbfe2 --- /dev/null +++ b/pkgs/applications/misc/pdfposter/default.nix @@ -0,0 +1,44 @@ +{ lib, python3, fetchPypi }: +let + localPython = python3.override { + self = localPython; + packageOverrides = self: super: { + # Can be removed once this is merged + # https://gitlab.com/pdftools/pdfposter/-/merge_requests/7 + pypdf2 = super.pypdf2.overridePythonAttrs (oldAttrs: rec { + version = "2.11.1"; + format = "setuptools"; + src = fetchPypi { + pname = "PyPDF2"; + inherit version; + hash = "sha256-PHut1RLCFxHrF4nC6tv5YnkonA+URS7lSoZHO/vv1zI="; + }; + }); + }; + }; +in +with localPython.pkgs; buildPythonApplication rec { + pname = "pdfposter"; + version = "0.8.1"; + format = "setuptools"; + + propagatedBuildInputs = [ pypdf2 ]; + + src = fetchPypi { + pname = "pdftools.pdfposter"; + inherit version; + hash = "sha256-yWFtHgVKAWs4dRlSk8t8cB2KBJeBOa0Frh3BLR9txS0="; + }; + + pythonImportsCheck = [ + "pdftools.pdfposter" + "pdftools.pdfposter.cmd" + ]; + + meta = with lib; { + description = "Split large pages of a PDF into smaller ones for poster printing"; + homepage = "https://pdfposter.readthedocs.io"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ wamserma ]; + }; +} diff --git a/pkgs/development/python-modules/pdfposter/default.nix b/pkgs/development/python-modules/pdfposter/default.nix deleted file mode 100644 index e2f5211ecaf4..000000000000 --- a/pkgs/development/python-modules/pdfposter/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, buildPythonPackage, fetchPypi, pypdf2 }: - -buildPythonPackage rec { - pname = "pdftools.pdfposter"; - version = "0.8.1"; - format = "setuptools"; - - propagatedBuildInputs = [ pypdf2 ]; - - src = fetchPypi { - inherit pname version; - hash = "sha256-yWFtHgVKAWs4dRlSk8t8cB2KBJeBOa0Frh3BLR9txS0="; - }; - - pythonImportsCheck = [ - "pdftools.pdfposter" - "pdftools.pdfposter.cmd" - ]; - - meta = with lib; { - description = "Split large pages of a PDF into smaller ones for poster printing"; - homepage = "https://pdfposter.readthedocs.io"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ wamserma ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ee2f77510c7..dd5ec86e1c12 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11365,6 +11365,8 @@ with pkgs; pdfcrack = callPackage ../tools/security/pdfcrack { }; + pdfposter = callPackage ../applications/misc/pdfposter { }; + pdfsandwich = callPackage ../tools/typesetting/pdfsandwich { }; pdftag = callPackage ../tools/graphics/pdftag { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index c0f63cc0d865..8de530229f4b 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -193,6 +193,7 @@ mapAliases ({ pam = python-pam; # added 2020-09-07. PasteDeploy = pastedeploy; # added 2021-10-07 pathpy = path; # added 2022-04-12 + pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29 pdfminer = pdfminer-six; # added 2022-05-25 pep257 = pydocstyle; # added 2022-04-12 poetry = throw "poetry was promoted to a top-level attribute, use poetry-core to build Python packages"; # added 2023-01-09 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 05d7bde590a0..2151eed2ff19 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7494,8 +7494,6 @@ self: super: with self; { pdfminer-six = callPackage ../development/python-modules/pdfminer-six { }; - pdfposter = callPackage ../development/python-modules/pdfposter { }; - pdfrw = callPackage ../development/python-modules/pdfrw { }; pdftotext = callPackage ../development/python-modules/pdftotext { };