commit:     b440a90eeeecca2d53d4a7c4f115d9a59117cd7e
Author:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 25 12:50:29 2015 +0000
Commit:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
CommitDate: Wed Nov 25 12:51:38 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b440a90e

dev-cpp/commoncpp2: fix building with libgcrypt 1.6 and higher

Reported-by: 3PO <r2d2 <AT> freakmail.de>
Gentoo-Bug: 512670

Package-Manager: portage-2.2.23

 dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild  |  4 ++-
 dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch | 48 ++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild 
b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
index 1baba03..1fdd615 100644
--- a/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
+++ b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
@@ -28,7 +28,9 @@ src_prepare() {
                "${FILESDIR}/1.8.0-glibc212.patch" \
                "${FILESDIR}/1.8.1-autoconf-update.patch" \
                "${FILESDIR}/1.8.1-fix-buffer-overflow.patch" \
-               "${FILESDIR}/1.8.1-parallel-build.patch"
+               "${FILESDIR}/1.8.1-parallel-build.patch" \
+               "${FILESDIR}/1.8.1-libgcrypt.patch"
+       epatch_user
        eautoreconf
 }
 

diff --git a/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch 
b/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch
new file mode 100644
index 0000000..d83ff91
--- /dev/null
+++ b/dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch
@@ -0,0 +1,48 @@
+--- src/ssl.cpp.orig   2010-11-01 03:42:51.000000000 +0300
++++ src/ssl.cpp        2015-11-25 15:32:23.923057317 +0300
+@@ -99,35 +99,7 @@
+     return 0;
+ }
+ 
+-extern "C" {
+-    static int _wrap_mutex_init(void **priv)
+-    {
+-        return _gcry_mutex_init((Mutex **)(priv));
+-    }
+-
+-    static int _wrap_mutex_destroy(void **priv)
+-    {
+-        return _gcry_mutex_destroy((Mutex **)(priv));
+-    }
+-
+-    static int _wrap_mutex_lock(void **priv)
+-    {
+-        return _gcry_mutex_lock((Mutex **)(priv));
+-    }
+-
+-    static int _wrap_mutex_unlock(void **priv)
+-    {
+-        return _gcry_mutex_unlock((Mutex **)(priv));
+-    }
+-
+-    static struct gcry_thread_cbs _gcry_threads =
+-    {
+-        GCRY_THREAD_OPTION_PTHREAD, NULL,
+-        _wrap_mutex_init, _wrap_mutex_destroy,
+-        _wrap_mutex_lock, _wrap_mutex_unlock
+-    };
+-
+-};
++GCRY_THREAD_OPTION_PTHREAD_IMPL;
+ 
+ #endif
+ 
+@@ -135,7 +107,7 @@
+ public:
+     _ssl_global() {
+ #ifndef WIN32
+-        gcry_control(GCRYCTL_SET_THREAD_CBS, &_gcry_threads);
++        gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
+ #endif
+         gnutls_global_init();
+     }

Reply via email to