unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#47274] Linphone Packages
@ 2021-03-20  4:26 Raghav Gururajan via Guix-patches via
  2021-03-21  6:13 ` Raghav Gururajan via Guix-patches via
  2021-03-24  2:25 ` Maxim Cournoyer
  0 siblings, 2 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-20  4:26 UTC (permalink / raw)
  To: 47274; +Cc: Danny Milosavljevic, Maxim Cournoyer


[-- Attachment #1.1.1: Type: text/plain, Size: 453 bytes --]

Hello Guix!

The packages in linphone.scm has been severely outdated and posses risk, 
as upstream even removed the tarballs. So I have re-worked all the 
packages in linphone.scm, as fast as I could.

@Maxim: Thanks so much for offering to review.

Please find the attached patch-set.

I am still working on one component, linphone-desktop. The upgrade from 
v4.1.1 to v4.2.5, turns to be more complicated than I expected.

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-Add-libdecaf.patch --]
[-- Type: text/x-patch, Size: 3583 bytes --]

From 81750f3c1b2d25ff116aa8effd4f760ce715474d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 17:08:57 -0500
Subject: [PATCH 01/50] 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


[-- Attachment #1.1.3: 0002-gnu-bcunit-Update-to-3.0.2-13.patch --]
[-- Type: text/x-patch, Size: 2618 bytes --]

From c267e6cd6b7cb1756bc42dde95cb27f75691ce72 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 12:04:37 -0500
Subject: [PATCH 02/50] 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


[-- Attachment #1.1.4: 0003-gnu-bcunit-Enable-curses-support.patch --]
[-- Type: text/x-patch, Size: 1494 bytes --]

From e40e9a4636ad478e78a1158a4892cd3286c36215 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 12:17:47 -0500
Subject: [PATCH 03/50] 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


[-- Attachment #1.1.5: 0004-gnu-bcunit-Enable-documentation.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

From b3ad963f671cb96899f83010c34cd2267efd98d8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 13:02:42 -0500
Subject: [PATCH 04/50] 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


[-- Attachment #1.1.6: 0005-gnu-bcunit-Enable-examples.patch --]
[-- Type: text/x-patch, Size: 4251 bytes --]

From ef50d146f39a00f5d2cc37dffaecf676865e1822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 18:11:32 -0400
Subject: [PATCH 05/50] 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


[-- Attachment #1.1.7: 0006-gnu-bcunit-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2211 bytes --]

From ef6de16159ec2a71e9b55bce24c27031e4bad39c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 18:17:15 -0400
Subject: [PATCH 06/50] 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


[-- Attachment #1.1.8: 0007-gnu-bcunit-Enable-mem-trace-support.patch --]
[-- Type: text/x-patch, Size: 930 bytes --]

From db547a116b990665dbdf19d4f1c93c6970739f59 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 18:18:44 -0400
Subject: [PATCH 07/50] 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


[-- Attachment #1.1.9: 0008-gnu-bctoolbox-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1874 bytes --]

From b9b239f47780ab3382370c02b5595881d0922202 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 14:00:48 -0500
Subject: [PATCH 08/50] 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


[-- Attachment #1.1.10: 0009-gnu-bctoolbox-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1663 bytes --]

From fc95b7f892f57cdc6af37befd5f39d69f6bb210f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 14:55:03 -0500
Subject: [PATCH 09/50] 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


[-- Attachment #1.1.11: 0010-gnu-bctoolbox-Enable-decaf-support.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From b1041213be6ee2b93427b9713fa0883ace5b619b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 13 Mar 2021 19:32:01 -0500
Subject: [PATCH 10/50] 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


[-- Attachment #1.1.12: 0011-gnu-belr-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1939 bytes --]

From b3e167f7f52e51e08375801bb76512e9b38302be Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sun, 14 Mar 2021 23:40:02 -0400
Subject: [PATCH 11/50] 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


[-- Attachment #1.1.13: 0012-gnu-belr-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2322 bytes --]

From 1d4928910b504984498bd432faadc8a91471fc29 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 01:57:33 -0400
Subject: [PATCH 12/50] 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


[-- Attachment #1.1.14: 0013-gnu-belcard-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1923 bytes --]

From 112a52cff24b678e8fd3e41f54d48e47f18fbc23 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 16:24:20 -0400
Subject: [PATCH 13/50] 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


[-- Attachment #1.1.15: 0014-gnu-belcard-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1947 bytes --]

From 9442099b5d232b558bcef0a2e7382882416c4b86 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 17:11:06 -0400
Subject: [PATCH 14/50] 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


[-- Attachment #1.1.16: 0015-gnu-bcmatroska2-Change-source.patch --]
[-- Type: text/x-patch, Size: 1333 bytes --]

From 19fd34634b418fcd178d655c3dd8445810a32756 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 20:30:21 -0400
Subject: [PATCH 15/50] 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


[-- Attachment #1.1.17: 0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch --]
[-- Type: text/x-patch, Size: 913 bytes --]

From d0d45bb75ba46bd5b68d9a07eaea118d16710912 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 22:11:02 -0400
Subject: [PATCH 16/50] 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


[-- Attachment #1.1.18: 0017-gnu-bcg729-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3351 bytes --]

From b5f3e5d0684fbb19e19533e29f06879c0fb3c0f1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 21:30:54 -0400
Subject: [PATCH 17/50] 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


[-- Attachment #1.1.19: 0018-gnu-bcg729-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1115 bytes --]

From 30885ba367c7dde9aead93f4a0956133f9434fea Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 21:38:07 -0400
Subject: [PATCH 18/50] 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


[-- Attachment #1.1.20: 0019-gnu-ortp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1442 bytes --]

From b86edac67e0c971ad0101f238cb6612fac987060 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 22:09:07 -0400
Subject: [PATCH 19/50] 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


[-- Attachment #1.1.21: 0020-gnu-ortp-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1702 bytes --]

From 68d0598e93baa654e8fe751122568fa3f2026600 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 22:19:47 -0400
Subject: [PATCH 20/50] 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


[-- Attachment #1.1.22: 0021-gnu-ortp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2286 bytes --]

From 62d8a115dde670a186dba96603bd7f4f1c1ced6c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 16:08:52 -0400
Subject: [PATCH 21/50] 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


[-- Attachment #1.1.23: 0022-gnu-ortp-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1038 bytes --]

From cabddb4d5e2388d00daf14e6a133c5673f7b3f4c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 15 Mar 2021 22:52:10 -0400
Subject: [PATCH 22/50] 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


[-- Attachment #1.1.24: 0023-gnu-bztrp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1459 bytes --]

From 3b32b9a8f2cd1eca6397c77fd80e54a6c0790908 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 12:22:31 -0400
Subject: [PATCH 23/50] 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


[-- Attachment #1.1.25: 0024-gnu-bzrtp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1140 bytes --]

From bc1c717b578ca10042dea6ba06376e44ac51a220 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 12:29:07 -0400
Subject: [PATCH 24/50] 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


[-- Attachment #1.1.26: 0025-gnu-bzrtp-Update-license.patch --]
[-- Type: text/x-patch, Size: 892 bytes --]

From 3ea7cfd928407230199619bebcec83d40fa07d58 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 12:30:58 -0400
Subject: [PATCH 25/50] 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


[-- Attachment #1.1.27: 0026-gnu-belle-sip-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1830 bytes --]

From bdc8398ef86d45f1ab41582c2c4915debe3faf6f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 12:40:05 -0400
Subject: [PATCH 26/50] 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


[-- Attachment #1.1.28: 0027-gnu-belle-sip-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3194 bytes --]

From 506bcbdd204924a6067adbb969af4ef9f92df4d2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 13:25:14 -0400
Subject: [PATCH 27/50] 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


[-- Attachment #1.1.29: 0028-gnu-belle-sip-Enable-mDNS-support.patch --]
[-- Type: text/x-patch, Size: 2261 bytes --]

From 019329536ce79d261eae4e9ea1ac1710c9cd2487 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 14:28:56 -0400
Subject: [PATCH 28/50] 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


[-- Attachment #1.1.30: 0029-gnu-belle-sip-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1130 bytes --]

From 67fc684d976e4e1264374aa1156d4d574eff63df Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 14:32:16 -0400
Subject: [PATCH 29/50] 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


[-- Attachment #1.1.31: 0030-gnu-mediastreamer2-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 11144 bytes --]

From 5e823993cc46d6d80a3be140b82c8449b499d6c3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 15:51:11 -0400
Subject: [PATCH 30/50] 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 a68981e48d..2f8ffeed3c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1360,7 +1360,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 <danmei.chen@belledonne-communications.com>
-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


[-- Attachment #1.1.32: 0031-gnu-mediastreamer2-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2719 bytes --]

From 7e62a8fdd6e9c3ed685b20a443dd8e04ea00e32a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 16:56:25 -0400
Subject: [PATCH 31/50] 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


[-- Attachment #1.1.33: 0032-gnu-mediastreamer2-Enable-PCAP-support.patch --]
[-- Type: text/x-patch, Size: 1270 bytes --]

From eda3b77ac469e07b5836fdf9f7c9e7cc76be2872 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 18:43:55 -0400
Subject: [PATCH 32/50] 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


[-- Attachment #1.1.34: 0033-gnu-mediastreamer2-Enable-port-audio-support.patch --]
[-- Type: text/x-patch, Size: 1090 bytes --]

From 67e9cc3baaf0f2596331db6c0cbede1869f3edeb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 20:32:40 -0400
Subject: [PATCH 33/50] 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


[-- Attachment #1.1.35: 0034-gnu-mediastreamer2-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1180 bytes --]

From 4e5747cae0f037afa67ff0af2c8fd23005bdd132 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 20:41:23 -0400
Subject: [PATCH 34/50] 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


[-- Attachment #1.1.36: 0035-gnu-mediastreamer2-Enable-G729B-support.patch --]
[-- Type: text/x-patch, Size: 1052 bytes --]

From 1cce8d7ac16c9d755e39b8a74c8a07e0427ae850 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 21:03:16 -0400
Subject: [PATCH 35/50] 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


[-- Attachment #1.1.37: 0036-gnu-soci-Propagate-inputs.patch --]
[-- Type: text/x-patch, Size: 1013 bytes --]

From cc44a81d0d991775bbfdbc3ca29e22c8e4f34e9b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 21:57:10 -0400
Subject: [PATCH 36/50] 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 03d01b582a..076ff85e7d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -4087,7 +4087,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


[-- Attachment #1.1.38: 0037-gnu-Add-lime.patch --]
[-- Type: text/x-patch, Size: 3244 bytes --]

From 1eee63bec9152aa9b8d718244d4a474ef04434b9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 16 Mar 2021 23:08:41 -0400
Subject: [PATCH 37/50] 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


[-- Attachment #1.1.39: 0038-gnu-Add-build.patch --]
[-- Type: text/x-patch, Size: 3384 bytes --]

From ac11c46c21836a0696ec927c411c974207162885 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 13:53:40 -0400
Subject: [PATCH 38/50] 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 2f8ffeed3c..1351c81330 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 <rg@raghavgururajan.name>
+;;;
+;;; 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


[-- Attachment #1.1.40: 0039-gnu-Add-libcutl.patch --]
[-- Type: text/x-patch, Size: 2593 bytes --]

From 09c07f2b6b36d91ced2c3b41aa39e0b2710f5306 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 13:57:53 -0400
Subject: [PATCH 39/50] 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


[-- Attachment #1.1.41: 0040-gnu-Add-libxsd-frontend.patch --]
[-- Type: text/x-patch, Size: 2947 bytes --]

From 077cd7512fb13ba35b3a6e4901201181bb8abdb4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 14:00:13 -0400
Subject: [PATCH 40/50] 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


[-- Attachment #1.1.42: 0041-gnu-Add-cli.patch --]
[-- Type: text/x-patch, Size: 2736 bytes --]

From 9ab80d0b6568b7677bd002d89794e5517a9f005d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 14:33:34 -0400
Subject: [PATCH 41/50] 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


[-- Attachment #1.1.43: 0042-gnu-Add-xsd.patch --]
[-- Type: text/x-patch, Size: 2851 bytes --]

From c2064aea0a3de692b02475070d6aa0306f20eccd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 15:51:18 -0400
Subject: [PATCH 42/50] 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


[-- Attachment #1.1.44: 0043-gnu-liblinphone-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 7357 bytes --]

From 5630f5c43bd677b42069a73f3e3d3cbe085a69ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Wed, 17 Mar 2021 23:36:02 -0400
Subject: [PATCH 43/50] 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


[-- Attachment #1.1.45: 0044-gnu-liblinphone-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1153 bytes --]

From a3d94f9cd3d74bda0200b8f6f9ce645a749dad35 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 18 Mar 2021 22:05:22 -0400
Subject: [PATCH 44/50] 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 7158c093b3..73d0121180 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -811,8 +811,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


[-- Attachment #1.1.46: 0045-gnu-linphoneqt-Rename-to-linphone-desktop-and-change.patch --]
[-- Type: text/x-patch, Size: 1726 bytes --]

From 8388861e7727da3c5b2b79f6b8524bd585fbfaa9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 19 Mar 2021 20:58:20 -0400
Subject: [PATCH 45/50] gnu: linphoneqt: Rename to linphone-desktop and change
 source.

* gnu/packages/linphone.scm (linphoneqt) [name]: Rename to linphone-desktop.
[source]: Switch to git repository.
---
 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 73d0121180..9d3f8bec95 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -814,18 +814,19 @@ 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")
+    (name "linphone-desktop")
     (version "4.1.1")
     (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"))
+        (base32 "1a639s7grbbwmp65iyvi86265jjp9ljxiamnbmpqa99y7v3jc4z7"))
        (patches (search-patches "linphoneqt-tabbutton.patch"))))
     (build-system qt-build-system)
     (arguments
-- 
2.31.0


[-- Attachment #1.1.47: 0046-gnu-linphone-desktop-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1131 bytes --]

From 6624206706b99446711f318c4db49e56acc25a5d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 19 Mar 2021 21:00:37 -0400
Subject: [PATCH 46/50] 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 9d3f8bec95..231da2cab2 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -888,8 +888,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


[-- Attachment #1.1.48: 0047-gnu-msopenh264-Update-to-1.2.1-21.patch --]
[-- Type: text/x-patch, Size: 3496 bytes --]

From de4de606f274b95d0171782bffc7ddb23e3fadc9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 19 Mar 2021 22:21:12 -0400
Subject: [PATCH 47/50] 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 231da2cab2..984d460bf6 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -892,44 +892,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


[-- Attachment #1.1.49: 0048-gnu-mssilk-Update-to-1.1.1-8.patch --]
[-- Type: text/x-patch, Size: 2854 bytes --]

From 341a3c7d0624c8dae467e36b411509e3a2bf0f7b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 19 Mar 2021 22:33:38 -0400
Subject: [PATCH 48/50] 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 984d460bf6..a87b1758cd 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -923,30 +923,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


[-- Attachment #1.1.50: 0049-gnu-mswebrtc-Update-to-1.1.1-23.patch --]
[-- Type: text/x-patch, Size: 3962 bytes --]

From 443ebbdc59ba62dd3f97fe14d09fdabe3213fe8a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Fri, 19 Mar 2021 23:51:32 -0400
Subject: [PATCH 49/50] 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 a87b1758cd..c24069a948 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -953,32 +953,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


[-- Attachment #1.1.51: 0050-gnu-msamr-Update-to-1.1.3-11.patch --]
[-- Type: text/x-patch, Size: 3074 bytes --]

From aa2ec33ae2b0f554a366da55908b97e6df8a1830 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 20 Mar 2021 00:01:26 -0400
Subject: [PATCH 50/50] 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 c24069a948..2b19fb9e56 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1006,30 +1006,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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-20  4:26 [bug#47274] Linphone Packages Raghav Gururajan via Guix-patches via
@ 2021-03-21  6:13 ` Raghav Gururajan via Guix-patches via
  2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
  2021-03-24  2:25 ` Maxim Cournoyer
  1 sibling, 1 reply; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-21  6:13 UTC (permalink / raw)
  To: 47274; +Cc: Danny Milosavljevic, Léo Le Bouter, Maxim Cournoyer


[-- Attachment #1.1.1: Type: text/plain, Size: 519 bytes --]

Hello Guix!

> The packages in linphone.scm has been severely outdated and posses risk, 
> as upstream even removed the tarballs. So I have re-worked all the 
> packages in linphone.scm, as fast as I could.
> 
> @Maxim: Thanks so much for offering to review.
> 
> Please find the attached patch-set.
> 
> I am still working on one component, linphone-desktop. The upgrade from 
> v4.1.1 to v4.2.5, turns to be more complicated than I expected.

Phew! All done.

Attached new patch-set.

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-Add-libdecaf.patch --]
[-- Type: text/x-patch, Size: 3583 bytes --]

From 08aa3c9f46b1e78ea5e055cf0f321911ec94b334 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.3: 0002-gnu-bcunit-Update-to-3.0.2-13.patch --]
[-- Type: text/x-patch, Size: 2618 bytes --]

From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.4: 0003-gnu-bcunit-Enable-curses-support.patch --]
[-- Type: text/x-patch, Size: 1494 bytes --]

From 3f282a59899dda366e473236b5f96b84ef54e866 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.5: 0004-gnu-bcunit-Enable-documentation.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

From c90a23d65b76451620c4500f37aaaec7a311c2ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.6: 0005-gnu-bcunit-Enable-examples.patch --]
[-- Type: text/x-patch, Size: 4251 bytes --]

From 9b9f3bc1c8b3f1a1f64863cc360640a38a752514 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.7: 0006-gnu-bcunit-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2211 bytes --]

From fdad19e4ecc2c9ed82295e07a79b3c275bc99ec8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.8: 0007-gnu-bcunit-Enable-mem-trace-support.patch --]
[-- Type: text/x-patch, Size: 930 bytes --]

From 430bc171bc948d1350666575bd62984dd1526aaa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.9: 0008-gnu-bctoolbox-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1874 bytes --]

From 28d1d2369f6c5d4e25429c1a5c7c796281ea3e3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.10: 0009-gnu-bctoolbox-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1663 bytes --]

From 998bbda5aad3038a690b83580476e4ac56e75029 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.11: 0010-gnu-bctoolbox-Enable-decaf-support.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From 075c98bdb0bfa7632432dbd4f5e826e176dba199 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.12: 0011-gnu-belr-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1939 bytes --]

From 0d06d47006cfd7ee1446446ce793332f22355ecf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.13: 0012-gnu-belr-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2322 bytes --]

From 2c4cd1b4437a7d92e029e79218ec8d27c239c7e6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.14: 0013-gnu-belcard-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1923 bytes --]

From 187e4df880b18b3606c61154bb9039bcbf2774e3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.15: 0014-gnu-belcard-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1947 bytes --]

From 76aab981123ace59f320f62ded3bd93e796ac2e7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.16: 0015-gnu-bcmatroska2-Change-source.patch --]
[-- Type: text/x-patch, Size: 1333 bytes --]

From f94cbb3081d6b4ed59fc9ef94e5ab82317ddab93 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.17: 0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch --]
[-- Type: text/x-patch, Size: 913 bytes --]

From f44adcaa82e6c800293fd41afb79842df45753e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.18: 0017-gnu-bcg729-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3351 bytes --]

From c487293d21986019a92162c43b8d9e6ff3faf5a6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.19: 0018-gnu-bcg729-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1115 bytes --]

From 26301852706db96375e9669cfa01f77f7977ee68 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.20: 0019-gnu-ortp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1442 bytes --]

From aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.21: 0020-gnu-ortp-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1702 bytes --]

From 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.22: 0021-gnu-ortp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2286 bytes --]

From 7fe7aa78121467b19e11a88589eaea9662605772 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.23: 0022-gnu-ortp-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1038 bytes --]

From f3076dfd6a9a4c506e0c61950453c2843c5f7112 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.24: 0023-gnu-bztrp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1459 bytes --]

From db753921f89f63db65ea7ec3bc4e60dc3093772a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.25: 0024-gnu-bzrtp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1140 bytes --]

From a73a2d4c200072111b675295e84763c868f466e0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.26: 0025-gnu-bzrtp-Update-license.patch --]
[-- Type: text/x-patch, Size: 892 bytes --]

From ef057926e3a1f6e1334aadf114afeef93c69a7d7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.27: 0026-gnu-belle-sip-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1830 bytes --]

From dfa4c6c2dcf6b5e643cc76fedf4263e4cf93de64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.28: 0027-gnu-belle-sip-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3194 bytes --]

From 17a4f88266b97931d8070575bdb7d6ae19d1b5c5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.29: 0028-gnu-belle-sip-Enable-mDNS-support.patch --]
[-- Type: text/x-patch, Size: 2261 bytes --]

From 48d976256513575667b3a3b59756faa003e649a5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.30: 0029-gnu-belle-sip-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1130 bytes --]

From 63ce26b00ae6cbdc2b5914bdabcbc07034ee97fe Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.31: 0030-gnu-mediastreamer2-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 11144 bytes --]

From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <danmei.chen@belledonne-communications.com>
-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


[-- Attachment #1.1.32: 0031-gnu-mediastreamer2-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2719 bytes --]

From d957a35ae7bc2ee750f3e47e243d1cbbb6972826 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.33: 0032-gnu-mediastreamer2-Enable-PCAP-support.patch --]
[-- Type: text/x-patch, Size: 1270 bytes --]

From bb31d74bfb61ae3bcbf4509258ed19be9be4b0a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.34: 0033-gnu-mediastreamer2-Enable-port-audio-support.patch --]
[-- Type: text/x-patch, Size: 1090 bytes --]

From c2d99242acc55c50d5433c1068a45f7e2ec55d3d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.35: 0034-gnu-mediastreamer2-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1180 bytes --]

From 2b36386872adf9547229d581649a96b440047098 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.36: 0035-gnu-mediastreamer2-Enable-G729B-support.patch --]
[-- Type: text/x-patch, Size: 1052 bytes --]

From 74b1c2811dc3918630418c230748712c6fa31402 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.37: 0036-gnu-soci-Propagate-inputs.patch --]
[-- Type: text/x-patch, Size: 1013 bytes --]

From 41a8f916504fde059793d0c428512ef6c928da5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.38: 0037-gnu-Add-lime.patch --]
[-- Type: text/x-patch, Size: 3244 bytes --]

From 30c0515c5ec80da84a4e0e7ecbf8dff19fc16066 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.39: 0038-gnu-Add-build.patch --]
[-- Type: text/x-patch, Size: 3384 bytes --]

From a532e6049dbc80a54194c83b68373d8cbd4e0378 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <rg@raghavgururajan.name>
+;;;
+;;; 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


[-- Attachment #1.1.40: 0039-gnu-Add-libcutl.patch --]
[-- Type: text/x-patch, Size: 2593 bytes --]

From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.41: 0040-gnu-Add-libxsd-frontend.patch --]
[-- Type: text/x-patch, Size: 2947 bytes --]

From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.42: 0041-gnu-Add-cli.patch --]
[-- Type: text/x-patch, Size: 2736 bytes --]

From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.43: 0042-gnu-Add-xsd.patch --]
[-- Type: text/x-patch, Size: 2851 bytes --]

From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.44: 0043-gnu-liblinphone-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 7357 bytes --]

From 60de07aa98dbe450d5f4cc9873e04fbe52b8c05a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.45: 0044-gnu-liblinphone-Enable-LDAP-support.patch --]
[-- Type: text/x-patch, Size: 1625 bytes --]

From e99d0c95c27a21decf387e906d64a1b5f296302b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.46: 0045-gnu-liblinphone-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1153 bytes --]

From c9b7e475956ce93022d47d4978a8b3acd4a1ac60 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.47: 0046-gnu-linphoneqt-Update-to-4.2.5.patch --]
[-- Type: text/x-patch, Size: 22923 bytes --]

From 8a21b5864bba6027d4ff34c5e017d1ea50fcb0ca Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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, ortp, qtmultimedia, qtscript, qtsensors, qtserialport, qtspeech,
qtwebchannel, qtwebengine, qtwebkit, qtx11extras and qtxmlpatterns.
* 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                     |  74 +++---
 .../linphone-desktop-without-sdk.patch        | 236 ++++++++++++++++++
 .../patches/linphoneqt-tabbutton.patch        |  96 -------
 4 files changed, 281 insertions(+), 127 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..3ca05d2477 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,61 +818,74 @@ 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)
+       ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
        ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)))
+       ("qtscript" ,qtscript)
+       ("qtsensors" ,qtsensors)
+       ("qtserialport" ,qtserialport)
+       ("qtspeech" ,qtspeech)
+       ("qtsvg" ,qtsvg)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtwebengine" ,qtwebengine)
+       ("qtwebkit" ,qtwebkit)
+       ("qtx11extras" ,qtx11extras)
+       ("qtxmlpatterns" ,qtxmlpatterns)))
     (synopsis "Desktop client for the Linphone SIP softphone")
     (description "Linphone is a SIP softphone for voice and video over IP calling
 (VoIP) and instant messaging.  Amongst its features are:
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..e7c4d42dfb
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-without-sdk.patch
@@ -0,0 +1,236 @@
+From aac8d31e94a71d03730e5c27f9ffe9d91f90a305 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Sun, 21 Mar 2021 00:42:42 -0400
+Subject: [PATCH] [PATCH]: Fix building from git.
+
+---
+ CMakeLists.txt                                | 72 ++-----------------
+ linphone-app/CMakeLists.txt                   | 12 +---
+ .../cmake_builder/additional_steps.cmake      |  2 +-
+ .../linphone_package/CMakeLists.txt           | 35 +--------
+ linphone-app/linphoneqt_version.cmake         |  1 +
+ linphone-app/src/config.h.cmake               |  1 +
+ 6 files changed, 10 insertions(+), 113 deletions(-)
+ create mode 100644 linphone-app/linphoneqt_version.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f7eb05f2..ca93d3b0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,15 +48,11 @@ 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}")
++set(CMAKE_PREFIX_PATH "${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+ string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
+-#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
++#set(PREFIX_PATH "${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+ 
+ # Avoid cmake warning if CMP0071 is not set.
+ if (POLICY CMP0071)
+@@ -116,9 +112,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 +126,11 @@ 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}")
++	set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib")
+ 	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 +145,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..131ebac9 100644
+--- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
++++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
+@@ -202,42 +202,9 @@ elseif (APPLE)
+ 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/../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 <ronan.abhamon@belledonne-communications.com>
-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


[-- Attachment #1.1.48: 0047-gnu-linphone-desktop-Enable-daemon-interface.patch --]
[-- Type: text/x-patch, Size: 1027 bytes --]

From 2b09f2bbaa2ea8f112d32b4fbc6a74319e43a8ee Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 3ca05d2477..117611e554 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


[-- Attachment #1.1.49: 0048-gnu-linphone-desktop-Enable-console-interface.patch --]
[-- Type: text/x-patch, Size: 1004 bytes --]

From 116e0664311eebe6746937e5948bed5a5be15471 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 117611e554..f951fae0d7 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


[-- Attachment #1.1.50: 0049-gnu-linphone-desktop-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1131 bytes --]

From 95809d3b4007f7e88c3757d2ae01a28ee1d73292 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 f951fae0d7..4402723102 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -906,8 +906,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


[-- Attachment #1.1.51: 0050-gnu-msopenh264-Update-to-1.2.1-21.patch --]
[-- Type: text/x-patch, Size: 3496 bytes --]

From 534e5284a0a92c8005f9e161f83f64453cb7670a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 4402723102..7911a5f72c 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -910,44 +910,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


[-- Attachment #1.1.52: 0051-gnu-mssilk-Update-to-1.1.1-8.patch --]
[-- Type: text/x-patch, Size: 2854 bytes --]

From 64bfd92703f25dc3cc14ffd1aaf193dee70c18de Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 7911a5f72c..a0985e03ef 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -941,30 +941,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


[-- Attachment #1.1.53: 0052-gnu-mswebrtc-Update-to-1.1.1-23.patch --]
[-- Type: text/x-patch, Size: 3962 bytes --]

From 7cf15f7d3024d3e6a38d534328c48283aa16a2ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 a0985e03ef..fe69cf64d5 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -971,32 +971,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


[-- Attachment #1.1.54: 0053-gnu-msamr-Update-to-1.1.3-11.patch --]
[-- Type: text/x-patch, Size: 3074 bytes --]

From b9b85fe1dedc5c4efb48252a0cd8fbd4fa31b36c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 fe69cf64d5..b3a3399f6c 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1024,30 +1024,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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-21  6:13 ` Raghav Gururajan via Guix-patches via
@ 2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                       ` (3 more replies)
  0 siblings, 4 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-22  1:48 UTC (permalink / raw)
  To: 47274; +Cc: Danny Milosavljevic, Léo Le Bouter, Maxim Cournoyer


[-- Attachment #1.1.1: Type: text/plain, Size: 298 bytes --]

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.

[-- Attachment #1.1.2: 0001-gnu-Add-libdecaf.patch --]
[-- Type: text/x-patch, Size: 3583 bytes --]

From 08aa3c9f46b1e78ea5e055cf0f321911ec94b334 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.3: 0002-gnu-bcunit-Update-to-3.0.2-13.patch --]
[-- Type: text/x-patch, Size: 2618 bytes --]

From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.4: 0003-gnu-bcunit-Enable-curses-support.patch --]
[-- Type: text/x-patch, Size: 1494 bytes --]

From 3f282a59899dda366e473236b5f96b84ef54e866 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.5: 0004-gnu-bcunit-Enable-documentation.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

From c90a23d65b76451620c4500f37aaaec7a311c2ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.6: 0005-gnu-bcunit-Enable-examples.patch --]
[-- Type: text/x-patch, Size: 4251 bytes --]

From 9b9f3bc1c8b3f1a1f64863cc360640a38a752514 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.7: 0006-gnu-bcunit-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2211 bytes --]

From fdad19e4ecc2c9ed82295e07a79b3c275bc99ec8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.8: 0007-gnu-bcunit-Enable-mem-trace-support.patch --]
[-- Type: text/x-patch, Size: 930 bytes --]

From 430bc171bc948d1350666575bd62984dd1526aaa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.9: 0008-gnu-bctoolbox-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1874 bytes --]

From 28d1d2369f6c5d4e25429c1a5c7c796281ea3e3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.10: 0009-gnu-bctoolbox-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1663 bytes --]

From 998bbda5aad3038a690b83580476e4ac56e75029 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.11: 0010-gnu-bctoolbox-Enable-decaf-support.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From 075c98bdb0bfa7632432dbd4f5e826e176dba199 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.12: 0011-gnu-belr-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1939 bytes --]

From 0d06d47006cfd7ee1446446ce793332f22355ecf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.13: 0012-gnu-belr-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2322 bytes --]

From 2c4cd1b4437a7d92e029e79218ec8d27c239c7e6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.14: 0013-gnu-belcard-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1923 bytes --]

From 187e4df880b18b3606c61154bb9039bcbf2774e3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.15: 0014-gnu-belcard-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1947 bytes --]

From 76aab981123ace59f320f62ded3bd93e796ac2e7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.16: 0015-gnu-bcmatroska2-Change-source.patch --]
[-- Type: text/x-patch, Size: 1333 bytes --]

From f94cbb3081d6b4ed59fc9ef94e5ab82317ddab93 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.17: 0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch --]
[-- Type: text/x-patch, Size: 913 bytes --]

