Subject: [bug#47274] Linphone Packages

From: Raghav Gururajan <[email-masked]>
Date: Sun, 21 Mar 2021 21:48:59 -0400

Hello Guix!

Please find the attached patch-set, which contains modifications in 
0046-gnu-linphoneqt-Update-to-4.2.5.patch w.r.t to previous patch-set.

HELP! The app crashes upon launch.

I tried creating symlink "{out}/lib" --> "{liblinphone}/lib", which 
didn't work.

Regards,
RG.
From 08aa3c9f46b1e78ea5e055cf0f321911ec94b334 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 17:08:57 -0500
Subject: [PATCH 01/53] gnu: Add libdecaf.

* gnu/packages/crypto.scm (libdecaf): New variable.
---
 gnu/packages/crypto.scm | 63 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 0000e7fbf2..3959464d56 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -47,9 +47,11 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libbsd)
@@ -88,6 +90,67 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libdecaf
+  (package
+    (name "libdecaf")
+    (version "1.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.code.sf.net/p/ed448goldilocks/code")
+                    (commit
+                     (string-append "v" version))))
+              (file-name
+               (git-file-name name version))
+              (sha256
+               (base32 "1ajgmyvc6a4m1h2hg1g4wz7ibx10x1xys9m6ancnmmf1f2srlfly"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "python" "doc"))
+    (arguments
+     `(#:configure-flags '("-DENABLE_STATIC=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-python-binding
+           (lambda _
+             (substitute* "python/setup.py"
+               (("gmake")
+                "make")
+               (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
+                "'..', '..', 'build', 'src', 'libdecaf.so'"))
+             #t))
+         (add-after 'install 'install-python-binding
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion "../source/python"
+               (invoke "python" "setup.py" "install"
+                       (string-append "--prefix=" (assoc-ref outputs "python"))
+                       "--root=/"))
+             #t))
+         (add-after 'install-python-binding 'install-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "doc")
+             (let* ((doc (assoc-ref outputs "doc"))
+                    (dest (string-append doc "/share/doc")))
+               (copy-recursively "doc" dest))
+             #t)))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("python2" ,python-2.7)
+       ("python3" ,python)))
+    (synopsis "Decaf Elliptic Curve Library")
+    (description "The libdecaf library is an implementation of elliptic curve
+cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
+Ed448-Goldilocks and Curve448, using the Decaf encoding.")
+    (home-page "http://ed448goldilocks.sourceforge.net/")
+    (license
+     (list
+      ;; Library.
+      license:expat
+      ;; Binding.
+      license:bsd-2))))
+
 (define-public libsodium
   (package
     (name "libsodium")
-- 
2.31.0

From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 12:04:37 -0500
Subject: [PATCH 02/53] gnu: bcunit: Update to 3.0.2-13.

* gnu/packages/linphone.scm (bcunit) [source]: Switch to git repository.
[version]: Update to 3.0.2-13.
[native-inputs]: Add perl.
---
 gnu/packages/linphone.scm | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index afa542412f..6d243d2073 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
@@ -57,28 +58,33 @@
   #: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"))))
+  (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
+        (revision "13"))
+    (package
+      (name "bcunit")
+      (version (git-version "3.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://git.linphone.org/bcunit")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; No test target
        #:configure-flags
        (list "-DENABLE_STATIC=NO")))    ; Not required
+    (native-inputs
+     `(("perl" ,perl)))
     (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+)))
