TL;DR - the FreeRDP API is a constantly-moving and undocumented target. There is an effort underway to add support for the 2.0 API, but it is difficult to convey just how enormous that task is. There is no simple solution. It will be done eventually.
On Tue, Jan 9, 2018 at 12:40 AM, rtvnoord <helpd...@rtvnoord.nl> wrote: > ... > Therefore we have tried to compile Guacamole with the FreeRDP 2.0.0-rc1 > client (this FreeRDP rc1 client supports RDP v10 -> tested it succesfully on > Ubuntu), but this unfortunately fails. Guacamole only seems to work with the > FreeRDP 1.0.x client > Guacamole currently supports 1.0.x, 1.1.x, and 1.2.x. With the exception of 2.0.x, it should build against any tagged FreeRDP release and any stable branch with version at or after 1.0. > The main question I have: > 1) Is there somehow a possibility / trick to compile Guacamole with the > FreeRDP 2.0.0-rc1 client? No. The issue here is that there is essentially zero API compatibility between FreeRDP releases. With the number of API-breaking changes in 2.0.x, it's become clear that it is no longer possible to directly depend on FreeRDP without producing unmaintainably-conditional code. We need to implement an abstraction layer between Guacamole's RDP support and FreeRDP to isolate our codebase from this. The issue tracking this 2.0.x support effort is: https://issues.apache.org/jira/browse/GUACAMOLE-249 > 2) When will Guacamole support the FreeRDP 2.0.0-rc1 client? Is there a > roadmap for Guacamole? The best I can say is "eventually". Maintaining compatibility with different versions of FreeRDP is non-trivial. Things tend to change from some_arbitrary_function() to SomeArbitraryFunction() to someThing->ArbitraryFunction(), or someThing->staticArray to someThing->neverMindItsDynamicallyAllocatedNow, etc. At this point, though our configure.ac is tasked with inspecting the presence/state of about a dozen libraries, half of its code is actually dedicated purely to detecting the various API changes of FreeRDP: https://github.com/apache/guacamole-server/blob/master/configure.ac#L503-L1017 This, combined with the lack of API documentation, makes adding support for 2.0.x extremely difficult. - Mike