anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / networking / instant-messengers / profanity / default.nix
blob4687fd5f4ac3ed16eda4b4a2105dc47cf15d6b75
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , autoconf-archive
5 , autoreconfHook
6 , cmocka
7 , curl
8 , expat
9 , expect
10 , glib
11 , glibcLocales
12 , libstrophe
13 , libmicrohttpd
14 , libotr
15 , libuuid
16 , ncurses
17 , openssl
18 , pkg-config
19 , readline
20 , sqlite
21 , autoAwaySupport ? true,       libXScrnSaver, libX11
22 , notifySupport ? true,         libnotify, gdk-pixbuf
23 , omemoSupport ? true,          libsignal-protocol-c, libgcrypt, qrencode
24 , pgpSupport ? true,            gpgme
25 , pythonPluginSupport ? true,   python3
26 , traySupport ? true,           gtk3
29 stdenv.mkDerivation rec {
30   pname = "profanity";
31   version = "0.14.0";
33   src = fetchFromGitHub {
34     owner = "profanity-im";
35     repo = "profanity";
36     rev = version;
37     hash = "sha256-u/mp+vtMj602LfrulA+nhLNH8K6sqKIOuPJzhZusVmE=";
38   };
40   patches = [
41     ./patches/packages-osx.patch
42   ];
44   enableParallelBuilding = true;
46   nativeBuildInputs = [
47     autoconf-archive
48     autoreconfHook
49     glibcLocales
50     pkg-config
51   ];
53   buildInputs = [
54     cmocka
55     curl
56     expat
57     expect
58     glib
59     libstrophe
60     libmicrohttpd
61     libotr
62     libuuid
63     ncurses
64     openssl
65     readline
66     sqlite
67   ] ++ lib.optionals autoAwaySupport     [ libXScrnSaver libX11 ]
68     ++ lib.optionals notifySupport       [ libnotify gdk-pixbuf ]
69     ++ lib.optionals omemoSupport        [ libsignal-protocol-c libgcrypt qrencode ]
70     ++ lib.optionals pgpSupport          [ gpgme ]
71     ++ lib.optionals pythonPluginSupport [ python3 ]
72     ++ lib.optionals traySupport         [ gtk3 ];
74   # Enable feature flags, so that build fail if libs are missing
75   configureFlags = [
76     "--enable-c-plugins"
77     "--enable-otr"
78   ] ++ lib.optionals notifySupport       [ "--enable-notifications" ]
79     ++ lib.optionals traySupport         [ "--enable-icons-and-clipboard" ]
80     ++ lib.optionals pgpSupport          [ "--enable-pgp" ]
81     ++ lib.optionals pythonPluginSupport [ "--enable-python-plugins" ]
82     ++ lib.optionals omemoSupport        [ "--enable-omemo" ];
84   preAutoreconf = ''
85     mkdir m4
86   '';
88   doCheck = true;
90   LC_ALL = "en_US.utf8";
92   meta =  with lib; {
93     homepage = "http://www.profanity.im/";
94     description = "Console based XMPP client";
95     mainProgram = "profanity";
96     longDescription = ''
97       Profanity is a console based XMPP client written in C using ncurses and
98       libstrophe, inspired by Irssi.
99     '';
100     license = licenses.gpl3Plus;
101     maintainers = [ maintainers.devhell ];
102     platforms = platforms.unix;
103   };