mike-jumper commented on a change in pull request #243: GUACAMOLE-249: Migrate 
to FreeRDP 2.x
URL: https://github.com/apache/guacamole-server/pull/243#discussion_r364955658
 
 

 ##########
 File path: configure.ac
 ##########
 @@ -541,507 +540,17 @@ AC_ARG_WITH([rdp],
 
 if test "x$with_rdp" != "xno"
 then
-    have_winpr=yes
-    have_freerdp=yes
-    legacy_freerdp_extensions=no
-    rdpsettings_interface=unknown
-    rdpsettings_audiocapture=yes
-    rdpsettings_audioplayback=yes
-    rdpsettings_deviceredirection=yes
-    freerdp_interface=unknown
-    event_interface=unknown
-
-    # libfreerdp-core / libfreerdp
-    AC_CHECK_LIB([freerdp-core], [freerdp_new],
-                 [RDP_LIBS="$RDP_LIBS -lfreerdp-core"],
-                 [AC_CHECK_LIB([freerdp], [freerdp_new],
-                               [RDP_LIBS="$RDP_LIBS -lfreerdp 
-lfreerdp-client"],
-                               [AC_MSG_WARN([
+    have_freerdp2=yes
+    PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2],,
+                      [AC_MSG_WARN([
   --------------------------------------------
-   Unable to find libfreerdp-core / libfreerdp
+   Unable to find FreeRDP (libfreerdp2 / libfreerdp-client2 / libwinpr2)
    RDP will be disabled.
   --------------------------------------------])
-                  have_freerdp=no])])
+                       have_freerdp2=no])
 fi
 
-
-# libfreerdp-cache
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_LIB([freerdp-cache], [glyph_cache_register_callbacks],
-                 [RDP_LIBS="$RDP_LIBS -lfreerdp-cache"])
-fi
-
-# libfreerdp-channels (1.0) / libfreerdp-client + libfreerdp-core (1.1)
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_LIB([freerdp-client], [freerdp_channels_new],
-                 [RDP_LIBS="$RDP_LIBS -lfreerdp-client"],
-                 [AC_CHECK_LIB([freerdp-channels], [freerdp_channels_new],
-                               [RDP_LIBS="$RDP_LIBS -lfreerdp-channels"
-                               legacy_freerdp_extensions=yes])],
-                 [-lfreerdp-core])
-fi
-
-# libfreerdp-utils
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_LIB([freerdp-utils], [svc_plugin_init],
-                 [RDP_LIBS="$RDP_LIBS -lfreerdp-utils"])
-fi
-
-# libfreerdp-codec
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_LIB([freerdp-codec], [freerdp_image_convert],
-                 [RDP_LIBS="$RDP_LIBS -lfreerdp-codec"])
-fi
-
-# Available color conversion functions
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_DECL([freerdp_convert_gdi_order_color],
-        [AC_DEFINE([HAVE_FREERDP_CONVERT_GDI_ORDER_COLOR],,
-                   [Whether freerdp_convert_gdi_order_color() is defined])],,
-        [#include <freerdp/codec/color.h>])
-
-    AC_CHECK_DECL([freerdp_color_convert_drawing_order_color_to_gdi_color],
-        
[AC_DEFINE([HAVE_FREERDP_COLOR_CONVERT_DRAWING_ORDER_COLOR_TO_GDI_COLOR],,
-                   [Whether 
freerdp_color_convert_drawing_order_color_to_gdi_color() is defined])],,
-        [#include <freerdp/codec/color.h>])
-fi
-
-# Check for interval polling in plugins
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([rdpSvcPlugin.interval_ms],,,
-                     [[#include <freerdp/utils/svc_plugin.h>]])
-fi
-
-# Keyboard layout header
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADERS([freerdp/locale/keyboard.h],,
-                      [AC_CHECK_HEADERS([freerdp/kbd/layouts.h],,
-                                       [AC_MSG_WARN([
-  --------------------------------------------
-   Unable to find keyboard layout headers
-   RDP will be disabled.
-  --------------------------------------------])
-                                        have_freerdp=no])])
-fi
-
-# New headers defining addins
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADERS([freerdp/addin.h freerdp/client/channels.h])
-fi
-
-# Header defining cliprdr
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADERS([freerdp/client/cliprdr.h],,
-                     [AC_CHECK_HEADERS([freerdp/plugins/cliprdr.h],,
-                                       [AC_MSG_WARN([
-  --------------------------------------------
-   Unable to find cliprdr headers
-   RDP will be disabled.
-  --------------------------------------------])
-                                        have_freerdp=no],
-                                       [#include <freerdp/types.h>])],
-                     [#include <winpr/wtypes.h>
-                      #include <winpr/collections.h>])
-fi
-
-# Header defining display update channel
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADERS([freerdp/client/disp.h],
-                     [AC_DEFINE([HAVE_FREERDP_DISPLAY_UPDATE_SUPPORT],,
-                                [Whether FreeRDP supports the display update 
channel])]
-                     [AC_CHECK_MEMBERS([rdpSettings.SupportDisplayControl],,,
-                                       [[#include <freerdp/freerdp.h>]])],,
-                     [#include <winpr/wtypes.h>
-                      #include <winpr/collections.h>])
-fi
-
-# Support for RDP gateways 
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([rdpSettings.GatewayEnabled],
-                     [AC_DEFINE([HAVE_FREERDP_GATEWAY_SUPPORT],,
-                                [Whether FreeRDP supports RDP gateways])],,
-                     [[#include <freerdp/freerdp.h>]])
-fi
-
-# Support for load balancing via connection brokers 
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([rdpSettings.LoadBalanceInfo],
-                     [AC_DEFINE([HAVE_FREERDP_LOAD_BALANCER_SUPPORT],,
-                                [Whether FreeRDP supports load balancers])],,
-                     [[#include <freerdp/freerdp.h>]])
-fi
-
-# Support for "PubSub" event system
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_DECL([PubSub_SubscribeChannelConnected],
-        [AC_DEFINE([HAVE_FREERDP_EVENT_PUBSUB],,
-                   [Whether this version of FreeRDP provides the PubSub event 
system])],,
-        [#include <freerdp/event.h>])
-fi
-
-# Addin registration variations
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_DECL([freerdp_register_addin_provider],
-        [AC_DEFINE([HAVE_FREERDP_REGISTER_ADDIN_PROVIDER],,
-                   [Whether freerdp_register_addin_provider() is defined])],,
-        [#include <freerdp/addin.h>])
-
-    AC_CHECK_DECL([freerdp_channels_global_init],
-        [AC_DEFINE([HAVE_FREERDP_CHANNELS_GLOBAL_INIT],,
-                   [Whether freerdp_channels_global_init() is defined])],,
-        [#include <freerdp/channels/channels.h>])
-fi
-
-# Availability of ADDIN_ARGV structure for configuring plugins
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_TYPE([ADDIN_ARGV],
-        [AC_DEFINE([HAVE_ADDIN_ARGV],,
-                   [Whether the ADDIN_ARGV type is available])],,
-        [#include <freerdp/settings.h>])
-fi
-
-#
-# FreeRDP: WinPR
-#
-
-# Check for stream support via WinPR
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADER(winpr/stream.h,,
-                    [have_winpr=no,
-                     AC_CHECK_DECL([stream_write_uint8],,
-                                  [AC_MSG_WARN([
-  --------------------------------------------
-   Unable to find stream support
-   RDP will be disabled.
-  --------------------------------------------])
-                                   have_freerdp=no],
-                                  [#include <freerdp/utils/stream.h>])])
-fi
-
-# Check for types in WinPR
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADER(winpr/wtypes.h,,
-                    [have_winpr=no,
-                     AC_CHECK_HEADER(freerdp/types.h,,
-                                     [AC_MSG_WARN([
-  --------------------------------------------
-   Unable to find type definitions
-   RDP will be disabled.
-  --------------------------------------------])
-                                      have_freerdp=no])])
-fi
-
-if test "x${have_freerdp}" = "xyes" -a "x${have_winpr}" = "xyes"
-then
-    AC_DEFINE([ENABLE_WINPR],,
-              [Whether library support for WinPR types was found])
-fi
-
-#
-# FreeRDP: freerdp 
-#
-
-if test "x${have_freerdp}" = "xyes"
-then
-    # Check for current (as of 1.1) freerdp interface
-    AC_CHECK_MEMBERS([freerdp.ContextSize],
-                     [freerdp_interface=stable],,
-                     [[#include <freerdp/freerdp.h>]])
-
-    # If not current, check for legacy interface
-    if test "x${freerdp_interface}" = "xunknown"
-    then
-        AC_CHECK_MEMBERS([freerdp.context_size],
-                         [freerdp_interface=legacy],,
-                         [[#include <freerdp/freerdp.h>]])
-    fi
-
-    # Set defines based on interface type, warn if unknown
-    if test "x${freerdp_interface}" = "xlegacy"; then
-        AC_DEFINE([LEGACY_FREERDP],,
-                  [Whether the older version of the FreeRDP API was found])
-    elif test "x${freerdp_interface}" = "xunknown"; then
-        AC_MSG_WARN([
-  --------------------------------------------
-   Unknown FreeRDP interface
-   RDP will be disabled.
-  --------------------------------------------])
-        have_freerdp=no
-    fi
-fi
-
-#
-# FreeRDP: rdpSettings
-#
-
-if test "x${have_freerdp}" = "xyes"
-then
-    # Check for current (as of 1.1) rdpSettings interface
-    AC_CHECK_MEMBERS([rdpSettings.Width,
-                      rdpSettings.Height,
-                      rdpSettings.FastPathInput,
-                      rdpSettings.FastPathOutput,
-                      rdpSettings.SendPreconnectionPdu,
-                      rdpSettings.OrderSupport],
-                     [rdpsettings_interface=stable],,
-                     [[#include <freerdp/freerdp.h>]])
-
-    # If not current, check for legacy interface
-    if test "x${rdpsettings_interface}" = "xunknown"
-    then
-        AC_CHECK_MEMBERS([rdpSettings.width,
-                          rdpSettings.height,
-                          rdpSettings.order_support],
-                         [rdpsettings_interface=legacy],,
-                         [[#include <freerdp/freerdp.h>]])
-    fi
-
-    # Set defines based on interface type, warn if unknown
-    if test "x${rdpsettings_interface}" = "xlegacy"; then
-        AC_DEFINE([LEGACY_RDPSETTINGS],,
-                  [Whether the legacy version of the rdpSettings API was 
found])
-
-        # Legacy interface may not have AudioPlayback settings
-        AC_CHECK_MEMBERS([rdpSettings.audio_playback],,
-                         [rdpsettings_audioplayback=no],
-                         [[#include <freerdp/freerdp.h>]])
-
-        # Legacy interface may not have AudioCapture settings
-        AC_CHECK_MEMBERS([rdpSettings.audio_capture],,
-                         [rdpsettings_audiocapture=no],
-                         [[#include <freerdp/freerdp.h>]])
-
-        # Legacy interface may not have DeviceRedirection settings
-        AC_CHECK_MEMBERS([rdpSettings.device_redirection],,
-                         [rdpsettings_deviceredirection=no],
-                         [[#include <freerdp/freerdp.h>]])
-
-    elif test "x${rdpsettings_interface}" = "xunknown"; then
-        AC_MSG_WARN([
-  --------------------------------------------
-   Unknown rdpSettings interface
-   RDP will be disabled.
-  --------------------------------------------]) 
-        have_freerdp=no
-    fi
-fi
-
-# Activate audio playback settings if present
-if test "x${have_freerdp}" = "xyes" -a "x${rdpsettings_audioplayback}" = 
"xyes"; then
-    AC_DEFINE([HAVE_RDPSETTINGS_AUDIOPLAYBACK],,
-              [Whether the rdpSettings structure has AudioPlayback settings])
-fi
-
-# Activate audio capture settings if present
-if test "x${have_freerdp}" = "xyes" -a "x${rdpsettings_audiocapture}" = 
"xyes"; then
-    AC_DEFINE([HAVE_RDPSETTINGS_AUDIOCAPTURE],,
-              [Whether the rdpSettings structure has AudioCapture settings])
-fi
-
-# Activate device redirection settings if present
-if test "x${have_freerdp}" = "xyes" -a "x${rdpsettings_deviceredirection}" = 
"xyes"; then
-    AC_DEFINE([HAVE_RDPSETTINGS_DEVICEREDIRECTION],,
-              [Whether the rdpSettings structure has DeviceRedirection 
settings])
-fi
-
-# Check if the type CHANNEL_ENTRY_POINTS_FREERDP exists, if not define it to 
CHANNEL_ENTRY_POINTS_EX
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_TYPE([CHANNEL_ENTRY_POINTS_FREERDP],,
-                  
AC_DEFINE([CHANNEL_ENTRY_POINTS_FREERDP],[CHANNEL_ENTRY_POINTS_EX], [Type 
compatibility]),
-                  [[#include <freerdp/svc.h>]])
-fi
-
-# Check if the freerdp version header exists
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_HEADERS([freerdp/version.h])
-fi
-
-#
-# FreeRDP: rdpBitmap
-#
-
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_MSG_CHECKING([whether rdpBitmap.Decompress() requires the codec_id])
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <winpr/wtypes.h>
-                                        #include <freerdp/freerdp.h>
-                                        void __decompress(rdpContext* context,
-                                                          rdpBitmap* bitmap,
-                                                          UINT8* data,
-                                                          int width,
-                                                          int height,
-                                                          int bpp,
-                                                          int length,
-                                                          BOOL compressed,
-                                                          int codec_id);
-                                        rdpBitmap b = { .Decompress = 
__decompress };]])],
-                      [AC_MSG_RESULT([yes])],
-                      [AC_MSG_RESULT([no])
-                       AC_DEFINE([LEGACY_RDPBITMAP],,
-                                 [Whether the legacy rdpBitmap API was 
found])])
-fi
-
-#
-# FreeRDP: IWTSVirtualChannelCallback
-#
-
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_MSG_CHECKING([whether IWTSVirtualChannelCallback.OnDataReceived() uses 
a wStream])
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <winpr/wtypes.h>
-                                        #include <freerdp/dvc.h>
-                                        #include <freerdp/freerdp.h>
-                                        int __data_received(
-                                            IWTSVirtualChannelCallback* 
channel_callback,
-                                            wStream* stream);
-                                        IWTSVirtualChannelCallback cb = {
-                                            .OnDataReceived = __data_received
-                                        };
-                                        int main() {
-                                            return
-                                                cb.OnDataReceived(NULL, NULL);
-                                        }]])],
-                      [AC_MSG_RESULT([yes])],
-                      [AC_MSG_RESULT([no])
-                       AC_DEFINE([LEGACY_IWTSVIRTUALCHANNELCALLBACK],,
-                                 [Whether the legacy 
IWTSVirtualChannelCallback API was found])])
-fi
-
-#
-# FreeRDP: Decompression function variants
-#
-
-# Check whether interleaved_decompress() can handle the palette
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_MSG_CHECKING([whether interleaved_decompress() accepts an additional 
palette parameter])
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <freerdp/codec/interleaved.h>
-
-                                        int main() {
-                                            BYTE* palette = NULL;
-                                            interleaved_decompress(NULL, NULL, 
0, 0, NULL, 0, 0, 0, 0, 0, 0, palette);
-                                        }]])],
-                      [AC_MSG_RESULT([yes])
-                       AC_DEFINE([INTERLEAVED_DECOMPRESS_TAKES_PALETTE],,
-                                 [Whether interleaved_decompress() accepts an 
additional palette parameter])],
-                      [AC_MSG_RESULT([no])])
-fi
-
-# Check whether planar_decompress() will handle flipping
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_MSG_CHECKING([whether planar_decompress() can flip])
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <freerdp/codec/planar.h>
-
-                                        int main() {
-                                            BOOL* flip = TRUE;
-                                            planar_decompress(NULL, NULL, 0, 
NULL, 0, 0, 0, 0, 0, 0, flip);
-                                        }]])],
-                      [AC_MSG_RESULT([yes])
-                       AC_DEFINE([PLANAR_DECOMPRESS_CAN_FLIP],,
-                                 [Whether planar_decompress() can flip])],
-                      [AC_MSG_RESULT([no])])
-fi
-
-#
-# FreeRDP: rdpContext
-#
-
-# Check for rdpContext.codecs
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([rdpContext.codecs],
-                     [AC_DEFINE([FREERDP_BITMAP_REQUIRES_ALIGNED_MALLOC],,
-                                [Whether this version of FreeRDP requires 
_aligned_malloc() for bitmap data])],,
-                     [[#include <freerdp/freerdp.h>]])
-fi
-
-#
-# FreeRDP: rdpPalette
-#
-
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_MSG_CHECKING([whether rdpPalette.entries is static])
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <freerdp/update.h>
-                                        rdpPalette p;
-                                        PALETTE_ENTRY* foo = p.entries;]])],
-                      [AC_MSG_RESULT([yes])],
-                      [AC_MSG_RESULT([no])
-                       AC_DEFINE([LEGACY_RDPPALETTE],,
-                                 [Whether the legacy rdpPalette API was 
found])])
-fi
-
-#
-# FreeRDP: rdpPointer
-#
-
-# Check for SetDefault and SetNull members of rdpPointer
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([rdpPointer.SetDefault,
-                      rdpPointer.SetNull],
-                     ,,
-                     [[#include <freerdp/freerdp.h>]])
-fi
-
-#
-# FreeRDP: wMessage / RDP_EVENT
-#
-
-# Check for current (as of 1.1) wMessage interface
-if test "x${have_freerdp}" = "xyes"
-then
-    AC_CHECK_MEMBERS([wMessage.id],
-                     [event_interface=stable],,
-                     [[#include <winpr/collections.h>]])
-
-    # If not current, check for legacy (RDP_EVENT) interface
-    if test "x${event_interface}" = "xunknown"
-    then
-        AC_CHECK_MEMBERS([RDP_EVENT.event_class],
-                         [event_interface=legacy],,
-                         [[#include <freerdp/types.h>]])
-    fi
-
-    # Set defines based on interface type, warn if unknown
-    if test "x${event_interface}" = "xlegacy"; then
-        AC_DEFINE([LEGACY_EVENT],,
-                  [Whether the legacy RDP_EVENT API was found])
-    elif test "x${event_interface}" = "xunknown"; then
-        AC_MSG_WARN([
-  --------------------------------------------
-   Unknown event interface
-   RDP will be disabled.
-  --------------------------------------------])
-        have_freerdp=no
-    fi
-fi
-
-AM_CONDITIONAL([LEGACY_FREERDP_EXTENSIONS], [test 
"x${legacy_freerdp_extensions}" = "xyes"])
 
 Review comment:
   Yup!

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to