706 lines
27 KiB
Scheme
706 lines
27 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;;
|
|
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
|
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
|
;;;
|
|
;;; 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 <http://www.gnu.org/licenses/>.
|
|
|
|
(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 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)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages qt)
|
|
#: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)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix build-system cmake)
|
|
#:use-module (guix build-system qt)
|
|
#:use-module (guix build-system glib-or-gtk)
|
|
#: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+)))
|
|
|
|
(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 software 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+)))
|
|
|
|
(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+)))
|
|
|
|
(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
|
|
;; For Core C and LibEBML2.
|
|
;; https://www.matroska.org/node/47
|
|
license:bsd-4
|
|
;; For LibMatroska2.
|
|
;; https://www.matroska.org/node/47
|
|
license:lgpl2.1+))))
|
|
|
|
(define-public bcg729
|
|
(package
|
|
(name "bcg729")
|
|
(version "1.1.1")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "git://git.linphone.org/bcg729.git")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739"))))
|
|
(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+)))
|
|
|
|
(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+)))
|
|
|
|
(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"))) ; Not required
|
|
(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+)))
|
|
|
|
(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") ; Not required
|
|
#: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+)))
|
|
|
|
(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"))
|
|
(patches (search-patches "mediastreamer2-srtp2.patch"))))
|
|
(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\\\"")
|
|
#: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)
|
|
("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 "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+)))
|
|
|
|
(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"))))
|
|
(outputs '("out" "doc" "tester"))
|
|
(build-system cmake-build-system)
|
|
(arguments
|
|
`(#:tests? #f ; No test target
|
|
#:configure-flags
|
|
(list (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_STRICT=NO"
|
|
"-DENABLE_GTK_UI=YES") ; for legacy UI
|
|
#:imported-modules (,@%cmake-build-system-modules
|
|
(guix build glib-or-gtk-build-system))
|
|
#:modules ((guix build cmake-build-system)
|
|
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
|
|
(guix build utils))
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'patch
|
|
(lambda _
|
|
(substitute* "gtk/main.c"
|
|
(("#include \"liblinphone_gitversion.h\"")
|
|
""))
|
|
#t))
|
|
(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.
|
|
(mkdir-p (string-append tester "/share/"))
|
|
(rename-file (string-append out "/share/" tester-name)
|
|
(string-append tester "/share/" tester-name))
|
|
;; Copy the HTML and XML documentation.
|
|
(copy-recursively
|
|
(string-append out "/share/doc/linphone-" ,version)
|
|
(string-append doc "/share/doc/" ,name "-" ,version))
|
|
(delete-file-recursively
|
|
(string-append out "/share/doc/linphone-" ,version))
|
|
#t)))
|
|
(add-after 'install 'install-man-pages
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(man (string-append out "/share/man/man1")))
|
|
(for-each (lambda (file)
|
|
(install-file file man))
|
|
(find-files ".." ".*.1$"))
|
|
#t)))
|
|
(add-after 'separate-outputs 'glib-or-gtk-compile-schemas
|
|
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
|
|
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
|
|
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
|
|
(native-inputs
|
|
`(("gettext" ,gettext-minimal)
|
|
("udev" ,eudev) ;for libudev.h
|
|
;; For generating the C++ wrappers.
|
|
("dot" ,graphviz)
|
|
("doxygen" ,doxygen)
|
|
("python" ,python)
|
|
("pystache" ,python-pystache)
|
|
("six" ,python-six)))
|
|
(inputs
|
|
`(("bctoolbox" ,bctoolbox)
|
|
("belcard" ,belcard)
|
|
("bellesip" ,belle-sip)
|
|
("bzrtp" ,bzrtp)
|
|
("iconv" ,libiconv)
|
|
("glib" ,glib)
|
|
("gtk2" ,gtk+-2)
|
|
("mediastreamer2" ,mediastreamer2)
|
|
("notify" ,libnotify)
|
|
("ortp" ,ortp)
|
|
("sqlite" ,sqlite)
|
|
("xml2" ,libxml2)
|
|
("zlib" ,zlib)))
|
|
(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+)))
|
|
|
|
(define-public linphoneqt
|
|
(package
|
|
(name "linphoneqt")
|
|
(version "4.1.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri
|
|
(string-append "https://www.linphone.org/releases/sources/" name
|
|
"/" name "-" version ".tar.gz"))
|
|
(sha256
|
|
(base32 "1g2zrr9li0g1hgs6vys06vr98h5dx36z22hx7a6ry231536c002a"))
|
|
(patches (search-patches "linphoneqt-tabbutton.patch"))))
|
|
(build-system qt-build-system)
|
|
(arguments
|
|
`(#:tests? #f ; No test target
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'fix-cmake-error
|
|
(lambda _
|
|
;; This is fixed in commit efed2fd8 of the master branch.
|
|
(substitute* "CMakeLists.txt"
|
|
(("js)\\$\"")
|
|
"js$\""))
|
|
#t))
|
|
(add-after 'unpack 'set-version-string
|
|
(lambda _
|
|
(substitute* "src/app/AppController.cpp"
|
|
(("LINPHONE_QT_GIT_VERSION")
|
|
(format #f "~s" ,version)))
|
|
#t))
|
|
(add-after 'install 'extend-shared-resources
|
|
;; Not using the FHS exposes an issue where the client refers to
|
|
;; its own "share" directory, which lacks sound files installed by
|
|
;; liblinphone.
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(let ((liblinphone (assoc-ref inputs "linphone"))
|
|
(out (assoc-ref outputs "out")))
|
|
(symlink (string-append liblinphone "/share/sounds")
|
|
(string-append out "/share/sounds"))
|
|
#t))))))
|
|
(native-inputs
|
|
`(("qttools" ,qttools)))
|
|
(inputs
|
|
`(("bctoolbox" ,bctoolbox)
|
|
("belcard" ,belcard)
|
|
("bellesip" ,belle-sip)
|
|
("linphone" ,liblinphone)
|
|
("mediastreamer2" ,mediastreamer2)
|
|
("qtbase" ,qtbase)
|
|
("qtdeclarative" ,qtdeclarative)
|
|
("qtgraphicaleffects" ,qtgraphicaleffects)
|
|
("qtquickcontrols" ,qtquickcontrols)
|
|
("qtquickcontrols2" ,qtquickcontrols2)
|
|
("qtsvg" ,qtsvg)))
|
|
(synopsis "Desktop client for the Linphone SIP softphone")
|
|
(description "Linphone is a SIP softphone for voice and video over IP calling
|
|
(VoIP) and instant messaging. Amongst its features are:
|
|
@itemize
|
|
@item High Definition (HD) audio and video calls
|
|
@item Multiple call management (pause and resume)
|
|
@item Call transfer
|
|
@item Audio conferencing (merge calls into a conference call)
|
|
@item Call recording and replay (audio only)
|
|
@item Instant Messaging with message delivery status (IMDN)
|
|
@item Picture and file sharing
|
|
@item Echo cancellation
|
|
@item Secure user authentication using TLS client certificates
|
|
@item SRTP, zRTP and SRTP-DTLS voice and video encryption
|
|
@item Telephone tone (DTMF) support using SIP INFO or RFC 4733
|
|
@item Audio codecs: opus, speex, g711, g729, gsm, iLBC, g722, SILK, etc.
|
|
@item Video codecs: VP8, H.264 and H.265 with resolutions up to 1080P, MPEG4
|
|
@end itemize")
|
|
(home-page "https://gitlab.linphone.org/BC/public/linphone-desktop")
|
|
(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+)))
|
|
|
|
(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+)))
|
|
|
|
(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"))) ; Not required
|
|
(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+)))
|
|
|
|
(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+)))
|