From f44adcaa82e6c800293fd41afb79842df45753e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.18: 0017-gnu-bcg729-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3351 bytes --]

From c487293d21986019a92162c43b8d9e6ff3faf5a6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.19: 0018-gnu-bcg729-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1115 bytes --]

From 26301852706db96375e9669cfa01f77f7977ee68 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.20: 0019-gnu-ortp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1442 bytes --]

From aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.21: 0020-gnu-ortp-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1702 bytes --]

From 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.22: 0021-gnu-ortp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2286 bytes --]

From 7fe7aa78121467b19e11a88589eaea9662605772 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.23: 0022-gnu-ortp-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1038 bytes --]

From f3076dfd6a9a4c506e0c61950453c2843c5f7112 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.24: 0023-gnu-bztrp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1459 bytes --]

From db753921f89f63db65ea7ec3bc4e60dc3093772a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.25: 0024-gnu-bzrtp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1140 bytes --]

From a73a2d4c200072111b675295e84763c868f466e0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.26: 0025-gnu-bzrtp-Update-license.patch --]
[-- Type: text/x-patch, Size: 892 bytes --]

From ef057926e3a1f6e1334aadf114afeef93c69a7d7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.27: 0026-gnu-belle-sip-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1830 bytes --]

From dfa4c6c2dcf6b5e643cc76fedf4263e4cf93de64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.28: 0027-gnu-belle-sip-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3194 bytes --]

