1{
2 lib,
3 python3Packages,
4 fetchFromGitHub,
5 buildPythonPackage,
6 mozjpeg,
7 pytestCheckHook,
8 setuptools,
9 cmake,
10 nix-update-script,
11 cffi,
12}:
13buildPythonPackage rec {
14 pname = "mozjpeg_lossless_optimization";
15 version = "1.3.1";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "wanadev";
20 repo = "mozjpeg-lossless-optimization";
21 # https://github.com/NixOS/nixpkgs/issues/26302
22 tag = "v${version}";
23 hash = "sha256-HAOmD87oazwlGx1O+tAV5qzSn4EHbzeYQ5e8kmegwbo=";
24 fetchSubmodules = true;
25 };
26
27 # This package needs cmake, but it is not the default builder
28 dontUseCmakeConfigure = true;
29
30 buildInputs = [ mozjpeg ];
31 nativeBuildInputs = [ cmake ];
32 propagatedBuildInputs = [ cffi ];
33
34 # https://github.com/NixOS/nixpkgs/issues/255262
35 preCheck = ''
36 rm -r mozjpeg_lossless_optimization
37 '';
38
39 build-system = [ setuptools ];
40 nativeCheckInputs = [ pytestCheckHook ];
41
42 passthru = {
43 updateScript = nix-update-script { };
44 };
45
46 meta = {
47 description = "Python library to optimize JPEGs losslessly using MozJPEG";
48 homepage = "https://github.com/wanadev/mozjpeg-lossless-optimization";
49 changelog = "https://github.com/wanadev/mozjpeg-lossless-optimization/releases/tag/${src.tag}";
50 license = lib.licenses.bsd3;
51 maintainers = [ lib.maintainers.adfaure ];
52 };
53}