|
|
|
@ -1,14 +1,45 @@ |
|
|
|
|
{ lib, mkDerivation, fetchFromGitHub, cmake |
|
|
|
|
, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine |
|
|
|
|
, libidn, qca-qt5, libXScrnSaver, hunspell |
|
|
|
|
, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c |
|
|
|
|
{ lib |
|
|
|
|
, mkDerivation |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, cmake |
|
|
|
|
, qtbase |
|
|
|
|
, qtmultimedia |
|
|
|
|
, qtx11extras |
|
|
|
|
, qttools |
|
|
|
|
, libidn |
|
|
|
|
, qca-qt5 |
|
|
|
|
, libXScrnSaver |
|
|
|
|
, hunspell |
|
|
|
|
, libsecret |
|
|
|
|
, libgcrypt |
|
|
|
|
, libotr |
|
|
|
|
, html-tidy |
|
|
|
|
, libgpgerror |
|
|
|
|
, libsignal-protocol-c |
|
|
|
|
, usrsctp |
|
|
|
|
|
|
|
|
|
# Voice messages |
|
|
|
|
, chatType ? "basic" # See the assertion below for available options |
|
|
|
|
, qtwebkit |
|
|
|
|
, qtwebengine |
|
|
|
|
|
|
|
|
|
, enablePlugins ? true |
|
|
|
|
|
|
|
|
|
# Voice messages |
|
|
|
|
, voiceMessagesSupport ? true |
|
|
|
|
, gst_all_1 |
|
|
|
|
|
|
|
|
|
, enablePsiMedia ? false |
|
|
|
|
, pkg-config |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
assert builtins.elem (lib.toLower chatType) [ |
|
|
|
|
"basic" # Basic implementation, no web stuff involved |
|
|
|
|
"webkit" # Legacy one, based on WebKit (see https://wiki.qt.io/Qt_WebKit) |
|
|
|
|
"webengine" # QtWebEngine (see https://wiki.qt.io/QtWebEngine) |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
assert enablePsiMedia -> enablePlugins; |
|
|
|
|
|
|
|
|
|
mkDerivation rec { |
|
|
|
|
pname = "psi-plus"; |
|
|
|
|
version = "1.5.1549"; |
|
|
|
@ -21,19 +52,40 @@ mkDerivation rec { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
cmakeFlags = [ |
|
|
|
|
"-DENABLE_PLUGINS=ON" |
|
|
|
|
"-DCHAT_TYPE=${chatType}" |
|
|
|
|
"-DENABLE_PLUGINS=${if enablePlugins then "ON" else "OFF"}" |
|
|
|
|
"-DBUILD_PSIMEDIA=${if enablePsiMedia then "ON" else "OFF"}" |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ cmake qttools ]; |
|
|
|
|
nativeBuildInputs = [ |
|
|
|
|
cmake |
|
|
|
|
qttools |
|
|
|
|
] ++ lib.optionals enablePsiMedia [ |
|
|
|
|
pkg-config |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
buildInputs = [ |
|
|
|
|
qtbase qtmultimedia qtx11extras qtwebengine |
|
|
|
|
libidn qca-qt5 libXScrnSaver hunspell |
|
|
|
|
libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c |
|
|
|
|
qtbase |
|
|
|
|
qtmultimedia |
|
|
|
|
qtx11extras |
|
|
|
|
libidn |
|
|
|
|
qca-qt5 |
|
|
|
|
libXScrnSaver |
|
|
|
|
hunspell |
|
|
|
|
libsecret |
|
|
|
|
libgcrypt |
|
|
|
|
libotr |
|
|
|
|
html-tidy |
|
|
|
|
libgpgerror |
|
|
|
|
libsignal-protocol-c |
|
|
|
|
usrsctp |
|
|
|
|
] ++ lib.optionals voiceMessagesSupport [ |
|
|
|
|
gst_all_1.gst-plugins-base |
|
|
|
|
gst_all_1.gst-plugins-good |
|
|
|
|
] ++ lib.optionals (chatType == "webkit") [ |
|
|
|
|
qtwebkit |
|
|
|
|
] ++ lib.optionals (chatType == "webengine") [ |
|
|
|
|
qtwebengine |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
preFixup = lib.optionalString voiceMessagesSupport '' |
|
|
|
|