From 17a4f88266b97931d8070575bdb7d6ae19d1b5c5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.29: 0028-gnu-belle-sip-Enable-mDNS-support.patch --]
[-- Type: text/x-patch, Size: 2261 bytes --]

From 48d976256513575667b3a3b59756faa003e649a5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.30: 0029-gnu-belle-sip-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1130 bytes --]

From 63ce26b00ae6cbdc2b5914bdabcbc07034ee97fe Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.31: 0030-gnu-mediastreamer2-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 11144 bytes --]

From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <danmei.chen@belledonne-communications.com>
-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


[-- Attachment #1.1.32: 0031-gnu-mediastreamer2-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2719 bytes --]

From d957a35ae7bc2ee750f3e47e243d1cbbb6972826 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.33: 0032-gnu-mediastreamer2-Enable-PCAP-support.patch --]
[-- Type: text/x-patch, Size: 1270 bytes --]

From bb31d74bfb61ae3bcbf4509258ed19be9be4b0a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.34: 0033-gnu-mediastreamer2-Enable-port-audio-support.patch --]
[-- Type: text/x-patch, Size: 1090 bytes --]

From c2d99242acc55c50d5433c1068a45f7e2ec55d3d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.35: 0034-gnu-mediastreamer2-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1180 bytes --]

From 2b36386872adf9547229d581649a96b440047098 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.36: 0035-gnu-mediastreamer2-Enable-G729B-support.patch --]
[-- Type: text/x-patch, Size: 1052 bytes --]

From 74b1c2811dc3918630418c230748712c6fa31402 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.37: 0036-gnu-soci-Propagate-inputs.patch --]
[-- Type: text/x-patch, Size: 1013 bytes --]

From 41a8f916504fde059793d0c428512ef6c928da5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.38: 0037-gnu-Add-lime.patch --]
[-- Type: text/x-patch, Size: 3244 bytes --]

From 30c0515c5ec80da84a4e0e7ecbf8dff19fc16066 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.39: 0038-gnu-Add-build.patch --]
[-- Type: text/x-patch, Size: 3384 bytes --]

From a532e6049dbc80a54194c83b68373d8cbd4e0378 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <rg@raghavgururajan.name>
+;;;
+;;; 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


[-- Attachment #1.1.40: 0039-gnu-Add-libcutl.patch --]
[-- Type: text/x-patch, Size: 2593 bytes --]

From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.41: 0040-gnu-Add-libxsd-frontend.patch --]
[-- Type: text/x-patch, Size: 2947 bytes --]

From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.42: 0041-gnu-Add-cli.patch --]
[-- Type: text/x-patch, Size: 2736 bytes --]

From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.43: 0042-gnu-Add-xsd.patch --]
[-- Type: text/x-patch, Size: 2851 bytes --]

From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.44: 0043-gnu-liblinphone-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 7357 bytes --]

From 60de07aa98dbe450d5f4cc9873e04fbe52b8c05a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.45: 0044-gnu-liblinphone-Enable-LDAP-support.patch --]
[-- Type: text/x-patch, Size: 1625 bytes --]

From e99d0c95c27a21decf387e906d64a1b5f296302b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.46: 0045-gnu-liblinphone-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1153 bytes --]

From c9b7e475956ce93022d47d4978a8b3acd4a1ac60 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.47: 0046-gnu-linphoneqt-Update-to-4.2.5.patch --]
[-- Type: text/x-patch, Size: 21922 bytes --]

From aca8f7070d0c52e0dc8849e26f22f05d3f7243be Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <rg@raghavgururajan.name>
+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 <ronan.abhamon@belledonne-communications.com>
-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


[-- Attachment #1.1.48: 0047-gnu-linphone-desktop-Enable-daemon-interface.patch --]
[-- Type: text/x-patch, Size: 1027 bytes --]

From 38d6d306cc865cf3c322ce2489a7626ca2562219 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.49: 0048-gnu-linphone-desktop-Enable-console-interface.patch --]
[-- Type: text/x-patch, Size: 1004 bytes --]

From c481fc3cb56f07e0c61266fd78635d02aa062e25 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.50: 0049-gnu-linphone-desktop-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1131 bytes --]

From 859c5c00a283bf37732d31f339cc21311ba9a050 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.51: 0050-gnu-msopenh264-Update-to-1.2.1-21.patch --]
[-- Type: text/x-patch, Size: 3496 bytes --]

From 7120ab7a0d8348183c18e144cfbbddf1a7449949 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.52: 0051-gnu-mssilk-Update-to-1.1.1-8.patch --]
[-- Type: text/x-patch, Size: 2854 bytes --]

From 7cb8a299ba78efe5c1f222da1ef2b0c77b0c7003 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.53: 0052-gnu-mswebrtc-Update-to-1.1.1-23.patch --]
[-- Type: text/x-patch, Size: 3962 bytes --]

From 297168c9448af4cb31a190f37e6074dbca8e0c7f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.54: 0053-gnu-msamr-Update-to-1.1.3-11.patch --]
[-- Type: text/x-patch, Size: 3074 bytes --]

