From 445dc213ebbc4fea767fb3a27057a24796b89cbf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 16 Apr 2020 10:22:10 -0400
Subject: [PATCH] gnu: Add linphoneqt.
* gnu/packages/linphone.scm (linphoneqt): New variable.
---
gnu/packages/linphone.scm | 80 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 79 insertions(+), 1 deletion(-)
@@ -25,6 +25,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -37,6 +38,7 @@
#: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)
@@ -49,7 +51,8 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system cmake)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system qt))
(define-public bcunit
(package
@@ -469,6 +472,81 @@ 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 'set-paths 'set-qt-rcc-source-date-override
+ (lambda _
+ ;; This fixes a reproducibility problem where the Qt Resource
+ ;; Compiler (RCC) includes timestamp of its source files
+ ;; (see: https://reproducible-builds.org/docs/
+ ;; deterministic-build-systems/#cmake-notes).
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+ #t))
+ (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)))))
+ (native-inputs
+ `(("gcc" ,gcc-5) ; Qt in master uses gcc-5
+ ("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")
--
2.26.0