nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 pkg-config,
4 exiv2,
5 gettext,
6 fetchFromGitHub,
7 gitUpdater,
8 buildPythonPackage,
9 setuptools,
10 toml,
11 pytestCheckHook,
12 fetchpatch,
13}:
14buildPythonPackage rec {
15 pname = "exiv2";
16 version = "0.18.0";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "jim-easterbrook";
21 repo = "python-exiv2";
22 tag = version;
23 hash = "sha256-lYz0TWiiBtpwZ56Oiy2v8DFBXoofMv60hxsG0q7Cx9Y=";
24 };
25
26 patches = [
27 # Disable refcount tests for python >= 3.14
28 (fetchpatch {
29 url = "https://github.com/jim-easterbrook/python-exiv2/commit/fe98ad09ff30f1b6cc5fd5dcc0769f9505c09166.patch";
30 hash = "sha256-+KepYfzocG6qkak+DwXFtCaMiLEAE+FegONgL4vo21o=";
31 })
32 (fetchpatch {
33 url = "https://github.com/jim-easterbrook/python-exiv2/commit/e0a5284620e8d020771bf8c1fa73d6113e662ebf.patch";
34 hash = "sha256-n/yfhP/Z4Is/+2bKsFZtcNXnQe61DjoE9Ryi2q9yTSA=";
35 })
36 ];
37
38 build-system = [
39 setuptools
40 toml
41 ];
42 nativeBuildInputs = [ pkg-config ];
43
44 buildInputs = [
45 exiv2
46 gettext
47 ];
48
49 pythonImportsCheck = [ "exiv2" ];
50 nativeCheckInputs = [ pytestCheckHook ];
51
52 passthru.updateScript = gitUpdater { };
53
54 meta = {
55 description = "Low level Python interface to the Exiv2 C++ library";
56 homepage = "https://github.com/jim-easterbrook/python-exiv2";
57 changelog = "https://python-exiv2.readthedocs.io/en/release-${src.tag}/misc/changelog.html";
58 license = lib.licenses.gpl3Plus;
59 maintainers = with lib.maintainers; [ zebreus ];
60 };
61}