1{
2 lib,
3 stdenv,
4 fetchurl,
5 libsForQt5,
6 pkg-config,
7 bash,
8 cups,
9 libXpm,
10 libssh,
11 nx-libs,
12 openldap,
13 openssh,
14}:
15
16stdenv.mkDerivation (finalAttrs: {
17 pname = "x2goclient";
18 version = "4.1.2.3";
19
20 src = fetchurl {
21 url = "https://code.x2go.org/releases/source/x2goclient/x2goclient-${finalAttrs.version}.tar.gz";
22 hash = "sha256-q4uzx40xYlx0nkLxX4EP49JCknoVKYMIwT3qO5Fayjw=";
23 };
24
25 buildInputs = [
26 cups
27 libXpm
28 libssh
29 libsForQt5.phonon
30 libsForQt5.qtbase
31 libsForQt5.qtsvg
32 libsForQt5.qttools
33 libsForQt5.qtx11extras
34 nx-libs
35 openldap
36 openssh
37 ];
38
39 nativeBuildInputs = [
40 pkg-config
41 libsForQt5.wrapQtAppsHook
42 ];
43
44 postPatch = ''
45 substituteInPlace src/onmainwindow.cpp \
46 --replace-fail "/usr/sbin/sshd" "${lib.getExe' openssh "sshd"}"
47 substituteInPlace Makefile \
48 --replace-fail "SHELL=/bin/bash" "SHELL ?= ${lib.getExe bash}" \
49 --replace-fail "lrelease-qt4" "${lib.getExe' libsForQt5.qttools.dev "lrelease"}" \
50 --replace-fail "qmake-qt4" "${lib.getExe' libsForQt5.qtbase.dev "qmake"}" \
51 --replace-fail "-o root -g root" ""
52 '';
53
54 makeFlags = [
55 "PREFIX=$(out)"
56 "ETCDIR=$(out)/etc"
57 "build_client"
58 "build_man"
59 # No rule to make target 'SHELL'
60 "MAKEOVERRIDES="
61 ".MAKEOVERRIDES="
62 ".MAKEFLAGS="
63 ];
64
65 installTargets = [
66 "install_client"
67 "install_man"
68 ];
69
70 qtWrapperArgs = [
71 "--suffix PATH : ${nx-libs}/bin:${openssh}/libexec"
72 "--set QT_QPA_PLATFORM xcb"
73 ];
74
75 meta = {
76 description = "Graphical NoMachine NX3 remote desktop client";
77 mainProgram = "x2goclient";
78 homepage = "http://x2go.org/";
79 maintainers = [ ];
80 license = with lib.licenses; [
81 agpl3Plus
82 mit
83 free
84 ]; # Some X2Go components are licensed under some license (MIT X11, BSD, etc.)
85 platforms = lib.platforms.linux;
86 };
87})