gnu: mediastreamer2: Update to 4.4.34.
* gnu/packages/linphone.scm (mediastreamer2)[source]: Switch to git repository.
[version]: Update to 4.4.34.
[patches]: Remove field.
[configure-flags]: Remove the ENABLE_STRICT, ENABLE_BV16, CMAKE_C_FLAGS and
CMAKE_CXX_FLAGS flags.
[phases]{fix-version}: New phase.
{separate-outputs}: Modify.
[native-inputs]: Replace python with python-wrapper.
[home-page]: Update.
[license]: Upgrade to GPLv3+.
* gnu/packages/patches/mediastreamer2-srtp2.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
			
			
This commit is contained in:
		
							parent
							
								
									2dda883dee
								
							
						
					
					
						commit
						146a9403b3
					
				
					 3 changed files with 29 additions and 188 deletions
				
			
		| 
						 | 
				
			
			@ -1397,7 +1397,6 @@ dist_patch_DATA =						\
 | 
			
		|||
  %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
 | 
			
		||||
  %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
 | 
			
		||||
  %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
 | 
			
		||||
  %D%/packages/patches/mediastreamer2-srtp2.patch		\
 | 
			
		||||
  %D%/packages/patches/mesa-skip-tests.patch			\
 | 
			
		||||
  %D%/packages/patches/mescc-tools-boot.patch			\
 | 
			
		||||
  %D%/packages/patches/meson-for-build-rpath.patch		\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -417,9 +417,10 @@ such as conferencing.")
 | 
			
		|||
       #: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))))
 | 
			
		||||
| 
						 | 
				
			
			@ -518,56 +519,52 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
 | 
			
		|||
(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)
 | 
			
		||||
               (rename-file (string-append out "/share/" tester-name)
 | 
			
		||||
                            (string-append tester "/share/" tester-name))
 | 
			
		||||
               (delete-file-recursively (string-append out "/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)
 | 
			
		||||
| 
						 | 
				
			
			@ -600,8 +597,8 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
 | 
			
		|||
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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,155 +0,0 @@
 | 
			
		|||
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