freerdp: 20160909 -> 20170201 and rename old freerdp to freerdp_legacy

The former "stable" version of FreeRDP was actually not stable - it just
happened to have a released version while being both buggy and insecure.

The "unstable" branch hasn't seen a release in years, but everybody
should be using this instead and I have been using it as a daily driver
for ages.

This new version works beautifully here.

If/when at some point upstream does a normal release, we can bring back
stable/unstable if needed.

As I am quite dependent on FreeRDP working properly, I will be commit to
keeping this updated.

The commit used for this release follows the Arch Linux release.

+142 -112
+60 -51
pkgs/applications/networking/remote/freerdp/default.nix
··· 1 - { stdenv 2 - , fetchurl 3 - , cmake 4 - , openssl 5 - , printerSupport ? true, cups 6 - , pkgconfig 7 - , zlib 8 - , libX11 9 - , libXcursor 10 - , libXdamage 11 - , libXext 12 - , alsaLib 13 - , ffmpeg 14 - , libxkbfile 15 - #, xmlto, docbook_xml_dtd_412, docbook_xml_xslt 16 - , libXinerama 17 - , libXv 18 - , pulseaudioSupport ? true, libpulseaudio 19 }: 20 21 - assert printerSupport -> cups != null; 22 stdenv.mkDerivation rec { 23 - name = "freerdp-${version}"; 24 - version = "1.0.2"; 25 26 - src = fetchurl { 27 - url = "https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz"; 28 - sha256 = "1w9dk7dsbppspnnms2xwwmbg7jm61i7aw5nkwzbpdyxngbgkgwf0"; 29 }; 30 31 - buildInputs = [ 32 - cmake 33 - openssl 34 - pkgconfig 35 - zlib 36 - libX11 37 - libXcursor 38 - libXdamage 39 - libXext 40 - alsaLib 41 - ffmpeg 42 - libxkbfile 43 - # xmlto docbook_xml_dtd_412 docbook_xml_xslt 44 - libXinerama 45 - libXv 46 - ] ++ stdenv.lib.optional printerSupport cups; 47 48 - configureFlags = [ 49 - "--with-x" "-DWITH_MANPAGES=OFF" 50 - ] ++ stdenv.lib.optional printerSupport "--with-printer=cups" 51 - ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON"; 52 53 - meta = { 54 description = "A Remote Desktop Protocol Client"; 55 - 56 longDescription = '' 57 FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) 58 following the Microsoft Open Specifications. 59 ''; 60 - 61 homepage = http://www.freerdp.com/; 62 - 63 - license = stdenv.lib.licenses.free; 64 - platforms = stdenv.lib.platforms.linux; 65 - broken = true; 66 }; 67 }
··· 1 + { stdenv, lib, fetchFromGitHub, substituteAll, cmake, pkgconfig 2 + , alsaLib, ffmpeg_2, glib, openssl, pcre, zlib 3 + , libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv 4 + , libxkbcommon, libxkbfile 5 + , wayland 6 + , gstreamer, gst-plugins-base, gst-plugins-good 7 + , libpulseaudio ? null 8 + , cups ? null 9 + , pcsclite ? null 10 + , systemd ? null 11 + , buildServer ? true 12 + , optimize ? true 13 }: 14 15 stdenv.mkDerivation rec { 16 + name = "freerdp-git-${version}"; 17 + version = "20170201"; 18 19 + src = fetchFromGitHub { 20 + owner = "FreeRDP"; 21 + repo = "FreeRDP"; 22 + rev = "6001cb710dc67eb8811362b7bf383754257a902b"; 23 + sha256 = "0l2lwqk2r8rq8a0f91wbb30kqg21fv0k0508djpwj0pa9n73fgmg"; 24 }; 25 26 + # outputs = [ "bin" "out" "dev" ]; 27 + 28 + prePatch = '' 29 + export HOME=$TMP 30 + substituteInPlace "libfreerdp/freerdp.pc.in" \ 31 + --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" 32 + ''; 33 + 34 + patches = with lib; [ 35 + ] ++ optional (pcsclite != null) 36 + (substituteAll { 37 + src = ./dlopen-absolute-paths.diff; 38 + inherit pcsclite; 39 + }); 40 + 41 + buildInputs = with lib; [ 42 + alsaLib cups ffmpeg_2 glib openssl pcre pcsclite libpulseaudio zlib 43 + gstreamer gst-plugins-base gst-plugins-good 44 + libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv 45 + libxkbcommon libxkbfile 46 + wayland 47 + ] ++ optional stdenv.isLinux systemd; 48 + 49 + nativeBuildInputs = [ 50 + cmake pkgconfig 51 + ]; 52 + 53 + doCheck = false; 54 55 + cmakeFlags = with lib; [ 56 + "-DCMAKE_INSTALL_LIBDIR=lib" 57 + "-DWITH_CUNIT=OFF" 58 + "-DWITH_OSS=OFF" 59 + ] ++ optional (libpulseaudio != null) "-DWITH_PULSE=ON" 60 + ++ optional (cups != null) "-DWITH_CUPS=ON" 61 + ++ optional (pcsclite != null) "-DWITH_PCSC=ON" 62 + ++ optional buildServer "-DWITH_SERVER=ON" 63 + ++ optional optimize "-DWITH_SSE2=ON"; 64 65 + meta = with lib; { 66 description = "A Remote Desktop Protocol Client"; 67 longDescription = '' 68 FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) 69 following the Microsoft Open Specifications. 70 ''; 71 homepage = http://www.freerdp.com/; 72 + license = licenses.asl20; 73 + maintainers = with maintainers; [ wkennington peterhoeg ]; 74 + platforms = platforms.unix; 75 }; 76 }
+73
pkgs/applications/networking/remote/freerdp/legacy.nix
···
··· 1 + { stdenv 2 + , fetchurl 3 + , cmake 4 + , openssl 5 + , glib, pcre 6 + , printerSupport ? true, cups 7 + , pkgconfig 8 + , zlib 9 + , libX11 10 + , libXcursor 11 + , libXdamage 12 + , libXext 13 + , alsaLib 14 + , ffmpeg 15 + , libxkbfile 16 + #, xmlto, docbook_xml_dtd_412, docbook_xml_xslt 17 + , libXfixes 18 + , libXinerama 19 + , libXv 20 + , pulseaudioSupport ? true, libpulseaudio 21 + }: 22 + 23 + assert printerSupport -> cups != null; 24 + 25 + stdenv.mkDerivation rec { 26 + name = "freerdp-${version}"; 27 + version = "1.2.0-beta1+android9"; 28 + 29 + src = fetchurl { 30 + url = "https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz"; 31 + sha256 = "181w4lkrk5h5kh2zjlx6h2cl1mfw2aaami3laq3q32pfj06q3rxl"; 32 + }; 33 + 34 + buildInputs = [ 35 + cmake 36 + openssl 37 + glib pcre 38 + pkgconfig 39 + zlib 40 + libX11 41 + libXcursor 42 + libXdamage 43 + libXext 44 + alsaLib 45 + ffmpeg 46 + libxkbfile 47 + # xmlto docbook_xml_dtd_412 docbook_xml_xslt 48 + libXinerama 49 + libXv 50 + ] ++ stdenv.lib.optional printerSupport cups; 51 + 52 + preConfigure = '' 53 + export HOME=$TMP 54 + ''; 55 + 56 + configureFlags = [ 57 + "--with-x" "-DWITH_MANPAGES=OFF" 58 + ] ++ stdenv.lib.optional printerSupport "--with-printer=cups" 59 + ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON"; 60 + 61 + meta = with stdenv.lib; { 62 + description = "A Remote Desktop Protocol Client"; 63 + 64 + longDescription = '' 65 + FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) 66 + following the Microsoft Open Specifications. 67 + ''; 68 + 69 + homepage = http://www.freerdp.com/; 70 + license = licenses.free; 71 + platforms = platforms.linux; 72 + }; 73 + }
-56
pkgs/applications/networking/remote/freerdp/unstable.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor 2 - , libXdamage, libXext, libXrender, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv 3 - , substituteAll 4 - , libpulseaudio ? null, cups ? null, pcsclite ? null 5 - , buildServer ? true, optimize ? true 6 - }: 7 - 8 - stdenv.mkDerivation rec { 9 - name = "freerdp-2.0-dev"; 10 - 11 - src = fetchFromGitHub { 12 - owner = "FreeRDP"; 13 - repo = "FreeRDP"; 14 - rev = "1855e36179fb197e713d41c4ef93e19cf1f0be2f"; 15 - sha256 = "1lydkh6by0sjy6dl57bzg7c11ccyp24s80pwxw9h5kmxkbw6mx5q"; 16 - }; 17 - 18 - prePatch = '' 19 - substituteInPlace "libfreerdp/freerdp.pc.in" --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" 20 - ''; 21 - 22 - patches = [ 23 - ] ++ stdenv.lib.optional (pcsclite != null) 24 - (substituteAll { 25 - src = ./dlopen-absolute-paths.diff; 26 - inherit pcsclite; 27 - }); 28 - 29 - buildInputs = [ 30 - cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext libXrender glib 31 - alsaLib ffmpeg libxkbfile libXinerama libXv cups libpulseaudio pcsclite 32 - ]; 33 - 34 - doCheck = false; 35 - 36 - cmakeFlags = [ 37 - "-DCMAKE_INSTALL_LIBDIR=lib" 38 - "-DWITH_CUNIT=OFF" 39 - ] ++ stdenv.lib.optional (libpulseaudio != null) "-DWITH_PULSE=ON" 40 - ++ stdenv.lib.optional (cups != null) "-DWITH_CUPS=ON" 41 - ++ stdenv.lib.optional (pcsclite != null) "-DWITH_PCSC=ON" 42 - ++ stdenv.lib.optional buildServer "-DWITH_SERVER=ON" 43 - ++ stdenv.lib.optional optimize "-DWITH_SSE2=ON"; 44 - 45 - meta = with stdenv.lib; { 46 - description = "A Remote Desktop Protocol Client"; 47 - longDescription = '' 48 - FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) 49 - following the Microsoft Open Specifications. 50 - ''; 51 - homepage = http://www.freerdp.com/; 52 - license = licenses.asl20; 53 - maintainers = with maintainers; [ wkennington ]; 54 - platforms = platforms.unix; 55 - }; 56 - }
···
+9 -5
pkgs/top-level/all-packages.nix
··· 13360 xfontsel = callPackage ../applications/misc/xfontsel { }; 13361 inherit (xorg) xlsfonts; 13362 13363 - freerdpStable = callPackage ../applications/networking/remote/freerdp { 13364 - ffmpeg = ffmpeg_1; 13365 }; 13366 - freerdpUnstable = callPackage ../applications/networking/remote/freerdp/unstable.nix { 13367 - ffmpeg = ffmpeg_2; 13368 cmake = cmake_2_8; 13369 }; 13370 - freerdp = freerdpUnstable; # freerdpStable is marked broken, please switch back to it once fixed 13371 13372 freicoin = callPackage ../applications/misc/freicoin { 13373 boost = boost155;
··· 13360 xfontsel = callPackage ../applications/misc/xfontsel { }; 13361 inherit (xorg) xlsfonts; 13362 13363 + freerdp = callPackage ../applications/networking/remote/freerdp { 13364 + inherit libpulseaudio; 13365 + inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good; 13366 }; 13367 + 13368 + freerdpUnstable = freerdp; 13369 + 13370 + # This must go when weston v2 is released 13371 + freerdp_legacy = callPackage ../applications/networking/remote/freerdp/legacy.nix { 13372 cmake = cmake_2_8; 13373 + ffmpeg = ffmpeg_1; 13374 }; 13375 13376 freicoin = callPackage ../applications/misc/freicoin { 13377 boost = boost155;