(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit 5ccdace943b85b3e2f54260869ac0f3203742b17 Author: Alex Leitner AuthorDate: Thu May 9 11:01:13 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 214 ++-- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 +- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 4 +- src/protocols/rdp/channels/cliprdr.c | 32 ++- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 15 +- src/protocols/rdp/gdi.c| 10 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 8 +- src/protocols/rdp/input.c | 15 +- src/protocols/rdp/keyboard.c | 9 +- src/protocols/rdp/plugins/channels.c | 7 +- src/protocols/rdp/plugins/guacai/guacai.c | 6 +- src/protocols/rdp/pointer.c| 7 +- src/protocols/rdp/pointer.h| 8 +- src/protocols/rdp/rdp.c| 56 ++-- src/protocols/rdp/rdp.h| 14 + src/protocols/rdp/settings.c | 285 - 21 files changed, 646 insertions(+), 116 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..a6faddb7 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP3 (libfreerdp3 / libfreerdp-client3 / libwinpr3). + Checking for FreeRDP2. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], [AC_MSG_WARN([ - Unable to
(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit b3295885ae8491a3a4f9d7718bde3c5e0da8b198 Author: Alex Leitner AuthorDate: Wed May 8 17:33:33 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 156 +-- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 +- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 4 +- src/protocols/rdp/channels/cliprdr.c | 32 ++- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 13 +- src/protocols/rdp/gdi.c| 10 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 2 +- src/protocols/rdp/input.c | 15 +- src/protocols/rdp/keyboard.c | 9 +- src/protocols/rdp/plugins/channels.c | 7 +- src/protocols/rdp/plugins/guacai/guacai.c | 3 +- src/protocols/rdp/pointer.c| 7 +- src/protocols/rdp/pointer.h| 8 +- src/protocols/rdp/rdp.c| 51 ++-- src/protocols/rdp/rdp.h| 14 + src/protocols/rdp/settings.c | 287 - src/protocols/rdp/settings.h | 1 - 22 files changed, 574 insertions(+), 117 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..bc9aebd5 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP3 (libfreerdp3 / libfreerdp-client3 / libwinpr3). + Checking for FreeRDP2. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], [AC_MSG_WARN([
(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit 8c605359e3942a80a3f9c0ce5ff489daa346d31b Author: Alex Leitner AuthorDate: Wed May 8 12:16:17 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 88 +--- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 ++- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 4 +- src/protocols/rdp/channels/cliprdr.c | 32 ++- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 13 +- src/protocols/rdp/gdi.c| 3 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 2 +- src/protocols/rdp/input.c | 10 +- src/protocols/rdp/keyboard.c | 6 +- src/protocols/rdp/plugins/channels.c | 3 +- src/protocols/rdp/plugins/guacai/guacai.c | 3 +- src/protocols/rdp/pointer.c| 7 +- src/protocols/rdp/pointer.h| 8 +- src/protocols/rdp/rdp.c| 37 ++-- src/protocols/rdp/rdp.h| 8 + src/protocols/rdp/settings.c | 233 +++-- 21 files changed, 320 insertions(+), 209 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..ee44d7db 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP3 (libfreerdp3 / libfreerdp-client3 / libwinpr3). + Checking for FreeRDP2. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], [AC_MSG_WARN([ - Unable to find
(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit 8a2e8a8516213fbcd03211cbd9fe536dc944ca2b Author: Alex Leitner AuthorDate: Tue May 7 17:02:26 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 83 +--- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 ++- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 8 +- src/protocols/rdp/channels/cliprdr.c | 23 +- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 5 +- src/protocols/rdp/gdi.c| 3 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 2 +- src/protocols/rdp/input.c | 10 +- src/protocols/rdp/keyboard.c | 6 +- src/protocols/rdp/plugins/channels.c | 3 +- src/protocols/rdp/plugins/guacai/guacai.c | 3 +- src/protocols/rdp/pointer.c| 12 +- src/protocols/rdp/pointer.h| 2 +- src/protocols/rdp/rdp.c| 37 ++-- src/protocols/rdp/settings.c | 233 +++-- 20 files changed, 292 insertions(+), 210 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..12c774e4 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP3 (libfreerdp3 / libfreerdp-client3 / libwinpr3). + Checking for FreeRDP2. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], [AC_MSG_WARN([ - Unable to find FreeRDP (libfreerdp2 / libfreerdp-client2 / libwinpr2) + Unable
(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit bcf3db9be5946c8f88542d585c3fea1c15db423e Author: Alex Leitner AuthorDate: Tue May 7 15:45:04 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 65 +++--- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 ++- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 3 +- src/protocols/rdp/channels/cliprdr.c | 23 +- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 5 +- src/protocols/rdp/gdi.c| 3 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 2 +- src/protocols/rdp/input.c | 10 +- src/protocols/rdp/keyboard.c | 6 +- src/protocols/rdp/plugins/channels.c | 3 +- src/protocols/rdp/plugins/guacai/guacai.c | 3 +- src/protocols/rdp/pointer.c| 7 +- src/protocols/rdp/pointer.h| 2 +- src/protocols/rdp/rdp.c| 37 ++-- src/protocols/rdp/settings.c | 233 +++-- 20 files changed, 262 insertions(+), 212 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..50eb6450 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP3 (libfreerdp3 / libfreerdp-client3 / libwinpr3). + Checking for FreeRDP2. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], [AC_MSG_WARN([ - Unable to find FreeRDP (libfreerdp2 / libfreerdp-client2 / libwinpr2) + Unable to
(guacamole-server) 01/01: RDP-3.
This is an automated email from the ASF dual-hosted git repository. aleitner pushed a commit to branch RDP-3 in repository https://gitbox.apache.org/repos/asf/guacamole-server.git commit 0f4bebdaf773a6bdfecd292e9c7d514847ff3b44 Author: Alex Leitner AuthorDate: Tue May 7 14:47:17 2024 +0900 RDP-3. --- Dockerfile | 5 +- configure.ac | 65 +++--- src/libguac/guacamole/string.h | 33 ++- src/libguac/string.c | 25 ++- src/protocols/rdp/Makefile.am | 3 +- src/protocols/rdp/bitmap.c | 3 +- src/protocols/rdp/channels/cliprdr.c | 23 +- .../rdp/channels/rdpsnd/rdpsnd-messages.c | 3 +- src/protocols/rdp/color.c | 5 +- src/protocols/rdp/gdi.c| 3 +- src/protocols/rdp/glyph.c | 3 +- src/protocols/rdp/glyph.h | 2 +- src/protocols/rdp/input.c | 10 +- src/protocols/rdp/keyboard.c | 6 +- src/protocols/rdp/plugins/channels.c | 3 +- src/protocols/rdp/plugins/guacai/guacai.c | 3 +- src/protocols/rdp/pointer.c| 7 +- src/protocols/rdp/pointer.h| 2 +- src/protocols/rdp/rdp.c| 37 ++-- src/protocols/rdp/settings.c | 233 +++-- 20 files changed, 262 insertions(+), 212 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f1e824c..7ff1856e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG PREFIX_DIR=/opt/guacamole # library (these can be overridden at build time if a specific version is # needed) # -ARG WITH_FREERDP='2(\.\d+)+' +ARG WITH_FREERDP='3(\.\d+)+' ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' @@ -145,7 +145,7 @@ RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ -${PREFIX_DIR}/lib/freerdp2/*guac*.so \ +${PREFIX_DIR}/lib/freerdp3/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image @@ -202,4 +202,3 @@ EXPOSE 4822 # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f - diff --git a/configure.ac b/configure.ac index c0394ac8..6724be41 100644 --- a/configure.ac +++ b/configure.ac @@ -648,11 +648,12 @@ then fi # -# FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2) +# FreeRDP (libfreerdpX, libfreerdp-clientX, and libwinprX) # -have_freerdp2=disabled -FREERDP2_PLUGIN_DIR= +freerdp_version= +have_freerdp= +FREERDP_PLUGIN_DIR= AC_ARG_WITH([rdp], [AS_HELP_STRING([--with-rdp], @@ -664,7 +665,7 @@ AC_ARG_WITH([rdp], AC_ARG_WITH(freerdp_plugin_dir, [AS_HELP_STRING([--with-freerdp-plugin-dir=], [install FreeRDP plugins to the given directory @<:@default=check@:>@]) -],FREERDP2_PLUGIN_DIR=$withval) +],FREERDP_PLUGIN_DIR=$withval) # Preserve CPPFLAGS so it can be restored later, following the addition of # options specific to FreeRDP tests @@ -672,21 +673,38 @@ OLDCPPFLAGS="$CPPFLAGS" if test "x$with_rdp" != "xno" then -have_freerdp2=yes +freerdp_version=3 +have_freerdp=yes +PKG_CHECK_MODULES([RDP], [freerdp3 freerdp-client3 winpr3], + [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], + [AC_MSG_WARN([ + + Unable to find FreeRDP (libfreerdp3 / libfreerdp-client3 / libwinpr3) + RDP will be disabled. + ]) + have_freerdp=no]) +fi + +if test "x$with_rdp" != "xno" -a "x$have_freerdp" = "xno" +then +freerdp_version=2 +have_freerdp=yes PKG_CHECK_MODULES([RDP], [freerdp2 freerdp-client2 winpr2], [CPPFLAGS="${RDP_CFLAGS} -Werror $CPPFLAGS"] - [AS_IF([test "x${FREERDP2_PLUGIN_DIR}" = "x"], - [FREERDP2_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp2`/freerdp2"])], + [AS_IF([test "x${FREERDP_PLUGIN_DIR}" = "x"], + [FREERDP_PLUGIN_DIR="`$PKG_CONFIG --variable=libdir freerdp3`/freerdp3"])], [AC_MSG_WARN([ - Unable to find FreeRDP (libfreerdp2 / libfreerdp-client2 / libwinpr2) + Unable to