From 05684f313e58363568697dd0677ae2e927277b0c Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Sun, 5 Feb 2017 14:03:59 +0800 Subject: 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. --- .../networking/remote/freerdp/default.nix | 111 +++++++++++---------- .../networking/remote/freerdp/legacy.nix | 73 ++++++++++++++ .../networking/remote/freerdp/unstable.nix | 56 ----------- 3 files changed, 133 insertions(+), 107 deletions(-) create mode 100644 pkgs/applications/networking/remote/freerdp/legacy.nix delete mode 100644 pkgs/applications/networking/remote/freerdp/unstable.nix (limited to 'pkgs/applications/networking/remote/freerdp') diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix index 05ec51d66814..d35f22c18396 100644 --- a/pkgs/applications/networking/remote/freerdp/default.nix +++ b/pkgs/applications/networking/remote/freerdp/default.nix @@ -1,67 +1,76 @@ -{ stdenv -, fetchurl -, cmake -, openssl -, printerSupport ? true, cups -, pkgconfig -, zlib -, libX11 -, libXcursor -, libXdamage -, libXext -, alsaLib -, ffmpeg -, libxkbfile -#, xmlto, docbook_xml_dtd_412, docbook_xml_xslt -, libXinerama -, libXv -, pulseaudioSupport ? true, libpulseaudio +{ stdenv, lib, fetchFromGitHub, substituteAll, cmake, pkgconfig +, alsaLib, ffmpeg_2, glib, openssl, pcre, zlib +, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv +, libxkbcommon, libxkbfile +, wayland +, gstreamer, gst-plugins-base, gst-plugins-good +, libpulseaudio ? null +, cups ? null +, pcsclite ? null +, systemd ? null +, buildServer ? true +, optimize ? true }: -assert printerSupport -> cups != null; stdenv.mkDerivation rec { - name = "freerdp-${version}"; - version = "1.0.2"; + name = "freerdp-git-${version}"; + version = "20170201"; - src = fetchurl { - url = "https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz"; - sha256 = "1w9dk7dsbppspnnms2xwwmbg7jm61i7aw5nkwzbpdyxngbgkgwf0"; + src = fetchFromGitHub { + owner = "FreeRDP"; + repo = "FreeRDP"; + rev = "6001cb710dc67eb8811362b7bf383754257a902b"; + sha256 = "0l2lwqk2r8rq8a0f91wbb30kqg21fv0k0508djpwj0pa9n73fgmg"; }; - buildInputs = [ - cmake - openssl - pkgconfig - zlib - libX11 - libXcursor - libXdamage - libXext - alsaLib - ffmpeg - libxkbfile -# xmlto docbook_xml_dtd_412 docbook_xml_xslt - libXinerama - libXv - ] ++ stdenv.lib.optional printerSupport cups; + # outputs = [ "bin" "out" "dev" ]; - configureFlags = [ - "--with-x" "-DWITH_MANPAGES=OFF" - ] ++ stdenv.lib.optional printerSupport "--with-printer=cups" - ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON"; + prePatch = '' + export HOME=$TMP + substituteInPlace "libfreerdp/freerdp.pc.in" \ + --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" + ''; - meta = { - description = "A Remote Desktop Protocol Client"; + patches = with lib; [ + ] ++ optional (pcsclite != null) + (substituteAll { + src = ./dlopen-absolute-paths.diff; + inherit pcsclite; + }); + + buildInputs = with lib; [ + alsaLib cups ffmpeg_2 glib openssl pcre pcsclite libpulseaudio zlib + gstreamer gst-plugins-base gst-plugins-good + libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv + libxkbcommon libxkbfile + wayland + ] ++ optional stdenv.isLinux systemd; + + nativeBuildInputs = [ + cmake pkgconfig + ]; + + doCheck = false; + 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 optimize "-DWITH_SSE2=ON"; + + meta = with lib; { + description = "A Remote Desktop Protocol Client"; longDescription = '' FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) following the Microsoft Open Specifications. ''; - homepage = http://www.freerdp.com/; - - license = stdenv.lib.licenses.free; - platforms = stdenv.lib.platforms.linux; - broken = true; + license = licenses.asl20; + maintainers = with maintainers; [ wkennington peterhoeg ]; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/networking/remote/freerdp/legacy.nix b/pkgs/applications/networking/remote/freerdp/legacy.nix new file mode 100644 index 000000000000..d3746fa6c7ad --- /dev/null +++ b/pkgs/applications/networking/remote/freerdp/legacy.nix @@ -0,0 +1,73 @@ +{ stdenv +, fetchurl +, cmake +, openssl +, glib, pcre +, printerSupport ? true, cups +, pkgconfig +, zlib +, libX11 +, libXcursor +, libXdamage +, libXext +, alsaLib +, ffmpeg +, libxkbfile +#, xmlto, docbook_xml_dtd_412, docbook_xml_xslt +, libXfixes +, libXinerama +, libXv +, pulseaudioSupport ? true, libpulseaudio +}: + +assert printerSupport -> cups != null; + +stdenv.mkDerivation rec { + name = "freerdp-${version}"; + version = "1.2.0-beta1+android9"; + + src = fetchurl { + url = "https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz"; + sha256 = "181w4lkrk5h5kh2zjlx6h2cl1mfw2aaami3laq3q32pfj06q3rxl"; + }; + + buildInputs = [ + cmake + openssl + glib pcre + pkgconfig + zlib + libX11 + libXcursor + libXdamage + libXext + alsaLib + ffmpeg + libxkbfile +# xmlto docbook_xml_dtd_412 docbook_xml_xslt + libXinerama + libXv + ] ++ stdenv.lib.optional printerSupport cups; + + preConfigure = '' + export HOME=$TMP + ''; + + configureFlags = [ + "--with-x" "-DWITH_MANPAGES=OFF" + ] ++ stdenv.lib.optional printerSupport "--with-printer=cups" + ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON"; + + meta = with stdenv.lib; { + description = "A Remote Desktop Protocol Client"; + + longDescription = '' + FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) + following the Microsoft Open Specifications. + ''; + + homepage = http://www.freerdp.com/; + license = licenses.free; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/remote/freerdp/unstable.nix b/pkgs/applications/networking/remote/freerdp/unstable.nix deleted file mode 100644 index 5483e9420761..000000000000 --- a/pkgs/applications/networking/remote/freerdp/unstable.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor -, libXdamage, libXext, libXrender, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv -, substituteAll -, libpulseaudio ? null, cups ? null, pcsclite ? null -, buildServer ? true, optimize ? true -}: - -stdenv.mkDerivation rec { - name = "freerdp-2.0-dev"; - - src = fetchFromGitHub { - owner = "FreeRDP"; - repo = "FreeRDP"; - rev = "1855e36179fb197e713d41c4ef93e19cf1f0be2f"; - sha256 = "1lydkh6by0sjy6dl57bzg7c11ccyp24s80pwxw9h5kmxkbw6mx5q"; - }; - - prePatch = '' - substituteInPlace "libfreerdp/freerdp.pc.in" --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" - ''; - - patches = [ - ] ++ stdenv.lib.optional (pcsclite != null) - (substituteAll { - src = ./dlopen-absolute-paths.diff; - inherit pcsclite; - }); - - buildInputs = [ - cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext libXrender glib - alsaLib ffmpeg libxkbfile libXinerama libXv cups libpulseaudio pcsclite - ]; - - doCheck = false; - - cmakeFlags = [ - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DWITH_CUNIT=OFF" - ] ++ stdenv.lib.optional (libpulseaudio != null) "-DWITH_PULSE=ON" - ++ stdenv.lib.optional (cups != null) "-DWITH_CUPS=ON" - ++ stdenv.lib.optional (pcsclite != null) "-DWITH_PCSC=ON" - ++ stdenv.lib.optional buildServer "-DWITH_SERVER=ON" - ++ stdenv.lib.optional optimize "-DWITH_SSE2=ON"; - - meta = with stdenv.lib; { - description = "A Remote Desktop Protocol Client"; - longDescription = '' - FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) - following the Microsoft Open Specifications. - ''; - homepage = http://www.freerdp.com/; - license = licenses.asl20; - maintainers = with maintainers; [ wkennington ]; - platforms = platforms.unix; - }; -} -- cgit 1.4.1