diff --git a/wine-gnutls-3.5.patch b/wine-gnutls-3.5.patch new file mode 100644 index 0000000..f2819e1 --- /dev/null +++ b/wine-gnutls-3.5.patch @@ -0,0 +1,94 @@ +From 3e08f247b8bf105f1548648b93fad4a672ac7d7b Mon Sep 17 00:00:00 2001 +From: Michael Cronenworth +Date: Wed, 15 Jun 2016 19:03:22 -0500 +Subject: [PATCH] configure: Check for GnuTLS block size function + +Instead of providing an extern, perform a configure check. The +function return type changed from signed to unsigned in GnuTLS 3.5. + +Signed-off-by: Michael Cronenworth +--- + configure | 37 +++++++++++++++++++++++++++++++++++++ + configure.ac | 3 +++ + dlls/secur32/schannel_gnutls.c | 3 --- + 3 files changed, 40 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index d1a6a68..1c39a6c 100755 +--- a/configure ++++ b/configure +@@ -11655,6 +11655,43 @@ CPPFLAGS=$ac_save_CPPFLAGS + test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` + test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` + ++ if ${GNUTLS_CFLAGS:+false} :; then : ++ if ${PKG_CONFIG+:} false; then : ++ GNUTLS_CFLAGS=`$PKG_CONFIG --cflags gnutls 2>/dev/null` ++fi ++fi ++ ++if ${GNUTLS_LIBS:+false} :; then : ++ if ${PKG_CONFIG+:} false; then : ++ GNUTLS_LIBS=`$PKG_CONFIG --libs gnutls 2>/dev/null` ++fi ++fi ++ ++ ++$as_echo "$as_me:${as_lineno-$LINENO}: gnutls cflags: $GNUTLS_CFLAGS" >&5 ++$as_echo "$as_me:${as_lineno-$LINENO}: gnutls libs: $GNUTLS_LIBS" >&5 ++ac_save_CPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS $GNUTLS_CFLAGS" ++ac_wine_check_funcs_save_LIBS="$LIBS" ++LIBS="$LIBS $GNUTLS_LIBS" ++for ac_func in gnutls_cipher_get_block_size ++do : ++ ac_fn_c_check_func "$LINENO" "gnutls_cipher_get_block_size" "ac_cv_func_gnutls_cipher_get_block_size" ++if test "x$ac_cv_func_gnutls_cipher_get_block_size" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GNUTLS_CIPHER_GET_BLOCK_SIZE 1 ++_ACEOF ++ ++else ++ as_fn_append wine_notices "|libgnutls ${notice_platform}development files too old, no block size support." ++fi ++done ++ ++LIBS="$ac_wine_check_funcs_save_LIBS" ++CPPFLAGS=$ac_save_CPPFLAGS ++test -z "$GNUTLS_CFLAGS" || GNUTLS_CFLAGS=`echo " $GNUTLS_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'` ++test -z "$GNUTLS_LIBS" || GNUTLS_LIBS=`echo " $GNUTLS_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'` ++ + fi + if test "x$ac_cv_lib_soname_gnutls" = "x"; then : + case "x$with_gnutls" in +diff --git a/configure.ac b/configure.ac +index 7f234b2..6ae8dde 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1268,6 +1268,9 @@ then + WINE_CHECK_LIB_FUNCS(gnutls_hash,[$GNUTLS_LIBS],, + [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no bcrypt hash support.])])])], + [GNUTLS_CFLAGS=""])]) ++ WINE_PACKAGE_FLAGS(GNUTLS,[gnutls],,,, ++ [WINE_CHECK_LIB_FUNCS(gnutls_cipher_get_block_size,[$GNUTLS_LIBS],, ++ [WINE_NOTICE([libgnutls ${notice_platform}development files too old, no block size support.])])]) + fi + WINE_WARNING_WITH(gnutls,[test "x$ac_cv_lib_soname_gnutls" = "x"], + [libgnutls ${notice_platform}development files not found, no schannel support.]) +diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c +index b10b629..2388c55 100644 +--- a/dlls/secur32/schannel_gnutls.c ++++ b/dlls/secur32/schannel_gnutls.c +@@ -41,9 +41,6 @@ + WINE_DEFAULT_DEBUG_CHANNEL(secur32); + WINE_DECLARE_DEBUG_CHANNEL(winediag); + +-/* Not present in gnutls version < 2.9.10. */ +-extern int gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm); +- + static void *libgnutls_handle; + #define MAKE_FUNCPTR(f) static typeof(f) * p##f + MAKE_FUNCPTR(gnutls_alert_get); +-- +2.5.5 + diff --git a/wine.spec b/wine.spec index 532a276..0a0f7ba 100644 --- a/wine.spec +++ b/wine.spec @@ -72,6 +72,8 @@ Source501: wine-tahoma.conf Source502: wine-README-tahoma Patch511: wine-cjk.patch +# GnuTLS 3.5 fix +Patch512: wine-gnutls-3.5.patch # wine compholio patches for wine-staging # pulseaudio-patch is covered by that patch-set, too. @@ -660,6 +662,7 @@ This package adds the opencl driver for wine. %prep %setup -q -n wine-%{version} %patch511 -p1 -b.cjk +%patch512 -p1 -b.gnutls # setup and apply wine-staging patches gzip -dc %{SOURCE900} | tar -xf - --strip-components=1