summaryrefslogtreecommitdiff
path: root/community/pokerth/gcrypt16.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/pokerth/gcrypt16.patch')
-rw-r--r--community/pokerth/gcrypt16.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/community/pokerth/gcrypt16.patch b/community/pokerth/gcrypt16.patch
new file mode 100644
index 000000000..818feda09
--- /dev/null
+++ b/community/pokerth/gcrypt16.patch
@@ -0,0 +1,57 @@
+From aa22d39d7753acc56813171e654fa9fa1f0ca759 Mon Sep 17 00:00:00 2001
+From: lotodore <pokerth@lotharmay.de>
+Date: Thu, 19 Dec 2013 12:28:35 +0100
+Subject: [PATCH] Fix for libgcrypt 1.6.0 compile error #247 (supported only on
+ Linux because libgcrypt does not yet support native Windows threads).
+
+---
+ src/net/common/socket_startup.cpp | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/net/common/socket_startup.cpp b/src/net/common/socket_startup.cpp
+index 12e8604..59ffc4f 100644
+--- a/src/net/common/socket_startup.cpp
++++ b/src/net/common/socket_startup.cpp
+@@ -37,6 +37,10 @@
+
+ #ifndef HAVE_OPENSSL
+
++// With libgcrypt 1.6.0, it is no longer supported to provide thread callbacks.
++// Use the default thread implementation instead, and cross fingers that it works with boost thread...
++#if GCRYPT_VERSION_NUMBER < 0x010600
++
+ extern "C" {
+
+ int gcry_bthread_init()
+@@ -64,12 +68,15 @@
+ return 0;
+ }
+
+- struct gcry_thread_cbs gcry_threads_boost = {
++ static struct gcry_thread_cbs gcry_threads_boost = {
+ GCRY_THREAD_OPTION_USER, gcry_bthread_init, gcry_bmutex_init,
+ gcry_bmutex_destroy, gcry_bmutex_lock, gcry_bmutex_unlock,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+ };
+ }
++
++#endif // GCRYPT_VERSION_NUMBER < 0x010600
++
+ #endif // not HAVE_OPENSSL
+
+ bool
+@@ -78,8 +85,10 @@
+ #ifdef HAVE_OPENSSL
+ return SSL_library_init() == 1;
+ #else
+- gcry_check_version(NULL);
++#if GCRYPT_VERSION_NUMBER < 0x010600
+ gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_boost);
++#endif
++ gcry_check_version(NULL);
+ gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0);
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
+ return true;
+--
+1.8.5.1
+