From badbc3847d58c36525539b263ed9197265e94c62 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
@ 2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
                         ` (7 more replies)
  2021-03-25  1:55     ` Maxim Cournoyer
                       ` (2 subsequent siblings)
  3 siblings, 8 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-22  4:44 UTC (permalink / raw)
  To: 47274; +Cc: Danny Milosavljevic, Léo Le Bouter, Maxim Cournoyer


[-- Attachment #1.1.1: Type: text/plain, Size: 762 bytes --]

Hello Guix!

> HELP! The app crashes upon launch.

Fixed it in the attached patch-set. The app works now. \o/

Anyway, I think we can do something for the following, w.r.t 
linphone-desktop:
[1] Warnings. Fixing them might prevent them to become errors.
[2] Better solution than symlinks in 'post-install phase. Because 
linphone-desktop should be able to read files in /lib and /share of 
*all* of its dependencies. Not just for those we made symlinks for, 
which is a temporary fix.

Regarding [1], for one of the warnings, I tried creating symlink 
"{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But is 
it the correct way?
Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but 
didn't work.

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-Add-libdecaf.patch --]
[-- Type: text/x-patch, Size: 3583 bytes --]

From 08aa3c9f46b1e78ea5e055cf0f321911ec94b334 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.3: 0002-gnu-bcunit-Update-to-3.0.2-13.patch --]
[-- Type: text/x-patch, Size: 2618 bytes --]

From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.4: 0003-gnu-bcunit-Enable-curses-support.patch --]
[-- Type: text/x-patch, Size: 1494 bytes --]

From 3f282a59899dda366e473236b5f96b84ef54e866 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.5: 0004-gnu-bcunit-Enable-documentation.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

From c90a23d65b76451620c4500f37aaaec7a311c2ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.6: 0005-gnu-bcunit-Enable-examples.patch --]
[-- Type: text/x-patch, Size: 4251 bytes --]

From 9b9f3bc1c8b3f1a1f64863cc360640a38a752514 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.7: 0006-gnu-bcunit-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2211 bytes --]

From fdad19e4ecc2c9ed82295e07a79b3c275bc99ec8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.8: 0007-gnu-bcunit-Enable-mem-trace-support.patch --]
[-- Type: text/x-patch, Size: 930 bytes --]

From 430bc171bc948d1350666575bd62984dd1526aaa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.9: 0008-gnu-bctoolbox-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1874 bytes --]

From 28d1d2369f6c5d4e25429c1a5c7c796281ea3e3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.10: 0009-gnu-bctoolbox-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1663 bytes --]

From 998bbda5aad3038a690b83580476e4ac56e75029 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.11: 0010-gnu-bctoolbox-Enable-decaf-support.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From 075c98bdb0bfa7632432dbd4f5e826e176dba199 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.12: 0011-gnu-belr-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1939 bytes --]

From 0d06d47006cfd7ee1446446ce793332f22355ecf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.13: 0012-gnu-belr-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2322 bytes --]

From 2c4cd1b4437a7d92e029e79218ec8d27c239c7e6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.14: 0013-gnu-belcard-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1923 bytes --]

From 187e4df880b18b3606c61154bb9039bcbf2774e3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.15: 0014-gnu-belcard-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1947 bytes --]

From 76aab981123ace59f320f62ded3bd93e796ac2e7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.16: 0015-gnu-bcmatroska2-Change-source.patch --]
[-- Type: text/x-patch, Size: 1333 bytes --]

From f94cbb3081d6b4ed59fc9ef94e5ab82317ddab93 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.17: 0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch --]
[-- Type: text/x-patch, Size: 913 bytes --]

From f44adcaa82e6c800293fd41afb79842df45753e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.18: 0017-gnu-bcg729-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3351 bytes --]

From c487293d21986019a92162c43b8d9e6ff3faf5a6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.19: 0018-gnu-bcg729-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1115 bytes --]

From 26301852706db96375e9669cfa01f77f7977ee68 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.20: 0019-gnu-ortp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1442 bytes --]

From aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.21: 0020-gnu-ortp-Seperate-outputs.patch --]
[-- Type: text/x-patch, Size: 1702 bytes --]

From 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.22: 0021-gnu-ortp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2286 bytes --]

From 7fe7aa78121467b19e11a88589eaea9662605772 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.23: 0022-gnu-ortp-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1038 bytes --]

From f3076dfd6a9a4c506e0c61950453c2843c5f7112 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.24: 0023-gnu-bztrp-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1459 bytes --]

From db753921f89f63db65ea7ec3bc4e60dc3093772a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.25: 0024-gnu-bzrtp-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 1140 bytes --]

From a73a2d4c200072111b675295e84763c868f466e0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.26: 0025-gnu-bzrtp-Update-license.patch --]
[-- Type: text/x-patch, Size: 892 bytes --]

From ef057926e3a1f6e1334aadf114afeef93c69a7d7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.27: 0026-gnu-belle-sip-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 1830 bytes --]

From dfa4c6c2dcf6b5e643cc76fedf4263e4cf93de64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.28: 0027-gnu-belle-sip-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 3194 bytes --]

From 17a4f88266b97931d8070575bdb7d6ae19d1b5c5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.29: 0028-gnu-belle-sip-Enable-mDNS-support.patch --]
[-- Type: text/x-patch, Size: 2261 bytes --]

From 48d976256513575667b3a3b59756faa003e649a5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.30: 0029-gnu-belle-sip-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1130 bytes --]

From 63ce26b00ae6cbdc2b5914bdabcbc07034ee97fe Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.31: 0030-gnu-mediastreamer2-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 11144 bytes --]

From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <danmei.chen@belledonne-communications.com>
-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


[-- Attachment #1.1.32: 0031-gnu-mediastreamer2-Enable-tests.patch --]
[-- Type: text/x-patch, Size: 2719 bytes --]

From d957a35ae7bc2ee750f3e47e243d1cbbb6972826 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.33: 0032-gnu-mediastreamer2-Enable-PCAP-support.patch --]
[-- Type: text/x-patch, Size: 1270 bytes --]

From bb31d74bfb61ae3bcbf4509258ed19be9be4b0a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.34: 0033-gnu-mediastreamer2-Enable-port-audio-support.patch --]
[-- Type: text/x-patch, Size: 1090 bytes --]

From c2d99242acc55c50d5433c1068a45f7e2ec55d3d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.35: 0034-gnu-mediastreamer2-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1180 bytes --]

From 2b36386872adf9547229d581649a96b440047098 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.36: 0035-gnu-mediastreamer2-Enable-G729B-support.patch --]
[-- Type: text/x-patch, Size: 1052 bytes --]

From 74b1c2811dc3918630418c230748712c6fa31402 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.37: 0036-gnu-soci-Propagate-inputs.patch --]
[-- Type: text/x-patch, Size: 1013 bytes --]

From 41a8f916504fde059793d0c428512ef6c928da5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.38: 0037-gnu-Add-lime.patch --]
[-- Type: text/x-patch, Size: 3244 bytes --]

From 30c0515c5ec80da84a4e0e7ecbf8dff19fc16066 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.39: 0038-gnu-Add-build.patch --]
[-- Type: text/x-patch, Size: 3384 bytes --]

From a532e6049dbc80a54194c83b68373d8cbd4e0378 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 <rg@raghavgururajan.name>
+;;;
+;;; 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


[-- Attachment #1.1.40: 0039-gnu-Add-libcutl.patch --]
[-- Type: text/x-patch, Size: 2593 bytes --]

From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.41: 0040-gnu-Add-libxsd-frontend.patch --]
[-- Type: text/x-patch, Size: 2947 bytes --]

From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.42: 0041-gnu-Add-cli.patch --]
[-- Type: text/x-patch, Size: 2736 bytes --]

From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.43: 0042-gnu-Add-xsd.patch --]
[-- Type: text/x-patch, Size: 2851 bytes --]

From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.44: 0043-gnu-liblinphone-Update-to-4.4.34.patch --]
[-- Type: text/x-patch, Size: 7357 bytes --]

From 60de07aa98dbe450d5f4cc9873e04fbe52b8c05a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.45: 0044-gnu-liblinphone-Enable-LDAP-support.patch --]
[-- Type: text/x-patch, Size: 1625 bytes --]

From e99d0c95c27a21decf387e906d64a1b5f296302b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.46: 0045-gnu-liblinphone-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1153 bytes --]

From c9b7e475956ce93022d47d4978a8b3acd4a1ac60 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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


[-- Attachment #1.1.47: 0046-gnu-linphoneqt-Update-to-4.2.5.patch --]
[-- Type: text/x-patch, Size: 22172 bytes --]

From cecc55c9100d5fd169975e059041fb5ddbcbb739 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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                     |  68 ++---
 .../linphone-desktop-without-sdk.patch        | 235 ++++++++++++++++++
 .../patches/linphoneqt-tabbutton.patch        |  96 -------
 4 files changed, 274 insertions(+), 127 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..981ff1f276 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,62 @@ 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"))
-                    (out (assoc-ref outputs "out")))
-               (symlink (string-append liblinphone "/share/sounds")
-                        (string-append out "/share/sounds"))
+             (let* ((out (assoc-ref outputs "out"))
+                    (liblinphone (assoc-ref inputs "liblinphone"))
+                    (belcard (assoc-ref inputs "belcard")))
+               ;; 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 files
+               ;; installed by the dependencies.
+               (symlink
+                (string-append liblinphone "/share/sounds")
+                (string-append out "/share/sounds"))
+               (symlink
+                (string-append belcard "/share/belr")
+                (string-append out "/share/belr"))
                #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 <rg@raghavgururajan.name>
+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 <ronan.abhamon@belledonne-communications.com>
-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


[-- Attachment #1.1.48: 0047-gnu-linphone-desktop-Enable-daemon-interface.patch --]
[-- Type: text/x-patch, Size: 1027 bytes --]

From c0401a1978c3ef43b7b546750f865d949e38efd5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 981ff1f276..b6cc35a494 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


[-- Attachment #1.1.49: 0048-gnu-linphone-desktop-Enable-console-interface.patch --]
[-- Type: text/x-patch, Size: 1004 bytes --]

From bfe6a2341710491ab4fec48c0e059627410bbee1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 b6cc35a494..6fd74bd878 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


[-- Attachment #1.1.50: 0049-gnu-linphone-desktop-Update-home-page-and-license.patch --]
[-- Type: text/x-patch, Size: 1131 bytes --]

From 7fbfc1506f601f8e26f35522b37b4ff5fe4d0b54 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 6fd74bd878..d14de08fc5 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -900,8 +900,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


[-- Attachment #1.1.51: 0050-gnu-msopenh264-Update-to-1.2.1-21.patch --]
[-- Type: text/x-patch, Size: 3496 bytes --]

From fa533c2d4ea4b0b5de9e602f411633433a58e808 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 d14de08fc5..28c914923c 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -904,44 +904,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


[-- Attachment #1.1.52: 0051-gnu-mssilk-Update-to-1.1.1-8.patch --]
[-- Type: text/x-patch, Size: 2854 bytes --]

From 5f17c2132cd7d36ebea030fe5a71aaf96ceb57d0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 28c914923c..458825cc5e 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -935,30 +935,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


[-- Attachment #1.1.53: 0052-gnu-mswebrtc-Update-to-1.1.1-23.patch --]
[-- Type: text/x-patch, Size: 3962 bytes --]

From 5bd300da4840ee3acec507c78d06666b3e88e93f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 458825cc5e..11d4a3343e 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -965,32 +965,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


[-- Attachment #1.1.54: 0053-gnu-msamr-Update-to-1.1.3-11.patch --]
[-- Type: text/x-patch, Size: 3074 bytes --]

From ff594dc1c83cdb6dd5661b03fbefe890d82b3e44 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
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 11d4a3343e..042cbec601 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1018,30 +1018,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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
@ 2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
  2021-03-29  4:03         ` Maxim Cournoyer
  2021-03-24  4:12       ` Maxim Cournoyer
                         ` (6 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-22  4:59 UTC (permalink / raw)
  To: 47274; +Cc: Danny Milosavljevic, Léo Le Bouter, Maxim Cournoyer


[-- Attachment #1.1: Type: text/plain, Size: 1304 bytes --]

Hello Guix!

> Fixed it in the attached patch-set. The app works now. \o/

Spoke too soon. :/

New error now.

> Anyway, I think we can do something for the following, w.r.t 
> linphone-desktop:
> [1] Warnings. Fixing them might prevent them to become errors.
> [2] Better solution than symlinks in 'post-install phase. Because 
> linphone-desktop should be able to read files in /lib and /share of 
> *all* of its dependencies. Not just for those we made symlinks for, 
> which is a temporary fix.
> 
> Regarding [1], for one of the warnings, I tried creating symlink 
> "{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But is 
> it the correct way?
> Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but 
> didn't work.

Looks like we need to do something about the [2]. The new error is 
because of that. I can fix this new error with another symlink, but new 
ones will keep happening.

Context:
The old error that I mentioned and fixed in my previous email is, 
"[Error]Core:linphone: Could not load grammar vcard_grammar because the 
file could not be located.".
The new error I am mentioning in this email is, "[Error]Core:linphone: 
Could not load grammar identity_grammar because the file could not be 
located."

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-20  4:26 [bug#47274] Linphone Packages Raghav Gururajan via Guix-patches via
  2021-03-21  6:13 ` Raghav Gururajan via Guix-patches via
@ 2021-03-24  2:25 ` Maxim Cournoyer
  2021-03-29  5:07   ` Raghav Gururajan via Guix-patches via
  1 sibling, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-24  2:25 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274, Danny Milosavljevic

Hi!

Raghav Gururajan <rg@raghavgururajan.name> writes:

> * 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))

Ending phases with #t is no longer required on core-updates, and we can
stop doing it on master and staging already too, to save us the hassle
of editing them out at some later point in time :-)

> +         (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)))

This inputs field seems unnecessary, especially we don't want to add a
dependency to Python 2, which is slowly being carved out of Guix.

> +    (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))))

I personally prefer the more compact (and common?) indentation of the
licenses list as:

    (license (list license:expat        ;library
                   license:bsd-2))))    ;python bindings

It's down to personal preferences, but I tend to value compactness in
thousand lines long modules :-).

I've made the following changes:

--8<---------------cut here---------------start------------->8---
1 file changed, 5 insertions(+), 15 deletions(-)
gnu/packages/crypto.scm | 20 +++++---------------

modified   gnu/packages/crypto.scm
@@ -116,40 +116,30 @@
                (("gmake")
                 "make")
                (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
-                "'..', '..', 'build', 'src', 'libdecaf.so'"))
-             #t))
+                "'..', '..', 'build', 'src', 'libdecaf.so'"))))
          (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))
+                       "--root=/"))))
          (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)))))
+               (copy-recursively "doc" dest)))))))
     (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))))
+    (license (list license:expat        ;library
+                   license:bsd-2))))    ;python bindings
 
 (define-public libsodium
   (package
--8<---------------cut here---------------end--------------->8---

And pushed as commit c221d49510.

Thank you!

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
@ 2021-03-24  4:12       ` Maxim Cournoyer
  2021-03-25 13:07       ` Maxim Cournoyer
                         ` (5 subsequent siblings)
  7 siblings, 0 replies; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-24  4:12 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274, Léo Le Bouter, Danny Milosavljevic

Hi again,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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.

Nitpick: there should be no space between (bcunit) and [source].

> [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"))

When not using an official release, a comment is in order to mention the
reason; in this case something like: "Use the latest commit as there
hasn't been a release in nearly 4 years." :-).

Also, why start the revision number at 13?  Perhaps the number of
commits since the last tagged release?  It's a detail, but since there
was no revision used before for this package, I'd expect it to start at
0.

> +    (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)))

Seems Perl is not actually needed.

>      (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,
                                     ^ a

>  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

I ended up squashing all the bcunit changes in one, as I found it a bit
too micro to manage.

I've edited the result slightly, mostly taking out #t, the examples
output (examples are doc after all):

--8<---------------cut here---------------start------------->8---
1 file changed, 18 insertions(+), 26 deletions(-)
gnu/packages/linphone.scm | 44 ++++++++++++++++++--------------------------

modified   gnu/packages/linphone.scm
@@ -60,7 +60,7 @@
 
 (define-public bcunit
   (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
-        (revision "13"))
+        (revision "0"))
     (package
       (name "bcunit")
       (version (git-version "3.0.2" revision commit))
@@ -74,16 +74,14 @@
          (sha256
           (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
       (build-system cmake-build-system)
-      (outputs '("out" "doc" "example"))
+      (outputs '("out" "doc"))
       (arguments
-       `(#:configure-flags
-         (list
-          "-DENABLE_STATIC=NO"
-          "-DENABLE_CURSES=ON"
-          "-DENABLE_DOC=ON"
-          "-DENABLE_EXAMPLES=ON"
-          "-DENABLE_TEST=ON"
-          "-DENABLE_MEMTRACE=ON")
+       `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                                 "-DENABLE_CURSES=ON"
+                                 "-DENABLE_DOC=ON"
+                                 "-DENABLE_EXAMPLES=ON"
+                                 "-DENABLE_TEST=ON"
+                                 "-DENABLE_MEMTRACE=ON")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'patch-source
@@ -99,36 +97,30 @@
                  (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
                   (string-append
                    "target_include_directories(bcunit_test PUBLIC Test)\n"
-                   "target_link_libraries(bcunit_test bcunit)")))
-               #t))
+                   "target_link_libraries(bcunit_test bcunit)")))))
            (replace 'check
              (lambda _
                (with-directory-excursion "BCUnit/Sources/Test"
-                 (invoke "./test_bcunit"))
-               #t))
-           (add-after 'install 'seperate-outputs
+                 (invoke "./test_bcunit"))))
+           (add-after 'install 'move-doc
              (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (doc (assoc-ref outputs "doc"))
-                      (example (assoc-ref outputs "example")))
+               (let ((out (assoc-ref outputs "out"))
+                     (doc (assoc-ref outputs "doc")))
                  (for-each mkdir-p
                            `(,(string-append doc "/share/doc")
-                             ,(string-append example "/share/BCUnit")))
+                             ,(string-append doc "/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)))
+                  (string-append doc "/share/BCUnit/Examples"))))))))
       (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.")
+      (description "BCUnit is a fork of the defunct project CUnit, with
+several fixes and patches applied.  It is a 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+))))
--8<---------------cut here---------------end--------------->8---

I've also "normalized" the commit message in a way that I think is more
typical.  Arguments such as phases, configure-flags, and such are
typically enclosed in a conditional marker (square brakets); e.g.:

--8<---------------cut here---------------start------------->8---
gnu: bcunit: Update to 3.0.2-0.74021cc and enable more features.

* gnu/packages/linphone.scm (bcunit)[source]: Switch to git repository.
[version]: Update to 3.0.2-0.74021cc.
[outputs]: Add a "doc" output.
[arguments]: Remove the tests? argument, enabling tests.
[configure-flags]: Enable curses, doc, examples, tests and memtrace.
[phases]{patch-source, move-doc}: New phases.
{check}: Override phase.
[inputs]: Add ncurses.
[description]: Fix typo.
--8<---------------cut here---------------end--------------->8---

That's all very subjective, but hoping you get a feel :-).

After having verified that bcunit's dependent packages could still be
built fine and testing the resulting linphoneqt, I've pushed the
squashed bcunit series as commit c2a9b05f02.

Thank you!

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
@ 2021-03-25  1:55     ` Maxim Cournoyer
  2021-03-29  5:13       ` Raghav Gururajan via Guix-patches via
  2021-03-28  4:01     ` Maxim Cournoyer
  2021-03-29  5:19     ` Maxim Cournoyer
  3 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-25  1:55 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> * 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

I've squashed the 3 bctoolbox commits together, adjusted the commit
message as below:

gnu: bctoolbox: Update to 4.4.34 and enable libdecaf, tests.

* gnu/packages/linphone.scm (bctoolbox)[version]: Update to 4.4.34.
[source]: Switch to git repository.
[arguments]: Remove tests? argument, enabling tests.
[phases]{patch-source}: New phase.
{check}: Override phase.
[inputs]: Add libdecaf.
[license]: Update to GPLv3+.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>

1 file changed, 33 insertions(+), 10 deletions(-)
gnu/packages/linphone.scm | 43 +++++++++++++++++++++++++++++++++----------

modified   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)
@@ -127,28 +128,50 @@ writing, 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 "https://gitlab.linphone.org/BC/public/bctoolbox.git")
+             (commit version)))

Used their HTTPS GitLab git here as its browsable;

+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6"))))
+        (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* (#:key inputs #:allow-other-keys)
+             ;; Fix decaf dependency (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).

Added an issue upstream for the problem worked around here.

+             (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")))
+             ;; The following test relies on networking; disable it.

Mentioned this had to do with networking, which is inherent to the
absence of networking in the Guix build container (otherwise it'd had
been good to report the test failure upstream).

+             (substitute* "tester/port.c"
+               (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\)")

Used .* to shorten the line below 80 chars ;-)

+                ""))))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "tester"
+               (invoke "./bctoolbox_tester")))))))
     (inputs
      `(("bcunit" ,bcunit)
+       ("decaf" ,libdecaf)
        ("mbedtls" ,mbedtls-apache)))
     (synopsis "Belledonne Communications Tool Box")
     (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+)))
 
Can't be pushed yet as it breaks stuff.

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
  2021-03-24  4:12       ` Maxim Cournoyer
@ 2021-03-25 13:07       ` Maxim Cournoyer
  2021-03-29  5:16         ` Raghav Gururajan via Guix-patches via
  2021-03-27  2:13       ` Maxim Cournoyer
                         ` (4 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-25 13:07 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274, Léo Le Bouter, Danny Milosavljevic

Hi Raghav,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> * 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 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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 aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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

I suggest squashing these into one patch like this:

--8<---------------cut here---------------start------------->8---
1 file changed, 13 insertions(+), 17 deletions(-)
gnu/packages/linphone.scm | 30 +++++++++++++-----------------

modified   gnu/packages/linphone.scm
@@ -363,15 +363,15 @@ such as conferencing.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/ortp")
+             (url "https://gitlab.linphone.org/BC/public/ortp")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc" "test"))
+    (outputs '("out" "doc" "tester"))
     (arguments
-     `(#:tests? #f                      ; Require networking
+     `(#:tests? #f                      ;requires networking
        #:configure-flags
        (list
         "-DENABLE_STATIC=NO"
@@ -380,20 +380,16 @@ such as conferencing.")
        (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"))
-                    (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))
-               (rename-file
-                (string-append out "/bin")
-                (string-append test "/bin")))
-             #t)))))
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc"))
+                   (doc-name (string-append ,name "-4.4.0"))
+                   (tester (assoc-ref outputs "tester")))
+               (for-each mkdir-p (list (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))
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))
--8<---------------cut here---------------end--------------->8---

Was there a reason to version the doc using the hard-coded 4.4.0 version
string rather than the package version?

Thanks,

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                         ` (2 preceding siblings ...)
  2021-03-25 13:07       ` Maxim Cournoyer
@ 2021-03-27  2:13       ` Maxim Cournoyer
  2021-03-29  5:52         ` Raghav Gururajan via Guix-patches via
  2021-03-27  5:05       ` Maxim Cournoyer
                         ` (3 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-27  2:13 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi, 
> From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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"))

The change of the output name from tester to test seems arbitrary :-).
I'd argue that "tester" makes more sense as this outputs contains a
tester binary or command rather than a test suite.

>      (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.

While it may seem obvious, I believe the comments helped the human brain
keep track of the process flow more cheaply; please don't remove them.

> -               (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)

I've squashed this one with the home page update and license change, as
they are small and are related to the update.

I still there's still stuff depending on this to be reviewed before it
can be pushed, so I'm amassing a stack here... please be patient :-)

Thank you,

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                         ` (3 preceding siblings ...)
  2021-03-27  2:13       ` Maxim Cournoyer
@ 2021-03-27  5:05       ` Maxim Cournoyer
  2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
  2021-03-27  5:11       ` Maxim Cournoyer
                         ` (2 subsequent siblings)
  7 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-27  5:05 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Raghav Gururajan <rg@raghavgururajan.name> writes:

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

This explanation would be better kept as a comment in the code :-).

> * 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)

Otherwise LGTM.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                         ` (4 preceding siblings ...)
  2021-03-27  5:05       ` Maxim Cournoyer
@ 2021-03-27  5:11       ` Maxim Cournoyer
  2021-03-28  4:05         ` Raghav Gururajan via Guix-patches via
  2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
  2021-03-28  0:52       ` Maxim Cournoyer
  2021-03-29  5:44       ` bug#47274: " Maxim Cournoyer
  7 siblings, 2 replies; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-27  5:11 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> * gnu/packages/codesynthesis.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> * gnu/packages/codesythesis.scm (build): New variable.

Why create a new module for this?  We already have (gnu packages
build-tools), which seem a good home.

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                         ` (5 preceding siblings ...)
  2021-03-27  5:11       ` Maxim Cournoyer
@ 2021-03-28  0:52       ` Maxim Cournoyer
  2021-03-29  5:55         ` Raghav Gururajan via Guix-patches via
  2021-03-29  5:44       ` bug#47274: " Maxim Cournoyer
  7 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-28  0:52 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274, Léo Le Bouter, Danny Milosavljevic

Hello,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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))

What is the above substitution for?  A comment would be helpful!

Thanks,

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
  2021-03-25  1:55     ` Maxim Cournoyer
@ 2021-03-28  4:01     ` Maxim Cournoyer
  2021-03-29  6:01       ` Raghav Gururajan via Guix-patches via
  2021-03-29  5:19     ` Maxim Cournoyer
  3 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-28  4:01 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi!

Raghav Gururajan <rg@raghavgururajan.name> writes:

> [39. text/x-patch; 0038-gnu-Add-build.patch]...

I had an old package of build from 2020 with a more fleshed out
description, so I've pushed that version instead as commit 65719505b8.

> From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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)

pkg-config turned out not to be needed.

> +  #: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))))

I removed the trailing #t.

> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:configure-flags
> +       (list
> +        "--disable-static"
> +        ;; "--with-external-boost"
> +        "--with-external-expat")))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))

Removed the native-inputs field.

> +    (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

And pushed as ae479f1834.

> From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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))

I could turn this patch phase into a make flag:

--8<---------------cut here---------------start------------->8---
        #:modules (((guix build copy-build-system) #:prefix copy:)
                   (guix build gnu-build-system)
                   (guix build utils))
+       #:make-flags (list (string-append "--include-dir="
+                                         (assoc-ref %build-inputs "build")
+                                         "/include/"))
        #: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")))))
          (delete 'configure)
          (replace 'install
--8<---------------cut here---------------end--------------->8---


> +         (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)))

Removed pkg-config, which was not needed.

> +    (inputs
> +     `(("libcutl" ,libcutl)
> +       ("libxerces-c" ,xerces-c)))
> +    (synopsis "XSD Front-end")
> +    (description "@package{libxsd-frontend} is a compiler frontend
> for the W3C

Replaced @package by @code, as the former is not valid Texinfo markup.

> +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

And pushed as 111004cc58.

>
> From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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")))

I used the same --include-dir make flag trick here.

> +             (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))

