diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix | 126 |
1 files changed, 79 insertions, 47 deletions
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix index 5963c6b6c950..be8810dfa7fc 100644 --- a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix +++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix @@ -1,67 +1,99 @@ -{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig -, alsaLib, ffmpeg, glib, openssl, pcre, zlib -, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv -, libxkbcommon, libxkbfile -, wayland -, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc -, libpulseaudio ? null -, cups ? null -, pcsclite ? null -, systemd ? null -, buildServer ? true -, nocaps ? false -}: +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl +, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama +, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland +, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt +, libusb1, libpulseaudio ? null, cups ? null, pcsclite ? null, systemd ? null +, buildServer ? true, nocaps ? false }: -stdenv.mkDerivation rec { +let + cmFlag = flag: if flag then "ON" else "OFF"; + disabledTests = [ + # this one is probably due to our sandbox + { + dir = "libfreerdp/crypto/test"; + file = "Test_x509_cert_info.c"; + } + ]; + +in stdenv.mkDerivation rec { pname = "freerdp"; - version = "2.0.0-rc4"; + version = "2.0.0"; src = fetchFromGitHub { - owner = "FreeRDP"; - repo = "FreeRDP"; - rev = version; - sha256 = "0546i0m2d4nz5jh84ngwzpcm3c43fp987jk6cynqspsmvapab6da"; + owner = "FreeRDP"; + repo = "FreeRDP"; + rev = version; + sha256 = "0d2559v0z1jnq6jlrvsgdf8p6gd27m8kwdnxckl1x0ygaxs50bqc"; }; - # outputs = [ "bin" "out" "dev" ]; - - prePatch = '' + postPatch = '' export HOME=$TMP + + # failing test(s) + ${lib.concatMapStringsSep "\n" (e: '' + substituteInPlace ${e.dir}/CMakeLists.txt \ + --replace ${e.file} "" + rm ${e.dir}/${e.file} + '') disabledTests} + substituteInPlace "libfreerdp/freerdp.pc.in" \ --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" '' + lib.optionalString (pcsclite != null) '' substituteInPlace "winpr/libwinpr/smartcard/smartcard_pcsc.c" \ - --replace "libpcsclite.so" "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so" + --replace "libpcsclite.so" "${lib.getLib pcsclite}/lib/libpcsclite.so" '' + lib.optionalString nocaps '' substituteInPlace "libfreerdp/locale/keyboard_xkbfile.c" \ --replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL" ''; - buildInputs = with lib; [ - alsaLib cups ffmpeg glib openssl pcre pcsclite libpulseaudio zlib - gstreamer gst-plugins-base gst-plugins-good libunwind orc - libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv - libxkbcommon libxkbfile - wayland - ] ++ optional stdenv.isLinux systemd; - - nativeBuildInputs = [ - cmake pkgconfig - ]; + buildInputs = with lib; + [ + alsaLib + cups + ffmpeg + glib + gst-plugins-base + gst-plugins-good + gstreamer + libX11 + libXcursor + libXdamage + libXext + libXi + libXinerama + libXrandr + libXrender + libXtst + libXv + libpulseaudio + libunwind + libusb1 + libxkbcommon + libxkbfile + libxslt + openssl + orc + pcre + pcsclite + wayland + zlib + ] ++ optional stdenv.isLinux systemd; - enableParallelBuilding = true; + nativeBuildInputs = [ cmake pkgconfig ]; - doCheck = false; + doCheck = true; - cmakeFlags = with lib; [ - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DWITH_CUNIT=OFF" - "-DWITH_OSS=OFF" - ] ++ optional (libpulseaudio != null) "-DWITH_PULSE=ON" - ++ optional (cups != null) "-DWITH_CUPS=ON" - ++ optional (pcsclite != null) "-DWITH_PCSC=ON" - ++ optional buildServer "-DWITH_SERVER=ON" - ++ optional (stdenv.isx86_64) "-DWITH_SSE2=ON"; + cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ] + ++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") { + BUILD_TESTING = doCheck; + WITH_CUNIT = doCheck; + WITH_CUPS = (cups != null); + WITH_OSS = false; + WITH_PCSC = (pcsclite != null); + WITH_PULSE = (libpulseaudio != null); + WITH_SERVER = buildServer; + WITH_SSE2 = stdenv.isx86_64; + }; meta = with lib; { description = "A Remote Desktop Protocol Client"; @@ -69,9 +101,9 @@ stdenv.mkDerivation rec { FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) following the Microsoft Open Specifications. ''; - homepage = http://www.freerdp.com/; + homepage = "https://www.freerdp.com/"; license = licenses.asl20; - maintainers = with maintainers; [ peterhoeg ]; + maintainers = with maintainers; [ peterhoeg lheckemann ]; platforms = platforms.unix; }; } |