Commit | Line | Data |
---|---|---|
d5a8e391 RG |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; | |
3 | ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> | |
fe6ccb85 | 4 | ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> |
d5a8e391 RG |
5 | ;;; |
6 | ;;; This file is part of GNU Guix. | |
7 | ;;; | |
8 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
9 | ;;; under the terms of the GNU General Public License as published by | |
10 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
11 | ;;; your option) any later version. | |
12 | ;;; | |
13 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
14 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | ;;; GNU General Public License for more details. | |
17 | ;;; | |
18 | ;;; You should have received a copy of the GNU General Public License | |
19 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
20 | ||
21 | (define-module (gnu packages linphone) | |
22 | #:use-module (gnu packages) | |
b6b3a6a6 RG |
23 | #:use-module (gnu packages admin) |
24 | #:use-module (gnu packages audio) | |
d5a8e391 | 25 | #:use-module (gnu packages base) |
e7859da1 | 26 | #:use-module (gnu packages compression) |
13f401d3 | 27 | #:use-module (gnu packages documentation) |
9732910d | 28 | #:use-module (gnu packages gettext) |
b6b3a6a6 | 29 | #:use-module (gnu packages gl) |
02b32cdd | 30 | #:use-module (gnu packages glib) |
b6b3a6a6 | 31 | #:use-module (gnu packages gnome) |
02b32cdd | 32 | #:use-module (gnu packages gnome-xyz) |
13f401d3 | 33 | #:use-module (gnu packages graphviz) |
02b32cdd | 34 | #:use-module (gnu packages gtk) |
b6b3a6a6 RG |
35 | #:use-module (gnu packages image) |
36 | #:use-module (gnu packages linux) | |
37 | #:use-module (gnu packages pulseaudio) | |
38 | #:use-module (gnu packages python) | |
9732910d | 39 | #:use-module (gnu packages python-xyz) |
c0cce205 | 40 | #:use-module (gnu packages qt) |
e7859da1 | 41 | #:use-module (gnu packages java) |
f3697439 | 42 | #:use-module (gnu packages sqlite) |
b6b3a6a6 | 43 | #:use-module (gnu packages telephony) |
bfaabfeb | 44 | #:use-module (gnu packages tls) |
b6b3a6a6 RG |
45 | #:use-module (gnu packages video) |
46 | #:use-module (gnu packages xiph) | |
f3697439 | 47 | #:use-module (gnu packages xml) |
b6b3a6a6 | 48 | #:use-module (gnu packages xorg) |
d5a8e391 RG |
49 | #:use-module ((guix licenses) #:prefix license:) |
50 | #:use-module (guix packages) | |
51 | #:use-module (guix download) | |
52 | #:use-module (guix build-system cmake) | |
c0cce205 | 53 | #:use-module (guix build-system qt) |
41169f21 | 54 | #:use-module (guix build-system glib-or-gtk) |
d5a8e391 RG |
55 | #:use-module (guix build-system gnu)) |
56 | ||
57 | (define-public bcunit | |
58 | (package | |
59 | (name "bcunit") | |
60 | (version "3.0.2") | |
61 | (source | |
62 | (origin | |
63 | (method url-fetch) | |
64 | (uri | |
65 | (string-append "https://www.linphone.org/releases/sources/" name | |
66 | "/" name "-" version ".tar.gz")) | |
67 | (sha256 | |
68 | (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk")))) | |
69 | (build-system cmake-build-system) | |
70 | (arguments | |
71 | '(#:tests? #f ; No test target | |
72 | #:configure-flags | |
1988ef21 | 73 | (list "-DENABLE_STATIC=NO"))) ; Not required |
d5a8e391 | 74 | (synopsis "Belledonne Communications Unit Testing Framework") |
1988ef21 RG |
75 | (description "BCUnit is a fork of the defunct project CUnit, with several |
76 | fixes and patches applied. It is an unit testing framework for writing, | |
77 | administering, and running unit tests in C.") | |
d5a8e391 RG |
78 | (home-page "https://gitlab.linphone.org/BC/public/bcunit") |
79 | (license license:lgpl2.0+))) | |
bfaabfeb RG |
80 | |
81 | (define-public bctoolbox | |
82 | (package | |
83 | (name "bctoolbox") | |
84 | (version "0.6.0") | |
85 | (source | |
86 | (origin | |
87 | (method url-fetch) | |
88 | (uri | |
89 | (string-append "https://www.linphone.org/releases/sources/" name | |
90 | "/" name "-" version ".tar.gz")) | |
91 | (sha256 | |
92 | (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6")))) | |
93 | (build-system cmake-build-system) | |
94 | (arguments | |
95 | '(#:tests? #f ; No test target | |
96 | #:configure-flags | |
1988ef21 | 97 | (list "-DENABLE_STATIC=OFF"))) ; Not required |
bfaabfeb RG |
98 | (inputs |
99 | `(("bcunit" ,bcunit) | |
100 | ("mbedtls" ,mbedtls-apache))) | |
101 | (synopsis "Belledonne Communications Tool Box") | |
102 | (description "BcToolBox is an utilities library used by Belledonne | |
1d0feeb0 | 103 | Communications software like belle-sip, mediastreamer2 and linphone.") |
bfaabfeb RG |
104 | (home-page "https://gitlab.linphone.org/BC/public/bctoolbox") |
105 | (license license:gpl2+))) | |
63c73bca RG |
106 | |
107 | (define-public belr | |
108 | (package | |
109 | (name "belr") | |
110 | (version "0.1.3") | |
111 | (source | |
112 | (origin | |
113 | (method url-fetch) | |
114 | (uri | |
115 | (string-append "https://www.linphone.org/releases/sources/" name | |
116 | "/" name "-" version ".tar.gz")) | |
117 | (sha256 | |
118 | (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1")))) | |
119 | (build-system cmake-build-system) | |
120 | (arguments | |
121 | `(#:tests? #f ; No test target | |
122 | #:configure-flags | |
1988ef21 | 123 | (list "-DENABLE_STATIC=OFF"))) ; Not required |
63c73bca RG |
124 | (inputs |
125 | `(("bctoolbox" ,bctoolbox))) | |
126 | (synopsis "Belledonne Communications Language Recognition Library") | |
1988ef21 RG |
127 | (description "Belr is Belledonne Communications' language recognition |
128 | library, written in C++11. It parses text inputs formatted according to a | |
129 | language defined by an ABNF grammar, such as the protocols standardized at | |
130 | IETF.") | |
63c73bca RG |
131 | (home-page "https://gitlab.linphone.org/BC/public/belr") |
132 | (license license:gpl3+))) | |
c8f69ec2 RG |
133 | |
134 | (define-public belcard | |
135 | (package | |
136 | (name "belcard") | |
137 | (version "1.0.2") | |
138 | (source | |
139 | (origin | |
140 | (method url-fetch) | |
141 | (uri | |
142 | (string-append "https://www.linphone.org/releases/sources/" name | |
143 | "/" name "-" version ".tar.gz")) | |
144 | (sha256 | |
145 | (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k")))) | |
146 | (build-system cmake-build-system) | |
147 | (arguments | |
148 | `(#:tests? #f ; No test target | |
149 | #:configure-flags | |
1988ef21 | 150 | (list "-DENABLE_STATIC=OFF"))) ; Not required |
c8f69ec2 RG |
151 | (inputs |
152 | `(("bctoolbox" ,bctoolbox) | |
153 | ("belr" ,belr))) | |
154 | (synopsis "Belledonne Communications VCard Library") | |
1988ef21 RG |
155 | (description "Belcard is a C++ library to manipulate VCard standard |
156 | format.") | |
c8f69ec2 RG |
157 | (home-page "https://gitlab.linphone.org/BC/public/belcard") |
158 | (license license:gpl3+))) | |
28f6f1e0 RG |
159 | |
160 | (define-public bcmatroska2 | |
161 | (package | |
162 | (name "bcmatroska2") | |
163 | (version "0.23") | |
164 | (source | |
165 | (origin | |
166 | (method url-fetch) | |
167 | (uri | |
168 | (string-append "https://www.linphone.org/releases/sources/" name | |
169 | "/" name "-" version ".tar.gz")) | |
170 | (sha256 | |
171 | (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15")))) | |
172 | (build-system cmake-build-system) | |
173 | (arguments | |
174 | `(#:tests? #f ; No test target | |
175 | #:configure-flags | |
176 | (list | |
177 | "-DENABLE_STATIC=NO"))) ; Not required | |
178 | (synopsis "Belledonne Communications Media Container") | |
1988ef21 RG |
179 | (description "BcMatroska is a free and open standard multi-media container |
180 | format. It can hold an unlimited number of video, audio, picture, or subtitle | |
181 | tracks in one file. ") | |
28f6f1e0 RG |
182 | (home-page "https://gitlab.linphone.org/BC/public/bcmatroska2") |
183 | (license | |
184 | (list | |
1988ef21 | 185 | ;; For Core C and LibEBML2. |
28f6f1e0 RG |
186 | ;; https://www.matroska.org/node/47 |
187 | license:bsd-4 | |
1988ef21 | 188 | ;; For LibMatroska2. |
28f6f1e0 RG |
189 | ;; https://www.matroska.org/node/47 |
190 | license:lgpl2.1+)))) | |
02d5d72c RG |
191 | |
192 | (define-public bcg729 | |
193 | (package | |
194 | (name "bcg729") | |
195 | (version "1.0.4") | |
196 | (source | |
197 | (origin | |
198 | (method url-fetch) | |
199 | (uri | |
200 | (string-append "https://www.linphone.org/releases/sources/" name | |
201 | "/" name "-" version ".tar.gz")) | |
202 | (sha256 | |
203 | (base32 "01y34ky7ykjgfnf8a9f59hg61fqfjiprfrzshdz06w0lz4gvy3qs")))) | |
204 | (build-system cmake-build-system) | |
205 | (arguments | |
206 | `(#:tests? #f ; No test target | |
207 | #:configure-flags | |
1988ef21 | 208 | (list "-DENABLE_STATIC=NO"))) ; Not required |
02d5d72c RG |
209 | (synopsis "Belledonne Communications G729 Codec") |
210 | (description "BcG729 is an implementation of both encoder and decoder of | |
211 | the ITU G729 speech codec. The library written in C 99 is fully portable and | |
212 | can be executed on many platforms including both ARM and x86 processors. It | |
213 | supports concurrent channels encoding and decoding for multi call application | |
214 | such as conferencing.") | |
215 | (home-page "https://gitlab.linphone.org/BC/public/belcard") | |
216 | (license license:gpl2+))) | |
13f401d3 RG |
217 | |
218 | (define-public ortp | |
219 | (package | |
220 | (name "ortp") | |
221 | (version "1.0.2") | |
222 | (source | |
223 | (origin | |
224 | (method url-fetch) | |
225 | (uri | |
226 | (string-append "https://www.linphone.org/releases/sources/" name | |
227 | "/" name "-" version ".tar.gz")) | |
228 | (sha256 | |
229 | (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5")))) | |
230 | (build-system cmake-build-system) | |
231 | (arguments | |
232 | `(#:tests? #f ; No test target | |
233 | #:configure-flags | |
1988ef21 | 234 | (list "-DENABLE_STATIC=NO"))) ; Not required |
13f401d3 RG |
235 | (native-inputs |
236 | `(("dot" ,graphviz) | |
237 | ("doxygen" ,doxygen))) | |
238 | (inputs | |
239 | `(("bctoolbox" ,bctoolbox))) | |
240 | (synopsis "Belledonne Communications RTP Library") | |
241 | (description "oRTP is a C library implementing the RTP protocol. It | |
242 | implements the RFC 3550 standard.") | |
243 | (home-page "https://gitlab.linphone.org/BC/public/ortp") | |
244 | (license license:gpl2+))) | |
f3697439 RG |
245 | |
246 | (define-public bzrtp | |
247 | (package | |
248 | (name "bzrtp") | |
249 | (version "1.0.6") | |
250 | (source | |
251 | (origin | |
252 | (method url-fetch) | |
253 | (uri | |
254 | (string-append "https://www.linphone.org/releases/sources/" name | |
255 | "/" name "-" version ".tar.gz")) | |
256 | (sha256 | |
257 | (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z")))) | |
258 | (build-system cmake-build-system) | |
259 | (arguments | |
260 | `(#:tests? #f ; No test target | |
261 | #:configure-flags | |
1988ef21 | 262 | (list "-DENABLE_STATIC=NO"))) ; Not required |
f3697439 RG |
263 | (inputs |
264 | `(("bctoolbox" ,bctoolbox) | |
265 | ("sqlite3" ,sqlite) | |
266 | ("xml2" ,libxml2))) | |
267 | (synopsis "Belledonne Communications ZRTP Library") | |
1988ef21 RG |
268 | (description "BZRTP is an implementation of ZRTP keys exchange protocol, |
269 | written in C. It is fully portable and can be executed on many platforms | |
270 | including both ARM and x86.") | |
f3697439 RG |
271 | (home-page "https://gitlab.linphone.org/BC/public/bzrtp") |
272 | (license license:gpl2+))) | |
e7859da1 RG |
273 | |
274 | (define-public belle-sip | |
275 | (package | |
276 | (name "belle-sip") | |
277 | (version "1.6.3") | |
278 | (source | |
279 | (origin | |
280 | (method url-fetch) | |
281 | (uri | |
282 | (string-append "https://www.linphone.org/releases/sources/" name | |
283 | "/" name "-" version ".tar.gz")) | |
284 | (sha256 | |
285 | (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z")))) | |
286 | (build-system cmake-build-system) | |
287 | (arguments | |
288 | `(#:tests? #f ; Requires network access | |
289 | #:configure-flags | |
1988ef21 | 290 | (list "-DENABLE_STATIC=NO") ; Not required |
e7859da1 RG |
291 | #:phases |
292 | (modify-phases %standard-phases | |
293 | (add-after 'unpack 'patch | |
294 | (lambda _ | |
295 | (substitute* "src/CMakeLists.txt" | |
1988ef21 RG |
296 | ;; ANTLR would use multithreaded DFA generation otherwise, |
297 | ;; which would not be reproducible. | |
298 | (("-Xmultithreaded ") "")) | |
e7859da1 RG |
299 | #t))))) |
300 | (inputs | |
301 | `(("antlr3" ,antlr3-3.3) | |
302 | ("antlr3c" ,libantlr3c) | |
303 | ("bctoolbox" ,bctoolbox) | |
304 | ("java" ,icedtea) | |
305 | ("zlib" ,zlib))) | |
306 | (synopsis "Belledonne Communications SIP Library") | |
307 | (description "Belle-sip is a modern library implementing SIP transport, | |
308 | transaction and dialog layers. It is written in C, with an object-oriented | |
309 | API. It also comprises a simple HTTP/HTTPS client implementation.") | |
310 | (home-page "https://gitlab.linphone.org/BC/public/belle-sip") | |
311 | (license license:gpl2+))) | |
b6b3a6a6 RG |
312 | |
313 | (define-public mediastreamer2 | |
314 | (package | |
315 | (name "mediastreamer2") | |
316 | (version "2.16.1") | |
317 | (source | |
318 | (origin | |
319 | (method url-fetch) | |
320 | (uri | |
321 | (string-append "https://www.linphone.org/releases/sources/" | |
322 | "mediastreamer/mediastreamer-" version ".tar.gz")) | |
323 | (sha256 | |
2c56aeae | 324 | (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")) |
fe6ccb85 MC |
325 | (patches (search-patches "mediastreamer2-srtp2.patch")))) |
326 | (outputs '("out" "doc" "tester")) | |
b6b3a6a6 RG |
327 | (build-system cmake-build-system) |
328 | (arguments | |
329 | `(#:tests? #f ; No test target | |
330 | #:configure-flags | |
1988ef21 RG |
331 | (list "-DENABLE_STATIC=NO" ; Not required |
332 | "-DENABLE_STRICT=NO" ; Would otherwise treat warnings as err | |
333 | "-DENABLE_BV16=NO" ; Not available | |
334 | "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"" | |
335 | "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"") | |
fe6ccb85 MC |
336 | #:phases |
337 | (modify-phases %standard-phases | |
338 | (add-after 'install 'separate-outputs | |
339 | (lambda* (#:key outputs #:allow-other-keys) | |
340 | (let* ((out (assoc-ref outputs "out")) | |
341 | (doc (assoc-ref outputs "doc")) | |
342 | (tester (assoc-ref outputs "tester")) | |
343 | (tester-name (string-append ,name "_tester"))) | |
344 | ;; Copy the tester executable. | |
345 | (mkdir-p (string-append tester "/bin")) | |
346 | (rename-file (string-append out "/bin/" tester-name) | |
347 | (string-append tester "/bin/" tester-name)) | |
348 | ;; Copy the tester data files. | |
349 | (copy-recursively (string-append out "/share/" tester-name) | |
350 | (string-append tester "/share/" tester-name)) | |
351 | (delete-file-recursively (string-append out "/share/" | |
352 | tester-name)) | |
353 | ;; Copy the HTML documentation. | |
354 | (copy-recursively (string-append out "/share/doc/" | |
355 | ,name "-" ,version "/html") | |
356 | (string-append doc "/share/doc/" | |
357 | ,name "-" ,version "/html")) | |
358 | (delete-file-recursively (string-append out "/share/doc/" | |
359 | ,name "-" ,version | |
360 | "/html")) | |
361 | #t)))))) | |
b6b3a6a6 RG |
362 | (native-inputs |
363 | `(("dot" ,graphviz) | |
364 | ("doxygen" ,doxygen) | |
365 | ("python" ,python))) | |
366 | (inputs | |
367 | `(("alsa" ,alsa-lib) | |
368 | ("bcg729" ,bcg729) | |
369 | ("bcmatroska2" ,bcmatroska2) | |
370 | ("bctoolbox" ,bctoolbox) | |
371 | ("ffmpeg" ,ffmpeg) | |
372 | ("glew" ,glew) | |
373 | ("glu" ,glu) | |
374 | ("glx" ,mesa-utils) | |
375 | ("gsm" ,gsm) | |
376 | ("opengl" ,mesa) | |
377 | ("opus" ,opus) | |
378 | ("ortp" ,ortp) | |
379 | ("pcap" ,libpcap) | |
380 | ("portaudio" ,portaudio) | |
381 | ("pulseaudio" ,pulseaudio) | |
382 | ("spandsp" ,spandsp) | |
383 | ("speex" ,speex) | |
384 | ("speexdsp" ,speexdsp) | |
385 | ("srtp" ,libsrtp) | |
386 | ("theora" ,libtheora) | |
387 | ("turbojpeg" ,libjpeg-turbo) | |
388 | ("v4l" ,v4l-utils) | |
389 | ("vpx" ,libvpx) | |
390 | ("x11" ,libx11) | |
391 | ("xv" ,libxv) | |
1988ef21 | 392 | ("zrtp" ,bzrtp))) |
b6b3a6a6 | 393 | (synopsis "Belledonne Communications Streaming Engine") |
1988ef21 RG |
394 | (description "Mediastreamer2 is a powerful and lightweight streaming engine |
395 | for telephony applications. This media processing and streaming toolkit is | |
396 | responsible for receiving and sending all multimedia streams in Linphone, | |
397 | including media capture, encoding and decoding, and rendering.") | |
b6b3a6a6 RG |
398 | (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2") |
399 | (license license:gpl2+))) | |
9732910d RG |
400 | |
401 | (define-public liblinphone | |
402 | (package | |
403 | (name "liblinphone") | |
404 | (version "3.12.0") | |
405 | (source | |
406 | (origin | |
407 | (method url-fetch) | |
408 | (uri | |
409 | (string-append "https://www.linphone.org/releases/sources/linphone" | |
410 | "/linphone-" version ".tar.gz")) | |
411 | (sha256 | |
412 | (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x")))) | |
9c63165d | 413 | (outputs '("out" "doc" "tester")) |
9732910d RG |
414 | (build-system cmake-build-system) |
415 | (arguments | |
416 | `(#:tests? #f ; No test target | |
417 | #:configure-flags | |
1988ef21 RG |
418 | (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" |
419 | (string-append (assoc-ref %build-inputs "gtk2") | |
420 | "/lib/gtk-2.0/include")) | |
421 | (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" | |
422 | (string-append (assoc-ref %build-inputs "glib") | |
423 | "/lib/glib-2.0/include")) | |
424 | "-DENABLE_STATIC=NO" ; Not required | |
425 | "-DENABLE_STRICT=NO" | |
426 | "-DENABLE_GTK_UI=YES") ; for legacy UI | |
41169f21 RG |
427 | #:imported-modules (,@%cmake-build-system-modules |
428 | (guix build glib-or-gtk-build-system)) | |
429 | #:modules ((guix build cmake-build-system) | |
430 | ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) | |
431 | (guix build utils)) | |
02b32cdd DM |
432 | #:phases |
433 | (modify-phases %standard-phases | |
434 | (add-after 'unpack 'patch | |
435 | (lambda _ | |
436 | (substitute* "gtk/main.c" | |
437 | (("#include \"liblinphone_gitversion.h\"") | |
438 | "")) | |
9c63165d MC |
439 | #t)) |
440 | (add-after 'install 'separate-outputs | |
441 | (lambda* (#:key outputs #:allow-other-keys) | |
442 | (let* ((out (assoc-ref outputs "out")) | |
443 | (doc (assoc-ref outputs "doc")) | |
444 | (tester (assoc-ref outputs "tester")) | |
445 | (tester-name (string-append ,name "_tester"))) | |
446 | ;; Copy the tester executable. | |
447 | (mkdir-p (string-append tester "/bin")) | |
448 | (rename-file (string-append out "/bin/" tester-name) | |
449 | (string-append tester "/bin/" tester-name)) | |
450 | ;; Copy the tester data files. | |
451 | (mkdir-p (string-append tester "/share/")) | |
452 | (rename-file (string-append out "/share/" tester-name) | |
453 | (string-append tester "/share/" tester-name)) | |
454 | ;; Copy the HTML and XML documentation. | |
455 | (copy-recursively | |
456 | (string-append out "/share/doc/linphone-" ,version) | |
457 | (string-append doc "/share/doc/" ,name "-" ,version)) | |
458 | (delete-file-recursively | |
459 | (string-append out "/share/doc/linphone-" ,version)) | |
460 | #t))) | |
461 | (add-after 'separate-outputs 'glib-or-gtk-compile-schemas | |
462 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) | |
463 | (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap | |
464 | (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) | |
9732910d | 465 | (native-inputs |
1ae43257 MC |
466 | `(("gettext" ,gettext-minimal) |
467 | ("udev" ,eudev) ;for libudev.h | |
468 | ;; For generating the C++ wrappers. | |
469 | ("dot" ,graphviz) | |
9732910d | 470 | ("doxygen" ,doxygen) |
9732910d | 471 | ("python" ,python) |
1ae43257 MC |
472 | ("pystache" ,python-pystache) |
473 | ("six" ,python-six))) | |
9732910d RG |
474 | (inputs |
475 | `(("bctoolbox" ,bctoolbox) | |
476 | ("belcard" ,belcard) | |
477 | ("bellesip" ,belle-sip) | |
478 | ("bzrtp", bzrtp) | |
1ae43257 | 479 | ("iconv" ,libiconv) |
02b32cdd DM |
480 | ("glib" ,glib) |
481 | ("gtk2" ,gtk+-2) | |
9732910d | 482 | ("mediastreamer2" ,mediastreamer2) |
02b32cdd | 483 | ("notify" ,libnotify) |
9732910d | 484 | ("ortp" ,ortp) |
9732910d | 485 | ("sqlite" ,sqlite) |
1ae43257 MC |
486 | ("xml2" ,libxml2) |
487 | ("zlib" ,zlib))) | |
9732910d RG |
488 | (synopsis "Belledonne Communications Softphone Library") |
489 | (description "Liblinphone is a high-level SIP library integrating | |
490 | all calling and instant messaging features into an unified | |
491 | easy-to-use API. It is the cross-platform VoIP library on which the | |
492 | Linphone application is based on, and that anyone can use to add audio | |
493 | and video calls or instant messaging capabilities to an application.") | |
494 | (home-page "https://gitlab.linphone.org/BC/public/liblinphone") | |
495 | (license license:gpl2+))) | |
14e73f8f | 496 | |
c0cce205 RG |
497 | (define-public linphoneqt |
498 | (package | |
499 | (name "linphoneqt") | |
500 | (version "4.1.1") | |
501 | (source | |
502 | (origin | |
503 | (method url-fetch) | |
504 | (uri | |
505 | (string-append "https://www.linphone.org/releases/sources/" name | |
506 | "/" name "-" version ".tar.gz")) | |
507 | (sha256 | |
45fd28f7 RG |
508 | (base32 "1g2zrr9li0g1hgs6vys06vr98h5dx36z22hx7a6ry231536c002a")) |
509 | (patches (search-patches "linphoneqt-tabbutton.patch")))) | |
c0cce205 RG |
510 | (build-system qt-build-system) |
511 | (arguments | |
512 | `(#:tests? #f ; No test target | |
513 | #:phases | |
c0cce205 | 514 | (modify-phases %standard-phases |
a4f1a7e2 MC |
515 | (add-after 'unpack 'fix-cmake-error |
516 | (lambda _ | |
517 | ;; This is fixed in commit efed2fd8 of the master branch. | |
518 | (substitute* "CMakeLists.txt" | |
519 | (("js)\\$\"") | |
520 | "js$\"")) | |
521 | #t)) | |
522 | (add-after 'unpack 'set-version-string | |
c0cce205 RG |
523 | (lambda _ |
524 | (substitute* "src/app/AppController.cpp" | |
525 | (("LINPHONE_QT_GIT_VERSION") | |
a4f1a7e2 | 526 | (format #f "~s" ,version))) |
48acdefe MC |
527 | #t)) |
528 | (add-after 'install 'extend-shared-resources | |
529 | ;; Not using the FHS exposes an issue where the client refers to | |
530 | ;; its own "share" directory, which lacks sound files installed by | |
531 | ;; liblinphone. | |
532 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
533 | (let ((liblinphone (assoc-ref inputs "linphone")) | |
534 | (out (assoc-ref outputs "out"))) | |
535 | (symlink (string-append liblinphone "/share/sounds") | |
536 | (string-append out "/share/sounds")) | |
537 | #t)))))) | |
c0cce205 RG |
538 | (native-inputs |
539 | `(("qttools" ,qttools))) | |
540 | (inputs | |
541 | `(("bctoolbox" ,bctoolbox) | |
542 | ("belcard" ,belcard) | |
543 | ("bellesip" ,belle-sip) | |
544 | ("linphone" ,liblinphone) | |
545 | ("mediastreamer2" ,mediastreamer2) | |
546 | ("qtbase" ,qtbase) | |
547 | ("qtdeclarative" ,qtdeclarative) | |
548 | ("qtgraphicaleffects" ,qtgraphicaleffects) | |
45fd28f7 | 549 | ("qtquickcontrols" ,qtquickcontrols) |
c0cce205 RG |
550 | ("qtquickcontrols2" ,qtquickcontrols2) |
551 | ("qtsvg" ,qtsvg))) | |
a4f1a7e2 MC |
552 | (synopsis "Desktop client for the Linphone SIP softphone") |
553 | (description "Linphone is a SIP softphone for voice and video over IP calling | |
554 | (VoIP) and instant messaging. Amongst its features are: | |
555 | @itemize | |
556 | @item High Definition (HD) audio and video calls | |
557 | @item Multiple call management (pause and resume) | |
558 | @item Call transfer | |
559 | @item Audio conferencing (merge calls into a conference call) | |
560 | @item Call recording and replay (audio only) | |
561 | @item Instant Messaging with message delivery status (IMDN) | |
562 | @item Picture and file sharing | |
563 | @item Echo cancellation | |
564 | @item Secure user authentication using TLS client certificates | |
565 | @item SRTP, zRTP and SRTP-DTLS voice and video encryption | |
566 | @item Telephone tone (DTMF) support using SIP INFO or RFC 4733 | |
567 | @item Audio codecs: opus, speex, g711, g729, gsm, iLBC, g722, SILK, etc. | |
568 | @item Video codecs: VP8, H.264 and H.265 with resolutions up to 1080P, MPEG4 | |
569 | @end itemize") | |
c0cce205 RG |
570 | (home-page "https://gitlab.linphone.org/BC/public/linphone-desktop") |
571 | (license license:gpl2+))) | |
572 | ||
14e73f8f RG |
573 | (define-public msopenh264 |
574 | (package | |
575 | (name "msopenh264") | |
576 | (version "1.2.1") | |
577 | (source | |
578 | (origin | |
579 | (method url-fetch) | |
580 | (uri | |
581 | (string-append "https://www.linphone.org/releases/sources/plugins/" | |
582 | name "/" name "-" version ".tar.gz")) | |
583 | (sha256 | |
584 | (base32 "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8")) | |
585 | (patches | |
586 | (list | |
587 | ;; For support for OpenH264 version >= 2. | |
588 | (origin | |
589 | (method url-fetch) | |
590 | (uri | |
1988ef21 RG |
591 | (string-append "https://gitlab.linphone.org/BC/public/msopenh264/" |
592 | "commit/493d147d28c9a0f788ba4e50b47a1ce7b18bf326" | |
593 | ".diff")) | |
14e73f8f RG |
594 | (file-name "msopenh264-openh264.patch") |
595 | (sha256 | |
1988ef21 RG |
596 | (base32 |
597 | "0mmd7nz5n9ian4rcwn200nldmy5j0dpdrna7r32rqnaw82bx3kdb"))))))) | |
14e73f8f RG |
598 | (build-system cmake-build-system) |
599 | (arguments | |
600 | `(#:tests? #f ; No test target | |
601 | #:configure-flags | |
1988ef21 | 602 | (list "-DENABLE_STATIC=NO"))) ; Not required |
14e73f8f RG |
603 | (inputs |
604 | `(("mediastreamer2" ,mediastreamer2) | |
605 | ("openh264" ,openh264) | |
606 | ("ortp" ,ortp))) | |
607 | (synopsis "Media Streamer H.264 Codec") | |
608 | (description "MsOpenH264 is an H.264 encoder/decoder plugin for | |
609 | mediastreamer2 based on the openh264 library.") | |
610 | (home-page "https://gitlab.linphone.org/BC/public/msopenh264") | |
611 | (license license:gpl2+))) | |
f689d3d7 RG |
612 | |
613 | (define-public mssilk | |
614 | (package | |
615 | (name "mssilk") | |
616 | (version "1.1.1") | |
617 | (source | |
618 | (origin | |
619 | (method url-fetch) | |
620 | (uri | |
621 | (string-append "https://www.linphone.org/releases/sources/plugins/" | |
622 | name "/" name "-" version ".tar.gz")) | |
623 | (sha256 | |
624 | (base32 "07ip0vd29d1n98lnqs5wpimcsmpm65yl7g5vk4hbqghcbsjw94lj")))) | |
625 | (build-system cmake-build-system) | |
626 | (arguments | |
627 | `(#:tests? #f ; No test target | |
628 | #:configure-flags | |
1988ef21 | 629 | (list "-DENABLE_STATIC=NO"))) ; Not required |
f689d3d7 RG |
630 | (inputs |
631 | `(("mediastreamer2" ,mediastreamer2) | |
632 | ("ortp" ,ortp))) | |
633 | (synopsis "Media Streamer SILK Codec") | |
1988ef21 RG |
634 | (description "MSSILK is a plugin of MediaStreamer, adding support for AMR |
635 | codec. It is based on the Skype's SILK implementation.") | |
f689d3d7 RG |
636 | (home-page "https://gitlab.linphone.org/BC/public/mssilk") |
637 | (license license:gpl2+))) | |
fe8f1c0b RG |
638 | |
639 | (define-public mswebrtc | |
640 | (package | |
641 | (name "mswebrtc") | |
642 | (version "1.1.1") | |
643 | (source | |
644 | (origin | |
645 | (method url-fetch) | |
646 | (uri | |
647 | (string-append "https://www.linphone.org/releases/sources/plugins/" | |
648 | name "/" name "-" version ".tar.gz")) | |
649 | (sha256 | |
650 | (base32 "1wj28hl9myhshqmn64xg0jf07aw75gmnilb5rff6rcbdxim87mqr")))) | |
651 | (build-system cmake-build-system) | |
652 | (arguments | |
653 | `(#:tests? #f ; No test target | |
654 | #:configure-flags | |
655 | (list | |
1988ef21 | 656 | "-DENABLE_STATIC=NO"))) ; Not required |
fe8f1c0b RG |
657 | (inputs |
658 | `(("bctoolbox" ,bctoolbox) | |
659 | ("mediastreamer2" ,mediastreamer2) | |
660 | ("ortp" ,ortp))) | |
661 | (synopsis "Media Streamer WebRTC Codec") | |
662 | (description "MSWebRTC is a plugin of MediaStreamer, adding support for | |
663 | WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") | |
664 | (home-page "https://gitlab.linphone.org/BC/public/mswebrtc") | |
665 | (license license:gpl2+))) | |
b8920169 RG |
666 | |
667 | (define-public msamr | |
668 | (package | |
669 | (name "msamr") | |
670 | (version "1.1.3") | |
671 | (source | |
672 | (origin | |
673 | (method url-fetch) | |
674 | (uri | |
675 | (string-append "https://www.linphone.org/releases/sources/plugins/" | |
676 | name "/" name "-" version ".tar.gz")) | |
677 | (sha256 | |
678 | (base32 "16c9f3z4wnj73k7y8gb0fgpr4axsm7b5zrbjvy8vsgz9gyg3agm5")))) | |
679 | (build-system cmake-build-system) | |
680 | (arguments | |
681 | `(#:tests? #f ; No test target | |
682 | #:configure-flags | |
1988ef21 RG |
683 | (list "-DENABLE_STATIC=NO" ; Not required |
684 | "-DENABLE_WIDEBAND=YES"))) | |
b8920169 RG |
685 | (inputs |
686 | `(("mediastreamer2" ,mediastreamer2) | |
687 | ("opencoreamr" ,opencore-amr) | |
688 | ("ortp" ,ortp) | |
689 | ("voamrwbenc" ,vo-amrwbenc))) | |
690 | (synopsis "Media Streamer AMR Codec") | |
1988ef21 RG |
691 | (description "MSAMR is a plugin of MediaStreamer, adding support for AMR |
692 | codec. It is based on the opencore-amr implementation.") | |
b8920169 RG |
693 | (home-page "https://gitlab.linphone.org/BC/public/msamr") |
694 | (license license:gpl3+))) |