Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / mat2 / default.nix
blob1646d3ac7246081b77130814dd7603dec0c315b5
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , pytestCheckHook
5 , pythonOlder
6 , fetchFromGitLab
7 , substituteAll
8 , bubblewrap
9 , exiftool
10 , ffmpeg
11 , mailcap
12 , wrapGAppsHook
13 , gdk-pixbuf
14 , gobject-introspection
15 , librsvg
16 , poppler_gi
17 , mutagen
18 , pygobject3
19 , pycairo
20 , dolphinIntegration ? false
21 , plasma5Packages
24 buildPythonPackage rec {
25   pname = "mat2";
26   version = "0.13.4";
28   disabled = pythonOlder "3.5";
30   format = "setuptools";
32   src = fetchFromGitLab {
33     domain = "0xacab.org";
34     owner = "jvoisin";
35     repo = "mat2";
36     rev = version;
37     hash = "sha256-SuN62JjSb5O8gInvBH+elqv/Oe7j+xjCo+dmPBU7jEY=";
38   };
40   patches = [
41     # hardcode paths to some binaries
42     (substituteAll ({
43       src = ./paths.patch;
44       exiftool = "${exiftool}/bin/exiftool";
45       ffmpeg = "${ffmpeg}/bin/ffmpeg";
46     } // lib.optionalAttrs dolphinIntegration {
47       kdialog = "${plasma5Packages.kdialog}/bin/kdialog";
48     }))
49     # the executable shouldn't be called .mat2-wrapped
50     ./executable-name.patch
51     # hardcode path to mat2 executable
52     ./tests.patch
53   ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [
54     (substituteAll {
55       src = ./bubblewrap-path.patch;
56       bwrap = "${bubblewrap}/bin/bwrap";
57     })
58   ];
60   postPatch = ''
61     rm pyproject.toml
62     substituteInPlace dolphin/mat2.desktop \
63       --replace "@mat2@" "$out/bin/mat2" \
64       --replace "@mat2svg@" "$out/share/icons/hicolor/scalable/apps/mat2.svg"
65   '';
67   nativeBuildInputs = [
68     gobject-introspection
69     wrapGAppsHook
70   ];
72   buildInputs = [
73     gdk-pixbuf
74     librsvg
75     poppler_gi
76   ];
78   propagatedBuildInputs = [
79     mutagen
80     pygobject3
81     pycairo
82   ];
84   postInstall = ''
85     install -Dm 444 data/mat2.svg -t "$out/share/icons/hicolor/scalable/apps"
86     install -Dm 444 doc/mat2.1 -t "$out/share/man/man1"
87   '' + lib.optionalString dolphinIntegration ''
88     install -Dm 444 dolphin/mat2.desktop -t "$out/share/kservices5/ServiceMenus"
89   '';
91   nativeCheckInputs = [ pytestCheckHook ];
93   disabledTests = [
94     # Frequently fails when exiftool is updated and adds support for new metadata.
95     "test_all_parametred"
96   ];
98   meta = with lib; {
99     description = "A handy tool to trash your metadata";
100     homepage = "https://0xacab.org/jvoisin/mat2";
101     changelog = "https://0xacab.org/jvoisin/mat2/-/blob/${version}/CHANGELOG.md";
102     license = licenses.lgpl3Plus;
103     mainProgram = "mat2";
104     maintainers = with maintainers; [ dotlambda ];
105   };