aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix96
1 files changed, 96 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
new file mode 100644
index 000000000000..50083535a2da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
@@ -0,0 +1,96 @@
+{ stdenv, file, fetchurl, makeWrapper,
+ autoPatchelfHook, jsoncpp, libpulseaudio }:
+let
+ versionMajor = "6.12";
+ versionMinor = "3";
+ versionBuild_x86_64 = "7";
+ versionBuild_i686 = "8";
+in
+ stdenv.mkDerivation rec {
+ pname = "nomachine-client";
+ version = "${versionMajor}.${versionMinor}";
+
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ urls = [
+ "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
+ "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
+ ];
+ sha256 = "1dqsqwxbd77g6gc0hvjmmg4flm3vwwv5y98m8d9wxyybp37vkmgd";
+ }
+ else if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ urls = [
+ "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
+ "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
+ ];
+ sha256 = "1q14hxjy66s5cpq19rshscsm679csb6p16c5p2agh5zd64cr4am6";
+ }
+ else
+ throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
+
+ postUnpack = ''
+ mv $(find . -type f -name nxclient.tar.gz) .
+ mv $(find . -type f -name nxplayer.tar.gz) .
+ rm -r NX/
+ tar xf nxclient.tar.gz
+ tar xf nxplayer.tar.gz
+ rm $(find . -maxdepth 1 -type f)
+ '';
+
+ nativeBuildInputs = [ file makeWrapper autoPatchelfHook ];
+ buildInputs = [ jsoncpp libpulseaudio ];
+
+ installPhase = ''
+ rm bin/nxplayer bin/nxclient
+
+ mkdir -p $out/NX
+ cp -r bin lib share $out/NX/
+
+ ln -s $out/NX/bin $out/bin
+
+ for i in share/icons/*; do
+ if [[ -d "$i" ]]; then
+ mkdir -p "$out/share/icons/hicolor/$(basename $i)/apps"
+ cp "$i"/* "$out/share/icons/hicolor/$(basename $i)/apps/"
+ fi
+ done
+
+ mkdir $out/share/applications
+ cp share/applnk/player/xdg/*.desktop $out/share/applications/
+ cp share/applnk/client/xdg-mime/*.desktop $out/share/applications/
+
+ mkdir -p $out/share/mime/packages
+ cp share/applnk/client/xdg-mime/*.xml $out/share/mime/packages/
+
+ for i in $out/share/applications/*.desktop; do
+ substituteInPlace "$i" --replace /usr/NX/bin $out/bin
+ done
+ '';
+
+ postFixup = ''
+ makeWrapper $out/bin/nxplayer.bin $out/bin/nxplayer --set NX_SYSTEM $out/NX
+ makeWrapper $out/bin/nxclient.bin $out/bin/nxclient --set NX_SYSTEM $out/NX
+
+ # libnxcau.so needs libpulse.so.0 for audio to work, but doesn't
+ # have a DT_NEEDED entry for it.
+ patchelf --add-needed libpulse.so.0 $out/NX/lib/libnxcau.so
+ '';
+
+ dontBuild = true;
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "NoMachine remote desktop client (nxplayer)";
+ homepage = "https://www.nomachine.com/";
+ license = {
+ fullName = "NoMachine 6 End-User License Agreement";
+ url = "https://www.nomachine.com/licensing-6";
+ free = false;
+ };
+ maintainers = with maintainers; [ talyz ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ };
+ }
+