nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 cython,
8 numpy,
9 setuptools,
10
11 # nativeBuildInputs
12 pkgs,
13 lcms2,
14 openjpeg,
15
16 # buildInputs
17 jxrlib,
18 lerc,
19 libdeflate,
20 libjpeg,
21 libpng,
22 libtiff,
23 libwebp,
24 xz,
25 zlib,
26
27 # tests
28 pytestCheckHook,
29}:
30
31let
32 version = "2026.3.6";
33in
34buildPythonPackage rec {
35 pname = "imagecodecs";
36 inherit version;
37 pyproject = true;
38
39 src = fetchFromGitHub {
40 owner = "cgohlke";
41 repo = "imagecodecs";
42 tag = "v${version}";
43 hash = "sha256-UOyhTzejLJ1HnwHtvFe9Mo8nxOkLNANnJL2z/SSRjXs=";
44 };
45
46 build-system = [
47 cython
48 numpy
49 setuptools
50 ];
51
52 nativeBuildInputs = [
53 pkgs.lz4.dev # lz4 was hidden by python3Packages.lz4
54 lcms2.dev
55 openjpeg.dev
56 ];
57
58 buildInputs = [
59 jxrlib
60 lcms2
61 lerc
62 libdeflate
63 libjpeg
64 libpng
65 libtiff
66 libwebp
67 pkgs.lz4
68 openjpeg
69 xz # liblzma
70 zlib
71 pkgs.zstd
72 ];
73
74 dependencies = [
75 numpy
76 ];
77
78 prePatch = ''
79 substituteInPlace setup.py \
80 --replace-fail "/usr/include/openjpeg" "${openjpeg.dev}/include/openjpeg" \
81 --replace-fail "/usr/include/jxrlib" "${jxrlib}/include/jxrlib"
82 '';
83
84 nativeCheckInputs = [
85 pytestCheckHook
86 ];
87
88 pythonImportsCheck = [
89 "imagecodecs"
90 ];
91
92 meta = {
93 description = "Image transformation, compression, and decompression codecs";
94 homepage = "https://github.com/cgohlke/imagecodecs";
95 changelog = "https://github.com/cgohlke/imagecodecs/blob/${src.tag}/CHANGES.rst";
96 license = lib.licenses.bsd3;
97 maintainers = with lib.maintainers; [ yzx9 ];
98 };
99}