1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-26 23:52:33 +00:00

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.
This commit is contained in:
Peter Hoeg 2017-02-05 14:03:59 +08:00
parent f66d7823ec
commit 05684f313e
4 changed files with 143 additions and 113 deletions

View file

@ -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 = {
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;
};
}

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

@ -13360,14 +13360,18 @@ with pkgs;
xfontsel = callPackage ../applications/misc/xfontsel { };
inherit (xorg) xlsfonts;
freerdpStable = callPackage ../applications/networking/remote/freerdp {
freerdp = callPackage ../applications/networking/remote/freerdp {
inherit libpulseaudio;
inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good;
};
freerdpUnstable = freerdp;
# This must go when weston v2 is released
freerdp_legacy = callPackage ../applications/networking/remote/freerdp/legacy.nix {
cmake = cmake_2_8;
ffmpeg = ffmpeg_1;
};
freerdpUnstable = callPackage ../applications/networking/remote/freerdp/unstable.nix {
ffmpeg = ffmpeg_2;
cmake = cmake_2_8;
};
freerdp = freerdpUnstable; # freerdpStable is marked broken, please switch back to it once fixed
freicoin = callPackage ../applications/misc/freicoin {
boost = boost155;