From f7fb8e895914fb4a4ef58ae1451c8cf58e67af4e Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 27 Mar 2015 09:54:16 +0100 Subject: [PATCH] Added patch to fix compatibility of Uplay with gnutls28. --- README.md | 3 +- debian/changelog | 1 + patches/patchinstall.sh | 73 ++++++++++++------- ...when-calling-pgnutls_server_name_set.patch | 27 +++++++ patches/secur32-Gnutls28_Compat/definition | 1 + 5 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 patches/secur32-Gnutls28_Compat/0001-schannel_gnutls-when-calling-pgnutls_server_name_set.patch create mode 100644 patches/secur32-Gnutls28_Compat/definition diff --git a/README.md b/README.md index 1e960ea2..d77fb698 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,11 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [4]:** +**Bugfixes and features included in the next upcoming release [5]:** * Add stubs for Power[Set|Clear]Request * Avoid spam of FIXME messages for PsLookupProcessByProcessId stub ([Wine Bug #36821](https://bugs.winehq.org/show_bug.cgi?id=36821)) +* Fix compatibility of Uplay with gnutls28 ([Wine Bug #38134](https://bugs.winehq.org/show_bug.cgi?id=38134)) * Fix handling of ANSI NTLM credentials ([Wine Bug #37063](https://bugs.winehq.org/show_bug.cgi?id=37063)) * Implement empty enumerator for IWiaDevMgr::EnumDeviceInfo ([Wine Bug #27775](https://bugs.winehq.org/show_bug.cgi?id=27775)) diff --git a/debian/changelog b/debian/changelog index 51739cc2..bc5c081f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ wine-staging (1.7.40) UNRELEASED; urgency=low * Added patch to avoid spam of FIXME messages for PsLookupProcessByProcessId stub. * Added patch to implement empty enumerator for IWiaDevMgr::EnumDeviceInfo. * Added patch to fix handling of ANSI NTLM credentials. + * Added patch to fix compatibility of Uplay with gnutls28. * Removed patch to fix regression causing black screen on startup (accepted upstream). * Removed patch to fix edge cases in TOOLTIPS_GetTipText (fixed upstream). * Removed patch for IConnectionPoint/INetworkListManagerEvents stub interface (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f191c31c..9e647a6f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -165,6 +165,7 @@ patch_enable_all () enable_regedit_String_Termination="$1" enable_riched20_IText_Interface="$1" enable_secur32_ANSI_NTLM_Credentials="$1" + enable_secur32_Gnutls28_Compat="$1" enable_secur32_Schannel_ContextAttr="$1" enable_server_ACL_Compat="$1" enable_server_Address_List_Change="$1" @@ -552,6 +553,9 @@ patch_enable () secur32-ANSI_NTLM_Credentials) enable_secur32_ANSI_NTLM_Credentials="$2" ;; + secur32-Gnutls28_Compat) + enable_secur32_Gnutls28_Compat="$2" + ;; secur32-Schannel_ContextAttr) enable_secur32_Schannel_ContextAttr="$2" ;; @@ -1784,6 +1788,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then ) >> "$patchlist" fi +# Patchset makedep-PARENTSPEC +# | +# | Modified files: +# | * tools/makedep.c +# | +if test "$enable_makedep_PARENTSPEC" -eq 1; then + patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch + ( + echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntdll-DllRedirects # | # | Modified files: @@ -1804,18 +1820,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then ) >> "$patchlist" fi -# Patchset makedep-PARENTSPEC -# | -# | Modified files: -# | * tools/makedep.c -# | -if test "$enable_makedep_PARENTSPEC" -eq 1; then - patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch - ( - echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-CSMT_Helper # | # | Modified files: @@ -3545,6 +3549,21 @@ if test "$enable_secur32_ANSI_NTLM_Credentials" -eq 1; then ) >> "$patchlist" fi +# Patchset secur32-Gnutls28_Compat +# | +# | This patchset fixes the following Wine bugs: +# | * [#38134] Fix compatibility of Uplay with gnutls28 +# | +# | Modified files: +# | * dlls/secur32/schannel_gnutls.c +# | +if test "$enable_secur32_Gnutls28_Compat" -eq 1; then + patch_apply secur32-Gnutls28_Compat/0001-schannel_gnutls-when-calling-pgnutls_server_name_set.patch + ( + echo '+ { "Nikos Mavrogiannopoulos", "schannel_gnutls: when calling pgnutls_server_name_set ensure that the values are sane.", 1 },'; + ) >> "$patchlist" +fi + # Patchset secur32-Schannel_ContextAttr # | # | This patchset fixes the following Wine bugs: @@ -3666,6 +3685,21 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then ) >> "$patchlist" fi +# Patchset server-OpenProcess +# | +# | This patchset fixes the following Wine bugs: +# | * [#37087] Return an error when trying to open a terminated process +# | +# | Modified files: +# | * server/process.c, server/process.h +# | +if test "$enable_server_OpenProcess" -eq 1; then + patch_apply server-OpenProcess/0001-server-Return-error-when-opening-a-terminating-proce.patch + ( + echo '+ { "Michael Müller", "server: Return error when opening a terminating process.", 3 },'; + ) >> "$patchlist" +fi + # Patchset server-Misc_ACL # | # | This patchset fixes the following Wine bugs: @@ -3683,21 +3717,6 @@ if test "$enable_server_Misc_ACL" -eq 1; then ) >> "$patchlist" fi -# Patchset server-OpenProcess -# | -# | This patchset fixes the following Wine bugs: -# | * [#37087] Return an error when trying to open a terminated process -# | -# | Modified files: -# | * server/process.c, server/process.h -# | -if test "$enable_server_OpenProcess" -eq 1; then - patch_apply server-OpenProcess/0001-server-Return-error-when-opening-a-terminating-proce.patch - ( - echo '+ { "Michael Müller", "server: Return error when opening a terminating process.", 3 },'; - ) >> "$patchlist" -fi - # Patchset server-JobObjects # | # | This patchset fixes the following Wine bugs: diff --git a/patches/secur32-Gnutls28_Compat/0001-schannel_gnutls-when-calling-pgnutls_server_name_set.patch b/patches/secur32-Gnutls28_Compat/0001-schannel_gnutls-when-calling-pgnutls_server_name_set.patch new file mode 100644 index 00000000..da9fd7e9 --- /dev/null +++ b/patches/secur32-Gnutls28_Compat/0001-schannel_gnutls-when-calling-pgnutls_server_name_set.patch @@ -0,0 +1,27 @@ +From c8d49d6ffce2dcc3797e20bbf7649aadafea21cf Mon Sep 17 00:00:00 2001 +From: Nikos Mavrogiannopoulos +Date: Thu, 26 Mar 2015 11:14:17 +0100 +Subject: schannel_gnutls: when calling pgnutls_server_name_set ensure that the + values are sane + +--- + dlls/secur32/schannel_gnutls.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c +index 1173574..1ad0c76 100644 +--- a/dlls/secur32/schannel_gnutls.c ++++ b/dlls/secur32/schannel_gnutls.c +@@ -188,7 +188,8 @@ void schan_imp_set_session_target(schan_imp_session session, const char *target) + { + gnutls_session_t s = (gnutls_session_t)session; + +- pgnutls_server_name_set( s, GNUTLS_NAME_DNS, target, strlen(target) ); ++ if (target != NULL && strlen(target) != 0) ++ pgnutls_server_name_set( s, GNUTLS_NAME_DNS, target, strlen(target) ); + } + + SECURITY_STATUS schan_imp_handshake(schan_imp_session session) +-- +2.3.3 + diff --git a/patches/secur32-Gnutls28_Compat/definition b/patches/secur32-Gnutls28_Compat/definition new file mode 100644 index 00000000..8aa6d8ab --- /dev/null +++ b/patches/secur32-Gnutls28_Compat/definition @@ -0,0 +1 @@ +Fixes: [38134] Fix compatibility of Uplay with gnutls28