Dropped the #t, added a comment and added the prefix to the default
regexp group bound to 'all', like this:

+             ;; Add the namespace prefix, to avoid errors such as "error:
+             ;; ‘iterate_and_dispatch’ was not declared in this scope".
+             (substitute* (find-files "." "\\.?xx$")
+               (("add \\(typeid \\(type\\), \\*this\\);" all)
+                (string-append "traverser_map<B>::" all))
+               (("iterate_and_dispatch \\(s\\.names_begin.*;" all)
+                (string-append "edge_dispatcher::" all)))))

> +         (delete 'configure))))
> +    (native-inputs
> +     `(("build" ,build)
> +       ("pkg-config" ,pkg-config)))

Removed pkg-config, which was not needed.

> +    (inputs
> +     `(("libcutl" ,libcutl)))
> +    (synopsis "Command Line Interface (CLI) definition language")
> +    (description "@package{cli} is a domain-specific language (DSL)
> for defining

s/@package/@code/, as for the previous package.

> +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

And pushed as commit f649a0a557.

>
> From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg@raghavgururajan.name>
> 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))

I added a doc output to hold the multi-megabyte documentation and
examples and used the same make flag trick to allow finding build-0.3
files:

+    (outputs '("out" "doc"))            ;3.8 MiB of doc and examples
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list (string-append "--include-dir="
+                                         (assoc-ref %build-inputs "build")
+                                         "/include/")
+                          (string-append "install_prefix="
+                                         (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'move-doc
+                    (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/xsd")
+                                     (string-append doc "/share/doc/xsd-"
+                                                    ,version)))))
+                  (delete 'configure))))

> +         (delete 'configure))))
> +    (native-inputs
> +     `(("build" ,build)
> +       ("cli" ,cli)
> +       ("pkg-config" ,pkg-config)))

Dropped pkg-config here as well.

> +    (inputs
> +     `(("libcutl" ,libcutl)
> +       ("libnsl" ,libnsl)
> +       ("libxsd-frontend" ,libxsd-frontend)))
> +    (propagated-inputs
> +     `(("libexpat" ,expat)
> +       ("libxerces-c" ,xerces-c)))

I removed expat from propagated-inputs, as the xsd generated code
default to using xerces-c.  Someone wanting to use expat could add it
manually.  I've also added a comment like this, as it was not clear to
me initially why propagation was useful:

    (propagated-inputs
     ;; The code XSD generates requires the following library at run time;
     ;; propagate it for convenience.
     `(("xerces-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+)))

For this package, I also had an unfinished version locally; the
description was slightly more accurate, with an extra comment for the
license:

+    (synopsis "XML Data Binding for C++")
+    (description "CodeSynthesis XSD (also known as libxsd or xsdcxx) is an XML
+Schema to C++ data binding compiler.  Provided with an XML instance
+specification (XML Schema), it generates C++ classes that represent the given
+vocabulary as well as XML parsing and serialization code.  The data stored in
+XML can then be accessed using types and functions that semantically
+correspond to an application domain rather than dealing with the intricacies
+of reading and writing XML.")
+    (home-page "https://codesynthesis.com/projects/xsd/")
+    ;; Exceptions are made to allow using the generated source files as well
+    ;; as the libxsd library in free software projects whose license is
+    ;; incompatible with the GPL v2.  Refer to the file named FLOSSE for the
+    ;; details.

So I've used those parts and pushed as commit 510e24f973.

Phew.  I've now reached the core bits of the review, to be continued.

Thanks :-)

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-27  5:11       ` Maxim Cournoyer
@ 2021-03-28  4:05         ` Raghav Gururajan via Guix-patches via
  2021-03-28  4:43           ` Maxim Cournoyer
  2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
  1 sibling, 1 reply; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-28  4:05 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1: Type: text/plain, Size: 432 bytes --]

Hi Maxim!

> Why create a new module for this?  We already have (gnu packages
> build-tools), which seem a good home.

The idea is similar to suckless.scm and linphone.scm. This project has 
produce multiple software, which are often inter-connected and/or 
inter-dependent. So created dedicated module for this project 'Code 
Synthesis'.

Also, I will be adding more of their packages to this module.

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-28  4:05         ` Raghav Gururajan via Guix-patches via
@ 2021-03-28  4:43           ` Maxim Cournoyer
  2021-03-29  6:02             ` Raghav Gururajan via Guix-patches via
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-28  4:43 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hello Raghav,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> Hi Maxim!
>
>> Why create a new module for this?  We already have (gnu packages
>> build-tools), which seem a good home.
>
> The idea is similar to suckless.scm and linphone.scm. This project has
> produce multiple software, which are often inter-connected and/or 
> inter-dependent. So created dedicated module for this project 'Code
> Synthesis'.
>
> Also, I will be adding more of their packages to this module.
>
> Regards,
> RG.

OK, thanks for the answer.

As I've answered on IRC, so far, the (gnu packgaes cpp) module seems
sufficient; it's a relatively small module itself.  The problem I see
with having codesynthesis as a module is that it'd be misleading as a
module name: not all their tools are about code synthesis (that's their
company name, but that's not obvious!  I got confused that way when
first looking at your patch series).

I've merged the codesynthesis packgaes in the cpp module already; if it
becomes a problem we can revisit this choice.

Thank you,

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
@ 2021-03-29  4:03         ` Maxim Cournoyer
  2021-03-29  6:05           ` Raghav Gururajan via Guix-patches via
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-29  4:03 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi Raghav!

Raghav Gururajan <rg@raghavgururajan.name> writes:

> Hello Guix!
>
>> Fixed it in the attached patch-set. The app works now. \o/
>
> Spoke too soon. :/
>
> New error now.
>
>> Anyway, I think we can do something for the following, w.r.t
>> linphone-desktop:
>> [1] Warnings. Fixing them might prevent them to become errors.
>> [2] Better solution than symlinks in 'post-install phase. Because
>> linphone-desktop should be able to read files in /lib and /share of 
>> *all* of its dependencies. Not just for those we made symlinks for,
>> which is a temporary fix.
>> Regarding [1], for one of the warnings, I tried creating symlink 
>> "{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But
>> is it the correct way?
>> Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but
>> didn't work.
>
> Looks like we need to do something about the [2]. The new error is
> because of that. I can fix this new error with another symlink, but
> new ones will keep happening.
>
> Context:
> The old error that I mentioned and fixed in my previous email is,
> "[Error]Core:linphone: Could not load grammar vcard_grammar because
> the file could not be located.".
> The new error I am mentioning in this email is, "[Error]Core:linphone:
> Could not load grammar identity_grammar because the file could not be 
> located."
>
> Regards,
> RG.

I think I've managed to fix the issue, with the following:

--8<---------------cut here---------------start------------->8---
 (let* ((out (assoc-ref outputs "out"))
                    (liblinphone (assoc-ref inputs "liblinphone"))
                    (grammar-dest (string-append out
                    "/share/belr/grammars")))
               [...]     
               (mkdir-p (dirname grammar-dest))
               (symlink (string-append liblinphone "/share/belr/grammars")
                        grammar-dest)
--8<---------------cut here---------------end--------------->8---

At least it launches now, and everything seems to work.

Will submit it soon!

Thank you :-)

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-24  2:25 ` Maxim Cournoyer
@ 2021-03-29  5:07   ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:07 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274, Danny Milosavljevic


[-- Attachment #1.1.1: Type: text/plain, Size: 2794 bytes --]

Hi Maxim!

> Ending phases with #t is no longer required on core-updates, and we can
> stop doing it on master and staging already too, to save us the hassle
> of editing them out at some later point in time :-)

Agreed.

> This inputs field seems unnecessary, especially we don't want to add a
> dependency to Python 2, which is slowly being carved out of Guix.

Makes sense.

> I've made the following changes:
> 
> --8<---------------cut here---------------start------------->8---
> 1 file changed, 5 insertions(+), 15 deletions(-)
> gnu/packages/crypto.scm | 20 +++++---------------
> 
> modified   gnu/packages/crypto.scm
> @@ -116,40 +116,30 @@
>                  (("gmake")
>                   "make")
>                  (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
> -                "'..', '..', 'build', 'src', 'libdecaf.so'"))
> -             #t))
> +                "'..', '..', 'build', 'src', 'libdecaf.so'"))))
>            (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))
> +                       "--root=/"))))
>            (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)))))
> +               (copy-recursively "doc" dest)))))))
>       (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))))
> +    (license (list license:expat        ;library
> +                   license:bsd-2))))    ;python bindings
>   
>   (define-public libsodium
>     (package
> --8<---------------cut here---------------end--------------->8---
> 
> And pushed as commit c221d49510.

Thank you!

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-25  1:55     ` Maxim Cournoyer
@ 2021-03-29  5:13       ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:13 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 665 bytes --]

Hi Maxim!

> I've squashed the 3 bctoolbox commits together, adjusted the commit
> message as below:

Thanks.

> Used their HTTPS GitLab git here as its browsable;

Okay. I prefer git://git.linphone.org, as it is generic and not tied to 
specific platform and will even work when upstream moves to another 
platform like gitea etc., but no big deal.

> Added an issue upstream for the problem worked around here.

Cool.

> Mentioned this had to do with networking, which is inherent to the
> absence of networking in the Guix build container (otherwise it'd had
> been good to report the test failure upstream).

Makes sense.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-25 13:07       ` Maxim Cournoyer
@ 2021-03-29  5:16         ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:16 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274, Léo Le Bouter, Danny Milosavljevic


[-- Attachment #1.1.1: Type: text/plain, Size: 301 bytes --]

Hi Maxim!

> I suggest squashing these into one patch like this:

Cool.

> Was there a reason to version the doc using the hard-coded 4.4.0 version
> string rather than the package version?

This package used the version-series (4.4.0), instead of version-string 
(4.4.X).

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
                       ` (2 preceding siblings ...)
  2021-03-28  4:01     ` Maxim Cournoyer
@ 2021-03-29  5:19     ` Maxim Cournoyer
  2021-03-29  6:12       ` Raghav Gururajan via Guix-patches via
  3 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-29  5:19 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hello Raghav!  This addresses the review up to linphone-desktop (mostly
done with this ticket!).

I'm afraid commenting on all the small changes I've done to the original
submission would take us through the night; if you don't mind I invite
you to consult the changes now merged into master.

I'll try to summarize the higher value bits here:

1. bctoolbox

@@ -133,19 +138,21 @@ writing, administering, and running unit tests in C.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/bctoolbox")
+             (url "https://gitlab.linphone.org/BC/public/bctoolbox.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
     (build-system cmake-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:configure-flags '("-DENABLE_STATIC=OFF")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
+         (add-after 'unpack 'patch-cmake
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; Fix decaf dependency.
+             ;; Fix decaf dependency (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).

I've reported the issue upstream.

              (let* ((decaf (assoc-ref inputs "decaf")))
                (substitute* (find-files "." "CMakeLists.txt")
                  (("find_package\\(Decaf CONFIG\\)")
@@ -153,17 +160,28 @@ writing, administering, and running unit tests in C.")
                  (("\\$\\{DECAF_INCLUDE_DIRS\\}")
                   (string-append decaf "/include/decaf"))
                  (("\\$\\{DECAF_TARGETNAME\\}")
-                  "decaf")))
-             ;; Disable failing tests.
+                  "decaf")))))
+         (add-after 'unpack 'skip-problematic-tests
+           (lambda _
+             ;; The following test relies on networking; disable it.
              (substitute* "tester/port.c"
-               (("[ \t]*TEST_NO_TAG\\(\"Addrinfo sort\", bctbx_addrinfo_sort_test\\)")
-                ""))
-             #t))
+               (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\)")
+                ""))))
+         (add-after 'unpack 'fix-installed-resource-directory-detection
+           (lambda _
+             ;; There's some broken logic in tester.c that checks if CWD, or
+             ;; if its parent exist, and if so, sets the prefix where the test
+             ;; resources are looked up to; disable it (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/4).
+             (substitute* "src/tester.c"
+               (("if \\(file_exists\\(\".\"\\)\\)")
+                "if (NULL)")
+               (("if \\(file_exists\\(\"..\"\\)\\)")
+                "if (NULL)"))))

I figured a way to have the bctoolbox library refer to its resource
directory more correctly, at least for our uses of it.

2. belr

@@ -181,41 +200,42 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belr")
+             (url "https://gitlab.linphone.org/BC/public/belr.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0w2canwwm0qb99whnangvaybvjzq8xg6vksqxykgr8fbx7clw03h"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "debug" "tester"))

I've settled to keep 'tester', which was already used in the module and
which better maps to what this output is (a tester binary to run self tests).

     (arguments
      `(#: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
+         (delete 'check)                ;moved after the install phase
+         (add-after 'install 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((tester (assoc-ref outputs "tester"))
+                    (belr_tester (string-append tester "/bin/belr_tester"))
+                    (tester-share (string-append tester "/share/belr_tester")))
+               (invoke belr_tester))))
+         (add-after 'install 'move-tester
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester")))
+                    (tester (assoc-ref outputs "tester")))
                (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
                (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
+                (string-append out "/bin/belr_tester")
+                (string-append tester "/bin/belr_tester"))
                (rename-file
                 (string-append out "/share/belr-tester")
-                (string-append test "/share/" test-name)))
-             #t)))))
+                ;; The detect_res_prefix procedure in bctoolbox's tester.c
+                ;; resolves the resource path based on the executable path and
+                ;; name, so have it match.
+                (string-append tester "/share/belr_tester"))))))))

