gnu: r-gviz: Update to 1.24.0.
[jackhill/guix/guix.git] / gnu / packages / telephony.scm
CommitLineData
8fd3de0b 1;;; GNU Guix --- Functional package management for GNU
63af948f
AE
2;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3c9e35cc 4;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
6f09178d 5;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
4ff20605 6;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
319ac02b 7;;; Copyright © 2016 Francesco Frassinelli <fraph24@gmail.com>
4a78fd46 8;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
80e2524c 9;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
b0c7e053 10;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
b61cb244 11;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
8fd3de0b
JD
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages telephony)
29 #:use-module (gnu packages)
4ff20605 30 #:use-module (gnu packages autotools)
faa29e4b 31 #:use-module (gnu packages avahi)
32 #:use-module (gnu packages boost)
80e2524c 33 #:use-module (gnu packages check)
b61cb244 34 #:use-module (gnu packages file)
faa29e4b 35 #:use-module (gnu packages protobuf)
8fd3de0b 36 #:use-module (gnu packages gnupg)
3c9e35cc 37 #:use-module (gnu packages linux)
319ac02b
FF
38 #:use-module (gnu packages multiprecision)
39 #:use-module (gnu packages ncurses)
8fd3de0b 40 #:use-module (gnu packages pkg-config)
faa29e4b 41 #:use-module (gnu packages pulseaudio)
42 #:use-module (gnu packages qt)
43 #:use-module (gnu packages speech)
99e6f9c8 44 #:use-module (gnu packages tls)
319ac02b 45 #:use-module (gnu packages xiph)
faa29e4b 46 #:use-module (gnu packages xorg)
b61cb244
JL
47 #:use-module (gnu packages xml)
48 #:use-module (gnu packages readline)
49 #:use-module (gnu packages bison)
50 #:use-module (gnu packages flex)
974aaf71 51 #:use-module ((guix licenses) #:prefix license:)
8fd3de0b
JD
52 #:use-module (guix packages)
53 #:use-module (guix download)
b61cb244
JL
54 #:use-module (guix git-download)
55 #:use-module (guix build-system cmake)
8fd3de0b
JD
56 #:use-module (guix build-system gnu))
57
58(define-public commoncpp
59 (package
60 (name "commoncpp")
61 (version "1.8.1")
62 (source (origin
63 (method url-fetch)
64 (uri (string-append "mirror://gnu/" name "/commoncpp2-"
65 version ".tar.gz"))
66 (sha256 (base32
67 "0kmgr5w3b1qwzxnsnw94q6rqs0hr8nbv9clf07ca2a2fyypx9kjk"))))
68 (arguments
69 `(#:phases
dc1d3cde
KK
70 (modify-phases %standard-phases
71 (add-before 'configure 'pre-configure
72 (lambda _
73 (substitute* "src/applog.cpp"
74 (("^// TODO sc.*") "#include <sys/types.h>\n#include <sys/stat.h>\n"))
75 #t)))))
8fd3de0b 76 (build-system gnu-build-system)
12bcf94a 77 (synopsis "(u)Common C++ framework for threaded applications")
8fd3de0b
JD
78 (description "GNU Common C++ is an portable, optimized class framework for
79threaded applications, supporting concurrent synchronization, inter-process
80communications via sockets, and various methods for data handling, such as
81serialization and XML parsing. It includes the uCommon C++ library, a smaller
82reimplementation.")
974aaf71 83 (license license:gpl2+) ; plus runtime exception
6fd52309 84 (home-page "https://www.gnu.org/software/commoncpp/")))
8fd3de0b
JD
85
86(define-public ucommon
87 (package
88 (name "ucommon")
99e6f9c8 89 (version "7.0.0")
8fd3de0b
JD
90 (source (origin
91 (method url-fetch)
92 (uri (string-append "mirror://gnu/commoncpp/" name "-"
93 version ".tar.gz"))
94 (sha256 (base32
99e6f9c8 95 "1mv080rvrhyxyhgqiqr8r9jdqhg3xhfawjvfj5zgj47h59nggjba"))))
8fd3de0b 96 (build-system gnu-build-system)
99e6f9c8 97 (inputs `(("gnutls" ,gnutls)))
35b9e423
EB
98 (synopsis "Common C++ framework for threaded applications")
99 (description "GNU uCommon C++ is meant as a very light-weight C++ library
100to facilitate using C++ design patterns even for very deeply embedded
101applications, such as for systems using uclibc along with posix threading
102support.")
974aaf71 103 (license license:gpl3+)
6fd52309 104 (home-page "https://www.gnu.org/software/commoncpp/")
63e8bb12 105 (properties '((ftp-directory . "/gnu/commoncpp")))))
8fd3de0b
JD
106
107(define-public ccrtp
108 (package
109 (name "ccrtp")
9dc9053f 110 (version "2.1.2")
8fd3de0b
JD
111 (source (origin
112 (method url-fetch)
113 (uri (string-append "mirror://gnu/ccrtp/ccrtp-"
114 version ".tar.gz"))
115 (sha256 (base32
9dc9053f 116 "17ili8l7zqbbkzr1rcy4hlnazkf50mds41wg6n7bfdsx3c7cldgh"))))
8fd3de0b
JD
117 (build-system gnu-build-system)
118 (inputs `(("ucommon" ,ucommon)
119 ("libgcrypt" ,libgcrypt)))
120 (native-inputs `(("pkg-config" ,pkg-config)))
121 (synopsis "Implementation of RTP (real-time transport protocol)")
122 (description "GNU ccRTP is an implementation of RTP, the real-time transport
123protocol from the IETF. It is suitable both for high capacity servers and
124personal client applications. It is flexible in its design, allowing it to
125function as a framework for the framework, rather than just being a
126packet-manipulation library.")
974aaf71 127 (license license:gpl2+) ; plus runtime exception
6fd52309 128 (home-page "https://www.gnu.org/software/ccrtp/")))
8fd3de0b
JD
129
130
131(define-public osip
132 (package
133 (name "osip")
6dfbbd2c 134 (version "5.0.0")
8fd3de0b
JD
135 (source (origin
136 (method url-fetch)
137 (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz"))
75072795 138 (patches (search-patches "osip-CVE-2017-7853.patch"))
6dfbbd2c
LF
139 (sha256
140 (base32
141 "00yznbrm9q04wgd4b831km8iwlvwvsnwv87igf79g5vj9yakr88q"))))
8fd3de0b
JD
142 (build-system gnu-build-system)
143
144 (synopsis "Library implementing SIP (RFC-3261)")
145 (description "GNU oSIP is an implementation of the SIP protocol. It is
146used to provide multimedia and telecom software developers with an interface
147to initiate and control SIP sessions.")
974aaf71 148 (license license:lgpl2.1+)
6fd52309 149 (home-page "https://www.gnu.org/software/osip/")))
8fd3de0b
JD
150
151
152(define-public exosip
153 (package
154 (name "exosip")
155 (version "4.1.0")
156 (source (origin
157 (method url-fetch)
966a543b
LC
158 (uri (string-append "mirror://savannah/exosip/libeXosip2-"
159 version ".tar.gz"))
8fd3de0b
JD
160 (sha256 (base32
161 "17cna8kpc8nk1si419vgr6r42k2lda0rdk50vlxrw8rzg0xp2xrw"))))
162 (build-system gnu-build-system)
163 (inputs `(("osip" ,osip)))
164 (synopsis "Sip abstraction library")
165 (description "EXosip is a library that hides the complexity of using the
e881752c 166SIP protocol for multimedia session establishment. This protocol is mainly to
8fd3de0b 167be used by VoIP telephony applications (endpoints or conference server) but
e881752c 168might be also useful for any application that wish to establish sessions like
8fd3de0b 169multiplayer games.")
974aaf71 170 (license license:gpl2+)
8fd3de0b
JD
171 ;; (plus OpenSSL linking exception)
172 ;; http://git.savannah.gnu.org/cgit/exosip.git/plain/LICENSE.OpenSSL
340978d7 173 (home-page "https://savannah.nongnu.org/projects/exosip")))
8fd3de0b
JD
174
175(define-public sipwitch
176 (package
177 (name "sipwitch")
419fa59b 178 (version "1.9.15")
8fd3de0b
JD
179 (source (origin
180 (method url-fetch)
181 (uri (string-append "mirror://gnu/sipwitch/sipwitch-"
182 version ".tar.gz"))
183 (sha256 (base32
419fa59b 184 "10lli9c703d7qbarzc0lgmz963ppncvnrklwrnri0s1zcmmahyia"))))
8fd3de0b 185 (build-system gnu-build-system)
e881752c 186 ;; The configure.ac uses pkg-config but in a kludgy way which breaks when
8fd3de0b
JD
187 ;; cross-compiling. Among other issues there the program name "pkg-config"
188 ;; is hard coded instead of respecting the PKG_CONFIG environment variable.
e881752c
AK
189 ;; Fortunately we can avoid the use of pkg-config and set the dependency
190 ;; flags ourselves.
191 (arguments `(#:configure-flags
8fd3de0b 192 `("--without-pkg-config"
e881752c 193 ,(string-append "UCOMMON_CFLAGS=-I"
8fd3de0b
JD
194 (assoc-ref %build-inputs "ucommon") "/include")
195 "UCOMMON_LIBS=-lusecure -lucommon -lrt -ldl -lpthread"
e881752c 196 ,(string-append "LIBOSIP2_CFLAGS=-I"
8fd3de0b
JD
197 (assoc-ref %build-inputs "osip") "/include")
198 "LIBOSIP2_LIBS=-losipparser2 -losip2"
e881752c 199 ,(string-append "--sysconfdir=" (assoc-ref %outputs "out")
8fd3de0b
JD
200 "/etc")
201 "EXOSIP2_LIBS=-leXosip2"
e881752c 202 ,(string-append "EXOSIP2_CFLAGS=-I"
8fd3de0b
JD
203 (assoc-ref %build-inputs "exosip")
204 "/include"))))
205 (inputs `(("ucommon" ,ucommon)
206 ("exosip" ,exosip)
207 ("osip" ,osip)))
208 (synopsis "Secure peer-to-peer VoIP server for the SIP protocol")
209 (description "GNU SIP Witch is a peer-to-peer Voice-over-IP server that
210uses the SIP protocol. Calls can be made from behind NAT firewalls and
211without the need for a service provider. Its peer-to-peer design ensures that
212there is no central point for media intercept or capture and thus it can be
213used to construct a secure telephone system that operates over the public
214internet.")
974aaf71 215 (license license:gpl3+)
6fd52309 216 (home-page "https://www.gnu.org/software/sipwitch/")))
8fd3de0b 217
3c9e35cc
DH
218(define-public libsrtp
219 (package
220 (name "libsrtp")
b0c7e053 221 (version "1.6.0")
3c9e35cc 222 (source (origin
b0c7e053
TGR
223 (method url-fetch)
224 (uri (string-append "https://github.com/cisco/libsrtp/archive/v"
3c9e35cc 225 version ".tar.gz"))
b0c7e053
TGR
226 (file-name (string-append name "-" version ".tar.gz"))
227 (sha256
228 (base32
229 "1ppdqsrx5ni54vmd4kdzzmvgmf5ixb04w0jw7idy8mad6l27jghs"))))
3c9e35cc 230 (native-inputs
b0c7e053 231 `(("psmisc" ,psmisc) ;some tests require 'killall'
340f9b9f 232 ("procps" ,procps)))
3c9e35cc
DH
233 (build-system gnu-build-system)
234 (arguments
310248c6
EF
235 '(#:test-target "runtest"
236 #:phases
237 (modify-phases %standard-phases
238 (add-after 'unpack 'patch-mips-variable-in-testsuite
239 ;; This comes from https://github.com/cisco/libsrtp/pull/151
240 (lambda _
241 (substitute* "test/srtp_driver.c"
242 (("mips ") "mips_est ")
243 (("mips\\)") "mips_est)"))
244 #t))
245 (add-after 'unpack 'patch-dictionary-location
b0c7e053 246 ;; With the above changes, the rtpw_test.sh test finally runs, and fails.
310248c6
EF
247 (lambda _
248 (substitute* "test/rtpw.c"
249 (("/usr/share/dict/words")
250 (string-append (assoc-ref %build-inputs "procps")
340f9b9f
LC
251 "/share/doc/procps-ng/FAQ"))
252 (("words.txt") "FAQ"))
310248c6 253 #t)))))
3c9e35cc 254 (synopsis "Secure RTP (SRTP) Reference Implementation")
6c0b0887
TGR
255 (description
256 "This package provides an implementation of the Secure Real-time Transport
257Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a
258supporting cryptographic kernel.")
3c9e35cc 259 (home-page "https://github.com/cisco/libsrtp")
974aaf71 260 (license license:bsd-3)))
4ff20605 261
80e2524c
RW
262(define-public bctoolbox
263 (package
264 (name "bctoolbox")
265 (version "0.2.0")
266 (source (origin
267 (method url-fetch)
268 (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-"
269 version ".tar.gz"))
270 (sha256
271 (base32
272 "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5"))))
273 (build-system gnu-build-system)
274 (arguments '(#:make-flags '("CFLAGS=-fPIC")))
275 (native-inputs
276 `(("cunit" ,cunit)))
277 (inputs
278 `(("mbedtls" ,mbedtls-apache)))
279 (home-page "https://www.linphone.org")
280 (synopsis "Utilities library for linphone software")
281 (description "BCtoolbox is a utilities library used by Belledonne
282Communications softwares like linphone.")
283 (license license:gpl2+)))
284
0c45a6a4
RW
285(define-public ortp
286 (package
287 (name "ortp")
288 (version "0.27.0")
289 (source (origin
290 (method url-fetch)
291 (uri (string-append "https://download.savannah.nongnu.org/"
292 "releases/linphone/ortp/sources/ortp-"
293 version ".tar.gz"))
294 (sha256
295 (base32
296 "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb"))))
297 (build-system gnu-build-system)
298 (inputs
299 `(("bctoolbox" ,bctoolbox)))
300 (native-inputs
301 `(("pkg-config" ,pkg-config)))
302 (home-page "https://linphone.org/")
303 (synopsis "Implementation of the Real-time transport protocol")
304 (description "oRTP is a library implementing the Real-time transport
305protocol (RFC 3550).")
306 (license license:lgpl2.1+)))
307
4ff20605
LG
308(define-public libiax2
309 (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201"))
310 ;; This is the commit used by the Ring Project.
311 (package
312 (name "libiax2")
313 (version (string-append "0.0.0-1." (string-take commit 7)))
314 (source
315 (origin
316 (method url-fetch)
317 (uri
318 (string-append
319 "https://gitlab.savoirfairelinux.com/sflphone/libiax2/"
320 "repository/archive.tar.gz?ref="
321 commit))
322 (file-name (string-append name "-" version ".tar.gz"))
323 (sha256
324 (base32
325 "0cj5293bixp3k5x3hjwyd0iq7z8w5p7yavxvvkqk5817hjq386y2"))))
326 (build-system gnu-build-system)
327 (native-inputs
328 `(("autoconf" ,autoconf)
329 ("automake" ,automake)
330 ("libtool" ,libtool)))
331 (arguments
332 `(#:phases (modify-phases %standard-phases
d10092b8 333 (add-after 'unpack 'autoconf
4ff20605
LG
334 (lambda _
335 (zero? (system* "autoreconf" "-vfi")))))))
336 (home-page "https://gitlab.savoirfairelinux.com/sflphone/libiax2")
337 (synopsis "Inter-Asterisk-Protocol library")
338 (description "LibIAX2 implements the Inter-Asterisk-Protocol for relaying
339Voice-over-IP (VoIP) communications.")
340 ;; The file 'src/md5.c' is released into the public domain by RSA Data
341 ;; Security. The files 'src/answer.h', 'src/miniphone.c',
342 ;; 'src/options.c', 'src/options.h', 'src/ring10.h', 'src/winiphone.c' are
343 ;; covered under the 'GPL'.
344 ;; The package as a whole is distributed under the LGPL 2.0.
974aaf71
LG
345 (license (list license:lgpl2.0
346 license:public-domain
347 license:gpl2+)))))
319ac02b
FF
348
349(define-public seren
350 (package
351 (name "seren")
352 (version "0.0.21")
353 (source (origin
354 (method url-fetch)
355 (uri (string-append "http://holdenc.altervista.org/"
356 "seren/downloads/seren-" version
357 ".tar.gz"))
358 (sha256
359 (base32
360 "06mams6bng7ib7p2zpfq88kdr4ffril9svzc9lprkb0wjgmkglk9"))))
361 (build-system gnu-build-system)
362 (arguments '(#:tests? #f)) ; no "check" target
363 (inputs
364 `(("alsa-lib" ,alsa-lib)
365 ("gmp" ,gmp)
366 ("libogg" ,libogg)
367 ("ncurses" ,ncurses)
368 ("opus" ,opus)))
369 (synopsis "Simple VoIP program to create conferences from the terminal")
370 (description
371 "Seren is a simple VoIP program based on the Opus codec that allows you
372to create a voice conference from the terminal, with up to 10 participants,
373without having to register accounts, exchange emails, or add people to contact
374lists. All you need to join an existing conference is the host name or IP
375address of one of the participants.")
376 (home-page "http://holdenc.altervista.org/seren/")
974aaf71 377 (license license:gpl3+)))
faa29e4b 378
379(define-public mumble
380 (package
381 (name "mumble")
69ec0391 382 (version "1.2.19")
faa29e4b 383 (source (origin
384 (method url-fetch)
385 (uri (string-append "https://mumble.info/snapshot/"
386 name "-" version ".tar.gz"))
387 (sha256
388 (base32
69ec0391 389 "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh"))
faa29e4b 390 (modules '((guix build utils)))
391 (snippet
392 `(begin
393 ;; Remove bundled software.
394 (for-each delete-file-recursively '("3rdparty"
395 "speex"
396 "speexbuild"
397 "opus-build"
398 "opus-src"
399 "sbcelt-helper-build"
400 "sbcelt-lib-build"
401 "sbcelt-src"))
402 ;; TODO: Celt is still bundled. It has been merged into Opus
403 ;; and will be removed after 1.3.0.
404 ;; https://github.com/mumble-voip/mumble/issues/1999
405 #t))))
406 (build-system gnu-build-system)
407 (arguments
408 `(#:tests? #f ; no "check" target
409 #:phases
410 (modify-phases %standard-phases
411 (replace 'configure
412 (lambda* (#:key outputs #:allow-other-keys)
413 (zero? (system* "qmake" "main.pro" "-recursive"
414 (string-append "CONFIG+="
415 (string-join
416 (list "no-update"
bd9f8869 417 "no-ice"
faa29e4b 418 "no-embed-qt-translations"
419 "no-bundled-speex"
420 "pch"
421 "no-bundled-opus"
422 "no-celt"
423 "no-alsa"
424 "no-oss"
425 "no-portaudio"
426 "speechd"
427 "no-g15"
428 "no-bonjour"
429 "release")))
430 (string-append "DEFINES+="
431 "PLUGIN_PATH="
432 (assoc-ref outputs "out")
433 "/lib/mumble")))))
434 (add-before 'configure 'fix-libspeechd-include
435 (lambda _
436 (substitute* "src/mumble/TextToSpeech_unix.cpp"
437 (("libspeechd.h") "speech-dispatcher/libspeechd.h"))))
438 (replace 'install ; install phase does not exist
439 (lambda* (#:key inputs outputs #:allow-other-keys)
440 (let* ((out (assoc-ref outputs "out"))
bd9f8869 441 (etc (string-append out "/etc/murmur"))
442 (dbus (string-append out "/etc/dbus-1/system.d/"))
faa29e4b 443 (bin (string-append out "/bin"))
444 (services (string-append out "/share/services"))
445 (applications (string-append out "/share/applications"))
446 (icons (string-append out "/share/icons/hicolor/scalable/apps"))
447 (man (string-append out "/share/man/man1"))
448 (lib (string-append out "/lib/mumble")))
449 (install-file "release/mumble" bin)
450 (install-file "scripts/mumble-overlay" bin)
451 (install-file "scripts/mumble.protocol" services)
452 (install-file "scripts/mumble.desktop" applications)
453 (install-file "icons/mumble.svg" icons)
454 (install-file "man/mumble-overlay.1" man)
455 (install-file "man/mumble.1" man)
bd9f8869 456 (install-file "release/murmurd" bin)
457 (install-file "scripts/murmur.ini.system" etc)
458 (rename-file (string-append etc "/murmur.ini.system")
459 (string-append etc "/murmur.ini"))
460 (install-file "scripts/murmur.conf" dbus)
461 (install-file "man/murmurd.1" man)
faa29e4b 462 (for-each (lambda (file) (install-file file lib))
463 (find-files "." "\\.so\\."))
464 (for-each (lambda (file) (install-file file lib))
465 (find-files "release/plugins" "\\.so$"))))))))
466 (inputs
467 `(("avahi" ,avahi)
468 ("protobuf" ,protobuf)
469 ("openssl" ,openssl)
470 ("libsndfile" ,libsndfile)
471 ("boost" ,boost)
472 ("opus" ,opus)
473 ("speex" ,speex)
b5a1359d 474 ("speexdsp" ,speexdsp)
faa29e4b 475 ("speech-dispatcher" ,speech-dispatcher)
476 ("libx11" ,libx11)
477 ("libxi" ,libxi)
478 ("qt-4" ,qt-4)
479 ("alsa-lib" ,alsa-lib)
480 ("pulseaudio" ,pulseaudio)))
481 (native-inputs
482 `(("pkg-config" ,pkg-config)))
483 (synopsis "Low-latency, high quality voice chat software")
484 (description
485 "Mumble is an low-latency, high quality voice chat
bd9f8869 486software primarily intended for use while gaming.
487Mumble consists of two applications for separate usage:
488@code{mumble} for the client, and @code{murmur} for the server.")
faa29e4b 489 (home-page "https://wiki.mumble.info/wiki/Main_Page")
490 (license (list license:bsd-3
491 ;; The bundled celt is bsd-2. Remove after 1.3.0.
492 license:bsd-2))))
b61cb244
JL
493
494(define-public twinkle
495 (let ((commit "02e1d1538af3337134bd7381dcd95f8d7775b30f")
496 (revision "1"))
497 (package
498 (name "twinkle")
499 (version (git-version "1.10.1" revision commit))
500 (source (origin
501 (method git-fetch)
502 (uri (git-reference
503 (url "https://github.com/LubosD/twinkle")
504 (commit commit)))
505 (file-name (git-file-name name version))
506 (sha256
507 (base32
508 "0ds4rp4vr1wagn4m4m7ldqbsx5vgmgbfcqqgyhn1wf6s1dm0020z"))))
509 (build-system cmake-build-system)
510 (arguments
511 `(#:tests? #f ; no test target
81dec596 512 #:configure-flags '("-DWITH_SPEEX=On")
b61cb244
JL
513 #:phases
514 (modify-phases %standard-phases
515 (add-after 'install 'wrap-executable
516 (lambda* (#:key inputs outputs #:allow-other-keys)
517 (let ((out (assoc-ref outputs "out")))
518 (wrap-program (string-append out "/bin/twinkle")
519 `("QT_PLUGIN_PATH" ":" prefix
520 ,(map (lambda (label)
521 (string-append (assoc-ref inputs label)
522 "/lib/qt5/plugins"))
523 '("qtbase" "qtdeclarative")))
524 `("QML2_IMPORT_PATH" ":" prefix
525 ,(map (lambda (label)
526 (string-append (assoc-ref inputs label)
527 "/lib/qt5/qml"))
528 '("qtdeclarative" "qtquickcontrols"))))
529 #t))))))
530 (native-inputs
531 `(("bison" ,bison)
532 ("flex" ,flex)
533 ("readline" ,readline)
534 ("file" ,file)
535 ("ucommon" ,ucommon)
536 ("ccrtp" ,ccrtp)
537 ("libxml2" ,libxml2)
538 ("speex" ,speex)
539 ("speexdsp" ,speexdsp)
540 ("libsndfile" ,libsndfile)
541 ("alsa-lib" ,alsa-lib)
542 ("qttools" ,qttools)))
543 (inputs
544 `(("qtbase" ,qtbase)
545 ("qtdeclarative" ,qtdeclarative)
546 ("qtquickcontrols" ,qtquickcontrols)))
547 (home-page "http://twinkle.dolezel.info/")
548 (synopsis "Softphone for voice over IP and instant messaging")
549 (description "Twinkle is a softphone for your voice over IP and instant
550messaging communcations using the SIP protocol. You can use it for direct IP
551phone to IP phone communication or in a network using a SIP proxy to route your
552calls and messages")
553 (license license:gpl2+))))