gnu: mediastreamer2: Enable SRTP2.
* gnu/packages/patches/mediastreamer-srtp2.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/linphone.scm (mediastreamer2)[source]: Use it.
This commit is contained in:
		
							parent
							
								
									b892016955
								
							
						
					
					
						commit
						2c56aeaea9
					
				
					 3 changed files with 159 additions and 1 deletions
				
			
		|  | @ -1196,6 +1196,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
 | ||||
|   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
 | ||||
|   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
 | ||||
|   %D%/packages/patches/mediastreamer-srtp2.patch		\
 | ||||
|   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
 | ||||
|   %D%/packages/patches/mescc-tools-boot.patch			\
 | ||||
|   %D%/packages/patches/meson-for-build-rpath.patch		\
 | ||||
|  |  | |||
|  | @ -323,7 +323,9 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.") | |||
|         (string-append "https://www.linphone.org/releases/sources/" | ||||
|                        "mediastreamer/mediastreamer-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")))) | ||||
|         (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")) | ||||
|        (patches | ||||
|         (list (search-patch "mediastreamer-srtp2.patch"))))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; No test target | ||||
|  |  | |||
							
								
								
									
										155
									
								
								gnu/packages/patches/mediastreamer-srtp2.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								gnu/packages/patches/mediastreamer-srtp2.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,155 @@ | |||
| From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001 | ||||
| From: Danmei Chen <danmei.chen@belledonne-communications.com> | ||||
| Date: Fri, 19 Jan 2018 10:04:07 +0100 | ||||
| Subject: [PATCH] add compability with srtp2 | ||||
| 
 | ||||
| ---
 | ||||
|  cmake/FindSRTP.cmake    | 24 ++++++++++++++++++++---- | ||||
|  src/CMakeLists.txt      |  1 + | ||||
|  src/crypto/ms_srtp.c    | 10 ++-------- | ||||
|  src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++ | ||||
|  4 files changed, 64 insertions(+), 12 deletions(-) | ||||
|  create mode 100644 src/utils/srtp_prefix.h | ||||
| 
 | ||||
| diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake
 | ||||
| index 988b846a..f720ce7e 100644
 | ||||
| --- a/cmake/FindSRTP.cmake
 | ||||
| +++ b/cmake/FindSRTP.cmake
 | ||||
| @@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS
 | ||||
|  ) | ||||
|   | ||||
|  find_path(SRTP_INCLUDE_DIRS | ||||
| -	NAMES srtp/srtp.h
 | ||||
| +	NAMES srtp2/srtp.h
 | ||||
|  	HINTS _SRTP_ROOT_PATHS | ||||
|  	PATH_SUFFIXES include | ||||
|  ) | ||||
|   | ||||
|  if(SRTP_INCLUDE_DIRS) | ||||
|  	set(HAVE_SRTP_SRTP_H 1) | ||||
| -endif()
 | ||||
| -
 | ||||