Here I noticed the code relies on the tester file name to resolve its
resources, so adapted the resource install directory to match.

     (inputs
-     `(("bctoolbox" ,bctoolbox)
-       ("libudev" ,eudev)))

Dropped eudev, apparently unnecessary.

+     `(("bctoolbox" ,bctoolbox)))
     (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

3. belcard

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belcard")
+             (url "https://gitlab.linphone.org/BC/public/belcard.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "debug" "tester"))
     (arguments
-     `(#:tests? #f ; FIX-ME
+     `(#:tests? #t
        #:configure-flags '("-DENABLE_STATIC=OFF")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'seperate-outputs
+         (add-after 'unpack 'patch-vcard-grammar-location
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester")))
+                    (vcard-grammar
+                     (string-append out "/share/belr/grammars/vcard_grammar")))
+               (substitute* "include/belcard/vcard_grammar.hpp"
+                 (("define VCARD_GRAMMAR \"vcard_grammar\"")
+                  (format #f "define VCARD_GRAMMAR ~s" vcard-grammar))))))
+         (add-after 'install 'install-tester
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (tester (assoc-ref outputs "tester"))
+                   (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)))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
+               (rename-file (string-append out "/bin/" test-name)
+                            (string-append tester "/bin/" test-name))
+               (rename-file (string-append out "/share/" test-name)
+                            (string-append tester "/share/" test-name)))))
+         (delete 'check)
+         (add-after 'install-tester 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (let* ((tester (assoc-ref outputs "tester"))
+                      (belcard_tester (string-append tester
+                                                     "/bin/belcard_tester")))
+                 (invoke belcard_tester))))))))

