Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xorgxrdp for openSUSE:Factory checked in at 2026-04-07 16:33:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xorgxrdp (Old) and /work/SRC/openSUSE:Factory/.xorgxrdp.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorgxrdp" Tue Apr 7 16:33:48 2026 rev:21 rq:1344831 version:0.9.20 Changes: -------- --- /work/SRC/openSUSE:Factory/xorgxrdp/xorgxrdp.changes 2022-12-06 15:40:21.479829283 +0100 +++ /work/SRC/openSUSE:Factory/.xorgxrdp.new.21863/xorgxrdp.changes 2026-04-07 16:49:30.026007738 +0200 @@ -1,0 +2,7 @@ +Thu Feb 26 21:48:14 UTC 2026 - Markus Beth <[email protected]> + +- update to 0.9.20: + * Too fast scroll mitigation + * see https://github.com/neutrinolabs/xorgxrdp/releases/tag/v0.9.20 + +------------------------------------------------------------------- Old: ---- xorgxrdp-0.9.19.tar.gz xorgxrdp-0.9.19.tar.gz.asc New: ---- xorgxrdp-0.9.20.tar.gz xorgxrdp-0.9.20.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorgxrdp.spec ++++++ --- /var/tmp/diff_new_pack.ph7JKc/_old 2026-04-07 16:49:30.638033048 +0200 +++ /var/tmp/diff_new_pack.ph7JKc/_new 2026-04-07 16:49:30.638033048 +0200 @@ -1,7 +1,7 @@ # # spec file for package xorgxrdp # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2026 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: xorgxrdp -Version: 0.9.19 +Version: 0.9.20 Release: 0 Summary: Xorg drivers for xrdp License: X11 @@ -34,7 +34,7 @@ BuildRequires: xorg-x11-server-sdk BuildRequires: xrdp-devel BuildRequires: pkgconfig(xorg-macros) -Requires: xrdp >= 0.9.1 +Requires: xrdp >= 0.9.25 ExcludeArch: s390 s390x %{x11_abi_videodrv_req} %{x11_abi_xinput_req} ++++++ xorgxrdp-0.9.19.tar.gz -> xorgxrdp-0.9.20.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/README.md new/xorgxrdp-0.9.20/README.md --- old/xorgxrdp-0.9.19/README.md 2022-09-07 15:11:40.000000000 +0200 +++ new/xorgxrdp-0.9.20/README.md 2024-03-11 13:34:04.000000000 +0100 @@ -1,7 +1,5 @@ [](https://github.com/neutrinolabs/xorgxrdp/actions) -*Current Version:* 0.9.19 - # xorgxrdp ## Overview diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/aclocal.m4 new/xorgxrdp-0.9.20/aclocal.m4 --- old/xorgxrdp-0.9.19/aclocal.m4 2022-09-09 16:43:49.000000000 +0200 +++ new/xorgxrdp-0.9.20/aclocal.m4 2024-03-11 13:44:31.000000000 +0100 @@ -20,8 +20,8 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 11 (pkg-config-0.29.1) +# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant <[email protected]>. dnl Copyright © 2012-2015 Dan Nicholson <[email protected]> @@ -63,7 +63,7 @@ dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.1]) +[m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -108,7 +108,7 @@ dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -dnl only at the first occurence in configure.ac, so if the first place +dnl only at the first occurrence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], @@ -164,7 +164,7 @@ AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $1]) +AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -174,17 +174,17 @@ See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - m4_default([$4], [AC_MSG_ERROR( + m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -195,8 +195,8 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -206,10 +206,10 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl ]) else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) - $3 + $3 fi[]dnl ])dnl PKG_CHECK_MODULES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/configure new/xorgxrdp-0.9.20/configure --- old/xorgxrdp-0.9.19/configure 2022-09-09 16:43:49.000000000 +0200 +++ new/xorgxrdp-0.9.20/configure 2024-03-11 13:44:31.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for xorgxrdp 0.9.19. +# Generated by GNU Autoconf 2.71 for xorgxrdp 0.9.20. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='xorgxrdp' PACKAGE_TARNAME='xorgxrdp' -PACKAGE_VERSION='0.9.19' -PACKAGE_STRING='xorgxrdp 0.9.19' +PACKAGE_VERSION='0.9.20' +PACKAGE_STRING='xorgxrdp 0.9.20' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1395,7 +1395,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xorgxrdp 0.9.19 to adapt to many kinds of systems. +\`configure' configures xorgxrdp 0.9.20 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,7 +1466,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xorgxrdp 0.9.19:";; + short | recursive ) echo "Configuration of xorgxrdp 0.9.20:";; esac cat <<\_ACEOF @@ -1607,7 +1607,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xorgxrdp configure 0.9.19 +xorgxrdp configure 0.9.20 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1825,7 +1825,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xorgxrdp $as_me 0.9.19, which was +It was created by xorgxrdp $as_me 0.9.20, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3105,7 +3105,7 @@ # Define the identity of the package. PACKAGE='xorgxrdp' - VERSION='0.9.19' + VERSION='0.9.20' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -13097,8 +13097,8 @@ fi pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XORG_SERVER" >&5 -printf %s "checking for XORG_SERVER... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xorg-server >= 0" >&5 +printf %s "checking for xorg-server >= 0... " >&6; } if test -n "$XORG_SERVER_CFLAGS"; then pkg_cv_XORG_SERVER_CFLAGS="$XORG_SERVER_CFLAGS" @@ -13138,7 +13138,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13147,21 +13147,21 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XORG_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xorg-server >= 0" 2>&1` + XORG_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xorg-server >= 0" 2>&1` else - XORG_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xorg-server >= 0" 2>&1` + XORG_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xorg-server >= 0" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XORG_SERVER_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XORG_SERVER_PKG_ERRORS" >&5 - as_fn_error $? "please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel" "$LINENO" 5 + as_fn_error $? "please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel" "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel" "$LINENO" 5 + as_fn_error $? "please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel" "$LINENO" 5 else - XORG_SERVER_CFLAGS=$pkg_cv_XORG_SERVER_CFLAGS - XORG_SERVER_LIBS=$pkg_cv_XORG_SERVER_LIBS + XORG_SERVER_CFLAGS=$pkg_cv_XORG_SERVER_CFLAGS + XORG_SERVER_LIBS=$pkg_cv_XORG_SERVER_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -13169,8 +13169,8 @@ if test "x${enable_glamor}" = "xyes"; then pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XORG_SERVER_GLAMOR" >&5 -printf %s "checking for XORG_SERVER_GLAMOR... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xorg-server >= 1.19.0" >&5 +printf %s "checking for xorg-server >= 1.19.0... " >&6; } if test -n "$XORG_SERVER_GLAMOR_CFLAGS"; then pkg_cv_XORG_SERVER_GLAMOR_CFLAGS="$XORG_SERVER_GLAMOR_CFLAGS" @@ -13210,7 +13210,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13219,14 +13219,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XORG_SERVER_GLAMOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xorg-server >= 1.19.0" 2>&1` + XORG_SERVER_GLAMOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xorg-server >= 1.19.0" 2>&1` else - XORG_SERVER_GLAMOR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xorg-server >= 1.19.0" 2>&1` + XORG_SERVER_GLAMOR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xorg-server >= 1.19.0" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XORG_SERVER_GLAMOR_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XORG_SERVER_GLAMOR_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (xorg-server >= 1.19.0) were not met: + as_fn_error $? "Package requirements (xorg-server >= 1.19.0) were not met: $XORG_SERVER_GLAMOR_PKG_ERRORS @@ -13237,9 +13237,9 @@ and XORG_SERVER_GLAMOR_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -13252,16 +13252,16 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } else - XORG_SERVER_GLAMOR_CFLAGS=$pkg_cv_XORG_SERVER_GLAMOR_CFLAGS - XORG_SERVER_GLAMOR_LIBS=$pkg_cv_XORG_SERVER_GLAMOR_LIBS + XORG_SERVER_GLAMOR_CFLAGS=$pkg_cv_XORG_SERVER_GLAMOR_CFLAGS + XORG_SERVER_GLAMOR_LIBS=$pkg_cv_XORG_SERVER_GLAMOR_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XORG_SERVER_GBM" >&5 -printf %s "checking for XORG_SERVER_GBM... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gbm >= 0" >&5 +printf %s "checking for gbm >= 0... " >&6; } if test -n "$XORG_SERVER_GBM_CFLAGS"; then pkg_cv_XORG_SERVER_GBM_CFLAGS="$XORG_SERVER_GBM_CFLAGS" @@ -13301,7 +13301,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13310,29 +13310,29 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XORG_SERVER_GBM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gbm >= 0" 2>&1` + XORG_SERVER_GBM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gbm >= 0" 2>&1` else - XORG_SERVER_GBM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gbm >= 0" 2>&1` + XORG_SERVER_GBM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gbm >= 0" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XORG_SERVER_GBM_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XORG_SERVER_GBM_PKG_ERRORS" >&5 - as_fn_error $? "please install libgbm-dev or mesa-libgbm-devel" "$LINENO" 5 + as_fn_error $? "please install libgbm-dev or mesa-libgbm-devel" "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "please install libgbm-dev or mesa-libgbm-devel" "$LINENO" 5 + as_fn_error $? "please install libgbm-dev or mesa-libgbm-devel" "$LINENO" 5 else - XORG_SERVER_GBM_CFLAGS=$pkg_cv_XORG_SERVER_GBM_CFLAGS - XORG_SERVER_GBM_LIBS=$pkg_cv_XORG_SERVER_GBM_LIBS + XORG_SERVER_GBM_CFLAGS=$pkg_cv_XORG_SERVER_GBM_CFLAGS + XORG_SERVER_GBM_LIBS=$pkg_cv_XORG_SERVER_GBM_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XORG_SERVER_EPOXY" >&5 -printf %s "checking for XORG_SERVER_EPOXY... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for epoxy >= 0" >&5 +printf %s "checking for epoxy >= 0... " >&6; } if test -n "$XORG_SERVER_EPOXY_CFLAGS"; then pkg_cv_XORG_SERVER_EPOXY_CFLAGS="$XORG_SERVER_EPOXY_CFLAGS" @@ -13372,7 +13372,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13381,29 +13381,29 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XORG_SERVER_EPOXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "epoxy >= 0" 2>&1` + XORG_SERVER_EPOXY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "epoxy >= 0" 2>&1` else - XORG_SERVER_EPOXY_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "epoxy >= 0" 2>&1` + XORG_SERVER_EPOXY_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "epoxy >= 0" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XORG_SERVER_EPOXY_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XORG_SERVER_EPOXY_PKG_ERRORS" >&5 - as_fn_error $? "please install libepoxy-dev or libepoxy-devel" "$LINENO" 5 + as_fn_error $? "please install libepoxy-dev or libepoxy-devel" "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "please install libepoxy-dev or libepoxy-devel" "$LINENO" 5 + as_fn_error $? "please install libepoxy-dev or libepoxy-devel" "$LINENO" 5 else - XORG_SERVER_EPOXY_CFLAGS=$pkg_cv_XORG_SERVER_EPOXY_CFLAGS - XORG_SERVER_EPOXY_LIBS=$pkg_cv_XORG_SERVER_EPOXY_LIBS + XORG_SERVER_EPOXY_CFLAGS=$pkg_cv_XORG_SERVER_EPOXY_CFLAGS + XORG_SERVER_EPOXY_LIBS=$pkg_cv_XORG_SERVER_EPOXY_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XORG_SERVER_EGL" >&5 -printf %s "checking for XORG_SERVER_EGL... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egl >= 0" >&5 +printf %s "checking for egl >= 0... " >&6; } if test -n "$XORG_SERVER_EGL_CFLAGS"; then pkg_cv_XORG_SERVER_EGL_CFLAGS="$XORG_SERVER_EGL_CFLAGS" @@ -13443,7 +13443,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13452,21 +13452,21 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XORG_SERVER_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "egl >= 0" 2>&1` + XORG_SERVER_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "egl >= 0" 2>&1` else - XORG_SERVER_EGL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "egl >= 0" 2>&1` + XORG_SERVER_EGL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "egl >= 0" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XORG_SERVER_EGL_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XORG_SERVER_EGL_PKG_ERRORS" >&5 - as_fn_error $? "please install libegl1-mesa-dev or mesa-libEGL-devel" "$LINENO" 5 + as_fn_error $? "please install libegl1-mesa-dev or mesa-libEGL-devel" "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "please install libegl1-mesa-dev or mesa-libEGL-devel" "$LINENO" 5 + as_fn_error $? "please install libegl1-mesa-dev or mesa-libEGL-devel" "$LINENO" 5 else - XORG_SERVER_EGL_CFLAGS=$pkg_cv_XORG_SERVER_EGL_CFLAGS - XORG_SERVER_EGL_LIBS=$pkg_cv_XORG_SERVER_EGL_LIBS + XORG_SERVER_EGL_CFLAGS=$pkg_cv_XORG_SERVER_EGL_CFLAGS + XORG_SERVER_EGL_LIBS=$pkg_cv_XORG_SERVER_EGL_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -13476,19 +13476,19 @@ if test "x$XRDP_CFLAGS" = "x"; then pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for XRDP" >&5 -printf %s "checking for XRDP... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xrdp >= 0.9.25" >&5 +printf %s "checking for xrdp >= 0.9.25... " >&6; } if test -n "$XRDP_CFLAGS"; then pkg_cv_XRDP_CFLAGS="$XRDP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xrdp >= 0.9.16\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xrdp >= 0.9.16") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xrdp >= 0.9.25\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xrdp >= 0.9.25") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_XRDP_CFLAGS=`$PKG_CONFIG --cflags "xrdp >= 0.9.16" 2>/dev/null` + pkg_cv_XRDP_CFLAGS=`$PKG_CONFIG --cflags "xrdp >= 0.9.25" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13500,12 +13500,12 @@ pkg_cv_XRDP_LIBS="$XRDP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xrdp >= 0.9.16\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xrdp >= 0.9.16") 2>&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xrdp >= 0.9.25\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xrdp >= 0.9.25") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_XRDP_LIBS=`$PKG_CONFIG --libs "xrdp >= 0.9.16" 2>/dev/null` + pkg_cv_XRDP_LIBS=`$PKG_CONFIG --libs "xrdp >= 0.9.25" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13517,7 +13517,7 @@ if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13526,14 +13526,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XRDP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xrdp >= 0.9.16" 2>&1` + XRDP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xrdp >= 0.9.25" 2>&1` else - XRDP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xrdp >= 0.9.16" 2>&1` + XRDP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xrdp >= 0.9.25" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$XRDP_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$XRDP_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (xrdp >= 0.9.16) were not met: + as_fn_error $? "Package requirements (xrdp >= 0.9.25) were not met: $XRDP_PKG_ERRORS @@ -13544,9 +13544,9 @@ and XRDP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -13559,8 +13559,8 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } else - XRDP_CFLAGS=$pkg_cv_XRDP_CFLAGS - XRDP_LIBS=$pkg_cv_XRDP_LIBS + XRDP_CFLAGS=$pkg_cv_XRDP_CFLAGS + XRDP_LIBS=$pkg_cv_XRDP_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -14628,7 +14628,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xorgxrdp $as_me 0.9.19, which was +This file was extended by xorgxrdp $as_me 0.9.20, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14696,7 +14696,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -xorgxrdp config.status 0.9.19 +xorgxrdp config.status 0.9.20 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/configure.ac new/xorgxrdp-0.9.20/configure.ac --- old/xorgxrdp-0.9.19/configure.ac 2022-09-07 15:11:40.000000000 +0200 +++ new/xorgxrdp-0.9.20/configure.ac 2024-03-11 13:34:04.000000000 +0100 @@ -2,7 +2,7 @@ AC_PREREQ(2.65) # package version must be x.y.z -AC_INIT([xorgxrdp], [0.9.19], [[email protected]]) +AC_INIT([xorgxrdp], [0.9.20], [[email protected]]) package_version_major=$(echo ${PACKAGE_VERSION}|cut -d. -f1) package_version_minor=$(echo ${PACKAGE_VERSION}|cut -d. -f2) package_version_patchlevel=$(echo ${PACKAGE_VERSION}|cut -d. -f3) @@ -31,7 +31,7 @@ fi if test "x$XRDP_CFLAGS" = "x"; then - PKG_CHECK_MODULES([XRDP], [xrdp >= 0.9.16]) + PKG_CHECK_MODULES([XRDP], [xrdp >= 0.9.25]) XRDP_CFLAGS=`pkg-config xrdp --cflags` fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/module/rdp.h new/xorgxrdp-0.9.20/module/rdp.h --- old/xorgxrdp-0.9.19/module/rdp.h 2022-09-06 14:57:48.000000000 +0200 +++ new/xorgxrdp-0.9.20/module/rdp.h 2024-03-11 12:29:37.000000000 +0100 @@ -288,7 +288,6 @@ int do_dirty_ons; /* boolean */ int disconnect_scheduled; /* boolean */ int do_kill_disconnected; /* boolean */ - int do_touchpad_scroll_hack; /* boolean */ OsTimerPtr disconnectTimer; int disconnect_timeout_s; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/module/rdpClientCon.c new/xorgxrdp-0.9.20/module/rdpClientCon.c --- old/xorgxrdp-0.9.19/module/rdpClientCon.c 2022-09-07 15:11:40.000000000 +0200 +++ new/xorgxrdp-0.9.20/module/rdpClientCon.c 2024-03-11 12:29:37.000000000 +0100 @@ -1455,26 +1455,6 @@ LLOGLN(0, ("rdpClientConInit: kill disconnected [%d] timeout [%d] sec", dev->do_kill_disconnected, dev->disconnect_timeout_s)); - /* neutrinolabs/xorgxrdp#150 */ - ptext = getenv("XRDP_XORG_TOUCHPAD_SCROLL_HACK"); - if (ptext != 0) - { - i = atoi(ptext); - if (i != 0 || - 0 == strcasecmp(ptext, "true") || - 0 == strcasecmp(ptext, "yes") || - 0 == strcasecmp(ptext, "on")) - { - dev->do_touchpad_scroll_hack = 1; - } - else - { - dev->do_touchpad_scroll_hack = 0; - } - } - - LLOGLN(0, ("rdpClientConInit: do_touchpad_scroll_hack [%d]", - dev->do_touchpad_scroll_hack)); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/module/rdpInput.c new/xorgxrdp-0.9.20/module/rdpInput.c --- old/xorgxrdp-0.9.19/module/rdpInput.c 2022-09-06 14:57:48.000000000 +0200 +++ new/xorgxrdp-0.9.20/module/rdpInput.c 2024-03-09 12:35:09.000000000 +0100 @@ -115,30 +115,6 @@ { dev->last_event_time_ms = GetTimeInMillis(); - /* - * Workaround for too fast vertical scroll on touchpad. - * Provided by @seflerZ on neutrinolabs/xorgxrdp#150 - */ - if (dev->do_touchpad_scroll_hack) - { - if (msg == WM_BUTTON4UP || - msg == WM_BUTTON4DOWN || - msg == WM_BUTTON5UP || - msg == WM_BUTTON5DOWN) - { - - if (dev->last_event_time_ms - dev->last_wheel_time_ms < 10) - { - return 0; - } - } - - if (msg == WM_BUTTON4UP || msg == WM_BUTTON5UP) - { - dev->last_wheel_time_ms = dev->last_event_time_ms; - } - } - if (g_input_proc[1].proc != 0) { return g_input_proc[1].proc(dev, msg, param1, param2, param3, param4); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xorgxrdp-0.9.19/xrdpmouse/rdpMouse.c new/xorgxrdp-0.9.20/xrdpmouse/rdpMouse.c --- old/xorgxrdp-0.9.19/xrdpmouse/rdpMouse.c 2020-08-20 07:27:09.000000000 +0200 +++ new/xorgxrdp-0.9.20/xrdpmouse/rdpMouse.c 2024-03-09 12:35:09.000000000 +0100 @@ -50,6 +50,9 @@ #include "rdpInput.h" #include "rdpDraw.h" +#define NBUTTONS 9 +#define NAXES 4 + /******************************************************************************/ #define LOG_LEVEL 1 #define LLOGLN(_level, _args) \ @@ -121,14 +124,14 @@ LLOGLN(10, ("PtrAddEvent: x %d y %d", pointer->cursor_x, pointer->cursor_y)); if ((pointer->old_cursor_x != pointer->cursor_x) || - (pointer->old_cursor_y != pointer->cursor_y)) + (pointer->old_cursor_y != pointer->cursor_y)) { rdpEnqueueMotion(pointer->device, pointer->cursor_x, pointer->cursor_y); pointer->old_cursor_x = pointer->cursor_x; pointer->old_cursor_y = pointer->cursor_y; } - for (i = 0; i < 9; i++) + for (i = 0; i < NBUTTONS; i++) { if ((pointer->button_mask ^ pointer->old_button_mask) & (1 << i)) { @@ -151,6 +154,40 @@ } /******************************************************************************/ +// Maybe make it configurable later +#define SCALE_FACTOR 10 + +static void +PtrAddScrollEvent(rdpPointer *pointer, int vertical, int delta) +{ + ValuatorMask *scroll_events_mask; + int mask_pos; + int scaled_delta; + + LLOGLN(10, ("PtrAddScrollEvent: vertical %d y %d", vertical, delta)); + + scroll_events_mask = valuator_mask_new(NAXES); + mask_pos = vertical ? 2 : 3; + scaled_delta = delta / SCALE_FACTOR == 0 ? delta > 0 ? 1 : -1 : delta / SCALE_FACTOR; + + // XWindow's and RDP's scrolling directions are exactly opposite + // on vertical(Need document references). + if (vertical) + { + scaled_delta = -scaled_delta; + } + + valuator_mask_zero(scroll_events_mask); + valuator_mask_set_double(scroll_events_mask, mask_pos, scaled_delta); + + xf86PostMotionEventM(pointer->device, FALSE, scroll_events_mask); + + valuator_mask_free(&scroll_events_mask); + + pointer->old_button_mask = pointer->button_mask; +} + +/******************************************************************************/ static int rdpInputMouse(rdpPtr dev, int msg, long param1, long param2, @@ -159,7 +196,7 @@ rdpPointer *pointer; LLOGLN(10, ("rdpInputMouse: msg %d param1 %ld param2 %ld param3 %ld param4 %ld", - msg, param1, param2, param3, param4)); + msg, param1, param2, param3, param4)); pointer = &(dev->pointer); switch (msg) { @@ -242,6 +279,12 @@ pointer->button_mask = pointer->button_mask | 256; PtrAddEvent(pointer); break; + case WM_TOUCH_VSCROLL: + PtrAddScrollEvent(pointer, TRUE, param3); + break; + case WM_TOUCH_HSCROLL: + PtrAddScrollEvent(pointer, FALSE, param3); + break; } return 0; } @@ -250,11 +293,10 @@ static int rdpmouseControl(DeviceIntPtr device, int what) { -#define NBUTTONS 9 BYTE map[NBUTTONS + 1]; /* Indexed from 1 */ DevicePtr pDev; Atom btn_labels[NBUTTONS]; - Atom axes_labels[2]; + Atom axes_labels[NAXES]; rdpPtr dev; int i; @@ -282,11 +324,24 @@ axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X); axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y); + axes_labels[2] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_VSCROLL); + axes_labels[3] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_HSCROLL); InitPointerDeviceStruct(pDev, map, NBUTTONS, btn_labels, rdpmouseCtrl, - GetMotionHistorySize(), 2, axes_labels); + GetMotionHistorySize(), NAXES, axes_labels); + dev = rdpGetDevFromScreen(NULL); dev->pointer.device = device; + + // Initialize scroll valuators + xf86InitValuatorAxisStruct(device, 2, axes_labels[2] + , 0, -1, 0, 0, 0, Relative); + xf86InitValuatorAxisStruct(device, 3, axes_labels[3] + , 0, -1, 0, 0, 0, Relative); + + SetScrollValuator(device, 2, SCROLL_TYPE_VERTICAL, 10, 0); + SetScrollValuator(device, 3, SCROLL_TYPE_HORIZONTAL, 10, 0); + rdpRegisterInputCallback(1, rdpInputMouse); break; case DEVICE_ON: @@ -323,7 +378,7 @@ InputInfoPtr info; LLOGLN(0, ("rdpmousePreInit: drv %p dev %p, flags 0x%x", - drv, dev, flags)); + drv, dev, flags)); info = xf86AllocateInput(drv, 0); info->name = dev->identifier; info->device_control = rdpmouseControl; @@ -346,7 +401,7 @@ rdpmousePreInit(InputDriverPtr drv, InputInfoPtr info, int flags) { LLOGLN(0, ("rdpmousePreInit: drv %p info %p, flags 0x%x", - drv, info, flags)); + drv, info, flags)); info->device_control = rdpmouseControl; info->type_name = g_Mouse_str; return 0; @@ -359,7 +414,7 @@ rdpmouseUnInit(InputDriverPtr drv, InputInfoPtr info, int flags) { LLOGLN(0, ("rdpmouseUnInit: drv %p info %p, flags 0x%x", - drv, info, flags)); + drv, info, flags)); rdpUnregisterInputCallback(rdpInputMouse); } ++++++ xorgxrdp.keyring ++++++ --- /var/tmp/diff_new_pack.ph7JKc/_old 2026-04-07 16:49:30.930045123 +0200 +++ /var/tmp/diff_new_pack.ph7JKc/_new 2026-04-07 16:49:30.938045454 +0200 @@ -11,116 +11,180 @@ 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 -AsS4Zp5tGw== -=Gas0 +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 +OdFbdDAw46HEXvk= +=qCr+ -----END PGP PUBLIC KEY BLOCK-----
