summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-08-06 01:01:21 +0200
committerGitHub <noreply@github.com>2023-08-06 01:01:21 +0200
commitf73cbfb26ba8aa5486b14248f77c85cd0f63dd23 (patch)
treeaee6117e0ba1dc473f48121ac24ef6b9c7a1a51e
parentMerge pull request #242570 from fortuneteller2k/elf2uf2-darwin (diff)
parentrealvnc-vnc-viewer: support darwin (diff)
downloadnixpkgs-f73cbfb26ba8aa5486b14248f77c85cd0f63dd23.tar.gz
Merge pull request #242078 from emilytrau/realvnc-darwin
realvnc-vnc-viewer: support darwin
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/darwin.nix28
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/default.nix45
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/linux.nix46
3 files changed, 80 insertions, 39 deletions
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/darwin.nix b/pkgs/tools/admin/realvnc-vnc-viewer/darwin.nix
new file mode 100644
index 000000000000..0a27e2733b51
--- /dev/null
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/darwin.nix
@@ -0,0 +1,28 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, undmg
+, pname
+, version
+, meta
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+ inherit pname version meta;
+
+ src = fetchurl {
+ url = "https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-${finalAttrs.version}-MacOSX-universal.dmg";
+ sha256 = "0k72fdnx1zmyi9z5n3lazc7s70gcddxq0s73akp0al0y9hzq9prh";
+ };
+ sourceRoot = ".";
+
+ nativeBuildInputs = [ undmg ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/Applications
+ cp -r *.app $out/Applications
+
+ runHook postInstall
+ '';
+})
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
index 6ed191484d5d..18ec2a21200b 100644
--- a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -1,49 +1,14 @@
{ lib
, stdenv
-, fetchurl
-, autoPatchelfHook
-, rpmextract
-, libX11
-, libXext
+, callPackage
}:
-
-stdenv.mkDerivation rec {
+let
pname = "realvnc-vnc-viewer";
version = "7.5.1";
- src = {
- "x86_64-linux" = fetchurl {
- url = "https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-${version}-Linux-x64.rpm";
- sha256 = "sha256-Ull9iNi8NxB12YwEThWE0P9k1xOV2LZnebuRrVH/zwI=";
- };
- }.${stdenv.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-
- nativeBuildInputs = [ autoPatchelfHook rpmextract ];
- buildInputs = [ libX11 libXext stdenv.cc.cc.libgcc or null ];
-
- 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/";
- mainProgram = "vncviewer";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = {
fullName = "VNC Connect End User License Agreement";
@@ -51,6 +16,8 @@ stdenv.mkDerivation rec {
free = false;
};
maintainers = with maintainers; [ emilytrau onedragon ];
- platforms = [ "x86_64-linux" ];
+ platforms = [ "x86_64-linux" ] ++ platforms.darwin;
};
-}
+in
+if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version meta; }
+else callPackage ./linux.nix { inherit pname version meta; }
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/linux.nix b/pkgs/tools/admin/realvnc-vnc-viewer/linux.nix
new file mode 100644
index 000000000000..63060e48625c
--- /dev/null
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/linux.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, rpmextract
+, libX11
+, libXext
+, pname
+, version
+, meta
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ inherit pname version;
+
+ src = {
+ "x86_64-linux" = fetchurl {
+ url = "https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-${finalAttrs.version}-Linux-x64.rpm";
+ sha256 = "sha256-Ull9iNi8NxB12YwEThWE0P9k1xOV2LZnebuRrVH/zwI=";
+ };
+ }.${stdenv.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+ nativeBuildInputs = [ autoPatchelfHook rpmextract ];
+ buildInputs = [ libX11 libXext stdenv.cc.cc.libgcc or null ];
+
+ 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 = meta // { mainProgram = "vncviewer"; };
+})