+    (license license:lgpl2.0+))))
 
 (define-public bctoolbox
   (package
-- 
2.31.0

From 3f282a59899dda366e473236b5f96b84ef54e866 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 12:17:47 -0500
Subject: [PATCH 03/53] gnu: bcunit: Enable curses support.

* gnu/packages/linphone.scm (bcunit) [arguments]<#:configure-flags>
[-DENABLE_CURSES]: New flag.
[inputs]: Add ncurses.
---
 gnu/packages/linphone.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 6d243d2073..dc78636f5a 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -76,9 +77,13 @@
     (arguments
      '(#:tests? #f                      ; No test target
        #:configure-flags
-       (list "-DENABLE_STATIC=NO")))    ; Not required
+       (list
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_CURSES=ON")))
     (native-inputs
      `(("perl" ,perl)))
+    (inputs
+     `(("ncurses" ,ncurses)))
     (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,
-- 
2.31.0

From c90a23d65b76451620c4500f37aaaec7a311c2ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 13:02:42 -0500
Subject: [PATCH 04/53] gnu: bcunit: Enable documentation.

* gnu/packages/linphone.scm (bcunit) [outputs]: New output "doc".
[arguments]<#:configure-flags>[-DENABLE_DOC]: New flag.
<#:phases>['seperate-outputs]: New phase.
---
 gnu/packages/linphone.scm | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index dc78636f5a..bbea6411f7 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -74,12 +74,25 @@
          (sha256
           (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:tests? #f                      ; No test target
+     `(#:tests? #f                      ; No test target
        #:configure-flags
        (list
         "-DENABLE_STATIC=NO"
-        "-DENABLE_CURSES=ON")))
+        "-DENABLE_CURSES=ON"
+        "-DENABLE_DOC=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'seperate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share/doc"))
+               (rename-file
+                (string-append out "/share/doc/BCUnit")
+                (string-append doc "/share/doc/BCUnit")))
+             #t)))))
     (native-inputs
      `(("perl" ,perl)))
     (inputs
-- 
2.31.0

From 9b9f3bc1c8b3f1a1f64863cc360640a38a752514 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 18:11:32 -0400
Subject: [PATCH 05/53] gnu: bcunit: Enable examples.

* gnu/packages/linphone.scm (bcunit) [outputs]: New output "example".
[arguments]<#:configure-flag>[-DENABLE_EXAMPLES]: New flag.
<#:phases>['patch-source]: New phase.
['seperate-outputs]: Modify.
---
 gnu/packages/linphone.scm | 72 ++++++++++++++++++++++++---------------
 1 file changed, 44 insertions(+), 28 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index bbea6411f7..6b161d326f 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -73,36 +73,52 @@
          (file-name (git-file-name name version))
          (sha256
           (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
-    (build-system cmake-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_CURSES=ON"
-        "-DENABLE_DOC=ON")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'seperate-outputs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share/doc"))
-               (rename-file
-                (string-append out "/share/doc/BCUnit")
-                (string-append doc "/share/doc/BCUnit")))
-             #t)))))
-    (native-inputs
-     `(("perl" ,perl)))
-    (inputs
-     `(("ncurses" ,ncurses)))
-    (synopsis "Belledonne Communications Unit Testing Framework")
-    (description "BCUnit is a fork of the defunct project CUnit, with several
+      (build-system cmake-build-system)
+      (outputs '("out" "doc" "example"))
+      (arguments
+       `(#:tests? #f                    ; No test target
+         #:configure-flags
+         (list
+          "-DENABLE_STATIC=NO"
+          "-DENABLE_CURSES=ON"
+          "-DENABLE_DOC=ON"
+          "-DENABLE_EXAMPLES=ON")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-source
+             (lambda _
+               ;; Include BCunit headers for examples.
+               (substitute* "Examples/CMakeLists.txt"
+                 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}")
+                  (string-append "${CMAKE_CURRENT_SOURCE_DIR} "
+                                 "${PROJECT_SOURCE_DIR}/BCUnit/Headers "
+                                 "${CMAKE_BINARY_DIR}/BCUnit/Headers")))
+               #t))
+           (add-after 'install 'seperate-outputs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc"))
+                      (example (assoc-ref outputs "example")))
+                 (for-each mkdir-p
+                           `(,(string-append doc "/share/doc")
+                             ,(string-append example "/share/BCUnit")))
+                 (rename-file
+                  (string-append out "/share/doc/BCUnit")
+                  (string-append doc "/share/doc/BCUnit"))
+                 (rename-file
+                  (string-append out "/share/BCUnit/Examples")
+                  (string-append example "/share/BCUnit/Examples")))
+               #t)))))
+      (native-inputs
+       `(("perl" ,perl)))
+      (inputs
+       `(("ncurses" ,ncurses)))
+      (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+))))
+      (home-page "https://gitlab.linphone.org/BC/public/bcunit")
+      (license license:lgpl2.0+))))
 
 (define-public bctoolbox
   (package
-- 
2.31.0

From fdad19e4ecc2c9ed82295e07a79b3c275bc99ec8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 18:17:15 -0400
Subject: [PATCH 06/53] gnu: bcunit: Enable tests.

* gnu/packages/linphone.scm (bcunit) [arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DENABLE_TEST]: New flag.
<#:phases>['patch-source]: Modify.
['check]: Replace with custom phase.
---
 gnu/packages/linphone.scm | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 6b161d326f..b7cf777401 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -76,13 +76,13 @@
       (build-system cmake-build-system)
       (outputs '("out" "doc" "example"))
       (arguments
-       `(#:tests? #f                    ; No test target
-         #:configure-flags
+       `(#:configure-flags
          (list
           "-DENABLE_STATIC=NO"
           "-DENABLE_CURSES=ON"
           "-DENABLE_DOC=ON"
-          "-DENABLE_EXAMPLES=ON")
+          "-DENABLE_EXAMPLES=ON"
+          "-DENABLE_TEST=ON")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'patch-source
@@ -93,6 +93,17 @@
                   (string-append "${CMAKE_CURRENT_SOURCE_DIR} "
                                  "${PROJECT_SOURCE_DIR}/BCUnit/Headers "
                                  "${CMAKE_BINARY_DIR}/BCUnit/Headers")))
+               ;; Link bcunit and bcunit_tests libraries.
+               (substitute* "BCUnit/Sources/CMakeLists.txt"
+                 (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
+                  (string-append
+                   "target_include_directories(bcunit_test PUBLIC Test)\n"
+                   "target_link_libraries(bcunit_test bcunit)")))
+               #t))
+           (replace 'check
+             (lambda _
+               (with-directory-excursion "BCUnit/Sources/Test"
+                 (invoke "./test_bcunit"))
                #t))
            (add-after 'install 'seperate-outputs
              (lambda* (#:key outputs #:allow-other-keys)
-- 
2.31.0

From 430bc171bc948d1350666575bd62984dd1526aaa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 18:18:44 -0400
Subject: [PATCH 07/53] gnu: bcunit: Enable mem-trace support.

* gnu/packages/linphone.scm (bcunit) [arguments]<#:configure-flags>
[-DENABLE_MEMTRACE]: New flag.
---
 gnu/packages/linphone.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index b7cf777401..09f4c24730 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -82,7 +82,8 @@
           "-DENABLE_CURSES=ON"
           "-DENABLE_DOC=ON"
           "-DENABLE_EXAMPLES=ON"
-          "-DENABLE_TEST=ON")
+          "-DENABLE_TEST=ON"
+          "-DENABLE_MEMTRACE=ON")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'patch-source
-- 
2.31.0

From 28d1d2369f6c5d4e25429c1a5c7c796281ea3e3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 14:00:48 -0500
Subject: [PATCH 08/53] gnu: bctoolbox: Update to 4.4.34.

* gnu/packages/linphone.scm (bctoolbox) [source]: Switch to git repository.
[version]: Update to 4.4.34.
---
 gnu/packages/linphone.scm | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 09f4c24730..90f5796c1f 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -135,15 +135,16 @@ administering, and running unit tests in C.")
 (define-public bctoolbox
   (package
     (name "bctoolbox")
-    (version "0.6.0")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/bctoolbox")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6"))))
+        (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; No test target
@@ -156,7 +157,7 @@ administering, and running unit tests in C.")
     (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+)))
+    (license license:gpl3+)))
 
 (define-public belr
   (package
-- 
2.31.0

From 998bbda5aad3038a690b83580476e4ac56e75029 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 14:55:03 -0500
Subject: [PATCH 09/53] gnu: bctoolbox: Enable tests.

* gnu/packages/linphone.scm (bctoolbox) [arguments]<#:tests?>: Remove argument.
<#:phases>['patch-source]: New phase.
['check]: Replace with custom phase.
---
 gnu/packages/linphone.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 90f5796c1f..9d54b1b874 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -147,9 +147,21 @@ administering, and running unit tests in C.")
         (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=OFF")))   ; Not required
+     `(#:configure-flags '("-DENABLE_STATIC=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             ;; Disable failing tests.
+             (substitute* "tester/port.c"
+               (("[ \t]*TEST_NO_TAG\\(\"Addrinfo sort\", bctbx_addrinfo_sort_test\\)")
+                ""))
+             #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "tester"
+               (invoke "./bctoolbox_tester"))
+             #t)))))
     (inputs
      `(("bcunit" ,bcunit)
        ("mbedtls" ,mbedtls-apache)))
-- 
2.31.0

From 075c98bdb0bfa7632432dbd4f5e826e176dba199 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 13 Mar 2021 19:32:01 -0500
Subject: [PATCH 10/53] gnu: bctoolbox: Enable decaf support.

* gnu/packages/linphone.scm (bctoolbox) [arguments]<#:phases>['patch-source]: Modify.
[inputs]: Add libdecaf.
---
 gnu/packages/linphone.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 9d54b1b874..1a83105334 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
@@ -151,7 +152,16 @@ administering, and running unit tests in C.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-source
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Fix decaf dependency.
+             (let* ((decaf (assoc-ref inputs "decaf")))
+               (substitute* (find-files "." "CMakeLists.txt")
+                 (("find_package\\(Decaf CONFIG\\)")
+                  "set(DECAF_FOUND 1)")
+                 (("\\$\\{DECAF_INCLUDE_DIRS\\}")
+                  (string-append decaf "/include/decaf"))
+                 (("\\$\\{DECAF_TARGETNAME\\}")
+                  "decaf")))
              ;; Disable failing tests.
              (substitute* "tester/port.c"
                (("[ \t]*TEST_NO_TAG\\(\"Addrinfo sort\", bctbx_addrinfo_sort_test\\)")
@@ -164,6 +174,7 @@ administering, and running unit tests in C.")
              #t)))))
     (inputs
      `(("bcunit" ,bcunit)
+       ("decaf" ,libdecaf)
        ("mbedtls" ,mbedtls-apache)))
     (synopsis "Belledonne Communications Tool Box")
     (description "BcToolBox is an utilities library used by Belledonne
-- 
2.31.0

From 0d06d47006cfd7ee1446446ce793332f22355ecf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sun, 14 Mar 2021 23:40:02 -0400
Subject: [PATCH 11/53] gnu: belr: Update to 4.4.34.

* gnu/packages/linphone.scm (belr) [source]: Switch to git repository.
[version]: Update to 4.4.34.
[inputs]: Add eudev.
---
 gnu/packages/linphone.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 1a83105334..26b2b0cbba 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -185,22 +185,24 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
 (define-public belr
   (package
     (name "belr")
-    (version "0.1.3")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/belr")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1"))))
+        (base32 "0w2canwwm0qb99whnangvaybvjzq8xg6vksqxykgr8fbx7clw03h"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
        #:configure-flags
        (list "-DENABLE_STATIC=OFF")))   ; Not required
     (inputs
-     `(("bctoolbox" ,bctoolbox)))
+     `(("bctoolbox" ,bctoolbox)
+       ("libudev" ,eudev)))
     (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
-- 
2.31.0

From 2c4cd1b4437a7d92e029e79218ec8d27c239c7e6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 01:57:33 -0400
Subject: [PATCH 12/53] gnu: belr: Enable tests.

* gnu/packages/linphone.scm (belr) [outputs]: New output "test".
[arguments]<#:tests?>: Remove argument.
<#:phases>['check]: Replace with custom phase.
['seperate-outputs]: New phase.
---
 gnu/packages/linphone.scm | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 26b2b0cbba..8767662050 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -196,10 +196,32 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
        (sha256
         (base32 "0w2canwwm0qb99whnangvaybvjzq8xg6vksqxykgr8fbx7clw03h"))))
     (build-system cmake-build-system)
+    (outputs '("out" "test"))
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=OFF")))   ; Not required
+     `(#:configure-flags '("-DENABLE_STATIC=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (copy-file "tester/belr_tester" "../source/tester/belr_tester")
+             (with-directory-excursion "../source/tester"
+               (invoke "./belr_tester"))
+             #t))
+         (add-after 'install 'seperate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (test (assoc-ref outputs "test"))
+                    (test-name (string-append ,name "_tester")))
+               (for-each mkdir-p
+                         `(,(string-append test "/bin")
+                           ,(string-append test "/share")))
+               (rename-file
+                (string-append out "/bin/" test-name)
+                (string-append test "/bin/" test-name))
+               (rename-file
+                (string-append out "/share/belr-tester")
+                (string-append test "/share/" test-name)))
+             #t)))))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("libudev" ,eudev)))
-- 
2.31.0

From 187e4df880b18b3606c61154bb9039bcbf2774e3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 16:24:20 -0400
Subject: [PATCH 13/53] gnu: belcard: Update to 4.4.34.

* gnu/packages/linphone.scm (belcard) [source]: Switch to git repository.
[version]: Update to 4.4.34.
[native-inputs]: Add python-wrapper.
[inputs]: Add eudev.
---
 gnu/packages/linphone.scm | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 8767662050..25cfe6de94 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -236,23 +236,27 @@ IETF.")
 (define-public belcard
   (package
     (name "belcard")
-    (version "1.0.2")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/belcard")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k"))))
+        (base32 "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
        #:configure-flags
        (list "-DENABLE_STATIC=OFF")))   ; Not required
+    (native-inputs
+     `(("python" ,python-wrapper)))
     (inputs
      `(("bctoolbox" ,bctoolbox)
-       ("belr" ,belr)))
+       ("belr" ,belr)
+       ("libudev" ,eudev)))
     (synopsis "Belledonne Communications VCard Library")
     (description "Belcard is a C++ library to manipulate VCard standard
 format.")
-- 
2.31.0

From 76aab981123ace59f320f62ded3bd93e796ac2e7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 17:11:06 -0400
Subject: [PATCH 14/53] gnu: belcard: Seperate outputs.

* gnu/packages/linphone.scm (belcard) [outputs]: New output "test".
['seperate-outputs]: New phase.
---
 gnu/packages/linphone.scm | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 25cfe6de94..aee6ce4611 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -247,10 +247,27 @@ IETF.")
        (sha256
         (base32 "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"))))
     (build-system cmake-build-system)
+    (outputs '("out" "test"))
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=OFF")))   ; Not required
+     `(#:tests? #f ; FIX-ME
+       #:configure-flags '("-DENABLE_STATIC=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'seperate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (test (assoc-ref outputs "test"))
+                    (test-name (string-append ,name "_tester")))
+               (for-each mkdir-p
+                         `(,(string-append test "/bin")
+                           ,(string-append test "/share")))
+               (rename-file
+                (string-append out "/bin/" test-name)
+                (string-append test "/bin/" test-name))
+               (rename-file
+                (string-append out "/share/" test-name)
+                (string-append test "/share/" test-name)))
+             #t)))))
     (native-inputs
      `(("python" ,python-wrapper)))
     (inputs
-- 
2.31.0

From f94cbb3081d6b4ed59fc9ef94e5ab82317ddab93 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 20:30:21 -0400
Subject: [PATCH 15/53] gnu: bcmatroska2: Change source.

* gnu/packages/linphone.scm (bcmatroska2) [source]: Switch to git repository.
---
 gnu/packages/linphone.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index aee6ce4611..d42744d7af 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -286,12 +286,13 @@ format.")
     (version "0.23")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/bcmatroska2")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15"))))
+        (base32 "1avl9w18kh4dxm3g8j0bkw39bksd7bz3nfxvyibqqnz63ds8vfi2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
-- 
2.31.0

From f44adcaa82e6c800293fd41afb79842df45753e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 22:11:02 -0400
Subject: [PATCH 16/53] gnu: bcg729: Remove '.git' suffix from URL.

* gnu/packages/linphone.scm (bcg729) [source]: Remove '.git' suffix from URL.
---
 gnu/packages/linphone.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index d42744d7af..5bbf60e204 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -321,7 +321,7 @@ tracks in one file. ")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/bcg729.git")
+             (url "git://git.linphone.org/bcg729")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-- 
2.31.0

From c487293d21986019a92162c43b8d9e6ff3faf5a6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 21:30:54 -0400
Subject: [PATCH 17/53] gnu: bcg729: Enable tests.

* gnu/packages/linphone.scm (bcg729) [arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DENABLE_TESTS]: New flag.
<#:phases>['copy-inputs]: New phase.
['check]: Replace with custom phase.
[native-inputs]: Add perl, test-patterns and unzip.
---
 gnu/packages/linphone.scm | 55 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 52 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 5bbf60e204..346ca30a77 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -328,9 +328,58 @@ tracks in one file. ")
         (base32 "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=NO")))    ; Not required
+     `(#:configure-flags
+       (list
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_TESTS=YES")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'copy-inputs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((test-patterns (assoc-ref inputs "test-patterns"))
+                   (dest (string-append "test/bcg729-patterns.zip")))
+               (copy-recursively test-patterns dest))
+             #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "test"
+               (invoke "unzip" "bcg729-patterns.zip")
+               (for-each
+                (lambda (test-name)
+                  (invoke "./testCampaign" "-s" test-name))
+                (list
+                 "fixedCodebookSearch"
+                 "postProcessing"
+                 "adaptativeCodebookSearch"
+                 "computeLP"
+                 "computeAdaptativeCodebookGain"
+                 "postFilter"
+                 "decoder"
+                 "LPSynthesisFilter"
+                 "decodeLSP"
+                 ;; "encoder"
+                 ;; "LSPQuantization"
+                 "preProcessing"
+                 "decodeFixedCodeVector"
+                 "CNGdecoder"
+                 ;; "LP2LSPConversion"
+                 "gainQuantization"
+                 "findOpenLoopPitchDelay"
+                 "decodeGains"
+                 "computeWeightedSpeech"
+                 "interpolateqLSPAndConvert2LP"
+                 "decodeAdaptativeCodeVector")))
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("test-patterns"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "http://www.belledonne-communications.com/"
+                               "bc-downloads/bcg729-patterns.zip"))
+           (sha256
+            (base32 "1kivarhh3izrl9sg0szs6x6pbq2ap0y6xsraw0gbgspi4gnfihrh"))))
+       ("unzip" ,unzip)))
     (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
-- 
2.31.0

From 26301852706db96375e9669cfa01f77f7977ee68 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 21:38:07 -0400
Subject: [PATCH 18/53] gnu: bcg729: Update home-page and license.

* gnu/packages/linphone.scm (bcg729) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 346ca30a77..f1bcae1208 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -386,8 +386,8 @@ 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+)))
+    (home-page "https://linphone.org/technical-corner/bcg729")
+    (license license:gpl3+)))
 
 (define-public ortp
   (package
-- 
2.31.0

From aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 22:09:07 -0400
Subject: [PATCH 19/53] gnu: ortp: Update to 4.4.34.

* gnu/packages/linphone.scm (ortp) [source]: Switch to git repository.
[version]: Update to 4.4.34.
---
 gnu/packages/linphone.scm | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index f1bcae1208..fbe9d81d58 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -392,15 +392,16 @@ such as conferencing.")
 (define-public ortp
   (package
     (name "ortp")
-    (version "1.0.2")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/ortp")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5"))))
+        (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
-- 
2.31.0

From 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 22:19:47 -0400
Subject: [PATCH 20/53] gnu: ortp: Seperate outputs.

* gnu/packages/linphone.scm (ortp) [outputs]: New output "doc".
[arguments]<#:phases>['seperate-outputs]: New phase.
---
 gnu/packages/linphone.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index fbe9d81d58..3273df02c2 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -403,10 +403,24 @@ such as conferencing.")
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:tests? #f                      ; No test target
        #:configure-flags
-       (list "-DENABLE_STATIC=NO")))    ; Not required
+       (list
+        "-DENABLE_STATIC=NO")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'seperate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
+                    (doc-name (string-append ,name "-4.4.0")))
+               (mkdir-p (string-append doc "/share/doc"))
+               (rename-file
+                (string-append out "/share/doc/" doc-name)
+                (string-append doc "/share/doc/" doc-name)))
+             #t)))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))
-- 
2.31.0

From 7fe7aa78121467b19e11a88589eaea9662605772 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 16:08:52 -0400
Subject: [PATCH 21/53] gnu: ortp: Enable tests.

* gnu/packages/linphone.scm (ortp) [outputs]: New output "test".
[arguments]<#:configure-flag>[-DENABLE_TESTS]: New flag.
<#:phases>['seperate-outputs]: Modify.
---
 gnu/packages/linphone.scm | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 3273df02c2..98209ee982 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -403,23 +403,30 @@ such as conferencing.")
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc"))
+    (outputs '("out" "doc" "test"))
     (arguments
-     `(#:tests? #f                      ; No test target
+     `(#:tests? #f                      ; Require networking
        #:configure-flags
        (list
-        "-DENABLE_STATIC=NO")
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_TESTS=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'seperate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (assoc-ref outputs "doc"))
-                    (doc-name (string-append ,name "-4.4.0")))
-               (mkdir-p (string-append doc "/share/doc"))
+                    (doc-name (string-append ,name "-4.4.0"))
+                    (test (assoc-ref outputs "test")))
+               (for-each mkdir-p
+                         `(,(string-append doc "/share/doc")
+                           ,(string-append test "/bin")))
                (rename-file
                 (string-append out "/share/doc/" doc-name)
-                (string-append doc "/share/doc/" doc-name)))
+                (string-append doc "/share/doc/" doc-name))
+               (rename-file
+                (string-append out "/bin")
+                (string-append test "/bin")))
              #t)))))
     (native-inputs
      `(("dot" ,graphviz)
-- 
2.31.0

From f3076dfd6a9a4c506e0c61950453c2843c5f7112 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Mon, 15 Mar 2021 22:52:10 -0400
Subject: [PATCH 22/53] gnu: ortp: Update home-page and license.

* gnu/packages/linphone.scm (ortp) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 98209ee982..28c9d3f599 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -436,8 +436,8 @@ such as conferencing.")
     (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+)))
+    (home-page "https://linphone.org/technical-corner/ortp")
+    (license license:gpl3+)))
 
 (define-public bzrtp
   (package
-- 
2.31.0

From db753921f89f63db65ea7ec3bc4e60dc3093772a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 12:22:31 -0400
Subject: [PATCH 23/53] gnu: bztrp: Update to 4.4.34.

* gnu/packages/linphone.scm (bzrtp) [source]: Switch to git repository.
[version]: Update to 4.4.34.
---
 gnu/packages/linphone.scm | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 28c9d3f599..bba7cefb8a 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -442,15 +442,16 @@ implements the RFC 3550 standard.")
 (define-public bzrtp
   (package
     (name "bzrtp")
-    (version "1.0.6")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/bzrtp")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z"))))
+        (base32 "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
-- 
2.31.0

From a73a2d4c200072111b675295e84763c868f466e0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 12:29:07 -0400
Subject: [PATCH 24/53] gnu: bzrtp: Enable tests.

* gnu/packages/linphone.scm (bzrtp) [arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DENABLE_TESTS]: New flag.
---
 gnu/packages/linphone.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index bba7cefb8a..596fb467a0 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -454,9 +454,10 @@ implements the RFC 3550 standard.")
         (base32 "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=NO")))    ; Not required
+     `(#:configure-flags
+       (list
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_TESTS=YES")))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("sqlite3" ,sqlite)
-- 
2.31.0

From ef057926e3a1f6e1334aadf114afeef93c69a7d7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 12:30:58 -0400
Subject: [PATCH 25/53] gnu: bzrtp: Update license.

* gnu/packages/linphone.scm (bzrtp) [license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 596fb467a0..7261dbe1d8 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -467,7 +467,7 @@ implements the RFC 3550 standard.")
 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+)))
+    (license license:gpl3+)))
 
 (define-public belle-sip
   (package
-- 
2.31.0

From dfa4c6c2dcf6b5e643cc76fedf4263e4cf93de64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 12:40:05 -0400
Subject: [PATCH 26/53] gnu: belle-sip: Update to 4.4.34.

* gnu/packages/linphone.scm (belle-sip) [source]: Switch to git repository.
[version]: Update to 4.4.34.
[native-iputs]: Add python-wrapper.
---
 gnu/packages/linphone.scm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 7261dbe1d8..cc2ab09db0 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -472,15 +472,16 @@ including both ARM and x86.")
 (define-public belle-sip
   (package
     (name "belle-sip")
-    (version "1.6.3")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/belle-sip")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z"))))
+        (base32 "1kknnlczq7dpqaj1dwxvy092dzrqjy11ndkv90rqwmdryigkjk6z"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; Requires network access
@@ -495,6 +496,8 @@ including both ARM and x86.")
                ;; which would not be reproducible.
                (("-Xmultithreaded ") ""))
              #t)))))
+    (native-inputs
+     `(("python" ,python-wrapper)))
     (inputs
      `(("antlr3" ,antlr3-3.3)
        ("antlr3c" ,libantlr3c)
-- 
2.31.0

From 17a4f88266b97931d8070575bdb7d6ae19d1b5c5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 13:25:14 -0400
Subject: [PATCH 27/53] gnu: belle-sip: Enable tests.

* gnu/packages/linphone.scm (belle-sip) [outputs]: New output "test".
[arguments]<#:tests?>: Remove argument.
<#:phases>['check]: Replace with custom phase.
['seperate-outputs]: New phase.
---
 gnu/packages/linphone.scm | 46 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index cc2ab09db0..e3d8febae9 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -483,9 +483,9 @@ including both ARM and x86.")
        (sha256
         (base32 "1kknnlczq7dpqaj1dwxvy092dzrqjy11ndkv90rqwmdryigkjk6z"))))
     (build-system cmake-build-system)
+    (outputs '("out" "test"))
     (arguments
-     `(#:tests? #f                      ; Requires network access
-       #:configure-flags
+     `(#:configure-flags
        (list "-DENABLE_STATIC=NO")      ; Not required
        #:phases
        (modify-phases %standard-phases
@@ -495,6 +495,48 @@ including both ARM and x86.")
                ;; ANTLR would use multithreaded DFA generation otherwise,
                ;; which would not be reproducible.
                (("-Xmultithreaded ") ""))
+             #t))
+         (replace 'check
+           (lambda _
+             (copy-file
+              "tester/belle_sip_tester"
+              "../source/tester/belle_sip_tester")
+             (with-directory-excursion "../source/tester"
+               (for-each
+                (lambda (suite-name)
+                  (invoke "./belle_sip_tester" "--suite" suite-name))
+                (list
+                 "Object inheritance"
+                 "SIP URI"
+                 "FAST SIP URI"
+                 "FAST SIP URI 2"
+                 "Generic uri"
+                 "Headers"
+                 "Core"
+                 "SDP"
+                 ;; "Resolver"
+                 "Message"
+                 "Authentication helper"
+                 ;; "Register"
+                 ;; "Dialog"
+                 "Refresher"
+                 ;; "HTTP stack"
+                 "Object")))
+             #t))
+         (add-after 'install 'seperate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (test (assoc-ref outputs "test"))
+                    (test-name (string-append "belle_sip" "_tester")))
+               (for-each mkdir-p
+                         `(,(string-append test "/bin")
+                           ,(string-append test "/share")))
+               (rename-file
+                (string-append out "/bin/" test-name)
+                (string-append test "/bin/" test-name))
+               (rename-file
+                (string-append out "/share/" test-name)
+                (string-append test "/share/" test-name)))
              #t)))))
     (native-inputs
      `(("python" ,python-wrapper)))
-- 
2.31.0

From 48d976256513575667b3a3b59756faa003e649a5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 14:28:56 -0400
Subject: [PATCH 28/53] gnu: belle-sip: Enable mDNS support.

* gnu/packages/linphone.scm (belle-sip) [arguments]<#:configure-flags>
[-DENABLE_MDNS]: New flag.
<#:phases>['patch]: Modify.
---
 gnu/packages/linphone.scm | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index e3d8febae9..9b04ec90ef 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -23,6 +23,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
@@ -486,11 +487,22 @@ including both ARM and x86.")
     (outputs '("out" "test"))
     (arguments
      `(#:configure-flags
-       (list "-DENABLE_STATIC=NO")      ; Not required
+       (list
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_MDNS=ON")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Fix mDNS dependency.
+             (let* ((avahi (assoc-ref inputs "avahi")))
+               (substitute* (find-files "." "CMakeLists.txt")
+                 (("find_package\\(DNSSD REQUIRED\\)")
+                  "set(DNSSD_FOUND 1)")
+                 (("\\$\\{DNSSD_INCLUDE_DIRS\\}")
+                  (string-append avahi "/include/avahi-compat-libdns_sd"))
+                 (("\\$\\{DNSSD_LIBRARIES\\}")
+                  "dns_sd")))
              (substitute* "src/CMakeLists.txt"
                ;; ANTLR would use multithreaded DFA generation otherwise,
                ;; which would not be reproducible.
@@ -543,6 +555,7 @@ including both ARM and x86.")
     (inputs
      `(("antlr3" ,antlr3-3.3)
        ("antlr3c" ,libantlr3c)
+       ("avahi" ,avahi)
        ("bctoolbox" ,bctoolbox)
        ("java" ,icedtea)
        ("zlib" ,zlib)))
-- 
2.31.0

From 63ce26b00ae6cbdc2b5914bdabcbc07034ee97fe Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 14:32:16 -0400
Subject: [PATCH 29/53] gnu: belle-sip: Update home-page and license.

* gnu/packages/linphone.scm (belle-sip) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 9b04ec90ef..e573e71932 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -563,8 +563,8 @@ including both ARM and x86.")
     (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+)))
+    (home-page "https://linphone.org/technical-corner/belle-sip")
+    (license license:gpl3+)))
 
 (define-public mediastreamer2
   (package
-- 
2.31.0

From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 15:51:11 -0400
Subject: [PATCH 30/53] gnu: mediastreamer2: Update to 4.4.34.

* gnu/packages/linphone.scm (mediastreamer2) [source]: Switch to git repository.
[version]: Update to 4.4.34.
[patches]: Remove field.
[outputs]: Rename "tester" to "test".
[arguments]<#:configure-flags>[-DENABLE_STRICT]: Remove flag.
[-DENABLE_BV16]: Remove flag.
[-DCMAKE_C_FLAGS]: Remove flag.
[-DCMAKE_CXX_FLAGS]: Remove flag.
<#:phases>['separate-outputs]: Modify.
[native-inputs]: Replace python with python-wrapper.
* gnu/packages/patches/mediastreamer2-srtp2.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/linphone.scm                     |  62 ++++---
 .../patches/mediastreamer2-srtp2.patch        | 155 ------------------
 3 files changed, 28 insertions(+), 190 deletions(-)
 delete mode 100644 gnu/packages/patches/mediastreamer2-srtp2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3d4147a879..5a69518923 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1391,7 +1391,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
   %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
-  %D%/packages/patches/mediastreamer2-srtp2.patch		\
   %D%/packages/patches/mesa-skip-tests.patch			\
   %D%/packages/patches/mescc-tools-boot.patch			\
   %D%/packages/patches/meson-for-build-rpath.patch		\
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index e573e71932..025fd90c46 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -569,56 +569,50 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
 (define-public mediastreamer2
   (package
     (name "mediastreamer2")
-    (version "2.16.1")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/"
-                       "mediastreamer/mediastreamer-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.linphone.org/mediastreamer2")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k"))
-       (patches (search-patches "mediastreamer2-srtp2.patch"))))
-    (outputs '("out" "doc" "tester"))
+        (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
+    (outputs '("out" "doc" "test"))
     (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\\\"")
+       (list
+        "-DENABLE_STATIC=NO")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
+                    (test (assoc-ref outputs "test"))
+                    (test-name (string-append ,name "_tester"))
                     (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))))))
+                    (doc-name (string-append ,name "-4.4.0")))
+               (for-each mkdir-p
+                         `(,(string-append test "/bin")
+                           ,(string-append test "/share")
+                           ,(string-append doc "/share/doc")))
+               (rename-file
+                (string-append out "/bin/" test-name)
+                (string-append test "/bin/" test-name))
+               (rename-file
+                (string-append out "/share/" test-name)
+                (string-append test "/share/" test-name))
+               (rename-file
+                (string-append out "/share/doc/" doc-name)
+                (string-append doc "/share/doc/" doc-name)))
+             #t)))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
-       ("python" ,python)))
+       ("python" ,python-wrapper)))
     (inputs
      `(("alsa" ,alsa-lib)
        ("bcg729" ,bcg729)
diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch
deleted file mode 100644
index f6d494facb..0000000000
--- a/gnu/packages/patches/mediastreamer2-srtp2.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001
-From: Danmei Chen <[email-masked]>
-Date: Fri, 19 Jan 2018 10:04:07 +0100
-Subject: [PATCH] add compability with srtp2
-
----
- cmake/FindSRTP.cmake    | 24 ++++++++++++++++++++----
- src/CMakeLists.txt      |  1 +
- src/crypto/ms_srtp.c    | 10 ++--------
- src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 64 insertions(+), 12 deletions(-)
- create mode 100644 src/utils/srtp_prefix.h
-
-diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake
-index 988b846a..f720ce7e 100644
---- a/cmake/FindSRTP.cmake
-+++ b/cmake/FindSRTP.cmake
-@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS
- )
- 
- find_path(SRTP_INCLUDE_DIRS
--	NAMES srtp/srtp.h
-+	NAMES srtp2/srtp.h
- 	HINTS _SRTP_ROOT_PATHS
- 	PATH_SUFFIXES include
- )
- 
- if(SRTP_INCLUDE_DIRS)
- 	set(HAVE_SRTP_SRTP_H 1)
--endif()
--
--find_library(SRTP_LIBRARIES
-+	set(SRTP_VERSION 2)
-+	find_library(SRTP_LIBRARIES
-+		NAMES srtp2
-+		HINTS ${_SRTP_ROOT_PATHS}
-+		PATH_SUFFIXES bin lib
-+	)
-+else()
-+	find_path(SRTP_INCLUDE_DIRS
-+		NAMES srtp/srtp.h
-+		HINTS _SRTP_ROOT_PATHS
-+		PATH_SUFFIXES include
-+	)
-+	if(SRTP_INCLUDE_DIRS)
-+		set(HAVE_SRTP_SRTP_H 1)
-+		set(SRTP_VERSION 1)
-+	endif()
-+	find_library(SRTP_LIBRARIES
- 	NAMES srtp
- 	HINTS ${_SRTP_ROOT_PATHS}
- 	PATH_SUFFIXES bin lib
- )
-+endif()
-+
- 
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(SRTP
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index da429764..c46faa62 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C
- 	utils/pcap_sender.c
- 	utils/pcap_sender.h
- 	utils/stream_regulator.c
-+	utils/srtp_prefix.h
- 	voip/audioconference.c
- 	voip/audiostream.c
- 	voip/bandwidthcontroller.c
-diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c
-index 5a510c99..67810316 100644
---- a/src/crypto/ms_srtp.c
-+++ b/src/crypto/ms_srtp.c
-@@ -25,6 +25,7 @@
- #include "mediastreamer2/ms_srtp.h"
- #include "mediastreamer2/mediastream.h"
- 
-+
- #ifdef HAVE_SRTP
- 
- /*srtp defines all this stuff*/
-@@ -34,13 +35,7 @@
- #undef PACKAGE_TARNAME
- #undef PACKAGE_VERSION
- 
--#if defined(MS2_WINDOWS_PHONE)
--// Windows phone doesn't use make install
--#include <srtp.h>
--#else
--#include <srtp/srtp.h>
--#endif
--
-+#include "srtp_prefix.h"
- 
- #include "ortp/b64.h"
- 
-@@ -352,7 +347,6 @@ int ms_srtp_init(void)
- 			srtp_init_done++;
- 		}else{
- 			ms_fatal("Couldn't initialize SRTP library: %d.", st);
--			err_reporting_init("mediastreamer2");
- 		}
- 	}else srtp_init_done++;
- 	return (int)st;
-diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h
-new file mode 100644
-index 00000000..68bde496
---- /dev/null
-+++ b/src/utils/srtp_prefix.h
-@@ -0,0 +1,41 @@
-+/*
-+  mediastreamer2 library - modular sound and video processing and streaming
-+  Copyright (C) 2006-2014 Belledonne Communications, Grenoble
-+
-+  This library is free software; you can redistribute it and/or
-+  modify it under the terms of the GNU Lesser General Public
-+  License as published by the Free Software Foundation; either
-+  version 2.1 of the License, or (at your option) any later version.
-+
-+  This library 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
-+  Lesser General Public License for more details.
-+
-+  You should have received a copy of the GNU Lesser General Public
-+  License along with this library; if not, write to the Free Software
-+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+*/
-+#ifndef __SRTP2_H__
-+#define __SRTP2_H__
-+
-+#if defined(MS2_WINDOWS_PHONE)
-+// Windows phone doesn't use make install
-+#include <srtp.h>
-+#elif SRTP_VERSION==1
-+#include <srtp/srtp.h>
-+#else
-+#include <srtp2/srtp.h>
-+#define err_status_t srtp_err_status_t
-+#define err_status_ok srtp_err_status_ok
-+#define crypto_policy_t srtp_crypto_policy_t
-+#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32
-+#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth
-+#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32
-+#define ssrc_t srtp_ssrc_t
-+#endif
-+
-+#endif
--- 
-2.21.0
-
-- 
2.31.0

From d957a35ae7bc2ee750f3e47e243d1cbbb6972826 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 16:56:25 -0400
Subject: [PATCH 31/53] gnu: mediastreamer2: Enable tests.

* gnu/packages/linphone.scm (mediastreamer2) [arguments]<#:tests?>: Remove argument.
<#:phases>['pre-check]: New phase.
['check]: Replace with custom phase.
[native-inputs]: Add xorg-server-for-tests.
---
 gnu/packages/linphone.scm | 34 +++++++++++++++++++++++++++++++---
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 025fd90c46..661a9ea779 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -582,12 +582,39 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
     (outputs '("out" "doc" "test"))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
+     `(#:configure-flags
        (list
         "-DENABLE_STATIC=NO")
        #:phases
        (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getenv "TEMP"))
+             #t))
+         (replace 'check
+           (lambda _
+             (copy-file
+              "tester/mediastreamer2_tester"
+              "../source/tester/mediastreamer2_tester")
+             (with-directory-excursion "../source/tester"
+               (for-each
+                (lambda (suite-name)
+                  (invoke "./mediastreamer2_tester" "--suite" suite-name))
+                (list
+                 "Basic Audio"
+                 ;; "Sound Card"
+                 ;; "AdaptiveAlgorithm"
+                 ;; "AudioStream"
+                 ;; "VideoStream"
+                 "H26x Tools"
+                 "Framework"
+                 ;; "Player"
+                 "TextStream")))
+             #t))
          (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -612,7 +639,8 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
-       ("python" ,python-wrapper)))
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("alsa" ,alsa-lib)
        ("bcg729" ,bcg729)
-- 
2.31.0

From bb31d74bfb61ae3bcbf4509258ed19be9be4b0a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 18:43:55 -0400
Subject: [PATCH 32/53] gnu: mediastreamer2: Enable PCAP support.

* gnu/packages/linphone.scm (mediastreamer2) [arguments]<#:configure-flags>
[-DENABLE_PCAP]: New flag.
<#:phases>['patch-source]: New phase.
---
 gnu/packages/linphone.scm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 661a9ea779..adf2a357ea 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -584,9 +584,15 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
     (arguments
      `(#:configure-flags
        (list
-        "-DENABLE_STATIC=NO")
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_PCAP=YES")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* "src/otherfilters/mspcapfileplayer.c"
+               (("O_BINARY") "L_INCR"))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
-- 
2.31.0

From c2d99242acc55c50d5433c1068a45f7e2ec55d3d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 20:32:40 -0400
Subject: [PATCH 33/53] gnu: mediastreamer2: Enable port-audio support.

* gnu/packages/linphone.scm (mediastreamer2) [arguments]<#:configure-flags>
[-DENABLE_STRICT]: New flag.
[-DENABLE_PORTAUDIO]: New flag.
---
 gnu/packages/linphone.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index adf2a357ea..1a11cc5c46 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -585,7 +585,9 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
      `(#:configure-flags
        (list
         "-DENABLE_STATIC=NO"
-        "-DENABLE_PCAP=YES")
+        "-DENABLE_PCAP=YES"
+        "-DENABLE_STRICT=NO"       ; To disable strict compile options
+        "-DENABLE_PORTAUDIO=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-source
-- 
2.31.0

From 2b36386872adf9547229d581649a96b440047098 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 20:41:23 -0400
Subject: [PATCH 34/53] gnu: mediastreamer2: Update home-page and license.

* gnu/packages/linphone.scm (mediastreamer2) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 1a11cc5c46..836ca7c079 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -681,8 +681,8 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
 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+)))
+    (home-page "https://linphone.org/technical-corner/mediastreamer2")
+    (license license:gpl3+)))
 
 (define-public liblinphone
   (package
-- 
2.31.0

From 74b1c2811dc3918630418c230748712c6fa31402 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 21:03:16 -0400
Subject: [PATCH 35/53] gnu: mediastreamer2: Enable G729B support.

* gnu/packages/linphone.scm (mediastreamer2) [arguments]<#:configure-flags>
[-DENABLE_G729B_CNG]: New flag.
---
 gnu/packages/linphone.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 836ca7c079..79cb35fc07 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -587,7 +587,8 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
         "-DENABLE_STATIC=NO"
         "-DENABLE_PCAP=YES"
         "-DENABLE_STRICT=NO"       ; To disable strict compile options
-        "-DENABLE_PORTAUDIO=YES")
+        "-DENABLE_PORTAUDIO=YES"
+        "-DENABLE_G729B_CNG=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-source
-- 
2.31.0

From 41a8f916504fde059793d0c428512ef6c928da5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 21:57:10 -0400
Subject: [PATCH 36/53] gnu: soci: Propagate inputs.

Headers of soci has include-references to headers of these inputs.

* gnu/packages/databases.scm (soci) [inputs]: Move to ...
[propagated-inputs]: ... here.
---
 gnu/packages/databases.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 8be83f5cbe..76eb2357ef 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -3777,7 +3777,7 @@ The drivers officially supported by @code{libdbi} are:
                (base32
                 "14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp"))))
     (build-system cmake-build-system)
-    (inputs
+    (propagated-inputs
      `(("firebird" ,firebird)
        ("postgresql" ,postgresql)
        ("sqlite" ,sqlite)
-- 
2.31.0

From 30c0515c5ec80da84a4e0e7ecbf8dff19fc16066 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 16 Mar 2021 23:08:41 -0400
Subject: [PATCH 37/53] gnu: Add lime.

* gnu/packages/linphone.scm (lime): New variable.
---
 gnu/packages/linphone.scm | 57 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 79cb35fc07..80349ac426 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -27,6 +27,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
@@ -685,6 +686,62 @@ including media capture, encoding and decoding, and rendering.")
     (home-page "https://linphone.org/technical-corner/mediastreamer2")
     (license license:gpl3+)))
 
+(define-public lime
+  (package
+    (name "lime")
+    (version "4.4.34")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.linphone.org/BC/public/lime")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_C_INTERFACE=YES")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             ;; Disable tests that require networking.
+             (substitute* "tester/CMakeLists.txt"
+               (("add_test\\(?.*\"Hello World\"\\)") "")
+               (("add_test\\(?.*\"lime\"\\)") "")
+               (("add_test\\(?.*\"FFI\"\\)") ""))
+             #t))
+         (add-after 'build 'build-doc
+           (lambda _
+             (invoke "make" "doc")
+             #t))
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((doc (assoc-ref outputs "doc"))
+                    (dir (string-append doc "/share/doc"))
+                    (dest (string-append dir "/" ,name "-" ,version)))
+               (mkdir-p dest)
+               (copy-recursively "doc" dest))
+             #t)))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)))
+    (inputs
+     `(("bctoolbox" ,bctoolbox)
+       ("belle-sip" ,belle-sip)
+       ("soci" ,soci)))
+    (synopsis "Belledonne Communications Encryption Library")
+    (description "LIME is an encryption library for one-to-one and group instant
+messaging, allowing users to exchange messages privately and asynchronously.
+It supports multiple devices per user and multiple users per device.")
+    (home-page "https://linphone.org/technical-corner/lime")
+    (license license:gpl3+)))
+
 (define-public liblinphone
   (package
     (name "liblinphone")
-- 
2.31.0

From a532e6049dbc80a54194c83b68373d8cbd4e0378 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 13:53:40 -0400
Subject: [PATCH 38/53] gnu: Add build.

* gnu/packages/codesynthesis.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/codesythesis.scm (build): New variable.
---
 gnu/local.mk                   |  1 +
 gnu/packages/codesynthesis.scm | 55 ++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 gnu/packages/codesynthesis.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 5a69518923..b2b64f19fc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -134,6 +134,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/cmake.scm			\
   %D%/packages/cobol.scm			\
   %D%/packages/code.scm				\
+  %D%/packages/codesynthesis.scm	        \
   %D%/packages/commencement.scm			\
   %D%/packages/compression.scm			\
   %D%/packages/compton.scm 			\
diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
new file mode 100644
index 0000000000..7cb9a427a5
--- /dev/null
+++ b/gnu/packages/codesynthesis.scm
@@ -0,0 +1,55 @@
+;;; GNU Guix --- Functional package management for GNU
+;;;
+;;; Copyright © 2020 Raghav Gururajan <[email-masked]>
+;;;
+;;; 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 codesynthesis)
+  #:use-module (gnu packages)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build utils)
+  #:use-module (guix build-system gnu))
+
+(define-public build
+  (package
+    (name "build")
+    (version "0.3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.codesynthesis.com/download/"
+                           "build/" (version-major+minor version)
+                           "/build-" version ".tar.bz2"))
+       (sha256
+        (base32 "1lx5rpnmsbip43zpp0a57sl5rm7pjb0y6i2si6rfglfp4p9d3z76"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:make-flags
+       (list
+        (string-append "install_prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build))))
+    (synopsis "Software Build System")
+    (description "@package{build} is a massively-parallel software build system
+implemented on top of GNU make.")
+    (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
+    (license license:gpl2+)))
-- 
2.31.0

From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 13:57:53 -0400
Subject: [PATCH 39/53] gnu: Add libcutl.

* gnu/packages/codesynthesis.scm (libcutl): New variable.
---
 gnu/packages/codesynthesis.scm | 44 ++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
index 7cb9a427a5..a264692c19 100644
--- a/gnu/packages/codesynthesis.scm
+++ b/gnu/packages/codesynthesis.scm
@@ -19,6 +19,8 @@
 
 (define-module (gnu packages codesynthesis)
   #:use-module (gnu packages)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -53,3 +55,45 @@
 implemented on top of GNU make.")
     (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
     (license license:gpl2+)))
+
+(define-public libcutl
+  (package
+    (name "libcutl")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.codesynthesis.com/download/libcutl/"
+                           (version-major+minor version)
+                           "/libcutl-" version ".tar.bz2"))
+       (sha256
+        (base32 "070j2x02m4gm1fn7gnymrkbdxflgzxwl7m96aryv8wp3f3366l8j"))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove bundled sources.
+           (with-directory-excursion "cutl/details"
+             (for-each delete-file-recursively
+                       ;; FIXME: Boost_RegEx isn't being detected.
+                       (list
+                        ;; "boost"
+                        "expat")))
+           #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        ;; "--with-external-boost"
+        "--with-external-expat")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(;; ("boost" ,boost)
+       ("expat" ,expat)))
+    (synopsis "C++ utility library")
+    (description "@package{libcutl} is a C++ utility library.  It contains a
+collection of generic and independent components such as meta-programming tests,
+smart pointers, containers, compiler building blocks, etc.")
+    (home-page "https://www.codesynthesis.com/projects/libcutl/")
+    (license license:expat)))
-- 
2.31.0

From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 14:00:13 -0400
Subject: [PATCH 40/53] gnu: Add libxsd-frontend.

* gnu/packages/codesynthesis.scm (libxsd-frontend): New variable.
---
 gnu/packages/codesynthesis.scm | 54 ++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
index a264692c19..f24fb760de 100644
--- a/gnu/packages/codesynthesis.scm
+++ b/gnu/packages/codesynthesis.scm
@@ -97,3 +97,57 @@ collection of generic and independent components such as meta-programming tests,
 smart pointers, containers, compiler building blocks, etc.")
     (home-page "https://www.codesynthesis.com/projects/libcutl/")
     (license license:expat)))
+
+(define-public libxsd-frontend
+  (package
+    (name "libxsd-frontend")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.codesynthesis.com/download/"
+                           "libxsd-frontend/" (version-major+minor version)
+                           "/libxsd-frontend-" version ".tar.bz2"))
+       (sha256
+        (base32 "1nmzchsvwvn66jpmcx18anzyl1a3l309x1ld4zllrg37ijc31fim"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:imported-modules
+       ((guix build copy-build-system)
+        ,@%gnu-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build gnu-build-system)
+        (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* (find-files "." "\\.make$")
+               (("build-0\\.3")
+                (string-append (assoc-ref %build-inputs "build") "/include/build-0.3")))
+             #t))
+         (delete 'configure)
+         (replace 'install
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("xsd-frontend" "include/xsd-frontend"
+                       #:include-regexp ("\\.?xx$"))
+                      ("xsd-frontend" "lib"
+                       #:include-regexp ("\\.so$")))
+                    args))))))
+    (native-inputs
+     `(("build" ,build)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libcutl" ,libcutl)
+       ("libxerces-c" ,xerces-c)))
+    (synopsis "XSD Front-end")
+    (description "@package{libxsd-frontend} is a compiler frontend for the W3C
+XML Schema definition language.  It includes a parser, semantic graph types and
+a traversal mechanism.")
+    (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
+    (license license:gpl2+)))
-- 
2.31.0

From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 14:33:34 -0400
Subject: [PATCH 41/53] gnu: Add cli.

* gnu/packages/codesynthesis.scm (cli): New variable.
---
 gnu/packages/codesynthesis.scm | 45 ++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
index f24fb760de..b70e53cd7c 100644
--- a/gnu/packages/codesynthesis.scm
+++ b/gnu/packages/codesynthesis.scm
@@ -151,3 +151,48 @@ XML Schema definition language.  It includes a parser, semantic graph types and
 a traversal mechanism.")
     (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
     (license license:gpl2+)))
+
+(define-public cli
+  (package
+    (name "cli")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.codesynthesis.com/download/"
+                           "cli/" (version-major+minor version)
+                           "/cli-" version ".tar.bz2"))
+       (sha256
+        (base32 "0bg0nsai2q4h3mldpnj0jz4iy4svs0bcfvmq0v0c9cdyknny606g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       (list
+        (string-append "install_prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* (find-files "." "\\.make$")
+               (("build-0\\.3")
+                (string-append (assoc-ref %build-inputs "build")
+                               "/include/build-0.3")))
+             (substitute* (find-files "." "\\.?xx$")
+               (("add \\(typeid \\(type\\), \\*this\\);")
+                "traverser_map<B>::add (typeid (type), *this);")
+               (("iterate_and_dispatch \\(s\\.names_begin \\(\\), s\\.names_end \\(\\), d\\);")
+                "edge_dispatcher::iterate_and_dispatch (s.names_begin (), s.names_end (), d);"))
+             #t))
+         (delete 'configure))))
+    (native-inputs
+     `(("build" ,build)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libcutl" ,libcutl)))
+    (synopsis "Command Line Interface (CLI) definition language")
+    (description "@package{cli} is a domain-specific language (DSL) for defining
+command line interfaces of C++ programs.  It allows you to describe the options
+that your program supports, their types, default values, and documentation.")
+    (home-page "https://codesynthesis.com/projects/cli/")
+    (license license:expat)))
-- 
2.31.0

From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 15:51:18 -0400
Subject: [PATCH 42/53] gnu: Add xsd.

* gnu/packages/codesynthesis.scm (xsd): New variable.
---
 gnu/packages/codesynthesis.scm | 48 ++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
index b70e53cd7c..58f4fa9301 100644
--- a/gnu/packages/codesynthesis.scm
+++ b/gnu/packages/codesynthesis.scm
@@ -19,6 +19,7 @@
 
 (define-module (gnu packages codesynthesis)
   #:use-module (gnu packages)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
@@ -196,3 +197,50 @@ command line interfaces of C++ programs.  It allows you to describe the options
 that your program supports, their types, default values, and documentation.")
     (home-page "https://codesynthesis.com/projects/cli/")
     (license license:expat)))
+
+(define-public xsd
+  (package
+    (name "xsd")
+    (version "4.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.codesynthesis.com/download/"
+                           "xsd/" (version-major+minor version)
+                           "/xsd-" version ".tar.bz2"))
+       (sha256
+        (base32 "1hi9ppxd34np8ydv1h0vgc2qpdmgcd1cdzgk30aidv670xjg91fx"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       (list
+        (string-append "install_prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* (find-files "." "\\.make$")
+               (("build-0\\.3")
+                (string-append (assoc-ref %build-inputs "build")
+                               "/include/build-0.3")))
+             #t))
+         (delete 'configure))))
+    (native-inputs
+     `(("build" ,build)
+       ("cli" ,cli)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libcutl" ,libcutl)
+       ("libnsl" ,libnsl)
+       ("libxsd-frontend" ,libxsd-frontend)))
+    (propagated-inputs
+     `(("libexpat" ,expat)
+       ("libxerces-c" ,xerces-c)))
+    (synopsis "XML Schema to C++ translator")
+    (description "@package{xsd} is a W3C XML Schema to C++ translator.  It
+generates vocabulary-specific, statically-typed C++ mappings/bindings from XML
+Schema definitions.  It supports two C++ mappings: in-memory C++/Tree and
+event-driven C++/Parser.")
+    (home-page "https://codesynthesis.com/projects/xsd/")
+    (license license:gpl2+)))
-- 
2.31.0

From 60de07aa98dbe450d5f4cc9873e04fbe52b8c05a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Wed, 17 Mar 2021 23:36:02 -0400
Subject: [PATCH 43/53] gnu: liblinphone: Update to 4.4.34.

* gnu/packages/linphone.scm (liblinphone) [source]: Switch to git repository.
[version]: Update to 4.4.34.
[outputs]: Remove "doc" and rename "tester" to "test".
[arguments]<#:imported-modules>: Remove argument.
<#:modules>: Remove argument.
<#:configure-flags>[-DGTK2_GDKCONFIG_INCLUDE_DIR]: Remove flag.
[-DGTK2_GLIBCONFIG_INCLUDE_DIR]: Remove flag.
[-DENABLE_STRICT]: Remove flag.
[-DENABLE_GTK_UI]: Remove flag.
<#:phases>['patch]: Remove phase.
['install-man-pages]: Remove phase.
['separate-outputs]: Modify.
['glib-or-gtk-compile-schemas]: Remove phase.
['glib-or-gtk-wrap]: Remove phase.
[native-inputs]: Add perl. Replace python with python-wrapper.
[inputs]: Add belr, lime, soci and xsd. Remove glib and gtk+-2.
---
 gnu/packages/linphone.scm | 100 +++++++++++++-------------------------
 1 file changed, 34 insertions(+), 66 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 80349ac426..7158c093b3 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages codesynthesis)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
@@ -745,95 +746,62 @@ It supports multiple devices per user and multiple users per device.")
 (define-public liblinphone
   (package
     (name "liblinphone")
-    (version "3.12.0")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/linphone"
-                       "/linphone-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.linphone.org/BC/public/liblinphone")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x"))))
-    (outputs '("out" "doc" "tester"))
+        (base32 "1lwabr93jw24y04pdqnw9dgg8jb3lzfplyx19f83jgp9dj8kmfq9"))))
+    (outputs '("out" "test"))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
+     `(#:tests? #f                      ; Tests require networking
        #: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))
+       (list
+        "-DENABLE_STATIC=NO")
        #: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)))))
+                    (test (assoc-ref outputs "test"))
+                    (test-name (string-append ,name "_tester")))
+               (for-each mkdir-p
+                         `(,(string-append test "/bin")
+                           ,(string-append test "/share")))
+               (rename-file
+                (string-append out "/bin/" test-name)
+                (string-append test "/bin/" test-name))
+               (rename-file
+                (string-append out "/share/" test-name)
+                (string-append test "/share/" test-name)))
+             #t)))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("udev" ,eudev)                  ;for libudev.h
-       ;; For generating the C++ wrappers.
-       ("dot" ,graphviz)
+     `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
-       ("python" ,python)
+       ("gettext" ,gettext-minimal)
+       ("perl" ,perl)
+       ("python" ,python-wrapper)
        ("pystache" ,python-pystache)
-       ("six" ,python-six)))
+       ("six" ,python-six)
+       ("udev" ,eudev)))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("belcard" ,belcard)
        ("bellesip" ,belle-sip)
+       ("belr" ,belr)
        ("bzrtp" ,bzrtp)
        ("iconv" ,libiconv)
-       ("glib" ,glib)
-       ("gtk2" ,gtk+-2)
+       ("libxsd" ,xsd)
+       ("lime" ,lime)
        ("mediastreamer2" ,mediastreamer2)
        ("notify" ,libnotify)
        ("ortp" ,ortp)
+       ("soci" ,soci)
        ("sqlite" ,sqlite)
        ("xml2" ,libxml2)
        ("zlib" ,zlib)))
-- 
2.31.0

From e99d0c95c27a21decf387e906d64a1b5f296302b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 20 Mar 2021 04:08:06 -0400
Subject: [PATCH 44/53] gnu: liblinphone: Enable LDAP support.

* gnu/packages/linphone.scm (liblinphone) [arguments]<#:configure-flags>
[-DENABLE_LDAP]: New flag.
[inputs]: Add openldap.
---
 gnu/packages/linphone.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 7158c093b3..0e9d1376bb 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -762,7 +763,8 @@ It supports multiple devices per user and multiple users per device.")
      `(#:tests? #f                      ; Tests require networking
        #:configure-flags
        (list
-        "-DENABLE_STATIC=NO")
+        "-DENABLE_STATIC=NO"
+        "-DENABLE_LDAP=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'separate-outputs
@@ -796,6 +798,7 @@ It supports multiple devices per user and multiple users per device.")
        ("belr" ,belr)
        ("bzrtp" ,bzrtp)
        ("iconv" ,libiconv)
+       ("ldap" ,openldap)
        ("libxsd" ,xsd)
        ("lime" ,lime)
        ("mediastreamer2" ,mediastreamer2)
-- 
2.31.0

From c9b7e475956ce93022d47d4978a8b3acd4a1ac60 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 18 Mar 2021 22:05:22 -0400
Subject: [PATCH 45/53] gnu: liblinphone: Update home-page and license.

* gnu/packages/linphone.scm (liblinphone) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 0e9d1376bb..a7cf785f93 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -814,8 +814,8 @@ 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+)))
+    (home-page "https://linphone.org/technical-corner/liblinphone")
+    (license license:gpl3+)))
 
 (define-public linphoneqt
   (package
-- 
2.31.0

From aca8f7070d0c52e0dc8849e26f22f05d3f7243be Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 19 Mar 2021 20:58:20 -0400
Subject: [PATCH 46/53] gnu: linphoneqt: Update to 4.2.5.

* gnu/packages/linphone.scm (linphoneqt) [name]: Rename to linphone-desktop.
[source]: Switch to git repository.
[patches]: Remove linphoneqt-tabbutton.patch and add linphone-desktop-without-sdk.patch.
[arguments]<#:configure-flags>[-DENABLE_UPDATE_CHECK]: New flag.
<#:phases>['pre-configure]: New phase.
['fix-cmake-error]: Remove phase.
['set-version-string]: Remove phase.
['extend-shared-resources]: Rename to 'post-install and modify.
[native-inputs]: Add pkg-config.
[inputs]: Add belr and ortp.
* gnu/packages/patches/linphoneqt-tabbutton.patch: Remove file.
linphone-desktop-without-sdk.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update.
---
 gnu/local.mk                                  |   2 +-
 gnu/packages/linphone.scm                     |  62 ++---
 .../linphone-desktop-without-sdk.patch        | 235 ++++++++++++++++++
 .../patches/linphoneqt-tabbutton.patch        |  96 -------
 4 files changed, 269 insertions(+), 126 deletions(-)
 create mode 100644 gnu/packages/patches/linphone-desktop-without-sdk.patch
 delete mode 100644 gnu/packages/patches/linphoneqt-tabbutton.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b2b64f19fc..9e063a784c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1358,7 +1358,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lierolibre-try-building-other-arch.patch	\
   %D%/packages/patches/linbox-fix-pkgconfig.patch		\
   %D%/packages/patches/linkchecker-tests-require-network.patch	\
-  %D%/packages/patches/linphoneqt-tabbutton.patch		\
+  %D%/packages/patches/linphone-desktop-without-sdk.patch           \
   %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
   %D%/packages/patches/linux-pam-no-setfsuid.patch		\
   %D%/packages/patches/lirc-localstatedir.patch			\
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index a7cf785f93..5b34442be3 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
@@ -817,55 +818,58 @@ and video calls or instant messaging capabilities to an application.")
     (home-page "https://linphone.org/technical-corner/liblinphone")
     (license license:gpl3+)))
 
-(define-public linphoneqt
+(define-public linphone-desktop
   (package
-    (name "linphoneqt")
-    (version "4.1.1")
+    (name "linphone-desktop")
+    (version "4.2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.linphone.org/BC/public/linphone-desktop")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1g2zrr9li0g1hgs6vys06vr98h5dx36z22hx7a6ry231536c002a"))
-       (patches (search-patches "linphoneqt-tabbutton.patch"))))
+        (base32 "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"))
+       (patches (search-patches "linphone-desktop-without-sdk.patch"))))
     (build-system qt-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
+       #:configure-flags
+       (list
+        "-DENABLE_UPDATE_CHECK=NO")
        #: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
+         (add-after 'unpack 'pre-configure
            (lambda _
-             (substitute* "src/app/AppController.cpp"
-               (("LINPHONE_QT_GIT_VERSION")
-                (format #f "~s" ,version)))
+             (for-each make-file-writable (find-files "."))
+             (substitute* "linphone-app/linphoneqt_version.cmake"
+               (("\\$\\{GUIX-SET-VERSION\\}") ,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.
+         (add-after 'install 'post-install
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((liblinphone (assoc-ref inputs "linphone"))
+             (let* ((liblinphone (assoc-ref inputs "liblinphone"))
                     (out (assoc-ref outputs "out")))
-               (symlink (string-append liblinphone "/share/sounds")
-                        (string-append out "/share/sounds"))
+               ;; Remove unnecessary Qt configuration file.
+               (delete-file (string-append out "/bin/qt.conf"))
+               ;; Not using the FHS exposes an issue where the client
+               ;; refers to its own "share" directory, which lacks sound
+               ;; files installed by liblinphone.
+               (symlink
+                (string-append liblinphone "/share/sounds")
+                (string-append out "/share/sounds"))
                #t))))))
     (native-inputs
-     `(("qttools" ,qttools)))
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("belcard" ,belcard)
        ("bellesip" ,belle-sip)
-       ("linphone" ,liblinphone)
+       ("belr" ,belr)
+       ("liblinphone" ,liblinphone)
        ("mediastreamer2" ,mediastreamer2)
+       ("ortp" ,ortp)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
diff --git a/gnu/packages/patches/linphone-desktop-without-sdk.patch b/gnu/packages/patches/linphone-desktop-without-sdk.patch
new file mode 100644
index 0000000000..63e9808bf4
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-without-sdk.patch
@@ -0,0 +1,235 @@
+From cfdf6d1c2051d6a20d0cbb94d81fe398f70dea4d Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <[email-masked]>
+Date: Sun, 21 Mar 2021 21:13:53 -0400
+Subject: [PATCH] [PATCH]: Fix building from git.
+
+---
+ CMakeLists.txt                                | 73 +------------------
+ linphone-app/CMakeLists.txt                   | 12 +--
+ .../cmake_builder/additional_steps.cmake      |  2 +-
+ .../linphone_package/CMakeLists.txt           | 38 ----------
+ linphone-app/linphoneqt_version.cmake         |  1 +
+ linphone-app/src/config.h.cmake               |  1 +
+ 6 files changed, 6 insertions(+), 121 deletions(-)
+ create mode 100644 linphone-app/linphoneqt_version.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f7eb05f2..3e853bdd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,16 +48,6 @@ project(linphoneqt)
+ include(GNUInstallDirs)
+ include(CheckCXXCompilerFlag)
+ 
+-# Prepare gobal CMAKE configuration specific to the current project
+-set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK")       # SDK build in WORK. Keep all in it.
+-set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop")
+-
+-set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
+-
+-set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+-string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
+-#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+-
+ # Avoid cmake warning if CMP0071 is not set.
+ if (POLICY CMP0071)
+     cmake_policy(SET CMP0071 NEW)
+@@ -116,9 +106,6 @@ if(ENABLE_V4L)
+ endif()
+ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
+ 
+-list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
+-
+-include(ExternalProject)
+ set(PROJECT_BUILD_COMMAND "")
+ if(CMAKE_BUILD_PARALLEL_LEVEL)
+ 	list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
+@@ -133,32 +120,10 @@ if(CMAKE_VERBOSE_MAKEFILE)
+ 	endif()
+ endif()
+ if(UNIX AND NOT APPLE)
+-	set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
+ 	list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}")
+ endif()
+-ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
+-    SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
+-    INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
+-    STAMP_DIR "${SDK_BUILD_DIR}/stamp"
+-    BINARY_DIR "${SDK_BUILD_DIR}"
+-    STEP_TARGETS build
+-    BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+-    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
+-    LIST_SEPARATOR | # Use the alternate list separator
+-    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+-    #BUILD_ALWAYS NO #${DO_BUILD}
+-)
+-ExternalProject_Add_Step(sdk force_build
+-	COMMENT "Forcing build for 'desktop'"
+-	DEPENDEES configure
+-	DEPENDERS build
+-	ALWAYS 1
+-)
+ include(FindPkgConfig)
+ 
+-set(APP_DEPENDS sdk)
+-
+-
+ find_package(Qt5 5.12 COMPONENTS Core REQUIRED)
+ 
+ if ( NOT Qt5_FOUND )
+@@ -173,39 +138,5 @@ find_package(Mediastreamer2 CONFIG QUIET)
+ find_package(ortp CONFIG QUIET)
+ 
+ 
+-if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS)
+-	message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install")
+-	ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
+-		SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
+-		INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
+-		BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
+-		DEPENDS ${APP_DEPENDS}
+-		BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+-		INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project"
+-		LIST_SEPARATOR | # Use the alternate list separator
+-		CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+-	# ${APP_OPTIONS}
+-		BUILD_ALWAYS ON
+-	)
+-	install(CODE "message(STATUS Running install)")
+-	set(AUTO_REGENERATION auto_regeneration)
+-	add_custom_target(${AUTO_REGENERATION} ALL
+-		COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
+-		DEPENDS linphone-qt)
+-else()
+-	message("Adding Linphone Desktop in an IDE-friendly state")
+-	set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
+-	add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
+-	add_dependencies(app-library ${APP_DEPENDS})
+-endif()
+-ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
+-    SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
+-    INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
+-    BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
+-    BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+-#    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
+-    LIST_SEPARATOR | # Use the alternate list separator
+-    CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+-    EXCLUDE_FROM_ALL ON
+-    BUILD_ALWAYS ON
+-)
++message("Adding Linphone Desktop in an IDE-friendly state")
++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
+diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
+index 3bc9420a..5267cd4a 100644
+--- a/linphone-app/CMakeLists.txt
++++ b/linphone-app/CMakeLists.txt
+@@ -21,17 +21,8 @@
+ ################################################################################
+ cmake_minimum_required(VERSION 3.1)
+ 
++include(linphoneqt_version.cmake)
+ find_package(bctoolbox CONFIG)
+-set(FULL_VERSION )
+-bc_compute_full_version(FULL_VERSION)
+-set(version_major )
+-set(version_minor )
+-set(version_patch )
+-set(identifiers )
+-set(metadata )
+-bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata)
+-
+-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}")
+ 
+ if(ENABLE_BUILD_VERBOSE)
+ 	#message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}")
+@@ -49,7 +40,6 @@ if(UNIX AND NOT APPLE)
+     set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+ endif()
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
+-list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/cmake")
+ 
+ set(APP_LIBRARY app-library)
+ include(application_info.cmake)
+diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake
+index 7f7fd573..48e3c716 100644
+--- a/linphone-app/cmake_builder/additional_steps.cmake
++++ b/linphone-app/cmake_builder/additional_steps.cmake
+@@ -61,7 +61,7 @@ if (ENABLE_PACKAGING)
+       SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package"
+       DOWNLOAD_COMMAND ""
+       CMAKE_GENERATOR ${CMAKE_GENERATOR}
+-      CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
++      CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
+     )
+   endif ()
+ endif ()
+diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
+index baea03cf..d06dcb74 100644
+--- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
++++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
+@@ -200,44 +200,6 @@ elseif (APPLE)
+   endif ()
+ #  install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
+ else()# Not Windows and Apple
+-	foreach (LIBRARY ${SHARED_LIBRARIES})
+-		get_filename_component(LIBRARY_FILENAME ${LIBRARY} NAME)
+-		message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}' to '$ORIGIN/../${CMAKE_INSTALL_LIBDIR}'")
+-		execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}" "$ORIGIN/../lib" "${LIBRARY}")
+-		execute_process(COMMAND install_name_tool -addrpath "$ORIGIN/../lib64" "${LIBRARY}")
+-	endforeach ()
+-	install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/" DESTINATION "${CMAKE_INSTALL_BINDIR}" USE_SOURCE_PERMISSIONS)
+-#Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR
+-	if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib/")
+-		file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib/*.so*")
+-		if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
+-			foreach(item ${SHARED_LIBRARIES})
+-				get_filename_component(LIBRARY_FILENAME ${item} NAME)
+-				if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
+-					list(REMOVE_ITEM SHARED_LIBRARIES ${item})
+-				endif()
+-			endforeach(item)
+-		endif()
+-		install(FILES ${SHARED_LIBRARIES} DESTINATION "lib")
+-	endif()
+-	if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib64/")
+-		file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib64/*.so*")
+-		if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
+-			foreach(item ${SHARED_LIBRARIES})
+-				get_filename_component(LIBRARY_FILENAME ${item} NAME)
+-				if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
+-					list(REMOVE_ITEM SHARED_LIBRARIES ${item})
+-				endif()
+-			endforeach(item)
+-		endif()
+-		install(FILES ${SHARED_LIBRARIES} DESTINATION "lib64")
+-	endif()
+-	install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
+-	if(ENABLE_BUILD_VERBOSE)
+-		message("INSTALLATION : ${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" )
+-	endif()
+-	file(GLOB PLUGINS_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins/*")
+-	install(FILES ${PLUGINS_FILES} DESTINATION "plugins/mediastreamer/" )
+ # Install desktop/icon files.
+ 	configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphone.desktop.cmake" "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" @ONLY)	
+ 	install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
+diff --git a/linphone-app/linphoneqt_version.cmake b/linphone-app/linphoneqt_version.cmake
+new file mode 100644
+index 00000000..a85d3455
+--- /dev/null
++++ b/linphone-app/linphoneqt_version.cmake
+@@ -0,0 +1 @@
++project(linphoneqt VERSION ${GUIX-SET-VERSION})
+\ No newline at end of file
+diff --git a/linphone-app/src/config.h.cmake b/linphone-app/src/config.h.cmake
+index 093539e0..5a238c70 100644
+--- a/linphone-app/src/config.h.cmake
++++ b/linphone-app/src/config.h.cmake
+@@ -28,3 +28,4 @@
+ #cmakedefine ENABLE_UPDATE_CHECK 1
+ #cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}"
+ #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}"
++#define LINPHONE_QT_GIT_VERSION "${PROJECT_VERSION}"
+\ No newline at end of file
+-- 
+2.31.0
+
diff --git a/gnu/packages/patches/linphoneqt-tabbutton.patch b/gnu/packages/patches/linphoneqt-tabbutton.patch
deleted file mode 100644
index 6b3214026e..0000000000
--- a/gnu/packages/patches/linphoneqt-tabbutton.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From ecaab0f73d0b74bbfbf150286305fa6e12970037 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <[email-masked]>
-Date: Fri, 19 Jan 2018 14:42:01 +0100
-Subject: [PATCH] fix(SettingsWindow): rename icon property of TabButton to
- iconName (issue with Qt 5.10 and new icon property)
-
----
- ui/modules/Common/Form/Tab/TabButton.qml |  8 ++++----
- ui/views/App/Settings/SettingsWindow.qml | 14 +++++++-------
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/ui/modules/Common/Form/Tab/TabButton.qml b/ui/modules/Common/Form/Tab/TabButton.qml
-index ad220ab2..a47bb20b 100644
---- a/ui/modules/Common/Form/Tab/TabButton.qml
-+++ b/ui/modules/Common/Form/Tab/TabButton.qml
-@@ -12,8 +12,8 @@ Controls.TabButton {
- 
-   // ---------------------------------------------------------------------------
- 
--  property string icon
-   property int iconSize: TabButtonStyle.icon.size
-+  property string iconName
- 
-   readonly property bool _isSelected: parent.parent.currentItem === button
- 
-@@ -66,9 +66,9 @@ Controls.TabButton {
-       Layout.leftMargin: TabButtonStyle.text.leftPadding
- 
-       icon: {
--        var icon = button.icon
--        return icon.length
--          ? (icon + '_' + (button._isSelected ? 'selected' : 'normal'))
-+        var iconName = button.iconName
-+        return iconName.length
-+          ? (iconName + '_' + (button._isSelected ? 'selected' : 'normal'))
-           : ''
-       }
-       iconSize: button.iconSize
-diff --git a/ui/views/App/Settings/SettingsWindow.qml b/ui/views/App/Settings/SettingsWindow.qml
-index b8f5a80f..58909544 100644
---- a/ui/views/App/Settings/SettingsWindow.qml
-+++ b/ui/views/App/Settings/SettingsWindow.qml
-@@ -48,43 +48,43 @@ ApplicationWindow {
-         id: tabBar
- 
-         TabButton {
--          icon: 'settings_sip_accounts'
-+          iconName: 'settings_sip_accounts'
-           text: qsTr('sipAccountsTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_audio'
-+          iconName: 'settings_audio'
-           text: qsTr('audioTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_video'
-+          iconName: 'settings_video'
-           text: qsTr('videoTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_call'
-+          iconName: 'settings_call'
-           text: qsTr('callsAndChatTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_network'
-+          iconName: 'settings_network'
-           text: qsTr('networkTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_advanced'
-+          iconName: 'settings_advanced'
-           text: qsTr('uiTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_advanced'
-+          iconName: 'settings_advanced'
-           text: qsTr('uiAdvanced')
-           width: implicitWidth
-         }
--- 
-2.21.0
-
-- 
2.31.0

From 38d6d306cc865cf3c322ce2489a7626ca2562219 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sun, 21 Mar 2021 02:03:43 -0400
Subject: [PATCH 47/53] gnu: linphone-desktop: Enable daemon interface.

* gnu/packages/linphone.scm (linphone-desktop) [arguments]<#:configure-flags>
[-DENABLE_DAEMON]: New flag.
---
 gnu/packages/linphone.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 5b34442be3..8ddee72b5f 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -837,7 +837,8 @@ and video calls or instant messaging capabilities to an application.")
      `(#:tests? #f                      ; No test target
        #:configure-flags
        (list
-        "-DENABLE_UPDATE_CHECK=NO")
+        "-DENABLE_UPDATE_CHECK=NO"
+        "-DENABLE_DAEMON=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'pre-configure
-- 
2.31.0

From c481fc3cb56f07e0c61266fd78635d02aa062e25 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sun, 21 Mar 2021 02:05:42 -0400
Subject: [PATCH 48/53] gnu: linphone-desktop: Enable console interface.

* gnu/packages/linphone.scm (linphone-desktop) [arguments]<#:configure-flags>
[-DENABLE_CONSOLE_UI]: New flag.
---
 gnu/packages/linphone.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 8ddee72b5f..2bf3f35de4 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -838,7 +838,8 @@ and video calls or instant messaging capabilities to an application.")
        #:configure-flags
        (list
         "-DENABLE_UPDATE_CHECK=NO"
-        "-DENABLE_DAEMON=YES")
+        "-DENABLE_DAEMON=YES"
+        "-DENABLE_CONSOLE_UI=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'pre-configure
-- 
2.31.0

From 859c5c00a283bf37732d31f339cc21311ba9a050 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 19 Mar 2021 21:00:37 -0400
Subject: [PATCH 49/53] gnu: linphone-desktop: Update home-page and license.

* gnu/packages/linphone.scm (linphone-desktop) [home-page]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/linphone.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 2bf3f35de4..8415b02d0d 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -896,8 +896,8 @@ and video calls or instant messaging capabilities to an application.")
 @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+)))
+    (home-page "https://linphone.org/technical-corner/linphone")
+    (license license:gpl3+)))
 
 (define-public msopenh264
   (package
-- 
2.31.0

From 7120ab7a0d8348183c18e144cfbbddf1a7449949 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 19 Mar 2021 22:21:12 -0400
Subject: [PATCH 50/53] gnu: msopenh264: Update to 1.2.1-21.

* gnu/packages/linphone.scm (msopenh264) [source]: Switch to git repository.
[version]: Update to 1.2.1.
[patches]: Remove field.
[inputs]: Add bctoolbox.
---
 gnu/packages/linphone.scm | 65 +++++++++++++++++----------------------
 1 file changed, 28 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 8415b02d0d..49c6901e1f 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -900,44 +900,35 @@ and video calls or instant messaging capabilities to an application.")
     (license license:gpl3+)))
 
 (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
+  (let ((commit "88697cc95140017760d6da408cb0efdc5e86e40a")
+        (revision "21"))
+    (package
+      (name "msopenh264")
+      (version (git-version "1.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://git.linphone.org/msopenh264")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "10y3b6s934f2wbsf60b3p0g6hffizjqrj5in8l4sida2fjdxlwwy"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ; No test target
+         #:configure-flags
+         (list "-DENABLE_STATIC=NO")))  ; Not required
+      (inputs
+       `(("bctoolbox" ,bctoolbox)
+         ("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+)))
+      (home-page "https://gitlab.linphone.org/BC/public/msopenh264")
+      (license license:gpl2+))))
 
 (define-public mssilk
   (package
-- 
2.31.0

From 7cb8a299ba78efe5c1f222da1ef2b0c77b0c7003 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 19 Mar 2021 22:33:38 -0400
Subject: [PATCH 51/53] gnu: mssilk: Update to 1.1.1-8.

* gnu/packages/linphone.scm (mssilk) [source]: Switch to git repository.
[version]: Update to 1.1.1-8.
[inputs]: Add bctoolbox.
---
 gnu/packages/linphone.scm | 50 +++++++++++++++++++++------------------
 1 file changed, 27 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 49c6901e1f..5cc23e6c02 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -931,30 +931,34 @@ mediastreamer2 based on the openh264 library.")
       (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
+  (let ((commit "dd0f31ee795faa7ea89e601b072dae4cd1df7e3f")
+        (revision "8"))
+    (package
+      (name "mssilk")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://git.linphone.org/mssilk")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1dann5fnzqp6wjlwc6bl2k9b6rvn6bznqb3qsi1kgv9dnq44cbr0"))))
+      (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 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+)))
+      (home-page "https://gitlab.linphone.org/BC/public/mssilk")
+      (license license:gpl2+))))
 
 (define-public mswebrtc
   (package
-- 
2.31.0

From 297168c9448af4cb31a190f37e6074dbca8e0c7f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 19 Mar 2021 23:51:32 -0400
Subject: [PATCH 52/53] gnu: mswebrtc: Update to 1.1.1-23.

* gnu/packages/linphone.scm (mswebrtc) [source]: Switch to git repository.
[version]: Update to 1.1.1-23.
[arguments]<#:phases>['copy-inputs]: New phase.
[native-inputs]: Add webrtc and python-wrapper.
---
 gnu/packages/linphone.scm | 75 ++++++++++++++++++++++++++-------------
 1 file changed, 50 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 5cc23e6c02..4fdf4c0125 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -961,32 +961,57 @@ codec.  It is based on the Skype's SILK implementation.")
       (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
+  (let ((commit "946ca706733f36a6b4923f04e569531125462d1d")
+        (revision "23"))
+    (package
+      (name "mswebrtc")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://git.linphone.org/mswebrtc")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1pfg9m6bpbv0f53nx72rdxhlyriax9pg4yj0gpwq8ha6lqnpwg1x"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ; No test target
+         #:configure-flags
+         (list
+          "-DENABLE_STATIC=NO")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'copy-inputs
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((webrtc-from (assoc-ref inputs "webrtc"))
+                      (webrtc-to (string-append (getcwd) "/webrtc")))
+                 (copy-recursively webrtc-from webrtc-to))
+               #t)))))
+      (native-inputs
+       `(("webrtc"
+          ,(origin
+             (method git-fetch)
+             (uri
+              (git-reference
+               (url "https://gitlab.linphone.org/BC/public/external/webrtc")
+               (commit "583acd27665cfadef8ab03eb85a768d308bd29dd")))
+             (file-name
+              (git-file-name "webrtc-for-mswebrtc" version))
+             (sha256
+              (base32
+               "1maqychrgwy0z4zypa03qp726l2finw64z6cymdzhd58ql3p1lvm"))))
+         ("python" ,python-wrapper)))
+      (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+)))
+      (home-page "https://gitlab.linphone.org/BC/public/mswebrtc")
+      (license license:gpl2+))))
 
 (define-public msamr
   (package
-- 
2.31.0

From badbc3847d58c36525539b263ed9197265e94c62 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Sat, 20 Mar 2021 00:01:26 -0400
Subject: [PATCH 53/53] gnu: msamr: Update to 1.1.3-11.

* gnu/packages/linphone.scm (msamr) [source]: Switch to git repository.
[version]: Update to 1.1.3-11.
[inputs]: Add bctoolbox.
---
 gnu/packages/linphone.scm | 56 +++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 4fdf4c0125..e0aabbf7a0 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1014,30 +1014,34 @@ WebRTC codec.  It includes features from WebRTC, such as, iSAC and AECM.")
       (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
+  (let ((commit "5ab5c098299107048dfcbfc741f7392faef167bd")
+        (revision "11"))
+    (package
+      (name "msamr")
+      (version (git-version "1.1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://git.linphone.org/msamr")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1g79lw1qi1mlw3v1b0cixmqiwjql81gz9naakb15n8pvaag9aaqm"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ; No test target
+         #:configure-flags
+         (list "-DENABLE_STATIC=NO"     ; Not required
+               "-DENABLE_WIDEBAND=YES")))
+      (inputs
+       `(("bctoolbox" ,bctoolbox)
+         ("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+)))
+      (home-page "https://gitlab.linphone.org/BC/public/msamr")
+      (license license:gpl3+))))
-- 
2.31.0