From d62c069230f5c0639be92374c78b9e5d85d733d3 Mon Sep 17 00:00:00 2001
From: Vittorio Giovara <vittorio.giovara@savoirfairelinux.com>
Date: Tue, 6 May 2014 19:47:28 -0400
Subject: [PATCH] contrib: add zrtpcpp rules and patches

Change-Id: Ic66314b6e7b2ee5f25df4bb6d4fe6b1be7200068
Refs: #46617
---
 contrib/src/zrtpcpp/SHA512SUMS            |  1 +
 contrib/src/zrtpcpp/forcegcrypt.patch     | 11 ++++++++
 contrib/src/zrtpcpp/rules.mak             | 31 +++++++++++++++++++++++
 contrib/src/zrtpcpp/standardheader.patch  | 10 ++++++++
 contrib/src/zrtpcpp/threadcbsupdate.patch | 16 ++++++++++++
 5 files changed, 69 insertions(+)
 create mode 100644 contrib/src/zrtpcpp/SHA512SUMS
 create mode 100644 contrib/src/zrtpcpp/forcegcrypt.patch
 create mode 100644 contrib/src/zrtpcpp/rules.mak
 create mode 100644 contrib/src/zrtpcpp/standardheader.patch
 create mode 100644 contrib/src/zrtpcpp/threadcbsupdate.patch

diff --git a/contrib/src/zrtpcpp/SHA512SUMS b/contrib/src/zrtpcpp/SHA512SUMS
new file mode 100644
index 0000000000..280834116a
--- /dev/null
+++ b/contrib/src/zrtpcpp/SHA512SUMS
@@ -0,0 +1 @@
+fbadb826ae26b2729e10d64197c58d545e0e6e7bd9524775cbf4838d2ce3e6ae559932b5c20bb579a3e0cab33abd50251adf129e761cfdcf3fb25347e71ffc36  libzrtpcpp-2.3.4.tar.gz
diff --git a/contrib/src/zrtpcpp/forcegcrypt.patch b/contrib/src/zrtpcpp/forcegcrypt.patch
new file mode 100644
index 0000000000..194d802430
--- /dev/null
+++ b/contrib/src/zrtpcpp/forcegcrypt.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt.orig   2014-05-06 19:35:46.443707232 -0400
++++ b/CMakeLists.txt    2014-05-06 19:13:04.235686028 -0400
+@@ -107,7 +107,7 @@
+ endif()
+ 
+ # now get info about crypto libraries
+-pkg_check_modules(OPENSSL libcrypto>=0.9.8)
++#pkg_check_modules(OPENSSL libcrypto>=0.9.8)
+ if (OPENSSL_FOUND)
+   set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${OPENSSL_INCLUDE_DIRS}) #update include files search directory
+   check_include_files(openssl/bn.h HAVE_OPENSSL_BN_H)
diff --git a/contrib/src/zrtpcpp/rules.mak b/contrib/src/zrtpcpp/rules.mak
new file mode 100644
index 0000000000..849d70d034
--- /dev/null
+++ b/contrib/src/zrtpcpp/rules.mak
@@ -0,0 +1,31 @@
+# ZRTPCPP
+ZRTPCPP_VERSION := 2.3.4
+ZRTPCPP_URL := $(GNUTELEPHONY)/libzrtpcpp-$(ZRTPCPP_VERSION).tar.gz
+
+PKGS += zrtpcpp
+ifeq ($(call need_pkg,'libzrtpcpp >= 2.0.0'),)
+PKGS_FOUND += zrtpcpp
+endif
+
+DEPS_zrtpcpp = ccrtp ucommon gcrypt
+
+ZRTPCPP_CMAKECONF := -DBUILD_STATIC:BOOL=ON \
+                     -DBUILD_SHARED:BOOL=OFF \
+                     -DBUILD_SHARED_LIBS:BOOL=OFF
+
+$(TARBALLS)/libzrtpcpp-$(ZRTPCPP_VERSION).tar.gz:
+	$(call download,$(ZRTPCPP_URL))
+
+.sum-zrtpcpp: libzrtpcpp-$(ZRTPCPP_VERSION).tar.gz
+
+zrtpcpp: libzrtpcpp-$(ZRTPCPP_VERSION).tar.gz .sum-zrtpcpp
+	$(UNPACK)
+	$(APPLY) $(SRC)/zrtpcpp/forcegcrypt.patch
+	$(APPLY) $(SRC)/zrtpcpp/threadcbsupdate.patch
+	$(APPLY) $(SRC)/zrtpcpp/standardheader.patch
+	$(MOVE)
+
+.zrtpcpp: zrtpcpp toolchain.cmake
+	cd $< && $(HOSTVARS) $(CMAKE) . $(ZRTPCPP_CMAKECONF)
+	cd $< && $(MAKE) install VERBOSE=1
+	touch $@
diff --git a/contrib/src/zrtpcpp/standardheader.patch b/contrib/src/zrtpcpp/standardheader.patch
new file mode 100644
index 0000000000..9f5faedcf2
--- /dev/null
+++ b/contrib/src/zrtpcpp/standardheader.patch
@@ -0,0 +1,10 @@
+--- a/src/libzrtpcpp/crypto/gcrypt/InitializeGcrypt.cpp.orig	2014-06-25 20:40:20.000000000 -0400
++++ b/src/libzrtpcpp/crypto/gcrypt/InitializeGcrypt.cpp	2014-06-25 20:40:32.000000000 -0400
+@@ -17,7 +17,7 @@
+ 
+ #include <stdio.h>
+ 
+-#include <malloc.h>
++#include <stdlib.h>
+ #include <errno.h>
+ #include <gcrypt.h>
diff --git a/contrib/src/zrtpcpp/threadcbsupdate.patch b/contrib/src/zrtpcpp/threadcbsupdate.patch
new file mode 100644
index 0000000000..6a9ddb29dd
--- /dev/null
+++ b/contrib/src/zrtpcpp/threadcbsupdate.patch
@@ -0,0 +1,16 @@
+--- a/src/libzrtpcpp/crypto/gcrypt/InitializeGcrypt.cpp.orig	2014-06-12 17:36:14.367890764 -0400
++++ b/src/libzrtpcpp/crypto/gcrypt/InitializeGcrypt.cpp	2014-06-12 17:36:52.899889626 -0400
+@@ -68,9 +68,12 @@
+ }
+  
+ static struct gcry_thread_cbs gcry_threads = { 
+-    GCRY_THREAD_OPTION_PTHREAD, NULL,
++    GCRY_THREAD_OPTION_PTHREAD,
++#if 0
++    NULL,
+     gcry_thread_mutex_init, gcry_thread_mutex_destroy,
+     gcry_thread_mutex_lock, gcry_thread_mutex_unlock 
++#endif
+ };
+ 
+ #else
-- 
GitLab