Hello community, here is the log from the commit of package xrdp for openSUSE:Factory checked in at 2019-10-14 12:43:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xrdp (Old) and /work/SRC/openSUSE:Factory/.xrdp.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xrdp" Mon Oct 14 12:43:55 2019 rev:28 rq:738207 version:0.9.11 Mon Oct 14 12:43:16 2019 rev:27 rq:738170 version:0.9.11 Changes: -------- --- /work/SRC/openSUSE:Factory/xrdp/xrdp.changes 2019-09-11 10:37:13.275264381 +0200 +++ /work/SRC/openSUSE:Factory/.xrdp.new.2352/xrdp.changes 2019-10-14 12:44:05.126294911 +0200 @@ -1,0 +2,46 @@ +Mon Sep 16 03:34:10 UTC 2019 - Felix Zhang <[email protected]> + +- Update to version 0.9.11 (jsc#9612) + + New features + - Suppress output (do not draw screen when client window is + minimized) #1330 + - Audio input (microphone) redirection compatible with + MS-RDPEAI #1369 + - Now xrdp can listen on more than one port #1124 #1366 + + Bug fixes + - Fix the issue audio redirection sometimes sounds with long + delay #1363 + - Check term event for more responsive shutdown #1372 + + Known issues + - FreeRDP 2.0.0-rc4 or later might not able to connect to xrdp + due to xrdp's bad-mannered behaviour, add +glyph-cache option + to FreeRDP to connect #1266 + - Audio redirection by MP3 codec doesn't sound with some + client, use AAC instead #965 +- Rebase xrdp-avahi.diff, worked around stdint.h definitions +- Rebase xrdp-fate319683-allow-vnc-resizing.patch + +------------------------------------------------------------------- +Mon Sep 16 03:34:10 UTC 2019 - Felix Zhang <[email protected]> + +- Update to version 0.9.11 (jsc#SLE-9612) + + New features + - Suppress output (do not draw screen when client window is + minimized) #1330 + - Audio input (microphone) redirection compatible with + MS-RDPEAI #1369 + - Now xrdp can listen on more than one port #1124 #1366 + + Bug fixes + - Fix the issue audio redirection sometimes sounds with long + delay #1363 + - Check term event for more responsive shutdown #1372 + + Known issues + - FreeRDP 2.0.0-rc4 or later might not able to connect to xrdp + due to xrdp's bad-mannered behaviour, add +glyph-cache option + to FreeRDP to connect #1266 + - Audio redirection by MP3 codec doesn't sound with some + client, use AAC instead #965 +- Rebase xrdp-avahi.diff, worked around stdint.h definitions +- Rebase xrdp-fate319683-allow-vnc-resizing.patch + +------------------------------------------------------------------- @@ -48 +93,0 @@ - Old: ---- xrdp-0.9.10.tar.gz xrdp-0.9.10.tar.gz.asc New: ---- xrdp-0.9.11.tar.gz xrdp-0.9.11.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xrdp.spec ++++++ --- /var/tmp/diff_new_pack.BLdGwU/_old 2019-10-14 12:44:05.806293132 +0200 +++ /var/tmp/diff_new_pack.BLdGwU/_new 2019-10-14 12:44:05.810293121 +0200 @@ -22,7 +22,7 @@ %endif Name: xrdp -Version: 0.9.10 +Version: 0.9.11 Release: 0 Summary: Remote desktop protocol (RDP) server License: Apache-2.0 AND GPL-2.0-or-later @@ -44,7 +44,7 @@ Patch5: xrdp-support-KillDisconnected-for-Xvnc.patch # PATCH-FIX-OPENSUSE xrdp-systemd-services.patch boo#1138954 boo#1144327 - [email protected] -- Let systemd handle the daemons Patch6: xrdp-systemd-services.patch -# PATCH-FEATURE-SLE xrdp-avahi.diff bnc#586785 - [email protected] -- Add Avahi support +# PATCH-FEATURE-SLE xrdp-avahi.diff bnc#586785 - [email protected] -- Add Avahi support. Patch11: xrdp-avahi.diff # PATCH-FIX-SLE xrdp-filter-tab-from-mstsc-on-focus-change.patch bnc#601996 bnc#623534 - [email protected] -- filter the fake tab key which is used to notify the session Patch12: xrdp-filter-tab-from-mstsc-on-focus-change.patch @@ -52,7 +52,7 @@ Patch13: xrdp-bsc965647-allow-admin-choose-desktop.patch # PATCH-FEATURE-SLE xrdp-fate318398-change-expired-password.patch fate#318398 - [email protected] -- enable user to update expired password via PAM Patch14: xrdp-fate318398-change-expired-password.patch -# PATCH-FEATURE-SLE xrdp-fate319683-allow-vnc-resizing.patch fate#319683 bsc#948062 - [email protected] -- allow resizing in VNC sessions +# PATCH-FEATURE-SLE xrdp-fate319683-allow-vnc-resizing.patch fate#319683 bsc#948062 - [email protected] -- allow resizing in VNC sessions. Patch15: xrdp-fate319683-allow-vnc-resizing.patch BuildRequires: autoconf BuildRequires: automake @@ -105,8 +105,8 @@ %patch4 -p1 %patch5 -p1 %patch6 -p1 -%if ! 0%{?is_opensuse} %patch11 -p1 +%if ! 0%{?is_opensuse} %patch12 -p1 %patch13 -p1 %patch14 -p1 ++++++ xrdp-0.9.10.tar.gz -> xrdp-0.9.11.tar.gz ++++++ ++++ 3380 lines of diff (skipped) ++++++ xrdp-avahi.diff ++++++ --- /var/tmp/diff_new_pack.BLdGwU/_old 2019-10-14 12:44:06.122292306 +0200 +++ /var/tmp/diff_new_pack.BLdGwU/_new 2019-10-14 12:44:06.122292306 +0200 @@ -1,7 +1,7 @@ -diff --git a/configure.ac b/configure.ac -index 47212ec..b011897 100644 ---- a/configure.ac -+++ b/configure.ac +Index: b/configure.ac +=================================================================== +--- a/configure.ac 2019-08-19 23:39:17.000000000 +0800 ++++ b/configure.ac 2019-10-12 18:00:31.198468206 +0800 @@ -9,6 +9,7 @@ AC_PROG_CC AC_C_CONST AC_PROG_LIBTOOL @@ -10,10 +10,10 @@ PKG_PROG_PKG_CONFIG if test "x$PKG_CONFIG" = "x"; then AC_MSG_ERROR([please install pkg-config]) -diff --git a/xrdp/Makefile.am b/xrdp/Makefile.am -index a259ef3..2cbb762 100644 ---- a/xrdp/Makefile.am -+++ b/xrdp/Makefile.am +Index: b/xrdp/Makefile.am +=================================================================== +--- a/xrdp/Makefile.am 2019-03-25 10:34:16.000000000 +0800 ++++ b/xrdp/Makefile.am 2019-10-12 17:56:20.380230201 +0800 @@ -12,7 +12,9 @@ AM_CPPFLAGS = \ -DXRDP_SOCKET_PATH=\"${socketdir}\" \ -I$(top_builddir) \ @@ -43,20 +43,11 @@ xrdpsysconfdir=$(sysconfdir)/xrdp -diff --git a/xrdp/xrdp.h b/xrdp/xrdp.h -index 82e8a57..ae70874 100644 ---- a/xrdp/xrdp.h -+++ b/xrdp/xrdp.h -@@ -163,6 +163,8 @@ void - xrdp_listen_main_loop(struct xrdp_listen* self); - int - xrdp_listen_test(void); -+int -+xrdp_listen_get_port(char* port, int port_bytes); - - /* xrdp_region.c */ - struct xrdp_region* -@@ -514,3 +516,8 @@ server_add_char_alpha(struct xrdp_mod* mod, int font, int character, +Index: b/xrdp/xrdp.h +=================================================================== +--- a/xrdp/xrdp.h 2019-08-19 23:39:17.000000000 +0800 ++++ b/xrdp/xrdp.h 2019-10-12 17:56:20.380230201 +0800 +@@ -527,3 +527,10 @@ server_add_char_alpha(struct xrdp_mod* m int server_session_info(struct xrdp_mod *mod, const char *data, int data_bytes); @@ -65,11 +56,13 @@ +xrdp_avahi_init(void); +void +xrdp_avahi_fini(void); -diff --git a/xrdp/xrdp_avahi.c b/xrdp/xrdp_avahi.c -index e69de29..642a333 100644 ---- a/xrdp/xrdp_avahi.c -+++ b/xrdp/xrdp_avahi.c -@@ -0,0 +1,115 @@ ++void ++xrdp_avahi_get_port(char *port); +Index: b/xrdp/xrdp_avahi.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ b/xrdp/xrdp_avahi.c 2019-10-12 17:56:20.380230201 +0800 +@@ -0,0 +1,173 @@ +/* + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by @@ -92,12 +85,10 @@ + +*/ + -+#include <stdio.h> -+#include <stdlib.h> -+#include <unistd.h> +#include <avahi-client/client.h> +#include <avahi-client/publish.h> +#include <avahi-common/thread-watch.h> ++#include <xrdp.h> + +static AvahiClient *client = NULL; +static AvahiThreadedPoll *threaded_poll = NULL; @@ -118,18 +109,13 @@ + char hname[512]; + char name[576]; + char port[8]; -+ /* dummy parameters */ -+ char address[256]; -+ struct xrdp_startup_params* startup_param = {(const char[]) {""}, 0, 0, 0, 0, 0, 0, 0}; + + if (gethostname (hname, sizeof (hname))) + break; + + sprintf (name, _service_name, hname); + -+ xrdp_listen_get_port_address (port, sizeof (port), -+ address, sizeof (address), -+ startup_param); ++ xrdp_avahi_get_port (port); + + avahi_entry_group_add_service (avahi_group, + AVAHI_IF_UNSPEC, @@ -185,16 +171,101 @@ + avahi_client_free (client); + avahi_threaded_poll_free (threaded_poll); +} -diff --git a/xrdp/xrdp_listen.c b/xrdp/xrdp_listen.c -index 0fbe61f..ed0af63 100644 ---- a/xrdp/xrdp_listen.c -+++ b/xrdp/xrdp_listen.c -@@ -149,7 +149,7 @@ xrdp_process_run(void *in_val) - } ++ ++void ++xrdp_avahi_get_port(char *port) ++{ ++ const int port_bytes = 8; ++ int fd; ++ char cfg_file[256]; ++ ++ /* default to port 3389 */ ++ g_strncpy(port, "3389", port_bytes - 1); ++ ++ /* see if port or address is in xrdp.ini file */ ++ g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH); ++ fd = g_file_open(cfg_file); ++ ++ if (fd != -1) ++ { ++ struct list *names; ++ struct list *values; ++ ++ names = list_create(); ++ names->auto_free = 1; ++ values = list_create(); ++ values->auto_free = 1; ++ ++ if (file_read_section(fd, "globals", names, values) == 0) ++ { ++ int index; ++ char *val; ++ ++ for (index = 0; index < names->count; index++) ++ { ++ val = (char *)list_get_item(names, index); ++ ++ if (val != 0) ++ { ++ if (g_strcasecmp(val, "port") == 0) ++ { ++ val = (char *)list_get_item(values, index); ++ if (val[0] == '/') ++ { ++ g_strncpy(port, val, port_bytes - 1); ++ } ++ else ++ { ++ int error; ++ ++ error = g_atoi(val); ++ if ((error > 0) && (error < 65000)) ++ { ++ g_strncpy(port, val, port_bytes - 1); ++ } ++ } ++ } ++ } ++ } ++ } ++ ++ list_delete(names); ++ list_delete(values); ++ } ++ ++ if (fd != -1) ++ g_file_close(fd); ++} +Index: b/common/arch.h +=================================================================== +--- a/common/arch.h 2019-10-12 18:00:48.462622251 +0800 ++++ b/common/arch.h 2019-10-12 18:01:11.506827870 +0800 +@@ -20,28 +20,7 @@ + #define ARCH_H + + #include <stdlib.h> +- +-#if defined(HAVE_STDINT_H) + #include <stdint.h> +-#else +-typedef signed char int8_t; +-typedef unsigned char uint8_t; +-typedef signed short int16_t; +-typedef unsigned short uint16_t; +-typedef signed int int32_t; +-typedef unsigned int uint32_t; +-#if defined(_WIN64) +-typedef signed __int64 int64_t; +-typedef unsigned __int64 uint64_t; +-typedef signed __int64 intptr_t; +-typedef unsigned __int64 uintptr_t; +-#else +-typedef signed long long int64_t; +-typedef unsigned long long uint64_t; +-typedef signed long intptr_t; +-typedef unsigned long uintptr_t; +-#endif +-#endif + + typedef int bool_t; - /*****************************************************************************/ --static int -+int - xrdp_listen_get_port_address(char *port, int port_bytes, - char *address, int address_bytes, - int *tcp_nodelay, int *tcp_keepalive, ++++++ xrdp-fate319683-allow-vnc-resizing.patch ++++++ --- /var/tmp/diff_new_pack.BLdGwU/_old 2019-10-14 12:44:06.142292254 +0200 +++ /var/tmp/diff_new_pack.BLdGwU/_new 2019-10-14 12:44:06.142292254 +0200 @@ -1,8 +1,8 @@ -diff --git a/sesman/sesman.ini b/sesman/sesman.ini -index 37c7816..4a428ec 100644 ---- a/sesman/sesman.ini -+++ b/sesman/sesman.ini -@@ -40,7 +40,7 @@ DisconnectedTimeLimit=0 +Index: b/sesman/sesman.ini +=================================================================== +--- a/sesman/sesman.ini 2019-10-12 17:45:30.594432280 +0800 ++++ b/sesman/sesman.ini 2019-10-12 17:45:37.222491421 +0800 +@@ -55,7 +55,7 @@ IdleTimeLimit=0 ;; Policy - session allocation policy ; Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ] @@ -11,11 +11,11 @@ ; "UBD" session per <User,BitPerPixel,DisplaySize> ; "UBI" session per <User,BitPerPixel,IPAddr> ; "UBC" session per <User,BitPerPixel,Connection> -diff --git a/sesman/session.c b/sesman/session.c -index 0b8bb6a..3a0164b 100644 ---- a/sesman/session.c -+++ b/sesman/session.c -@@ -105,9 +105,6 @@ session_get_bydata(const char *name, int width, int height, int bpp, int type, +Index: b/sesman/session.c +=================================================================== +--- a/sesman/session.c 2019-10-12 17:45:30.598432316 +0800 ++++ b/sesman/session.c 2019-10-12 17:45:37.222491421 +0800 +@@ -105,9 +105,6 @@ session_get_bydata(const char *name, int { case SCP_SESSION_TYPE_XVNC: /* 0 */ type = SESMAN_SESSION_TYPE_XVNC; /* 2 */ @@ -25,21 +25,21 @@ break; case SCP_SESSION_TYPE_XRDP: /* 1 */ type = SESMAN_SESSION_TYPE_XRDP; /* 1 */ -diff --git a/vnc/vnc.c b/vnc/vnc.c -index db593da..0db68b9 100644 ---- a/vnc/vnc.c -+++ b/vnc/vnc.c -@@ -383,7 +383,8 @@ lib_mod_event(struct vnc *v, int msg, long param1, long param2, - /* FramebufferUpdateRequest */ - init_stream(s, 8192); - out_uint8(s, 3); -- out_uint8(s, 0); -+ out_uint8(s, v->incremental); -+ v->incremental = 1; - x = (param1 >> 16) & 0xffff; - out_uint16_be(s, x); - y = param1 & 0xffff; -@@ -724,7 +725,24 @@ lib_framebuffer_update(struct vnc *v) +Index: b/vnc/vnc.c +=================================================================== +--- a/vnc/vnc.c 2019-10-12 17:45:30.598432316 +0800 ++++ b/vnc/vnc.c 2019-10-12 17:49:39.956657294 +0800 +@@ -385,7 +385,8 @@ lib_mod_event(struct vnc *v, int msg, lo + /* FramebufferUpdateRequest */ + init_stream(s, 8192); + out_uint8(s, 3); +- out_uint8(s, 0); ++ out_uint8(s, v->incremental); ++ v->incremental = 1; + x = (param1 >> 16) & 0xffff; + out_uint16_be(s, x); + y = param1 & 0xffff; +@@ -727,7 +728,24 @@ lib_framebuffer_update(struct vnc *v) { v->mod_width = cx; v->mod_height = cy; @@ -65,7 +65,7 @@ } else { -@@ -740,12 +758,22 @@ lib_framebuffer_update(struct vnc *v) +@@ -743,6 +761,15 @@ lib_framebuffer_update(struct vnc *v) error = v->server_end_update(v); } @@ -80,16 +80,18 @@ + if (error == 0) { - /* FramebufferUpdateRequest */ - init_stream(s, 8192); - out_uint8(s, 3); -- out_uint8(s, 1); -+ out_uint8(s, v->incremental); -+ v->incremental = 1; - out_uint16_be(s, 0); - out_uint16_be(s, 0); - out_uint16_be(s, v->mod_width); -@@ -1327,11 +1355,12 @@ lib_mod_connect(struct vnc *v) + if (v->suppress_output == 0) +@@ -750,7 +777,8 @@ lib_framebuffer_update(struct vnc *v) + /* FramebufferUpdateRequest */ + init_stream(s, 8192); + out_uint8(s, 3); +- out_uint8(s, 1); ++ out_uint8(s, v->incremental); ++ v->incremental = 1; + out_uint16_be(s, 0); + out_uint16_be(s, 0); + out_uint16_be(s, v->mod_width); +@@ -1333,11 +1361,12 @@ lib_mod_connect(struct vnc *v) init_stream(s, 8192); out_uint8(s, 2); out_uint8(s, 0); @@ -103,8 +105,8 @@ v->server_msg(v, "VNC sending encodings", 0); s_mark_end(s); error = trans_force_write_s(v->trans, s); -@@ -1347,7 +1376,8 @@ lib_mod_connect(struct vnc *v) - /* FramebufferUpdateRequest */ +@@ -1530,7 +1559,8 @@ lib_mod_suppress_output(struct vnc* v, i + make_stream(s); init_stream(s, 8192); out_uint8(s, 3); - out_uint8(s, 0); @@ -113,11 +115,11 @@ out_uint16_be(s, 0); out_uint16_be(s, 0); out_uint16_be(s, v->mod_width); -diff --git a/vnc/vnc.h b/vnc/vnc.h -index 3eee4e0..1990778 100644 ---- a/vnc/vnc.h -+++ b/vnc/vnc.h -@@ -113,6 +113,7 @@ struct vnc +Index: b/vnc/vnc.h +=================================================================== +--- a/vnc/vnc.h 2019-10-12 17:45:30.598432316 +0800 ++++ b/vnc/vnc.h 2019-10-12 17:45:37.222491421 +0800 +@@ -116,6 +116,7 @@ struct vnc int clip_chanid; struct stream *clip_data_s; int delay_ms;
