From 2c56aeaea94d3914acf79f9bbabeef1b3ec8aa07 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 6 Apr 2020 02:11:41 +0200 Subject: 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. --- gnu/local.mk | 1 + gnu/packages/linphone.scm | 4 +- gnu/packages/patches/mediastreamer-srtp2.patch | 155 +++++++++++++++++++++++++ 3 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mediastreamer-srtp2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 42dbf61af1..debf1f67c3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 5023c5f645..ab223700d5 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -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 diff --git a/gnu/packages/patches/mediastreamer-srtp2.patch b/gnu/packages/patches/mediastreamer-srtp2.patch new file mode 100644 index 0000000000..f6d494facb --- /dev/null +++ b/gnu/packages/patches/mediastreamer-srtp2.patch @@ -0,0 +1,155 @@ +From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001 +From: Danmei Chen +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 +-#else +-#include +-#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 ++#elif SRTP_VERSION==1 ++#include ++#else ++#include ++#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 + -- cgit v1.2.3