about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix91
1 files changed, 91 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
new file mode 100644
index 000000000000..b097864af431
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, cmark
+, lmdb
+, lmdbxx
+, libsecret
+, mkDerivation
+, qtbase
+, qtkeychain
+, qtmacextras
+, qtmultimedia
+, qttools
+, qtquickcontrols2
+, qtgraphicaleffects
+, mtxclient
+, boost17x
+, spdlog
+, fmt
+, olm
+, pkg-config
+, nlohmann_json
+, voipSupport ? true
+, gst_all_1
+, libnice
+}:
+
+mkDerivation rec {
+  pname = "nheko";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "Nheko-Reborn";
+    repo = "nheko";
+    rev = "v${version}";
+    sha256 = "sha256-w4l91/W6F1FL+Q37qWSjYRHv4vad/10fxdKwfNeEwgw=";
+  };
+
+  nativeBuildInputs = [
+    lmdbxx
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    nlohmann_json
+    mtxclient
+    olm
+    boost17x
+    libsecret
+    lmdb
+    spdlog
+    fmt
+    cmark
+    qtbase
+    qtmultimedia
+    qttools
+    qtquickcontrols2
+    qtgraphicaleffects
+    qtkeychain
+  ] ++ lib.optional stdenv.isDarwin qtmacextras
+    ++ lib.optionals voipSupport (with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+      (gst-plugins-good.override { qt5Support = true; })
+      gst-plugins-bad
+      libnice
+    ]);
+
+  cmakeFlags = [
+    "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
+  ];
+
+  preFixup = lib.optionalString voipSupport ''
+    # add gstreamer plugins path to the wrapper
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
+  meta = with lib; {
+    description = "Desktop client for the Matrix protocol";
+    homepage = "https://github.com/Nheko-Reborn/nheko";
+    maintainers = with maintainers; [ ekleog fpletz ];
+    platforms = platforms.all;
+    # Should be fixable if a higher clang version is used, see:
+    # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177
+    broken = stdenv.targetPlatform.isDarwin;
+    license = licenses.gpl3Plus;
+  };
+}