1{ lib
2, buildPythonPackage
3, isPy27
4, fetchFromGitea
5, substituteAll
6, fetchpatch
7, colord
8, setuptools
9, pikepdf
10, pillow
11, stdenv
12, exiftool
13, ghostscript
14, imagemagick
15, mupdf
16, netpbm
17, numpy
18, poppler_utils
19, pytestCheckHook
20, scipy
21}:
22
23buildPythonPackage rec {
24 pname = "img2pdf";
25 version = "0.5.0";
26 disabled = isPy27;
27
28 pyproject = true;
29
30 src = fetchFromGitea {
31 domain = "gitlab.mister-muffin.de";
32 owner = "josch";
33 repo = "img2pdf";
34 rev = version;
35 hash = "sha256-k0GqBTS8PvYDmjzyLCSdQB7oBakrEQYJcQykDNrzgcA=";
36 };
37
38 patches = [
39 (substituteAll {
40 src = ./default-icc-profile.patch;
41 srgbProfile = if stdenv.isDarwin then
42 "/System/Library/ColorSync/Profiles/sRGB Profile.icc"
43 else
44 "${colord}/share/color/icc/colord/sRGB.icc";
45 })
46 (fetchpatch {
47 # https://gitlab.mister-muffin.de/josch/img2pdf/issues/178
48 url = "https://salsa.debian.org/debian/img2pdf/-/raw/4a7dbda0f473f7c5ffcaaf68ea4ad3f435e0920d/debian/patches/fix_tests.patch";
49 hash = "sha256-A1zK6yINhS+dvyckZjqoSO1XJRTaf4OXFdq5ufUrBs8=";
50 })
51
52 ];
53
54 nativeBuildInputs = [
55 setuptools
56 ];
57
58 propagatedBuildInputs = [
59 pikepdf
60 pillow
61 ];
62
63 # FIXME: Only add "sRGB Profile.icc" to __impureHostDeps once
64 # https://github.com/NixOS/nix/issues/9301 is fixed.
65 __impureHostDeps = lib.optionals stdenv.isDarwin [
66 "/System/Library/ColorSync/Profiles"
67 ];
68
69 nativeCheckInputs = [
70 exiftool
71 ghostscript
72 imagemagick
73 mupdf
74 netpbm
75 numpy
76 poppler_utils
77 pytestCheckHook
78 scipy
79 ];
80
81 preCheck = ''
82 export img2pdfprog="$out/bin/img2pdf"
83 '';
84
85 disabledTests = [
86 # https://gitlab.mister-muffin.de/josch/img2pdf/issues/178
87 "test_miff_cmyk16"
88 ];
89
90 pythonImportsCheck = [ "img2pdf" ];
91
92 meta = with lib; {
93 changelog = "https://gitlab.mister-muffin.de/josch/img2pdf/src/tag/${src.rev}/CHANGES.rst";
94 description = "Convert images to PDF via direct JPEG inclusion";
95 homepage = "https://gitlab.mister-muffin.de/josch/img2pdf";
96 license = licenses.lgpl3Plus;
97 mainProgram = "img2pdf";
98 maintainers = with maintainers; [ veprbl dotlambda ];
99 };
100}