1{ lib
2, fetchFromGitLab
3, fetchpatch
4, python3
5, wrapGAppsHook
6, gobject-introspection
7, gtk3
8, glib
9, gst_all_1
10}:
11
12python3.pkgs.buildPythonApplication rec {
13 pname = "gnome-keysign";
14 version = "1.2.0";
15
16 src = fetchFromGitLab {
17 domain = "gitlab.gnome.org";
18 owner = "GNOME";
19 repo = pname;
20 rev = version;
21 sha256 = "1sjphi1lsivg9jmc8khbcqa9w6608pkrccz4nz3rlcc54hn0k0sj";
22 };
23
24 patches = [
25 # fix build failure due to missing import
26 (fetchpatch {
27 url = "https://gitlab.gnome.org/GNOME/gnome-keysign/commit/216c3677e68960afc517edc00529323e85909323.patch";
28 sha256 = "1w410gvcridbq26sry7fxn49v59ss2lc0w5ab7csva8rzs1nc990";
29 })
30
31 # stop requiring lxml (no longer used)
32 # https://gitlab.gnome.org/GNOME/gnome-keysign/merge_requests/23
33 (fetchpatch {
34 url = "https://gitlab.gnome.org/GNOME/gnome-keysign/commit/ffc6f40584d7564951e1c8b6d18d4f8a6a3fa09d.patch";
35 sha256 = "1hs6mmhi2f21kvy26llzvp37yf0i0dr69d18r641139nr6qg6kwy";
36 includes = [ "setup.py" ];
37 })
38 ];
39
40 nativeBuildInputs = [
41 wrapGAppsHook
42 gobject-introspection
43 ] ++ (with python3.pkgs; [
44 babel
45 babelgladeextractor
46 ]);
47
48 buildInputs = [
49 # TODO: add avahi support
50 gtk3
51 glib
52 gst_all_1.gstreamer
53 gst_all_1.gst-plugins-base
54 (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
55 (gst_all_1.gst-plugins-bad.override { enableZbar = true; }) # for zbar plug-in
56 ];
57
58 propagatedBuildInputs = with python3.pkgs; [
59 dbus-python
60 future
61 gpgme
62 magic-wormhole
63 pygobject3
64 pybluez
65 qrcode
66 requests
67 twisted
68 ];
69
70 # bunch of linting
71 doCheck = false;
72
73 meta = with lib; {
74 description = "GTK/GNOME application to use GnuPG for signing other peoples’ keys";
75 homepage = "https://wiki.gnome.org/Apps/Keysign";
76 license = licenses.gpl3Plus;
77 maintainers = teams.gnome.members;
78 platforms = platforms.linux;
79 };
80}