#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-version-strings
+ ;; See: https://gitlab.linphone.org/BC/public/ortp/-/issues/5.
(lambda _
(substitute* "CMakeLists.txt"
- (("VERSION 4.4.0")
+ (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
(string-append "VERSION " ,version))
(("\\$\\{ORTP_DOC_VERSION\\}")
,version))))
(define-public mediastreamer2
(package
(name "mediastreamer2")
- (version "2.16.1")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/"
- "mediastreamer/mediastreamer-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/mediastreamer2.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k"))
- (patches (search-patches "mediastreamer2-srtp2.patch"))))
+ (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
(outputs '("out" "doc" "tester"))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO" ; Not required
- "-DENABLE_STRICT=NO" ; Would otherwise treat warnings as err
- "-DENABLE_BV16=NO" ; Not available
- "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\""
- "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"")
+ #:configure-flags (list "-DENABLE_STATIC=NO")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+ (string-append "VERSION " ,version)))))
(add-after 'install 'separate-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
(tester (assoc-ref outputs "tester"))
- (tester-name (string-append ,name "_tester")))
+ (tester-name (string-append ,name "_tester"))
+ (doc (assoc-ref outputs "doc"))
+ (doc-name (string-append ,name "-" ,version)))
+ (for-each mkdir-p
+ (list (string-append tester "/bin")
+ (string-append tester "/share")
+ (string-append doc "/share/doc")))
;; Copy the tester executable.
- (mkdir-p (string-append tester "/bin"))
(rename-file (string-append out "/bin/" tester-name)
(string-append tester "/bin/" tester-name))
;; Copy the tester data files.
- (copy-recursively (string-append out "/share/" tester-name)
- (string-append tester "/share/" tester-name))
- (delete-file-recursively (string-append out "/share/"
- tester-name))
+ (rename-file (string-append out "/share/" tester-name)
+ (string-append tester "/share/" tester-name))
;; Copy the HTML documentation.
- (copy-recursively (string-append out "/share/doc/"
- ,name "-" ,version "/html")
- (string-append doc "/share/doc/"
- ,name "-" ,version "/html"))
- (delete-file-recursively (string-append out "/share/doc/"
- ,name "-" ,version
- "/html"))
- #t))))))
+ (rename-file (string-append out "/share/doc/" doc-name)
+ (string-append doc "/share/doc/" doc-name))))))))
(native-inputs
`(("dot" ,graphviz)
("doxygen" ,doxygen)
- ("python" ,python)))
+ ("python" ,python-wrapper)))
(inputs
`(("alsa" ,alsa-lib)
("bcg729" ,bcg729)
for telephony applications. This media processing and streaming toolkit is
responsible for receiving and sending all multimedia streams in Linphone,
including media capture, encoding and decoding, and rendering.")
- (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/mediastreamer2")
+ (license license:gpl3+)))
(define-public liblinphone
(package
+++ /dev/null
-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
-