| -find_library(SRTP_LIBRARIES
 | ||||
| +	set(SRTP_VERSION 2)
 | ||||
| +	find_library(SRTP_LIBRARIES
 | ||||
| +		NAMES srtp2
 | ||||
| +		HINTS ${_SRTP_ROOT_PATHS}
 | ||||
| +		PATH_SUFFIXES bin lib
 | ||||
| +	)
 | ||||
| +else()
 | ||||
| +	find_path(SRTP_INCLUDE_DIRS
 | ||||
| +		NAMES srtp/srtp.h
 | ||||
| +		HINTS _SRTP_ROOT_PATHS
 | ||||
| +		PATH_SUFFIXES include
 | ||||
| +	)
 | ||||
| +	if(SRTP_INCLUDE_DIRS)
 | ||||
| +		set(HAVE_SRTP_SRTP_H 1)
 | ||||
| +		set(SRTP_VERSION 1)
 | ||||
| +	endif()
 | ||||
| +	find_library(SRTP_LIBRARIES
 | ||||
|  	NAMES srtp | ||||
|  	HINTS ${_SRTP_ROOT_PATHS} | ||||
|  	PATH_SUFFIXES bin lib | ||||
|  ) | ||||
| +endif()
 | ||||
| +
 | ||||
|   | ||||
|  include(FindPackageHandleStandardArgs) | ||||
|  find_package_handle_standard_args(SRTP | ||||
| diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
 | ||||
| index da429764..c46faa62 100644
 | ||||
| --- a/src/CMakeLists.txt
 | ||||
| +++ b/src/CMakeLists.txt
 | ||||
| @@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C
 | ||||
|  	utils/pcap_sender.c | ||||
|  	utils/pcap_sender.h | ||||
|  	utils/stream_regulator.c | ||||
| +	utils/srtp_prefix.h
 | ||||
|  	voip/audioconference.c | ||||
|  	voip/audiostream.c | ||||
|  	voip/bandwidthcontroller.c | ||||
| diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c
 | ||||
| index 5a510c99..67810316 100644
 | ||||
| --- a/src/crypto/ms_srtp.c
 | ||||
| +++ b/src/crypto/ms_srtp.c
 | ||||
| @@ -25,6 +25,7 @@
 | ||||
|  #include "mediastreamer2/ms_srtp.h" | ||||
|  #include "mediastreamer2/mediastream.h" | ||||
|   | ||||
| +
 | ||||
|  #ifdef HAVE_SRTP | ||||
|   | ||||
|  /*srtp defines all this stuff*/ | ||||
| @@ -34,13 +35,7 @@
 | ||||
|  #undef PACKAGE_TARNAME | ||||
|  #undef PACKAGE_VERSION | ||||
|   | ||||
| -#if defined(MS2_WINDOWS_PHONE)
 | ||||
| -// Windows phone doesn't use make install
 | ||||
| -#include <srtp.h>
 | ||||
| -#else
 | ||||
| -#include <srtp/srtp.h>
 | ||||
| -#endif
 | ||||
| -
 | ||||
| +#include "srtp_prefix.h"
 | ||||
|   | ||||
|  #include "ortp/b64.h" | ||||
|   | ||||
| @@ -352,7 +347,6 @@ int ms_srtp_init(void)
 | ||||
|  			srtp_init_done++; | ||||
|  		}else{ | ||||
|  			ms_fatal("Couldn't initialize SRTP library: %d.", st); | ||||
| -			err_reporting_init("mediastreamer2");
 | ||||
|  		} | ||||
|  	}else srtp_init_done++; | ||||
|  	return (int)st; | ||||
| diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h
 | ||||
| new file mode 100644 | ||||
| index 00000000..68bde496
 | ||||
| --- /dev/null
 | ||||
| +++ b/src/utils/srtp_prefix.h
 | ||||
| @@ -0,0 +1,41 @@
 | ||||
| +/*
 | ||||
| +  mediastreamer2 library - modular sound and video processing and streaming
 | ||||
| +  Copyright (C) 2006-2014 Belledonne Communications, Grenoble
 | ||||
| +
 | ||||
| +  This library is free software; you can redistribute it and/or
 | ||||
| +  modify it under the terms of the GNU Lesser General Public
 | ||||
| +  License as published by the Free Software Foundation; either
 | ||||
| +  version 2.1 of the License, or (at your option) any later version.
 | ||||
| +
 | ||||
| +  This library is distributed in the hope that it will be useful,
 | ||||
| +  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||
| +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | ||||
| +  Lesser General Public License for more details.
 | ||||
| +
 | ||||
| +  You should have received a copy of the GNU Lesser General Public
 | ||||
| +  License along with this library; if not, write to the Free Software
 | ||||
| +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | ||||
| +*/
 | ||||
| +#ifndef __SRTP2_H__
 | ||||
| +#define __SRTP2_H__
 | ||||
| +
 | ||||
| +#if defined(MS2_WINDOWS_PHONE)
 | ||||
| +// Windows phone doesn't use make install
 | ||||
| +#include <srtp.h>
 | ||||
| +#elif SRTP_VERSION==1
 | ||||
| +#include <srtp/srtp.h>
 | ||||
| +#else
 | ||||
| +#include <srtp2/srtp.h>
 | ||||
| +#define err_status_t srtp_err_status_t
 | ||||
| +#define err_status_ok srtp_err_status_ok
 | ||||
| +#define crypto_policy_t srtp_crypto_policy_t
 | ||||
| +#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80
 | ||||
| +#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32
 | ||||
| +#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth
 | ||||
| +#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80
 | ||||
| +#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80
 | ||||
| +#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32
 | ||||
| +#define ssrc_t srtp_ssrc_t
 | ||||
| +#endif
 | ||||
| +
 | ||||
| +#endif
 | ||||
| -- 
 | ||||
| 2.21.0 | ||||
| 
 | ||||
		Reference in a new issue