summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Buckley <sean.bck@gmail.com>2021-12-08 15:13:53 -0500
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2022-02-05 17:00:14 +0000
commit64460348e7afabea5aca3d1e9501e9ea90d515ed (patch)
tree133b9c87445c8f3aaf6bcbc4bad03b268d6fbf3c
parentMerge pull request #157885 from pacien/21.11-mercurial-5.9.3-patch-6d2ddea0721a (diff)
downloadnixpkgs-origin/backport-149713-to-release-21.11.tar.gz
vmware-horizon-client: 2106.1 -> 2111origin/backport-149713-to-release-21.11
(cherry picked from commit beb568ccbdf13eb8d8b2afe97e3d16917363d38e)
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix111
1 files changed, 48 insertions, 63 deletions
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index 033386afd1ff..ee9467467cf4 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -1,57 +1,40 @@
{ stdenv
, lib
-, at-spi2-atk
-, atk
, buildFHSUserEnv
-, cairo
-, dbus
, fetchurl
-, fontconfig
-, freetype
-, gdk-pixbuf
-, glib
, gsettings-desktop-schemas
-, gtk2
-, gtk3-x11
-, harfbuzz
-, liberation_ttf
-, libjpeg
-, libtiff
-, libudev0-shim
-, libuuid
-, libX11
-, libXcursor
-, libXext
-, libXi
-, libXinerama
-, libxkbfile
-, libxml2
-, libXrandr
-, libXrender
-, libXScrnSaver
-, libxslt
-, libXtst
, makeDesktopItem
, makeWrapper
-, pango
-, pcsclite
-, pixman
-, zlib
+, writeTextDir
+, configText ? ""
}:
let
- version = "2106.1";
+ version = "2111";
sysArch =
if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
else throw "Unsupported system: ${stdenv.hostPlatform.system}";
# The downloaded archive also contains ARM binaries, but these have not been tested.
+ # For USB support, ensure that /var/run/vmware/<YOUR-UID>
+ # exists and is owned by you. Then run vmware-usbarbitrator as root.
+ bins = [ "vmware-view" "vmware-usbarbitrator" ];
+
+ # This forces the default GTK theme (Adwaita) because Horizon is prone to
+ # UI usability issues when using non-default themes, such as Adwaita-dark.
+ wrapBinCommands = name: ''
+ makeWrapper "$out/bin/${name}" "$out/bin/${name}_wrapper" \
+ --set GTK_THEME Adwaita \
+ --suffix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
+ --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware"
+ '';
+
vmwareHorizonClientFiles = stdenv.mkDerivation {
name = "vmwareHorizonClientFiles";
inherit version;
src = fetchurl {
- url = "https://download3.vmware.com/software/view/viewclients/CART22FQ2/VMware-Horizon-Client-Linux-2106.1-8.3.1-18435609.tar.gz";
- sha256 = "b42ddb9d7e9c8d0f8b86b69344fcfca45251c5a5f1e06a18a3334d5a04e18c39";
+ url = "https://download3.vmware.com/software/view/viewclients/CART22FH2/VMware-Horizon-Client-Linux-2111-8.4.0-18957622.tar.gz";
+ sha256 = "2f79d2d8d34e6f85a5d21a3350618c4763d60455e7d68647ea40715eaff486f7";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
@@ -65,27 +48,19 @@ let
# Deleting the bundled library is the simplest way to force it to use our version.
rm "$out/lib/vmware/gcc/libstdc++.so.6"
- # This libjpeg library interferes with Chromium, so we will be using ours instead.
- rm $out/lib/vmware/libjpeg.*
-
# This library causes the program to core-dump occasionally. Use ours instead.
rm $out/lib/vmware/view/crtbora/libcairo.*
- # Force the default GTK theme (Adwaita) because Horizon is prone to
- # UI usability issues when using non-default themes, such as Adwaita-dark.
- makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \
- --set GTK_THEME Adwaita \
- --suffix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
- --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware"
+ ${lib.concatMapStrings wrapBinCommands bins}
'';
};
- vmwareFHSUserEnv = buildFHSUserEnv {
- name = "vmware-view";
+ vmwareFHSUserEnv = name: buildFHSUserEnv {
+ inherit name;
- runScript = "${vmwareHorizonClientFiles}/bin/vmware-view_wrapper";
+ runScript = "${vmwareHorizonClientFiles}/bin/${name}_wrapper";
- targetPkgs = pkgs: [
+ targetPkgs = pkgs: with pkgs; [
at-spi2-atk
atk
cairo
@@ -99,25 +74,29 @@ let
harfbuzz
liberation_ttf
libjpeg
+ libpulseaudio
libtiff
libudev0-shim
libuuid
- libX11
- libXcursor
- libXext
- libXi
- libXinerama
- libxkbfile
+ libv4l
libxml2
- libXrandr
- libXrender
- libXScrnSaver
- libXtst
pango
pcsclite
pixman
vmwareHorizonClientFiles
+ xorg.libX11
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXi
+ xorg.libXinerama
+ xorg.libxkbfile
+ xorg.libXrandr
+ xorg.libXrender
+ xorg.libXScrnSaver
+ xorg.libXtst
zlib
+
+ (writeTextDir "etc/vmware/config" configText)
];
};
@@ -125,20 +104,25 @@ let
name = "vmware-view";
desktopName = "VMware Horizon Client";
icon = "${vmwareHorizonClientFiles}/share/icons/vmware-view.png";
- exec = "${vmwareFHSUserEnv}/bin/vmware-view %u";
+ exec = "${vmwareFHSUserEnv "vmware-view"}/bin/vmware-view %u";
mimeType = "x-scheme-handler/vmware-view";
};
+ binLinkCommands = lib.concatMapStringsSep
+ "\n"
+ (bin: "ln -s ${vmwareFHSUserEnv bin}/bin/${bin} $out/bin/")
+ bins;
+
in
stdenv.mkDerivation {
- name = "vmware-view";
+ name = "vmware-horizon-client";
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin $out/share/applications
- cp "${desktopItem}"/share/applications/* $out/share/applications/
- ln -s "${vmwareFHSUserEnv}/bin/vmware-view" "$out/bin/"
+ cp ${desktopItem}/share/applications/* $out/share/applications/
+ ${binLinkCommands}
'';
unwrapped = vmwareHorizonClientFiles;
@@ -146,10 +130,11 @@ stdenv.mkDerivation {
passthru.updateScript = ./update.sh;
meta = with lib; {
+ mainProgram = "vmware-view";
description = "Allows you to connect to your VMware Horizon virtual desktop";
homepage = "https://www.vmware.com/go/viewclients";
license = licenses.unfree;
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ buckley310 ];
};
}