(guacamole-server) 01/01: RDP-3.

2024-05-08 Thread aleitner
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.

2024-05-08 Thread aleitner
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.

2024-05-07 Thread aleitner
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.

2024-05-07 Thread aleitner
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.

2024-05-07 Thread aleitner
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.

2024-05-06 Thread aleitner
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