Hello community, here is the log from the commit of package rdesktop for openSUSE:Factory checked in at 2013-11-29 16:25:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rdesktop (Old) and /work/SRC/openSUSE:Factory/.rdesktop.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rdesktop" Changes: -------- --- /work/SRC/openSUSE:Factory/rdesktop/rdesktop.changes 2013-08-23 11:05:05.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rdesktop.new/rdesktop.changes 2013-11-29 16:25:43.000000000 +0100 @@ -1,0 +2,16 @@ +Wed Nov 27 12:02:29 UTC 2013 - [email protected] + +- update to 1.8.1 + * Fix a typo in configure.ac + * Fix a bug which made rdesktop steal CPU cycles. + * Fix issue with reconnect, make use of deactivate variable + * Added 4 new disconnect reasons with exit codes + * Fix issues of window handling in SeamlessRDP parts of rdesktop + * Fix a backward compability with OpenSSL < 0.9.9 + * Fix a bug when code needs a x window available but there are none. + * Fix a sigsegv zeroing memory + * Fix a 64bit portability issue +- remove obsolete patches + * tcp_return, 64bit_portability_issue + +------------------------------------------------------------------- Old: ---- rdesktop-1.8.0.tar.gz rdesktop-64bit_portability_issue.patch rdesktop-tcp_return.patch New: ---- rdesktop-1.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rdesktop.spec ++++++ --- /var/tmp/diff_new_pack.AVwUeM/_old 2013-11-29 16:25:44.000000000 +0100 +++ /var/tmp/diff_new_pack.AVwUeM/_new 2013-11-29 16:25:44.000000000 +0100 @@ -21,16 +21,12 @@ License: GPL-3.0+ Group: Productivity/Networking/Other #Group: Productivity/Networking/Remote Desktop -Version: 1.8.0 +Version: 1.8.1 Release: 0 Url: http://www.rdesktop.org/ Source: %{name}-%{version}.tar.gz ## FIX-openSUSE: remove "Don't depend on pkg-config" Patch0: rdesktop-fix_pkgconfig_check.patch -### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1728/ -Patch1: rdesktop-tcp_return.patch -### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1729/ -Patch2: rdesktop-64bit_portability_issue.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: alsa-devel BuildRequires: automake @@ -50,8 +46,6 @@ %prep %setup %patch0 -%patch1 -%patch2 ## rpmlint # incorrect-fsf-address /usr/share/rdesktop/keymaps/convert-map perl -p -i -e 's|^# Foundation.*|# Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA|' keymaps/convert-map ++++++ rdesktop-1.8.0.tar.gz -> rdesktop-1.8.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/configure new/rdesktop-1.8.1/configure --- old/rdesktop-1.8.0/configure 2013-08-09 08:12:26.000000000 +0200 +++ new/rdesktop-1.8.1/configure 2013-11-18 09:10:00.000000000 +0100 @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for rdesktop 1.8.0. +# Generated by GNU Autoconf 2.69 for rdesktop 1.8.1. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -167,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -212,21 +236,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -328,6 +356,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -449,6 +485,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -483,16 +523,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -504,28 +544,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -557,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='rdesktop' PACKAGE_TARNAME='rdesktop' -PACKAGE_VERSION='1.8.0' -PACKAGE_STRING='rdesktop 1.8.0' +PACKAGE_VERSION='1.8.1' +PACKAGE_STRING='rdesktop 1.8.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1197,8 +1217,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1284,7 +1302,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 rdesktop 1.8.0 to adapt to many kinds of systems. +\`configure' configures rdesktop 1.8.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1353,7 +1371,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of rdesktop 1.8.0:";; + short | recursive ) echo "Configuration of rdesktop 1.8.1:";; esac cat <<\_ACEOF @@ -1491,10 +1509,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -rdesktop configure 1.8.0 -generated by GNU Autoconf 2.68 +rdesktop configure 1.8.1 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1680,7 +1698,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2013,8 +2031,8 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by rdesktop $as_me 1.8.0, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by rdesktop $as_me 1.8.1, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2487,7 +2505,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2527,7 +2545,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2580,7 +2598,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2621,7 +2639,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2679,7 +2697,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2723,7 +2741,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3169,8 +3187,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3296,7 +3313,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -3513,7 +3530,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -3579,7 +3596,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -4696,7 +4713,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4739,7 +4756,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4956,7 +4973,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4996,7 +5013,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5186,6 +5203,7 @@ + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -5206,7 +5224,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5249,7 +5267,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5317,6 +5335,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSSGLUE_CFLAGS=`$PKG_CONFIG --cflags "libgssglue" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5333,6 +5352,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSSGLUE_LIBS=`$PKG_CONFIG --libs "libgssglue" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5352,9 +5372,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libgssglue" 2>&1` + GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgssglue" 2>&1` else - GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgssglue" 2>&1` + GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgssglue" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GSSGLUE_PKG_ERRORS" >&5 @@ -5391,7 +5411,7 @@ else echo - echo "CredSPP support requires libggsglue, install the dependency" + echo "CredSPP support requires libgssglue, install the dependency" echo "or disable the feature using --disable-credssp." echo exit 1 @@ -5417,6 +5437,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XRANDR_CFLAGS=`$PKG_CONFIG --cflags "xrandr" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5433,6 +5454,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XRANDR_LIBS=`$PKG_CONFIG --libs "xrandr" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5452,9 +5474,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xrandr" 2>&1` + XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xrandr" 2>&1` else - XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xrandr" 2>&1` + XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xrandr" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$XRANDR_PKG_ERRORS" >&5 @@ -5516,6 +5538,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PCSCLITE_CFLAGS=`$PKG_CONFIG --cflags "libpcsclite" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5532,6 +5555,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PCSCLITE_LIBS=`$PKG_CONFIG --libs "libpcsclite" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5551,9 +5575,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpcsclite" 2>&1` + PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcsclite" 2>&1` else - PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpcsclite" 2>&1` + PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcsclite" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PCSCLITE_PKG_ERRORS" >&5 @@ -5776,6 +5800,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBAO_CFLAGS=`$PKG_CONFIG --cflags "ao" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5792,6 +5817,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBAO_LIBS=`$PKG_CONFIG --libs "ao" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5811,9 +5837,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ao" 2>&1` + LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ao" 2>&1` else - LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors "ao" 2>&1` + LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ao" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBAO_PKG_ERRORS" >&5 @@ -5845,6 +5871,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5861,6 +5888,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5880,9 +5908,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "alsa" 2>&1` + ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "alsa" 2>&1` else - ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors "alsa" 2>&1` + ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "alsa" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$ALSA_PKG_ERRORS" >&5 @@ -5914,6 +5942,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5930,6 +5959,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBSAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5949,9 +5979,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "samplerate" 2>&1` + LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "samplerate" 2>&1` else - LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors "samplerate" 2>&1` + LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "samplerate" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBSAMPLERATE_PKG_ERRORS" >&5 @@ -7274,6 +7304,8 @@ esac rm -rf conftest* fi + + fi @@ -7899,16 +7931,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -7968,28 +8000,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -8010,8 +8030,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by rdesktop $as_me 1.8.0, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by rdesktop $as_me 1.8.1, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -8063,11 +8083,11 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -rdesktop config.status 1.8.0 -configured by $0, generated by GNU Autoconf 2.68, +rdesktop config.status 1.8.1 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -8145,7 +8165,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/configure.ac new/rdesktop-1.8.1/configure.ac --- old/rdesktop-1.8.0/configure.ac 2013-08-09 08:11:22.000000000 +0200 +++ new/rdesktop-1.8.1/configure.ac 2013-11-18 09:08:49.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT(rdesktop, 1.8.0) +AC_INIT(rdesktop, 1.8.1) AC_CONFIG_SRCDIR([rdesktop.c]) @@ -142,7 +142,7 @@ AC_DEFINE(WITH_CREDSSP) else echo - echo "CredSPP support requires libggsglue, install the dependency" + echo "CredSPP support requires libgssglue, install the dependency" echo "or disable the feature using --disable-credssp." echo exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/constants.h new/rdesktop-1.8.1/constants.h --- old/rdesktop-1.8.0/constants.h 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/constants.h 2013-11-18 08:00:35.000000000 +0100 @@ -454,7 +454,10 @@ #define exDiscReasonOutOfMemory 0x0006 #define exDiscReasonServerDeniedConnection 0x0007 #define exDiscReasonServerDeniedConnectionFips 0x0008 -#define exDiscReasonWindows7Disconnect 0x000b /* unofficial */ +#define exDiscReasonServerInsufficientPrivileges 0x0009 +#define exDiscReasonServerFreshCredentialsRequired 0x000a +#define exDiscReasonRPCInitiatedDisconnectByUser 0x000b +#define exDiscReasonByUser 0x000c #define exDiscReasonLicenseInternal 0x0100 #define exDiscReasonLicenseNoLicenseServer 0x0101 #define exDiscReasonLicenseNoLicense 0x0102 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/ctrl.c new/rdesktop-1.8.1/ctrl.c --- old/rdesktop-1.8.0/ctrl.c 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/ctrl.c 2013-11-18 08:00:35.000000000 +0100 @@ -406,7 +406,7 @@ break; } - if (res >= 0) + if (res > 0) { /* Check if we got full command line */ char *p; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/doc/ChangeLog new/rdesktop-1.8.1/doc/ChangeLog --- old/rdesktop-1.8.0/doc/ChangeLog 2013-08-09 10:11:13.000000000 +0200 +++ new/rdesktop-1.8.1/doc/ChangeLog 2013-11-18 09:08:24.000000000 +0100 @@ -1,3 +1,16 @@ +rdesktop (1.8.1) + * Fix a typo in configure.ac + * Fix a bug which made rdesktop steal CPU cycles. + * Fix issue with reconnect, make use of deactivate variable + * Added 4 new disconnect reasons with exit codes + * Fix issues of window handling in SeamlessRDP parts of rdesktop + * Fix a backward compability with OpenSSL < 0.9.9 + * Fix a bug when code needs a x window available but there are none. + * Fix a sigsegv zeroing memory + * Fix a 64bit portability issue + + -- Henrik Andersson <[email protected]> 2013-11-18 + rdesktop (1.8.0) * Support for protocol negotiation eg. SSL/TLSv1 and CredSSP * Support for CredSSP + Kerberos authentication (NLA) @@ -13,6 +26,8 @@ * Fix crash and memory leak in local drive redirection * Fixes issues with license files loading/saving + -- Henrik Andersson <[email protected]> 2013-08-09 + rdesktop (1.7.1) * Fix clipboard issue when not building with unicode support * Fix compilation against newer PCSC lite versions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/doc/rdesktop.1 new/rdesktop-1.8.1/doc/rdesktop.1 --- old/rdesktop-1.8.0/doc/rdesktop.1 2013-03-26 10:28:00.000000000 +0100 +++ new/rdesktop-1.8.1/doc/rdesktop.1 2013-11-18 08:00:34.000000000 +0100 @@ -282,6 +282,16 @@ The server denied the connection .IP "\fB8\fP" The server denied the connection for security reason +.IP "\fB9\fP" +The user cannot connect to the server due to insufficient access +privileges +.IP "\fB10\fP" +The server does not accept saved user credentials and requires that +the user enter their credentials for each connection +.IP "\fB11\fP" +Disconnect initiated by administration tool +.IP "\fB12\fP" +Disconnect initiated by user .IP "\fB16\fP" Internal licensing error .IP "\fB17\fP" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/ewmhints.c new/rdesktop-1.8.1/ewmhints.c --- old/rdesktop-1.8.0/ewmhints.c 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/ewmhints.c 2013-11-18 08:00:35.000000000 +0100 @@ -203,7 +203,7 @@ { unsigned long nitems_return; unsigned char *prop_return; - uint32 *return_words; + unsigned long *return_words; unsigned long item; RD_BOOL maximized_vert, maximized_horz, hidden; @@ -212,7 +212,7 @@ if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, &prop_return, 0) < 0) return SEAMLESSRDP_NORMAL; - return_words = (uint32 *) prop_return; + return_words = (unsigned long *) prop_return; for (item = 0; item < nitems_return; item++) { @@ -226,10 +226,11 @@ XFree(prop_return); - if (maximized_vert && maximized_horz) - return SEAMLESSRDP_MAXIMIZED; - else if (hidden) + /* In EWMH, HIDDEN overrides MAXIMIZED_VERT/MAXIMIZED_HORZ */ + if (hidden) return SEAMLESSRDP_MINIMIZED; + else if (maximized_vert && maximized_horz) + return SEAMLESSRDP_MAXIMIZED; else return SEAMLESSRDP_NORMAL; } @@ -542,6 +543,33 @@ return 0; } +RD_BOOL +ewmh_is_window_above(Window w) +{ + unsigned long nitems_return; + unsigned char *prop_return; + unsigned long *return_words; + unsigned long item; + RD_BOOL above; + + above = False; + + if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, &prop_return, 0) < 0) + return False; + + return_words = (unsigned long *) prop_return; + + for (item = 0; item < nitems_return; item++) + { + if (return_words[item] == g_net_wm_state_above_atom) + above = True; + } + + XFree(prop_return); + + return above; +} + #endif /* MAKE_PROTO */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/proto.h new/rdesktop-1.8.1/proto.h --- old/rdesktop-1.8.0/proto.h 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/proto.h 2013-11-18 08:00:34.000000000 +0100 @@ -144,6 +144,7 @@ char *l_to_a(long N, int base); int load_licence(unsigned char **data); void save_licence(unsigned char *data, int length); +void rd_create_ui(void); RD_BOOL rd_pstcache_mkdir(void); int rd_open_file(char *filename); void rd_close_file(int fd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.c new/rdesktop-1.8.1/rdesktop.c --- old/rdesktop-1.8.0/rdesktop.c 2013-06-27 12:37:42.000000000 +0200 +++ new/rdesktop-1.8.1/rdesktop.c 2013-11-18 08:00:35.000000000 +0100 @@ -281,7 +281,6 @@ break; case exDiscReasonAPIInitiatedDisconnect: - case exDiscReasonWindows7Disconnect: text = "Server initiated disconnect"; retval = EXRD_API_DISCONNECT; break; @@ -321,6 +320,26 @@ retval = EXRD_DENIED_FIPS; break; + case exDiscReasonServerInsufficientPrivileges: + text = "The user cannot connect to the server due to insufficient access privileges."; + retval = EXRD_INSUFFICIENT_PRIVILEGES; + break; + + case exDiscReasonServerFreshCredentialsRequired: + text = "The server does not accept saved user credentials and requires that the user enter their credentials for each connection."; + retval = EXRD_FRESH_CREDENTIALS_REQUIRED; + break; + + case exDiscReasonRPCInitiatedDisconnectByUser: + text = "Disconnect initiated by administration tool"; + retval = EXRD_RPC_DISCONNECT_BY_USER; + break; + + case exDiscReasonByUser: + text = "Disconnect initiated by user"; + retval = EXRD_DISCONNECT_BY_USER; + break; + case exDiscReasonLicenseInternal: text = "Internal licensing error"; retval = EXRD_LIC_INTERNAL; @@ -510,7 +529,6 @@ #ifdef WITH_RDPSND char *rdpsnd_optarg = NULL; #endif - int longidx; #ifdef HAVE_LOCALE_H /* Set locale according to environment */ @@ -1132,15 +1150,10 @@ DEBUG(("Connection successful.\n")); memset(password, 0, sizeof(password)); - /* only create a window if we dont have one intialized */ - if (!ui_have_window()) - { - if (!ui_create_window()) - return EX_OSERR; - } - + rd_create_ui(); tcp_run_ui(True); + deactivated = False; g_redirect = False; g_reconnect_loop = False; rdp_main_loop(&deactivated, &ext_disc_reason); @@ -1154,7 +1167,7 @@ continue; /* handle network error and start autoreconnect */ - if (g_network_error) + if (g_network_error && !deactivated) { fprintf(stderr, "Disconnected due to network error, retrying to reconnect for %d minutes.\n", @@ -1732,6 +1745,18 @@ close(fd); } +/* create rdesktop ui */ +void +rd_create_ui() +{ + /* only create a window if we dont have one intialized */ + if (!ui_have_window()) + { + if (!ui_create_window()) + exit(EX_OSERR); + } +} + /* Create the bitmap cache directory */ RD_BOOL rd_pstcache_mkdir(void) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.h new/rdesktop-1.8.1/rdesktop.h --- old/rdesktop-1.8.0/rdesktop.h 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/rdesktop.h 2013-11-18 08:00:35.000000000 +0100 @@ -100,6 +100,10 @@ #define EXRD_OUT_OF_MEM 6 #define EXRD_DENIED 7 #define EXRD_DENIED_FIPS 8 +#define EXRD_INSUFFICIENT_PRIVILEGES 9 +#define EXRD_FRESH_CREDENTIALS_REQUIRED 10 +#define EXRD_RPC_DISCONNECT_BY_USER 11 +#define EXRD_DISCONNECT_BY_USER 12 #define EXRD_LIC_INTERNAL 16 #define EXRD_LIC_NOSERVER 17 #define EXRD_LIC_NOLICENSE 18 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.spec new/rdesktop-1.8.1/rdesktop.spec --- old/rdesktop-1.8.0/rdesktop.spec 2013-08-09 08:12:07.000000000 +0200 +++ new/rdesktop-1.8.1/rdesktop.spec 2013-11-18 09:09:45.000000000 +0100 @@ -1,6 +1,6 @@ Summary: Remote Desktop Protocol client Name: rdesktop -Version: 1.8.0 +Version: 1.8.1 Release: 1 License: GPL; see COPYING Group: Applications/Communications @@ -11,7 +11,7 @@ %description rdesktop is a client for Remote Desktop Protocol (RDP), used in a number of Microsoft products including Windows NT Terminal Server, Windows 2000 Server, -Windows XP and Windows 2003 Server. +Windows XP, Windows 2003 Server and Windows 2008r2. %prep rm -rf $RPM_BUILD_ROOT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdp.c new/rdesktop-1.8.1/rdp.c --- old/rdesktop-1.8.0/rdp.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/rdp.c 2013-11-18 08:00:35.000000000 +0100 @@ -1044,6 +1044,9 @@ uint8 type; uint16 len_src_descriptor, len_combined_caps; + /* at this point we need to ensure that we have ui created */ + rd_create_ui(); + in_uint32_le(s, g_rdp_shareid); in_uint16_le(s, len_src_descriptor); in_uint16_le(s, len_combined_caps); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_dsp.c new/rdesktop-1.8.1/rdpsnd_dsp.c --- old/rdesktop-1.8.0/rdpsnd_dsp.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/rdpsnd_dsp.c 2013-11-18 08:00:34.000000000 +0100 @@ -255,7 +255,7 @@ #ifdef HAVE_LIBSAMPLERATE if (src_converter == NULL) { - warning("no samplerate converter available!!\n"); + warning("no samplerate converter available!\n"); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_libao.c new/rdesktop-1.8.1/rdpsnd_libao.c --- old/rdesktop-1.8.0/rdpsnd_libao.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/rdpsnd_libao.c 2013-11-18 08:00:35.000000000 +0100 @@ -111,6 +111,7 @@ { ao_sample_format format; + memset(&format, 0, sizeof(format)); format.bits = pwfx->wBitsPerSample; format.channels = pwfx->nChannels; format.rate = 44100; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/sc.c new/rdesktop-1.8.1/sc.c --- old/rdesktop-1.8.0/sc.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/sc.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -#include <cardmon.h> - -int -main(int argc, char **argv) -{ - CARD_DATA cd; - PCARD_DATA pcd; - - memset(pcd, 0, sizeof(cd)); - - return 0; -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/scard.c new/rdesktop-1.8.1/scard.c --- old/rdesktop-1.8.0/scard.c 2013-08-09 07:32:55.000000000 +0200 +++ new/rdesktop-1.8.1/scard.c 2013-11-18 08:00:35.000000000 +0100 @@ -2,8 +2,8 @@ rdesktop: A Remote Desktop Protocol client. Smart Card support Copyright (C) Alexi Volkov <[email protected]> 2006 - Copyright 2010 Pierre Ossman <[email protected]> for Cendio AB - Copyright 2011 Henrik Andersson <[email protected]> for Cendio AB + Copyright 2010-2013 Pierre Ossman <[email protected]> for Cendio AB + Copyright 2011-2013 Henrik Andersson <[email protected]> for Cendio AB 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 @@ -1109,6 +1109,7 @@ MYPCSC_SCARDCONTEXT myHContext; SERVER_DWORD dwTimeout; SERVER_DWORD dwCount; + SERVER_DWORD dwPointerId; SERVER_LPSCARD_READERSTATE_A rsArray, cur; MYPCSC_LPSCARD_READERSTATE_A myRsArray; long i; @@ -1133,7 +1134,8 @@ memset(rsArray, 0, dwCount * sizeof(SERVER_SCARD_READERSTATE_A)); for (i = 0, cur = rsArray; i < dwCount; i++, cur++) { - in_uint32_le(in, cur->szReader); + in_uint32_le(in, dwPointerId); + cur->szReader = (char *) (intptr_t) dwPointerId; in_uint32_le(in, cur->dwCurrentState); in_uint32_le(in, cur->dwEventState); in_uint32_le(in, cur->cbAtr); @@ -1989,26 +1991,6 @@ rv = SCardGetAttrib(myHCard, (MYPCSC_DWORD) dwAttrId, pbAttr, &attrLen); dwAttrLen = attrLen; - if (dwAttrId == SCARD_ATTR_VENDOR_NAME && rv != SCARD_S_SUCCESS) - { - DEBUG_SCARD(("SCARD: Faking attribute ATTR_VENDOR_NAME\n")); - pthread_mutex_lock(&hcardAccess); - PSCHCardRec hcard = hcardFirst; - while (hcard) - { - if (hcard->hCard == hCard) - { - dwAttrLen = strlen(hcard->vendor); - memcpy(pbAttr, hcard->vendor, dwAttrLen); - rv = SCARD_S_SUCCESS; - break; - } - hcard = hcard->next; - } - pthread_mutex_unlock(&hcardAccess); - DEBUG_SCARD(("[0x%.8x]\n", (unsigned int) rv)); - } - if (rv != SCARD_S_SUCCESS) { DEBUG_SCARD(("SCARD: -> Failure: %s (0x%08x)\n", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/seamless.c new/rdesktop-1.8.1/seamless.c --- old/rdesktop-1.8.0/seamless.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/seamless.c 2013-11-18 08:00:34.000000000 +0100 @@ -437,7 +437,7 @@ s = channel_init(seamless_channel, len); out_uint8p(s, buf, len) s_mark_end(s); - DEBUG_SEAMLESS(("SeamlessRDP sending:%s", buf)); + DEBUG_SEAMLESS(("seamlessrdp sending:%s", buf)); #if 0 printf("seamless send:\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/tcp.c new/rdesktop-1.8.1/tcp.c --- old/rdesktop-1.8.0/tcp.c 2013-06-28 13:20:08.000000000 +0200 +++ new/rdesktop-1.8.1/tcp.c 2013-11-18 08:00:35.000000000 +0100 @@ -193,7 +193,7 @@ int rcvd = 0, ssl_err; if (g_network_error == True) - return; + return NULL; if (s == NULL) { @@ -318,7 +318,9 @@ } options = 0; +#ifdef SSL_OP_NO_COMPRESSION options |= SSL_OP_NO_COMPRESSION; +#endif // __SSL_OP_NO_COMPRESSION options |= SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; SSL_CTX_set_options(g_ssl_ctx, options); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/xproto.h new/rdesktop-1.8.1/xproto.h --- old/rdesktop-1.8.0/xproto.h 2013-06-20 14:56:15.000000000 +0200 +++ new/rdesktop-1.8.1/xproto.h 2013-11-18 08:00:34.000000000 +0100 @@ -12,5 +12,6 @@ void ewmh_set_icon(Window wnd, int width, int height, const char *rgba_data); void ewmh_del_icon(Window wnd, int width, int height); int ewmh_set_window_above(Window wnd); +RD_BOOL ewmh_is_window_above(Window w); void set_keypress_keysym(unsigned int keycode, KeySym keysym); KeySym reset_keypress_keysym(unsigned int keycode, KeySym keysym); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/xwin.c new/rdesktop-1.8.1/xwin.c --- old/rdesktop-1.8.0/xwin.c 2013-06-20 14:56:16.000000000 +0200 +++ new/rdesktop-1.8.1/xwin.c 2013-11-18 08:00:35.000000000 +0100 @@ -574,14 +574,14 @@ XEvent xevent; sw_configurenotify_context context; struct timeval now; - struct timeval nextsecond; + struct timeval future; RD_BOOL got = False; context.window = wnd; context.serial = serial; - gettimeofday(&nextsecond, NULL); - nextsecond.tv_sec += 1; + gettimeofday(&future, NULL); + future.tv_usec += 500000; do { @@ -593,7 +593,7 @@ usleep(100000); gettimeofday(&now, NULL); } - while (timercmp(&now, &nextsecond, <)); + while (timercmp(&now, &future, <)); if (!got) { @@ -4181,20 +4181,21 @@ /* X11 windows must be at least 1x1 */ return; - sw->xoffset = x; - sw->yoffset = y; - sw->width = width; - sw->height = height; - /* If we move the window in a maximized state, then KDE won't accept restoration */ switch (sw->state) { case SEAMLESSRDP_MINIMIZED: case SEAMLESSRDP_MAXIMIZED: + sw_update_position(sw); return; } + sw->xoffset = x; + sw->yoffset = y; + sw->width = width; + sw->height = height; + /* FIXME: Perhaps use ewmh_net_moveresize_window instead */ XMoveResizeWindow(g_display, sw->wnd, sw->xoffset, sw->yoffset, sw->width, sw->height); } @@ -4206,6 +4207,7 @@ seamless_window *sw; XWindowChanges values; unsigned long restack_serial; + unsigned int value_mask; if (!g_seamless_active) return; @@ -4228,25 +4230,43 @@ return; } - if (!g_seamless_broken_restack) + values.stack_mode = Below; + value_mask = CWStackMode | CWSibling; + values.sibling = sw_behind->wnd; + + /* Avoid that topmost windows references non-topmost + windows, and vice versa. */ + if (ewmh_is_window_above(sw->wnd)) + { + if (!ewmh_is_window_above(sw_behind->wnd)) + { + /* Disallow, move to bottom of the + topmost stack. */ + values.stack_mode = Below; + value_mask = CWStackMode; /* Not sibling */ + } + } + else { - values.stack_mode = Below; - values.sibling = sw_behind->wnd; - restack_serial = XNextRequest(g_display); - XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), - CWStackMode | CWSibling, &values); - sw_wait_configurenotify(sw->wnd, restack_serial); + if (ewmh_is_window_above(sw_behind->wnd)) + { + /* Move to top of non-topmost + stack. */ + values.stack_mode = Above; + value_mask = CWStackMode; /* Not sibling */ + } } } else { values.stack_mode = Above; - restack_serial = XNextRequest(g_display); - XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), CWStackMode, - &values); - sw_wait_configurenotify(sw->wnd, restack_serial); + value_mask = CWStackMode; } + restack_serial = XNextRequest(g_display); + XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), value_mask, &values); + sw_wait_configurenotify(sw->wnd, restack_serial); + sw_restack_window(sw, behind); if (flags & SEAMLESSRDP_CREATE_TOPMOST) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
