From 014b404f0395cc5d9f2b18ee0b8d7481abb3f471 Mon Sep 17 00:00:00 2001
From: Angus Trau <me@angus.ws>
Date: Sun, 25 Jul 2021 17:11:32 +1000
Subject: [PATCH] realvnc-vnc-viewer: init at 6.21.406

---
 .../admin/realvnc-vnc-viewer/default.nix      | 51 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 53 insertions(+)
 create mode 100644 pkgs/tools/admin/realvnc-vnc-viewer/default.nix

diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
new file mode 100644
index 000000000000..690c215471cf
--- /dev/null
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook, rpmextract, libX11, libXext }:
+
+stdenv.mkDerivation rec {
+  pname = "realvnc-vnc-viewer";
+  version = "6.21.406";
+
+  src = {
+    "x86_64-linux" = fetchurl {
+      url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x64.rpm";
+      sha256 = "0rnizzanaykqg1vfy56p8abc4fmgpbibj54j4c1v81zsj3kmahka";
+    };
+    "i686-linux" = fetchurl {
+      url = "https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x86.rpm";
+      sha256 = "1rlxfiqymi1licn2spyiqa00kiwzhdr0pkh7vv3ai6gb9f6phk31";
+    };
+  }.${stdenv.system};
+
+  nativeBuildInputs = [ autoPatchelfHook rpmextract ];
+  buildInputs = [ libX11 libXext ];
+
+  unpackPhase = ''
+    rpmextract $src
+  '';
+
+  postPatch = ''
+    substituteInPlace ./usr/share/applications/realvnc-vncviewer.desktop \
+      --replace /usr/share/icons/hicolor/48x48/apps/vncviewer48x48.png vncviewer48x48.png
+    substituteInPlace ./usr/share/mimelnk/application/realvnc-vncviewer-mime.desktop \
+      --replace /usr/share/icons/hicolor/48x48/apps/vncviewer48x48.png vncviewer48x48.png
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "VNC remote desktop client software by RealVNC";
+    homepage = "https://www.realvnc.com/en/connect/download/viewer/";
+    license = {
+      fullName = "VNC Connect End User License Agreement";
+      url = "https://static.realvnc.com/media/documents/LICENSE-4.0a_en.pdf";
+      free = false;
+    };
+    maintainers = with maintainers; [ angustrau ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 066abf31ea47..dec9197c5906 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8418,6 +8418,8 @@ in
 
   rtss = callPackage ../development/tools/misc/rtss { };
 
+  realvnc-vnc-viewer = callPackage ../tools/admin/realvnc-vnc-viewer {};
+
   reaverwps = callPackage ../tools/networking/reaver-wps {};
 
   reaverwps-t6x = callPackage ../tools/networking/reaver-wps-t6x {};