dev-cpp/commoncpp2: fix building with libgcrypt 1.6 and higher
authorSergey Popov <pinkbyte@gentoo.org>
Wed, 25 Nov 2015 12:50:29 +0000 (15:50 +0300)
committerSergey Popov <pinkbyte@gentoo.org>
Wed, 25 Nov 2015 12:51:38 +0000 (15:51 +0300)
Reported-by: 3PO <r2d2@freakmail.de>
Gentoo-Bug: 512670

Package-Manager: portage-2.2.23

dev-cpp/commoncpp2/commoncpp2-1.8.1-r1.ebuild
dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch [new file with mode: 0644]

index 1baba03cdd882a72b4dc96cd71df6c1cc8ebd178..1fdd61571867eb8701f2899263f6dafad64f45b0 100644 (file)
@@ -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 (file)
index 0000000..d83ff91
--- /dev/null
@@ -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();
+     }