From d5a8e391ac2546241d0ff60c9a1fd2fb8ff57536 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 15:50:15 -0400 Subject: gnu: Add bcunit. * gnu/packages/linphone.scm (bcunit): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 gnu/packages/linphone.scm (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm new file mode 100644 index 0000000000..4262d00c21 --- /dev/null +++ b/gnu/packages/linphone.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; Copyright © 2020 Raghav Gururajan +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix 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 General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages linphone) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu)) + +(define-public bcunit + (package + (name "bcunit") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Unit Testing Framework") + (description "BCUnit is a fork of the defunct project CUnit, +with several fixes and patches applied. It is an unit testing +framework for writing, administering, and running unit tests in C.") + (home-page "https://gitlab.linphone.org/BC/public/bcunit") + (license license:lgpl2.0+))) -- cgit v1.2.3 From bfaabfebac0fc6c3fba2ed4358556b393ef535ce Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:10:42 -0400 Subject: gnu: Add bctoolbox. * gnu/packages/linphone.scm (bctoolbox): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 4262d00c21..d5aea75665 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -20,6 +20,7 @@ (define-module (gnu packages linphone) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -50,3 +51,30 @@ with several fixes and patches applied. It is an unit testing framework for writing, administering, and running unit tests in C.") (home-page "https://gitlab.linphone.org/BC/public/bcunit") (license license:lgpl2.0+))) + +(define-public bctoolbox + (package + (name "bctoolbox") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bcunit" ,bcunit) + ("mbedtls" ,mbedtls-apache))) + (synopsis "Belledonne Communications Tool Box") + (description "BcToolBox is an utilities library used by Belledonne +Communications softwares like belle-sip, mediastreamer2 and linphone.") + (home-page "https://gitlab.linphone.org/BC/public/bctoolbox") + (license license:gpl2+))) -- cgit v1.2.3 From 63c73bcad0ccd44363611162010b24e2b60629f4 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:18:14 -0400 Subject: gnu: Add belr. * gnu/packages/linphone.scm (belr): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index d5aea75665..862b2fc8f9 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -78,3 +78,30 @@ framework for writing, administering, and running unit tests in C.") Communications softwares like belle-sip, mediastreamer2 and linphone.") (home-page "https://gitlab.linphone.org/BC/public/bctoolbox") (license license:gpl2+))) + +(define-public belr + (package + (name "belr") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications Language Recognition Library") + (description "Belr is Belledonne Communications' language recognition library, +written in C++11. It parses text inputs formatted according to a language +defined by an ABNF grammar, such as the protocols standardized at IETF.") + (home-page "https://gitlab.linphone.org/BC/public/belr") + (license license:gpl3+))) -- cgit v1.2.3 From c8f69ec27b4d492f63edc71f0a83ec413ea85b96 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:30:24 -0400 Subject: gnu: Add belcard. * gnu/packages/linphone.scm (belcard): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 862b2fc8f9..c95f44afe4 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -105,3 +105,29 @@ written in C++11. It parses text inputs formatted according to a language defined by an ABNF grammar, such as the protocols standardized at IETF.") (home-page "https://gitlab.linphone.org/BC/public/belr") (license license:gpl3+))) + +(define-public belcard + (package + (name "belcard") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox) + ("belr" ,belr))) + (synopsis "Belledonne Communications VCard Library") + (description "Belcard is a C++ library to manipulate VCard standard format.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl3+))) -- cgit v1.2.3 From 28f6f1e0da2481ce854a893d72d6bdfc5ce97952 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:38:01 -0400 Subject: gnu: Add bcmatroska2. * gnu/packages/linphone.scm (bcmatroska2): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index c95f44afe4..cf5c807669 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -131,3 +131,35 @@ defined by an ABNF grammar, such as the protocols standardized at IETF.") (description "Belcard is a C++ library to manipulate VCard standard format.") (home-page "https://gitlab.linphone.org/BC/public/belcard") (license license:gpl3+))) + +(define-public bcmatroska2 + (package + (name "bcmatroska2") + (version "0.23") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Media Container") + (description "BcMatroska is a free and open standard multi-media +container format. It can hold an unlimited number of video, audio, +picture, or subtitle tracks in one file. ") + (home-page "https://gitlab.linphone.org/BC/public/bcmatroska2") + (license + (list + ;; That license applies for Core C and LibEBML2. + ;; https://www.matroska.org/node/47 + license:bsd-4 + ;; That license applies for LibMatroska2. + ;; https://www.matroska.org/node/47 + license:lgpl2.1+)))) -- cgit v1.2.3 From 02d5d72cfc525e1ec53a02f3a201872f261c7c37 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:44:35 -0400 Subject: gnu: Add bcg729. * gnu/packages/linphone.scm (bcg729): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index cf5c807669..97aed42a36 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -163,3 +163,30 @@ picture, or subtitle tracks in one file. ") ;; That license applies for LibMatroska2. ;; https://www.matroska.org/node/47 license:lgpl2.1+)))) + +(define-public bcg729 + (package + (name "bcg729") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "01y34ky7ykjgfnf8a9f59hg61fqfjiprfrzshdz06w0lz4gvy3qs")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications G729 Codec") + (description "BcG729 is an implementation of both encoder and decoder of +the ITU G729 speech codec. The library written in C 99 is fully portable and +can be executed on many platforms including both ARM and x86 processors. It +supports concurrent channels encoding and decoding for multi call application +such as conferencing.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl2+))) -- cgit v1.2.3 From 13f401d3665a246f5e7d3a9076fdedfe744dd3fd Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 18:54:53 -0400 Subject: gnu: Add ortp. * gnu/packages/linphone.scm (ortp): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 97aed42a36..705790b894 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -20,6 +20,8 @@ (define-module (gnu packages linphone) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages documentation) + #:use-module (gnu packages graphviz) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -190,3 +192,32 @@ supports concurrent channels encoding and decoding for multi call application such as conferencing.") (home-page "https://gitlab.linphone.org/BC/public/belcard") (license license:gpl2+))) + +(define-public ortp + (package + (name "ortp") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen))) + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications RTP Library") + (description "oRTP is a C library implementing the RTP protocol. It +implements the RFC 3550 standard.") + (home-page "https://gitlab.linphone.org/BC/public/ortp") + (license license:gpl2+))) -- cgit v1.2.3 From f3697439cd226f769cdc5ce962f08ad3a1a8bfd6 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 19:03:00 -0400 Subject: gnu: Add bzrtp. * gnu/packages/linphone.scm (bzrtp): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 705790b894..0e32500b07 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -22,7 +22,9 @@ #:use-module (gnu packages base) #:use-module (gnu packages documentation) #:use-module (gnu packages graphviz) + #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) + #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -221,3 +223,32 @@ such as conferencing.") implements the RFC 3550 standard.") (home-page "https://gitlab.linphone.org/BC/public/ortp") (license license:gpl2+))) + +(define-public bzrtp + (package + (name "bzrtp") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("sqlite3" ,sqlite) + ("xml2" ,libxml2))) + (synopsis "Belledonne Communications ZRTP Library") + (description "BZRTP is an implementation of ZRTP keys exchange +protocol, written in C. It is fully portable and can be executed on many +platforms including both ARM and x86.") + (home-page "https://gitlab.linphone.org/BC/public/bzrtp") + (license license:gpl2+))) -- cgit v1.2.3 From e7859da11371e9bd0fffc5235b9e980cccf4b239 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 20:42:33 -0400 Subject: gnu: Add belle-sip. * gnu/packages/linphone.scm (belle-sip): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 0e32500b07..adc17ddcdf 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -20,8 +20,10 @@ (define-module (gnu packages linphone) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages compression) #:use-module (gnu packages documentation) #:use-module (gnu packages graphviz) + #:use-module (gnu packages java) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages xml) @@ -252,3 +254,43 @@ protocol, written in C. It is fully portable and can be executed on many platforms including both ARM and x86.") (home-page "https://gitlab.linphone.org/BC/public/bzrtp") (license license:gpl2+))) + +(define-public belle-sip + (package + (name "belle-sip") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; Requires network access + #:configure-flags + (list + "-DENABLE_STATIC=NO") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "src/CMakeLists.txt" + ;; ANTLR would use multithreaded DFA generation + ;; otherwise--which would not be reproducible. + (("-Xmultithreaded ") "")) + #t))))) + (inputs + `(("antlr3" ,antlr3-3.3) + ("antlr3c" ,libantlr3c) + ("bctoolbox" ,bctoolbox) + ("java" ,icedtea) + ("zlib" ,zlib))) + (synopsis "Belledonne Communications SIP Library") + (description "Belle-sip is a modern library implementing SIP transport, +transaction and dialog layers. It is written in C, with an object-oriented +API. It also comprises a simple HTTP/HTTPS client implementation.") + (home-page "https://gitlab.linphone.org/BC/public/belle-sip") + (license license:gpl2+))) -- cgit v1.2.3 From b6b3a6a6c4f00815da576912907c7bdbf02ca11a Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sun, 5 Apr 2020 03:25:10 -0400 Subject: gnu: Add mediastreamer2. * gnu/packages/linphone.scm (mediastreamer2): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index adc17ddcdf..50cb2943f0 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -19,14 +19,26 @@ (define-module (gnu packages linphone) #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages audio) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) + #:use-module (gnu packages gl) + #:use-module (gnu packages gnome) #:use-module (gnu packages graphviz) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) #:use-module (gnu packages java) #:use-module (gnu packages sqlite) + #:use-module (gnu packages telephony) #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -294,3 +306,64 @@ transaction and dialog layers. It is written in C, with an object-oriented API. It also comprises a simple HTTP/HTTPS client implementation.") (home-page "https://gitlab.linphone.org/BC/public/belle-sip") (license license:gpl2+))) + +(define-public mediastreamer2 + (package + (name "mediastreamer2") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" + "mediastreamer/mediastreamer-" version ".tar.gz")) + (sha256 + (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")))) + (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\\\""))) + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("python" ,python))) + (inputs + `(("alsa" ,alsa-lib) + ("bcg729" ,bcg729) + ("bcmatroska2" ,bcmatroska2) + ("bctoolbox" ,bctoolbox) + ("ffmpeg" ,ffmpeg) + ("glew" ,glew) + ("glu" ,glu) + ("glx" ,mesa-utils) + ("gsm" ,gsm) + ("opengl" ,mesa) + ("opus" ,opus) + ("ortp" ,ortp) + ("pcap" ,libpcap) + ("portaudio" ,portaudio) + ("pulseaudio" ,pulseaudio) + ("spandsp" ,spandsp) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("srtp" ,libsrtp) + ("theora" ,libtheora) + ("turbojpeg" ,libjpeg-turbo) + ("v4l" ,v4l-utils) + ("vpx" ,libvpx) + ("x11" ,libx11) + ("xv" ,libxv) + ("zrtp", bzrtp))) + (synopsis "Belledonne Communications Streaming Engine") + (description "Mediastreamer is a powerful and lightweight streaming +engine 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+))) -- cgit v1.2.3 From 9732910dd336e9bca56991a0630619bc1578d2af Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 21:18:04 -0400 Subject: gnu: Add liblinphone. * gnu/packages/linphone.scm (liblinphone): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 50cb2943f0..265c33e454 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages gnome) #:use-module (gnu packages graphviz) @@ -31,6 +32,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages java) #:use-module (gnu packages sqlite) #:use-module (gnu packages telephony) @@ -367,3 +369,49 @@ 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+))) + +(define-public liblinphone + (package + (name "liblinphone") + (version "3.12.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/linphone" + "/linphone-" version ".tar.gz")) + (sha256 + (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("gettext" ,gettext-minimal) + ("iconv" ,libiconv) + ("python" ,python) + ("xml2" ,libxml2) + ("zlib" ,zlib))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("belcard" ,belcard) + ("bellesip" ,belle-sip) + ("bzrtp", bzrtp) + ("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp) + ("pystache" ,python-pystache) + ("six" ,python-six) + ("sqlite" ,sqlite) + ("udev" ,eudev))) + (synopsis "Belledonne Communications Softphone Library") + (description "Liblinphone is a high-level SIP library integrating +all calling and instant messaging features into an unified +easy-to-use API. It is the cross-platform VoIP library on which the +Linphone application is based on, and that anyone can use to add audio +and video calls or instant messaging capabilities to an application.") + (home-page "https://gitlab.linphone.org/BC/public/liblinphone") + (license license:gpl2+))) -- cgit v1.2.3 From 02b32cdda68495344d8e5521db5aeaf5add03797 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 5 Apr 2020 22:03:25 +0200 Subject: gnu: liblinphone: Add features. * gnu/packages/linphone.scm (liblinphone)[arguments]<#:configure-flags>: Add features. <#:phases>[patch]: New phase. [inputs]: Add glib, gtk2, notify. [propagated-inputs]: Add murrine. --- gnu/packages/linphone.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 265c33e454..2b0d6036fe 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -26,8 +26,11 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) + #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnome-xyz) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages pulseaudio) @@ -387,7 +390,22 @@ including media capture, encoding and decoding, and rendering.") `(#:tests? #f ; No test target #:configure-flags (list - "-DENABLE_STATIC=NO"))) ; Not required + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "gtk2") + "/lib/gtk-2.0/include")) + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_GTK_UI=YES") ; For Legacy UI + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "gtk/main.c" + (("#include \"liblinphone_gitversion.h\"") + "")) + #t))))) (native-inputs `(("dot" ,graphviz) ("doxygen" ,doxygen) @@ -401,12 +419,17 @@ including media capture, encoding and decoding, and rendering.") ("belcard" ,belcard) ("bellesip" ,belle-sip) ("bzrtp", bzrtp) + ("glib" ,glib) + ("gtk2" ,gtk+-2) ("mediastreamer2" ,mediastreamer2) + ("notify" ,libnotify) ("ortp" ,ortp) ("pystache" ,python-pystache) ("six" ,python-six) ("sqlite" ,sqlite) ("udev" ,eudev))) + (propagated-inputs + `(("murrine" ,murrine))) ; Required for GTK UI (synopsis "Belledonne Communications Softphone Library") (description "Liblinphone is a high-level SIP library integrating all calling and instant messaging features into an unified -- cgit v1.2.3 From 14e73f8f18f0140745f699ad622c1d9a3319dc51 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 22:53:05 -0400 Subject: gnu: Add msopenh264. * gnu/packages/linphone.scm (msopenh264): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 2b0d6036fe..1dbf760a7a 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -438,3 +438,42 @@ Linphone application is based on, and that anyone can use to add audio and video calls or instant messaging capabilities to an application.") (home-page "https://gitlab.linphone.org/BC/public/liblinphone") (license license:gpl2+))) + +(define-public msopenh264 + (package + (name "msopenh264") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8")) + (patches + (list + ;; For support for OpenH264 version >= 2. + (origin + (method url-fetch) + (uri + (string-append "https://gitlab.linphone.org/BC/public/msopenh264/commit/" + "493d147d28c9a0f788ba4e50b47a1ce7b18bf326.diff")) + (file-name "msopenh264-openh264.patch") + (sha256 + (base32 "0mmd7nz5n9ian4rcwn200nldmy5j0dpdrna7r32rqnaw82bx3kdb"))))))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("openh264" ,openh264) + ("ortp" ,ortp))) + (synopsis "Media Streamer H.264 Codec") + (description "MsOpenH264 is an H.264 encoder/decoder plugin for +mediastreamer2 based on the openh264 library.") + (home-page "https://gitlab.linphone.org/BC/public/msopenh264") + (license license:gpl2+))) -- cgit v1.2.3 From f689d3d7d9ba3fa25b4839bdd1e4b98905f4869c Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 22:58:32 -0400 Subject: gnu: Add mssilk. * gnu/packages/linphone.scm (mssilk): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 1dbf760a7a..75c3476675 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -477,3 +477,30 @@ and video calls or instant messaging capabilities to an application.") mediastreamer2 based on the openh264 library.") (home-page "https://gitlab.linphone.org/BC/public/msopenh264") (license license:gpl2+))) + +(define-public mssilk + (package + (name "mssilk") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "07ip0vd29d1n98lnqs5wpimcsmpm65yl7g5vk4hbqghcbsjw94lj")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer SILK Codec") + (description "MSSILK is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the Skype's SILK implementation.") + (home-page "https://gitlab.linphone.org/BC/public/mssilk") + (license license:gpl2+))) -- cgit v1.2.3 From fe8f1c0b194de2fa7aa5265a4a0424e82bd11af1 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 23:04:34 -0400 Subject: gnu: Add mswebrtc. * gnu/packages/linphone.scm (mswebrtc): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 75c3476675..68a4e3e140 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -504,3 +504,31 @@ mediastreamer2 based on the openh264 library.") AMR codec. It is based on the Skype's SILK implementation.") (home-page "https://gitlab.linphone.org/BC/public/mssilk") (license license:gpl2+))) + +(define-public mswebrtc + (package + (name "mswebrtc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1wj28hl9myhshqmn64xg0jf07aw75gmnilb5rff6rcbdxim87mqr")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer WebRTC Codec") + (description "MSWebRTC is a plugin of MediaStreamer, adding support for +WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") + (home-page "https://gitlab.linphone.org/BC/public/mswebrtc") + (license license:gpl2+))) -- cgit v1.2.3 From b89201695582351fa5fa183c7a1aa26162ca271e Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 1 Apr 2020 22:04:16 -0400 Subject: gnu: Add msamr. * gnu/packages/linphone (msamr): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/linphone.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 68a4e3e140..5023c5f645 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -532,3 +532,33 @@ AMR codec. It is based on the Skype's SILK implementation.") WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") (home-page "https://gitlab.linphone.org/BC/public/mswebrtc") (license license:gpl2+))) + +(define-public msamr + (package + (name "msamr") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "16c9f3z4wnj73k7y8gb0fgpr4axsm7b5zrbjvy8vsgz9gyg3agm5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_WIDEBAND=YES"))) + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("opencoreamr" ,opencore-amr) + ("ortp" ,ortp) + ("voamrwbenc" ,vo-amrwbenc))) + (synopsis "Media Streamer AMR Codec") + (description "MSAMR is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the opencore-amr implementation.") + (home-page "https://gitlab.linphone.org/BC/public/msamr") + (license license:gpl3+))) -- cgit v1.2.3 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 (limited to 'gnu/packages/linphone.scm') 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 From fe6ccb855234111cfe2460bb2469bc7b766e534e Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 5 Apr 2020 22:24:19 -0400 Subject: gnu: mediastreamer2: Move the tester files and HTML doc to separate outputs. The tester binary generated gets installed with about 20 MiB of data files, and the HTML documentation weighs another 500 KiB or so. Move them to separate outputs. * gnu/packages/patches/mediastreamer-srtp2.patch: Rename to... * gnu/packages/patches/mediastreamer2-srtp2.patch: ...this, to please 'guix lint'. * gnu/local.mk (dist_patch_DATA): Adapt. * gnu/packages/linphone.scm (mediastreamer2)[patches]: Likewise. [outputs]: Add the "doc" and "tester" outputs. [phases]: Add a phase to move the HTML doc and tester binary and data to the 'doc' and 'tester' outputs, respectively. [description]: Remove the unicode characters surrounding the word 'powerful'. --- gnu/local.mk | 2 +- gnu/packages/linphone.scm | 42 +++++-- gnu/packages/patches/mediastreamer-srtp2.patch | 155 ------------------------ gnu/packages/patches/mediastreamer2-srtp2.patch | 155 ++++++++++++++++++++++++ 4 files changed, 191 insertions(+), 163 deletions(-) delete mode 100644 gnu/packages/patches/mediastreamer-srtp2.patch create mode 100644 gnu/packages/patches/mediastreamer2-srtp2.patch (limited to 'gnu/packages/linphone.scm') diff --git a/gnu/local.mk b/gnu/local.mk index debf1f67c3..4f61783472 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1196,7 +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/mediastreamer2-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 ab223700d5..50d75a4a95 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; ;;; Copyright © 2020 Raghav Gururajan +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -324,8 +325,8 @@ API. It also comprises a simple HTTP/HTTPS client implementation.") "mediastreamer/mediastreamer-" version ".tar.gz")) (sha256 (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")) - (patches - (list (search-patch "mediastreamer-srtp2.patch"))))) + (patches (search-patches "mediastreamer2-srtp2.patch")))) + (outputs '("out" "doc" "tester")) (build-system cmake-build-system) (arguments `(#:tests? #f ; No test target @@ -335,7 +336,33 @@ API. It also comprises a simple HTTP/HTTPS client implementation.") "-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\\\""))) + "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"") + #:phases + (modify-phases %standard-phases + (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"))) + ;; 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)) + ;; 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)))))) (native-inputs `(("dot" ,graphviz) ("doxygen" ,doxygen) @@ -368,10 +395,11 @@ API. It also comprises a simple HTTP/HTTPS client implementation.") ("xv" ,libxv) ("zrtp", bzrtp))) (synopsis "Belledonne Communications Streaming Engine") - (description "Mediastreamer is a powerful and lightweight streaming -engine 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.") + (description "Mediastreamer2 is a powerful and lightweight +streaming engine 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+))) diff --git a/gnu/packages/patches/mediastreamer-srtp2.patch b/gnu/packages/patches/mediastreamer-srtp2.patch deleted file mode 100644 index f6d494facb..0000000000 --- a/gnu/packages/patches/mediastreamer-srtp2.patch +++ /dev/null @@ -1,155 +0,0 @@ -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 - diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch new file mode 100644 index 0000000000..f6d494facb --- /dev/null +++ b/gnu/packages/patches/mediastreamer2-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