I've found that moving the check phase after installing, along with the
resource fix made for belr allowed the test suite to run, so I enabled it.

     (inputs
      `(("bctoolbox" ,bctoolbox)
-       ("belr" ,belr)
-       ("libudev" ,eudev)))

eudev was here also unnecessary, as well as python.

+       ("belr" ,belr)))
     (synopsis "Belledonne Communications VCard Library")
     (description "Belcard is a C++ library to manipulate VCard standard
 format.")

4. ortp

 (define-public ortp
   (package
@@ -363,37 +407,40 @@ such as conferencing.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/ortp")
+             (url "https://gitlab.linphone.org/BC/public/ortp.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc" "test"))
+    (outputs '("out""tester"
+               "doc"))                  ;1.5 MiB of HTML doc

Added a comment about why we are adding a 'doc' output.

     (arguments
-     `(#:tests? #f                      ; Require networking
-       #:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_TESTS=YES")
+     `(#:tests? #f                      ;requires networking
+       #:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_TESTS=YES")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'seperate-outputs
+         (add-after 'unpack 'fix-version-strings
+           ;; See: https://gitlab.linphone.org/BC/public/ortp/-/issues/5.
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+                (string-append "VERSION " ,version))
+               (("\\$\\{ORTP_DOC_VERSION\\}")
+                ,version))))

Here I've found an issue where some CMake variables were not set,
causing the doc to be installed in a 'ortp-' named directory.

+         (add-after 'install 'separate-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"))
-                    (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))
-               (rename-file
-                (string-append out "/bin")
-                (string-append test "/bin")))
-             #t)))))
+                    (doc-src (string-append out "/share/doc/ortp-" ,version))
+                    (doc-dest (string-append doc "/share/doc/ortp-" ,version))
+                    (tester (assoc-ref outputs "tester")))
+               (for-each mkdir-p (list (string-append doc "/share/doc")
+                                       (string-append tester "/bin")))
+               (rename-file doc-src doc-dest)
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))))))))

Which simplified moving the doc directory.

     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))

5: mediastreamer2

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/mediastreamer2")
+             (url "https://gitlab.linphone.org/BC/public/mediastreamer2.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
-    (outputs '("out" "doc" "test"))
+    (outputs '("out" "doc" "tester"))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_PCAP=YES"
-        "-DENABLE_STRICT=NO"       ; To disable strict compile options
-        "-DENABLE_PORTAUDIO=YES"
-        "-DENABLE_G729B_CNG=YES")
+     `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_PCAP=YES"
+                               ;; Do not fail on compile warnings.
+                               "-DENABLE_STRICT=NO"
+                               "-DENABLE_PORTAUDIO=YES"
+                               "-DENABLE_G729B_CNG=YES")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+                (string-append "VERSION " ,version)))))
          (add-after 'unpack 'patch-source
            (lambda _
              (substitute* "src/otherfilters/mspcapfileplayer.c"
-               (("O_BINARY") "L_INCR"))
-             #t))
+               (("O_BINARY") "L_INCR"))))
          (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))
+             (setenv "HOME" (getenv "TEMP"))))
+         (delete 'check)                ;move after install
          (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"))
+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name (string-append ,name "_tester"))
                     (doc (assoc-ref outputs "doc"))
-                    (doc-name (string-append ,name "-4.4.0")))
+                    (doc-name (string-append ,name "-" ,version)))
                (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)))))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")
+                               (string-append doc "/share/doc")))
+               ;; Move the tester executable.
+               (rename-file (string-append out "/bin/" tester-name)
+                            (string-append tester "/bin/" tester-name))
+               ;; Move the tester data files.
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name))
+               ;; Move the HTML documentation.
+               (rename-file (string-append out "/share/doc/" doc-name)
+                            (string-append doc "/share/doc/" doc-name)))))

I moved the check phase after the installation, which allowed not having
to copy the binary or resource files, and reinstated some comments.

+         (add-after 'separate-outputs 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((tester (string-append  (assoc-ref outputs "tester")
+                                           "/bin/mediastreamer2_tester")))
+               (for-each (lambda (suite-name)
+                           (invoke tester "--suite" suite-name))
+                         ;; Some tests fail, due to requiring access to the
+                         ;; sound card or the network.

Added a comment of why some tests are not enabled.

+                           (list "Basic Audio"
+                                 ;; "Sound Card"
+                                 ;; "AdaptiveAlgorithm"
+                                 ;; "AudioStream"
+                                 ;; "VideoStream"
+                                 "H26x Tools"
+                                 "Framework"
+                                 ;; "Player"
+                                 "TextStream"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)

6. belle-sip

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belle-sip")
+             (url "https://gitlab.linphone.org/BC/public/belle-sip.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kknnlczq7dpqaj1dwxvy092dzrqjy11ndkv90rqwmdryigkjk6z"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "tester"))
     (arguments
-     `(#:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_MDNS=ON")
+     `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_MDNS=ON")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
@@ -514,58 +512,44 @@ including both ARM and x86.")
              (substitute* "src/CMakeLists.txt"
                ;; 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
+               (("-Xmultithreaded ") ""))))
+         (delete 'check)                ;move after install
+         (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 "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)))

Python was not needed.

+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name "belle_sip_tester"))
+               (for-each mkdir-p (list (string-append tester "/bin")
+                                       (string-append tester "/share")))
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name)))))
+         (add-after 'separate-outputs 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((tester (string-append (assoc-ref outputs "tester")
+                                          "/bin/belle_sip_tester")))
+               (for-each (lambda (suite-name)
+                           (invoke 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"))))))))

This is the same trick as done earlier, moving the check phase after the
install phase.
     
     (inputs
-     `(("antlr3" ,antlr3-3.3)
-       ("antlr3c" ,libantlr3c)
-       ("avahi" ,avahi)
+     `(("avahi" ,avahi)
        ("bctoolbox" ,bctoolbox)
-       ("java" ,icedtea)
        ("zlib" ,zlib)))

Java was not needed, nor was antlr3 or libantlr3c.

     (synopsis "Belledonne Communications SIP Library")
     (description "Belle-sip is a modern library implementing SIP transport,

7. liblinphone

--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -25,7 +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 cpp)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
@@ -739,36 +739,34 @@ device.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.linphone.org/BC/public/liblinphone")
+             (url "https://gitlab.linphone.org/BC/public/liblinphone.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1lwabr93jw24y04pdqnw9dgg8jb3lzfplyx19f83jgp9dj8kmfq9"))))
-    (outputs '("out" "test"))
+    (outputs '("out" "tester"))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; Tests require networking
-       #:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_LDAP=YES")
+       #:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_DOC=NO" ;requires unpackaged javasphinx
+                               "-DENABLE_LDAP=YES")
        #: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")))
+                    (tester (assoc-ref outputs "tester"))
+                    (tester-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)))))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
+               (rename-file (string-append out "/bin/" tester-name)
+                            (string-append tester "/bin/" tester-name))
+               (rename-file (string-append out "/bin/groupchat_benchmark")
+                            (string-append tester "/bin/groupchat_benchmark"))
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)

Not much else than copying the groupchat_benchmark 500 KiB command with
the tester, where it belonged according to the build system.

8. linphone-desktop

Finally :-)

         (base32 "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"))
        (patches (search-patches "linphone-desktop-without-sdk.patch"))))
     (build-system qt-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list
-        "-DENABLE_UPDATE_CHECK=NO")
+       #:configure-flags (list "-DENABLE_UPDATE_CHECK=NO"
+                               "-DENABLE_DAEMON=YES"
+                               "-DENABLE_CONSOLE_UI=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'pre-configure
            (lambda _
-             (for-each make-file-writable (find-files "."))
+             (make-file-writable "linphone-app/linphoneqt_version.cmake")
              (substitute* "linphone-app/linphoneqt_version.cmake"
-               (("\\$\\{GUIX-SET-VERSION\\}") ,version))
-             #t))
+               (("\\$\\{GUIX-SET-VERSION\\}") ,version))))
          (add-after 'install 'post-install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (liblinphone (assoc-ref inputs "liblinphone"))
-                    (belcard (assoc-ref inputs "belcard")))
+                    (grammar-dest (string-append out "/share/belr/grammars")))
                ;; 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 files
                ;; installed by the dependencies.
-               (symlink
-                (string-append liblinphone "/share/sounds")
-                (string-append out "/share/sounds"))
-               (symlink
-                (string-append belcard "/share/belr")
-                (string-append out "/share/belr"))
-               #t))))))
+               (symlink (string-append liblinphone "/share/sounds")
+                        (string-append out "/share/sounds"))
+               (mkdir-p (dirname grammar-dest))
+               (symlink (string-append liblinphone "/share/belr/grammars")
+                        grammar-dest)))))))

I've found that only liblinphone resources were necessary to have the
application not crash.

     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("belcard" ,belcard)
-       ("bellesip" ,belle-sip)

Removed this unnecessary input.

        ("belr" ,belr)
        ("liblinphone" ,liblinphone)
        ("mediastreamer2" ,mediastreamer2)
@@ -883,8 +880,11 @@ 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 linphoneqt
+  (deprecated-package "linphoneqt" linphone-desktop))

Added this for easing the migration for people having linphoneqt in
their profile.

Phew!  There's just 4 patches left to review, about codec updates.  I'll
look at them soon.  Many thanks for this
big effort and fine work! :-)

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#47274: Linphone Packages
  2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
                         ` (6 preceding siblings ...)
  2021-03-28  0:52       ` Maxim Cournoyer
