about summary refs log tree commit diff
path: root/pkgs/applications/networking/remote/freerdp
diff options
context:
space:
mode:
authorPeter Hoeg <peter@speartail.com>2017-02-05 14:03:59 +0800
committerPeter Hoeg <peter@speartail.com>2017-02-05 14:03:59 +0800
commit05684f313e58363568697dd0677ae2e927277b0c (patch)
tree31e4fdbc7413e432f50c3a899a966cb88478896c /pkgs/applications/networking/remote/freerdp
parentf66d7823ece6fa4bf99e56fa4b4cb0ab16522839 (diff)
downloadnixlib-05684f313e58363568697dd0677ae2e927277b0c.tar
nixlib-05684f313e58363568697dd0677ae2e927277b0c.tar.gz
nixlib-05684f313e58363568697dd0677ae2e927277b0c.tar.bz2
nixlib-05684f313e58363568697dd0677ae2e927277b0c.tar.lz
nixlib-05684f313e58363568697dd0677ae2e927277b0c.tar.xz
nixlib-05684f313e58363568697dd0677ae2e927277b0c.tar.zst
nixlib-05684f313e58363568697dd0677ae2e927277b0c.zip
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.
Diffstat (limited to 'pkgs/applications/networking/remote/freerdp')
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix111
-rw-r--r--pkgs/applications/networking/remote/freerdp/legacy.nix73
-rw-r--r--pkgs/applications/networking/remote/freerdp/unstable.nix56
3 files changed, 133 insertions, 107 deletions
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;
-  };
-}