Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / udiskie / default.nix
blobe4e31669525dcaf91be986493adaa3a91c469fe6
1 { lib
2 , asciidoc
3 , fetchFromGitHub
4 , gobject-introspection
5 , gtk3
6 , installShellFiles
7 , libappindicator-gtk3
8 , libnotify
9 , librsvg
10 , python3
11 , udisks2
12 , wrapGAppsHook
15 python3.pkgs.buildPythonApplication rec {
16   pname = "udiskie";
17   version = "2.5.0";
19   format = "setuptools";
21   src = fetchFromGitHub {
22     owner = "coldfix";
23     repo = "udiskie";
24     rev = "v${version}";
25     hash = "sha256-wIXh7dzygjzSXo51LBt1BW+sar6qUELWC6oTGPDGgcE=";
26   };
28   patches = [
29     ./locale-path.patch
30   ];
32   postPatch = ''
33     substituteInPlace udiskie/locale.py --subst-var out
34   '';
36   nativeBuildInputs = [
37     asciidoc # Man page
38     gobject-introspection
39     installShellFiles
40     wrapGAppsHook
41   ];
43   dontWrapGApps = true;
45   buildInputs = [
46     gtk3
47     libappindicator-gtk3
48     libnotify
49     librsvg # SVG icons
50     udisks2
51   ];
53   propagatedBuildInputs = with python3.pkgs; [
54     docopt
55     keyutils
56     pygobject3
57     pyyaml
58   ];
60   postBuild = ''
61     make -C doc
62   '';
64   postInstall = ''
65     installManPage doc/udiskie.8
67     installShellCompletion \
68       --bash completions/bash/* \
69       --zsh completions/zsh/*
70   '';
72   preFixup = ''
73     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
74   '';
76   nativeCheckInputs = with python3.pkgs; [
77     pytestCheckHook
78   ];
80   meta = with lib; {
81     homepage = "https://github.com/coldfix/udiskie";
82     changelog = "https://github.com/coldfix/udiskie/blob/${src.rev}/CHANGES.rst";
83     description = "Removable disk automounter for udisks";
84     longDescription = ''
85       udiskie is a udisks2 front-end that allows to manage removeable media such
86       as CDs or flash drives from userspace.
88       Its features include:
89       - automount removable media
90       - notifications
91       - tray icon
92       - command line tools for manual un-/mounting
93       - LUKS encrypted devices
94       - unlocking with keyfiles (requires udisks 2.6.4)
95       - loop devices (mounting iso archives)
96       - password caching (requires python keyutils 0.3)
97     '';
98     license = licenses.mit;
99     maintainers = with maintainers; [ AndersonTorres dotlambda ];
100   };