@ 2021-03-29  5:44       ` Maxim Cournoyer
  2021-03-29  6:13         ` [bug#47274] " Raghav Gururajan via Guix-patches via
  7 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-29  5:44 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274-done

Hi Raghav,

I've pushed the last 4 commits with a99932503e along the previous
reviewed ones to master, after checking that every dependents could
build fine.

Thanks again!

Closing.

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-27  2:13       ` Maxim Cournoyer
@ 2021-03-29  5:52         ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:52 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 585 bytes --]

Hi Maxim!

> The change of the output name from tester to test seems arbitrary :-).
> I'd argue that "tester" makes more sense as this outputs contains a
> tester binary or command rather than a test suite.

Agreed, as we discussed this in IRC.

> While it may seem obvious, I believe the comments helped the human brain
> keep track of the process flow more cheaply; please don't remove them.

Oops. sorry about that.

> I've squashed this one with the home page update and license change, as
> they are small and are related to the update.

Thanks!

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-27  5:05       ` Maxim Cournoyer
@ 2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:53 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 187 bytes --]

Hi Maxim!

>> Headers of soci has include-references to headers of these inputs.
> 
> This explanation would be better kept as a comment in the code :-).

Agreed.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-27  5:11       ` Maxim Cournoyer
  2021-03-28  4:05         ` Raghav Gururajan via Guix-patches via
@ 2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
  1 sibling, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:53 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 179 bytes --]

Hi Maxim!

> Why create a new module for this?  We already have (gnu packages
> build-tools), which seem a good home.

Agreed, as we discussed this in IRC.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-28  0:52       ` Maxim Cournoyer
@ 2021-03-29  5:55         ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  5:55 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274, Léo Le Bouter, Danny Milosavljevic


[-- Attachment #1.1.1: Type: text/plain, Size: 200 bytes --]

Hi Maxim!

> What is the above substitution for?  A comment would be helpful!

It is for gcc 7+ and its related C++ standard support. The code was 
initially written for gcc 4.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-28  4:01     ` Maxim Cournoyer
@ 2021-03-29  6:01       ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  6:01 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 1427 bytes --]

Hi Maxim!

> I had an old package of build from 2020 with a more fleshed out
> description, so I've pushed that version instead as commit 65719505b8.

Sounds good.

> pkg-config turned out not to be needed.
> 
> I removed the trailing #t.
> 
> Removed the native-inputs field.
> 
> And pushed as ae479f1834.
> 
> I could turn this patch phase into a make flag:
> 
> Removed pkg-config, which was not needed.
> 
> Replaced @package by @code, as the former is not valid Texinfo markup.
> 
> And pushed as 111004cc58.
> 
> I used the same --include-dir make flag trick here.
> 
> Removed pkg-config, which was not needed.
> 
> s/@package/@code/, as for the previous package.
> 
> And pushed as commit f649a0a557.
> 
> I added a doc output to hold the multi-megabyte documentation and
> examples and used the same make flag trick to allow finding build-0.3
> files:
> 
> Dropped pkg-config here as well.
> 
> I removed expat from propagated-inputs, as the xsd generated code
> default to using xerces-c.  Someone wanting to use expat could add it
> manually.  I've also added a comment like this, as it was not clear to
> me initially why propagation was useful:

Thanks a lot for making the changes.

> For this package, I also had an unfinished version locally; the
> description was slightly more accurate, with an extra comment for the
> license:

Sounds good.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-28  4:43           ` Maxim Cournoyer
@ 2021-03-29  6:02             ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  6:02 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 587 bytes --]

Hi Maxim!

> As I've answered on IRC, so far, the (gnu packgaes cpp) module seems
> sufficient; it's a relatively small module itself.  The problem I see
> with having codesynthesis as a module is that it'd be misleading as a
> module name: not all their tools are about code synthesis (that's their
> company name, but that's not obvious!  I got confused that way when
> first looking at your patch series).

Agreed.

> I've merged the codesynthesis packgaes in the cpp module already; if it
> becomes a problem we can revisit this choice.

Sounds good.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29  4:03         ` Maxim Cournoyer
@ 2021-03-29  6:05           ` Raghav Gururajan via Guix-patches via
  2021-03-29 18:38             ` Maxim Cournoyer
  0 siblings, 1 reply; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  6:05 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 961 bytes --]

Hi Maxim!

> I think I've managed to fix the issue, with the following:
> 
> --8<---------------cut here---------------start------------->8---
>   (let* ((out (assoc-ref outputs "out"))
>                      (liblinphone (assoc-ref inputs "liblinphone"))
>                      (grammar-dest (string-append out
>                      "/share/belr/grammars")))
>                 [...]
>                 (mkdir-p (dirname grammar-dest))
>                 (symlink (string-append liblinphone "/share/belr/grammars")
>                          grammar-dest)
> --8<---------------cut here---------------end--------------->8---
> 
> At least it launches now, and everything seems to work.

Thanks a lot. Btw, did you try restarting the app multiple-times? 
Different error (missing /share/stuff) popped-up, each time.

I also wonder why wrapping XDG_DATA_DIRS doesn't work, as it will give 
access to {all-inputs}/share/stuff.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29  5:19     ` Maxim Cournoyer
@ 2021-03-29  6:12       ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  6:12 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 1852 bytes --]

Hi Maxim!

> I'm afraid commenting on all the small changes I've done to the original
> submission would take us through the night; if you don't mind I invite
> you to consult the changes now merged into master.

No worries!

> 1. bctoolbox
> 
> I've reported the issue upstream.
> 
> 2. belr
> 
> I've settled to keep 'tester', which was already used in the module and
> which better maps to what this output is (a tester binary to run self tests).
> 
> Here I noticed the code relies on the tester file name to resolve its
> resources, so adapted the resource install directory to match.
> 
> 3. belcard
> 
> eudev was here also unnecessary, as well as python.
> 
> 4. ortp
> 
> Added a comment about why we are adding a 'doc' output.
> 
> Here I've found an issue where some CMake variables were not set,
> causing the doc to be installed in a 'ortp-' named directory.
> 
> Which simplified moving the doc directory.
> 
> 5: mediastreamer2
> 
> I moved the check phase after the installation, which allowed not having
> to copy the binary or resource files, and reinstated some comments.
> 
> Added a comment of why some tests are not enabled.
> 
> 6. belle-sip
> 
> Python was not needed.
> 
> This is the same trick as done earlier, moving the check phase after the
> install phase.
> 
> Java was not needed, nor was antlr3 or libantlr3c.
> 
> 7. liblinphone
> 
> Not much else than copying the groupchat_benchmark 500 KiB command with
> the tester, where it belonged according to the build system.
> 
> 8. linphone-desktop
> 
> I've found that only liblinphone resources were necessary to have the
> application not crash.
> 
> Removed this unnecessary input.
> 
> Added this for easing the migration for people having linphoneqt in
> their profile.

Huge thanks!

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29  5:44       ` bug#47274: " Maxim Cournoyer
@ 2021-03-29  6:13         ` Raghav Gururajan via Guix-patches via
  2021-03-29 18:39           ` Maxim Cournoyer
  0 siblings, 1 reply; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29  6:13 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274-done


[-- Attachment #1.1.1: Type: text/plain, Size: 101 bytes --]

Hi Maxim!

> Thanks again!
> 
> Closing.

Couldn't have done it without you.

Regards,
RG.

[-- Attachment #1.1.2: OpenPGP_0x5F5816647F8BE551.asc --]
[-- Type: application/pgp-keys, Size: 2649 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29  6:05           ` Raghav Gururajan via Guix-patches via
@ 2021-03-29 18:38             ` Maxim Cournoyer
  2021-03-29 18:47               ` Raghav Gururajan via Guix-patches via
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-29 18:38 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi Raghav,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> Hi Maxim!
>
>> I think I've managed to fix the issue, with the following:
>> --8<---------------cut here---------------start------------->8---
>>   (let* ((out (assoc-ref outputs "out"))
>>                      (liblinphone (assoc-ref inputs "liblinphone"))
>>                      (grammar-dest (string-append out
>>                      "/share/belr/grammars")))
>>                 [...]
>>                 (mkdir-p (dirname grammar-dest))
>>                 (symlink (string-append liblinphone "/share/belr/grammars")
>>                          grammar-dest)
>> --8<---------------cut here---------------end--------------->8---
>> At least it launches now, and everything seems to work.
>
> Thanks a lot. Btw, did you try restarting the app multiple-times?
> Different error (missing /share/stuff) popped-up, each time.

Yes! Both running the binary directly from the store or in a pure
environment, multiple times have worked after the above change.  Do you
experience failures still?

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29  6:13         ` [bug#47274] " Raghav Gururajan via Guix-patches via
@ 2021-03-29 18:39           ` Maxim Cournoyer
  0 siblings, 0 replies; 34+ messages in thread
From: Maxim Cournoyer @ 2021-03-29 18:39 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: 47274

Hi Raghav,

Raghav Gururajan <rg@raghavgururajan.name> writes:

> Hi Maxim!
>
>> Thanks again!
>> Closing.
>
> Couldn't have done it without you.

Thanks for taking the time to reply to each email, eh!

Have a great week,

Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#47274] Linphone Packages
  2021-03-29 18:38             ` Maxim Cournoyer
@ 2021-03-29 18:47               ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 34+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-03-29 18:47 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47274


[-- Attachment #1.1.1: Type: text/plain, Size: 426 bytes --]

Hi Maxim!

> Yes! Both running the binary directly from the store or in a pure
> environment, multiple times have worked after the above change.  Do you
> experience failures still?

Yes! Connection to linphone account fails due to missing 
/share/linphone/rootca.pem and loading of codecs fails due to missing 
/lib. I have fixed them in the attached patch. Could you merge it please?

Thank you!

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-linphone-desktop-Fix-functionality.patch --]
[-- Type: text/x-patch, Size: 1658 bytes --]

From a974271757ea113e9b757c2f520273e774134b6a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 29 Mar 2021 03:19:09 -0400
Subject: [PATCH] gnu: linphone-desktop: Fix functionality.

* gnu/packages/linphone.scm (linphone-desktop)[phases](post-install): Modify phase.
---
 gnu/packages/linphone.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 2107560aa0..deda49a4bc 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -839,10 +839,14 @@ and video calls or instant messaging capabilities to an application.")
                ;; 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 files
+               ;; refers to its own directories, which lacks files
                ;; installed by the dependencies.
+               (symlink (string-append liblinphone "/lib")
+                        (string-append out "/lib"))
                (symlink (string-append liblinphone "/share/sounds")
                         (string-append out "/share/sounds"))
+               (symlink (string-append liblinphone "/share/linphone/rootca.pem")
+                        (string-append out "/share/linphone/rootca.pem"))
                (mkdir-p (dirname grammar-dest))
                (symlink (string-append liblinphone "/share/belr/grammars")
                         grammar-dest)))))))
-- 
2.31.1


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply related	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2021-03-29 18:48 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-20  4:26 [bug#47274] Linphone Packages Raghav Gururajan via Guix-patches via
2021-03-21  6:13 ` Raghav Gururajan via Guix-patches via
2021-03-22  1:48   ` Raghav Gururajan via Guix-patches via
2021-03-22  4:44     ` Raghav Gururajan via Guix-patches via
2021-03-22  4:59       ` Raghav Gururajan via Guix-patches via
2021-03-29  4:03         ` Maxim Cournoyer
2021-03-29  6:05           ` Raghav Gururajan via Guix-patches via
2021-03-29 18:38             ` Maxim Cournoyer
2021-03-29 18:47               ` Raghav Gururajan via Guix-patches via
2021-03-24  4:12       ` Maxim Cournoyer
2021-03-25 13:07       ` Maxim Cournoyer
2021-03-29  5:16         ` Raghav Gururajan via Guix-patches via
2021-03-27  2:13       ` Maxim Cournoyer
2021-03-29  5:52         ` Raghav Gururajan via Guix-patches via
2021-03-27  5:05       ` Maxim Cournoyer
2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
2021-03-27  5:11       ` Maxim Cournoyer
2021-03-28  4:05         ` Raghav Gururajan via Guix-patches via
2021-03-28  4:43           ` Maxim Cournoyer
2021-03-29  6:02             ` Raghav Gururajan via Guix-patches via
2021-03-29  5:53         ` Raghav Gururajan via Guix-patches via
2021-03-28  0:52       ` Maxim Cournoyer
2021-03-29  5:55         ` Raghav Gururajan via Guix-patches via
2021-03-29  5:44       ` bug#47274: " Maxim Cournoyer
2021-03-29  6:13         ` [bug#47274] " Raghav Gururajan via Guix-patches via
2021-03-29 18:39           ` Maxim Cournoyer
2021-03-25  1:55     ` Maxim Cournoyer
2021-03-29  5:13       ` Raghav Gururajan via Guix-patches via
2021-03-28  4:01     ` Maxim Cournoyer
2021-03-29  6:01       ` Raghav Gururajan via Guix-patches via
2021-03-29  5:19     ` Maxim Cournoyer
2021-03-29  6:12       ` Raghav Gururajan via Guix-patches via
2021-03-24  2:25 ` Maxim Cournoyer
2021-03-29  5:07   ` Raghav Gururajan via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).