19 , libsignal-protocol-c
22 , chatType ? "basic" # See the assertion below for available options
26 , enablePlugins ? true
29 , voiceMessagesSupport ? true
32 , enablePsiMedia ? false
36 assert builtins.elem (lib.toLower chatType) [
37 "basic" # Basic implementation, no web stuff involved
38 "webkit" # Legacy one, based on WebKit (see https://wiki.qt.io/Qt_WebKit)
39 "webengine" # QtWebEngine (see https://wiki.qt.io/QtWebEngine)
42 assert enablePsiMedia -> enablePlugins;
48 src = fetchFromGitHub {
50 repo = "psi-plus-snapshots";
52 sha256 = "sha256-9WT2S6ZgIsrHoEAvlWUB078gzCdrPylvSjkkogU5tsU=";
56 "-DCHAT_TYPE=${chatType}"
57 "-DENABLE_PLUGINS=${if enablePlugins then "ON" else "OFF"}"
58 "-DBUILD_PSIMEDIA=${if enablePsiMedia then "ON" else "OFF"}"
64 ] ++ lib.optionals enablePsiMedia [
84 ] ++ lib.optionals voiceMessagesSupport [
85 gst_all_1.gst-plugins-base
86 gst_all_1.gst-plugins-good
87 ] ++ lib.optionals (chatType == "webkit") [
89 ] ++ lib.optionals (chatType == "webengine") [
93 preFixup = lib.optionalString voiceMessagesSupport ''
95 --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
100 homepage = "https://psi-plus.com";
101 description = "XMPP (Jabber) client based on Qt5";
102 mainProgram = "psi-plus";
103 maintainers = with maintainers; [ orivej misuzu unclechu ];
104 license = licenses.gpl2Only;
105 platforms = platforms.linux;