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