unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
@ 2021-03-31  5:14 Maxim Cournoyer
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                   ` (4 more replies)
  0 siblings, 5 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:14 UTC (permalink / raw)
  To: 47513

Hello!

I've finally picked up the packaging of Jami, which was becoming quite
outdated in Guix.  I haven't had much time to test the result yet, but a
priori it seems to function as intended.

Let me know how it works for you!

Maxim

Maxim Cournoyer (12):
  gnu: asio: Update to 1.18.1.
  gnu: restbed: Update to 4.7.
  gnu: restinio: Update to 0.6.13.
  gnu: Add nettle-3.7.
  gnu: opendht: Update to 2.2.0rc4.
  gnu: pjproject: Update to 2.11.
  gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375.
  ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013.
  gnu: libring: Update to 20210326.1.cfba013.
  gnu: libringclient: Update to 20210326.1.cfba013.
  gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  gnu: Add jami-qt.

 gnu/local.mk                                |   1 -
 gnu/packages/emulators.scm                  |   2 +-
 gnu/packages/jami.scm                       | 287 ++++++++++++--------
 gnu/packages/nettle.scm                     |  17 +-
 gnu/packages/networking.scm                 | 131 +++++----
 gnu/packages/patches/opendht-fix-jami.patch |  33 ---
 gnu/packages/telephony.scm                  |  22 +-
 7 files changed, 272 insertions(+), 221 deletions(-)
 delete mode 100644 gnu/packages/patches/opendht-fix-jami.patch

-- 
2.31.1





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

* [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1.
  2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
@ 2021-03-31  5:23 ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
                     ` (10 more replies)
  2021-03-31  6:49 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
                   ` (3 subsequent siblings)
  4 siblings, 11 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=yes, Size: 2516 bytes --]

* gnu/packages/networking.scm (asio): Update to 1.18.1.
(asio-1.12): New variable.
* gnu/packages/emulators.scm (mame)[inputs]: Use asio-1.12, otherwise it fails
to build.
---
 gnu/packages/emulators.scm  |  2 +-
 gnu/packages/networking.scm | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 1cd23c3e6c..cfe909b3a6 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1743,7 +1743,7 @@ This is a part of the TiLP project.")
        ("texinfo" ,texinfo)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("asio" ,asio)
+       ("asio" ,asio-1.12)              ;the bundled copy is at 1.11
        ("expat" ,expat)
        ("flac" ,flac)
        ("fontconfig" ,fontconfig)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ecc6f57f4e..fe2499815b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@@ -3027,7 +3027,8 @@ eight bytes) tools
     ;; Either BSD-3 or GPL-2 can be used.
     (license (list license:bsd-3 license:gpl2))))
 
-(define-public asio
+;;; This is an old version required by rested.
+(define-public asio-1.12
   (package
     (name "asio")
     (version "1.12.2")
@@ -3054,6 +3055,18 @@ low-level I/O programming that provides developers with a consistent
 asynchronous model using a modern C++ approach.")
     (license license:boost1.0)))
 
+(define-public asio
+  (package
+    (inherit asio-1.12)
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/asio/asio/"
+                           version " (Stable)/asio-" version ".tar.bz2"))
+       (sha256
+        (base32 "04wi69d72l1p5c7d63z1dz06zn8pdqsbgx1if98dszs9ymfqgyaa"))))))
+
 (define-public shadowsocks
   ;; There are some security fixes after the last release.
   (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
-- 
2.31.1





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

* [bug#47513] [PATCH 02/12] gnu: restbed: Update to 4.7.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/networking.scm (restbed): Update to 4.7.
---
 gnu/packages/networking.scm | 97 ++++++++++++++++++-------------------
 1 file changed, 48 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index fe2499815b..ff0ccc95fc 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3332,57 +3332,56 @@ never see any machines other than the one Dante is running on.")
     (license (license:non-copyleft "file://LICENSE"))))
 
 (define-public restbed
-  (let ((commit "6eb385fa9051203f28bf96cc1844bbb5a9a6481f"))
-    (package
-      (name "restbed")
-      (version (git-version "4.6" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/Corvusoft/restbed/")
-               (commit commit)))
-         (file-name (string-append name "-" version ".tar.gz"))
-         (sha256
-          (base32 "0k60i5drklqqrb4khb25fzkgz9y0sncxf1sp6lh2bm1m0gh0661n"))))
-      (build-system cmake-build-system)
-      (inputs
-       `(("asio" ,asio)
-         ("catch" ,catch-framework)
-         ("openssl" ,openssl)))
-      (arguments
-       `(#:tests? #f
-         #:configure-flags
-         '("-DBUILD_TESTS=NO"
-           "-DBUILD_EXAMPLES=NO"
-           "-DBUILD_SSL=NO"
-           "-DBUILD_SHARED=NO")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'apply-patches-and-fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((asio (assoc-ref inputs "asio"))
-                     (catch (assoc-ref inputs "catch"))
-                     (openssl (assoc-ref inputs "openssl")))
-                 (substitute* "cmake/Findasio.cmake"
-                   (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
-                    (string-append begin " \"" asio "/include\" )")))
-                 (substitute* "cmake/Findcatch.cmake"
-                   (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
-                    (string-append begin " \"" catch "/include\" )")))
-                 (substitute* "cmake/Findopenssl.cmake"
-                   (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/lib\" )"))
-                   (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/lib\" )"))
-                   (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/include\" )")))))))))
-      (synopsis "Asynchronous RESTful functionality to C++11 applications")
-      (description "Restbed is a comprehensive and consistent programming
+  (package
+    (name "restbed")
+    (version "4.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Corvusoft/restbed/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "055qicb773a599dsqbcz5xf0xj1wpk33mdrkyi0fsmyjmn8d2p9d"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("asio" ,asio-1.12)
+       ("catch" ,catch-framework)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       '("-DBUILD_TESTS=NO"
+         "-DBUILD_EXAMPLES=NO"
+         "-DBUILD_SSL=NO"
+         "-DBUILD_SHARED=NO")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'apply-patches-and-fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((asio (assoc-ref inputs "asio"))
+                   (catch (assoc-ref inputs "catch"))
+                   (openssl (assoc-ref inputs "openssl")))
+               (substitute* "cmake/Findasio.cmake"
+                 (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
+                  (string-append begin " \"" asio "/include\" )")))
+               (substitute* "cmake/Findcatch.cmake"
+                 (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
+                  (string-append begin " \"" catch "/include\" )")))
+               (substitute* "cmake/Findopenssl.cmake"
+                 (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/lib\" )"))
+                 (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/lib\" )"))
+                 (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/include\" )")))))))))
+    (synopsis "Asynchronous RESTful functionality to C++11 applications")
+    (description "Restbed is a comprehensive and consistent programming
 model for building applications that require seamless and secure
 communication over HTTP.")
-      (home-page "https://github.com/Corvusoft/restbed")
-      (license license:agpl3+))))
+    (home-page "https://github.com/Corvusoft/restbed")
+    (license license:agpl3+)))
 
 (define-public restinio
   (package
-- 
2.31.1





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

* [bug#47513] [PATCH 03/12] gnu: restinio: Update to 0.6.13.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
                     ` (8 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/networking.scm (restinio): Update to 0.6.13.
---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ff0ccc95fc..464192ad7e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3386,7 +3386,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.1.1")
+    (version "0.6.13")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3395,7 +3395,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
+                "0gb0yc88hdzwm08zdiviay6s08q427za33kfbygib7bdzp2wr2dm"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      `(("zlib" ,zlib)
-- 
2.31.1





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

* [bug#47513] [PATCH 04/12] gnu: Add nettle-3.7.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
                     ` (7 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=yes, Size: 1911 bytes --]

While nettle cannot be upgraded wholesale on the master branch, we can at
least also offer the latest version available.

* gnu/packages/nettle.scm (nettle-3.5, nettle-3.7): New variables.
(nettle): Redefine as a binding to nettle-3.5, which is the current version.
---
 gnu/packages/nettle.scm | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm
index f5e7188ff0..753e2d6e7e 100644
--- a/gnu/packages/nettle.scm
+++ b/gnu/packages/nettle.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,7 +72,7 @@ cryptographic toolkits for object-oriented languages or in applications
 themselves.")
     (license gpl2+)))
 
-(define-public nettle
+(define-public nettle-3.5
   ;; This version is not API-compatible with version 2.  In particular, lsh
   ;; cannot use it yet.  So keep it separate.
   (package (inherit nettle-2)
@@ -89,3 +90,17 @@ themselves.")
         ;; Build "fat" binaries where the right implementation is chosen
         ;; at run time based on CPU features (starting from 3.1.)
         `(cons "--enable-fat" ,flags))))))
+
+(define-public nettle-3.7
+  (package (inherit nettle-3.5)
+    (version "3.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/nettle/nettle-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0qpi1qp3bcvqdsaxy2pzg530db95x8qjahkynxgwvr6dy5760ald"))))))
+
+;;; Upgrading Nettle on master would cause 10000+ packages to be rebuilt.
+(define-public nettle nettle-3.5)
-- 
2.31.1





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

* [bug#47513] [PATCH 05/12] gnu: opendht: Update to 2.2.0rc4.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (2 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
                     ` (6 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/patches/opendht-fix-jami.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Un-register it.
* gnu/packages/networking.scm (opendht): Update to 2.2.0rc4.
[patches]: Remove field.
[inputs]: Use nettle-3.7.
[native-inputs]: Move restinio to...
[propagated-inputs]: ... here.
---
 gnu/local.mk                                |  1 -
 gnu/packages/networking.scm                 | 13 ++++----
 gnu/packages/patches/opendht-fix-jami.patch | 33 ---------------------
 3 files changed, 6 insertions(+), 41 deletions(-)
 delete mode 100644 gnu/packages/patches/opendht-fix-jami.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index deb4ddcede..9bc7ae7564 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1469,7 +1469,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
   %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch	\
-  %D%/packages/patches/opendht-fix-jami.patch			\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 464192ad7e..7a09c48651 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3428,40 +3428,39 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.1.4")
+    (version "2.2.0rc4")                ;jami requires >= 2.2.0
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/savoirfairelinux/opendht")
                     (commit version)))
               (file-name (git-file-name name version))
-              (patches (search-patches "opendht-fix-jami.patch"))
               (sha256
                (base32
-                "1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal"))))
+                "1wc0f6cnvnlmhxnx64nxqgsx93k4g7ljdaqjl40ml74jg3nqrzcl"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
      `(("argon2" ,argon2)
-       ("nettle" ,nettle)
+       ("nettle" ,nettle-3.7)
        ("readline" ,readline)
        ("jsoncpp" ,jsoncpp)
        ("openssl" ,openssl)             ;required for the DHT proxy
        ("fmt" ,fmt)))
     (propagated-inputs
      `(("gnutls" ,gnutls)               ;included in opendht/crypto.h
-       ("msgpack" ,msgpack)))           ;included in several installed headers
+       ("msgpack" ,msgpack)             ;included in several installed headers
+       ("restinio" ,restinio)))         ;included in opendht/http.h
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
-       ("restinio" ,restinio)           ;headers only library
        ("libtool" ,libtool)
        ("cppunit" ,cppunit)))
     (arguments
      `(#:tests? #f                      ; Tests require network connection.
        #:configure-flags
-       '(;; "-DOPENDHT_TESTS=on"
+       '(;;"-DOPENDHT_TESTS=on"
          "-DOPENDHT_TOOLS=off"
          "-DOPENDHT_PYTHON=off"
          "-DOPENDHT_PROXY_SERVER=on"
diff --git a/gnu/packages/patches/opendht-fix-jami.patch b/gnu/packages/patches/opendht-fix-jami.patch
deleted file mode 100644
index 9718a84a41..0000000000
--- a/gnu/packages/patches/opendht-fix-jami.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e2b39dd3a0742853e00f9c3e8c46c911da20bed7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
-Date: Tue, 30 Jun 2020 10:42:49 -0400
-Subject: [PATCH 1/4] http/request: make terminate public
-
----
- include/opendht/http.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/include/opendht/http.h b/include/opendht/http.h
-index cc8d5f9..46b722c 100644
---- a/include/opendht/http.h
-+++ b/include/opendht/http.h
-@@ -294,6 +294,7 @@ public:
-      * User action to cancel the Request and call the completion callbacks.
-      */
-     void cancel();
-+    void terminate(const asio::error_code& ec);
- 
- private:
-     using OnCompleteCb = std::function<void()>;
-@@ -320,8 +321,6 @@ private:
- 
-     void connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb = {});
- 
--    void terminate(const asio::error_code& ec);
--
-     void post();
- 
-     void handle_request(const asio::error_code& ec);
--- 
-2.27.0
-
-- 
2.31.1





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

* [bug#47513] [PATCH 06/12] gnu: pjproject: Update to 2.11.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (3 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
                     ` (5 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=yes, Size: 3639 bytes --]

* gnu/packages/telephony.scm (pjproject): Update to 2.11.  Remove trailing #t.
[patches]: Delete field.  The patches are preserved because pjproject-jami
still needs them.
---
 gnu/packages/telephony.scm | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 5c8d247e68..af7148bf84 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;;
@@ -723,7 +723,7 @@ your calls and messages.")
 (define-public pjproject
   (package
     (name "pjproject")
-    (version "2.10")
+    (version "2.11")
     (source
      (origin
        (method git-fetch)
@@ -733,12 +733,8 @@ your calls and messages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+         "1kn9g1x1vmh4130ghph8mldz5m89gsjs4vpdzlzm98m3808gk5an"))
        (modules '((guix build utils)))
-       ;; The patches upstream status can be tracked at:
-       ;; https://github.com/pjsip/pjproject/pull/2501.
-       (patches (search-patches "pjproject-correct-the-cflags-field.patch"
-                                "pjproject-fix-pkg-config-ldflags.patch"))
        (snippet
         '(begin
            ;; Remove bundled libraries.
@@ -746,8 +742,7 @@ your calls and messages.")
            (substitute* "aconfigure.ac"
              (("third_party/build/os-auto.mak") ""))
            (substitute* "Makefile"
-             (("third_party/build") ""))
-           #t))))
+             (("third_party/build") ""))))))
     (build-system gnu-build-system)
     (outputs '("out" "debug" "static"))
     (arguments
@@ -785,8 +780,7 @@ your calls and messages.")
            ;; Make all the files writable to prevent the following error:
            ;; "autom4te: cannot open aconfigure: Permission denied".
            (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (for-each make-file-writable (find-files "."))))
          (add-before 'build 'build-dep
            (lambda _ (invoke "make" "dep")))
          ;; The check phases is moved after the install phase so to
@@ -800,8 +794,7 @@ your calls and messages.")
                (with-directory-excursion out
                  (for-each (lambda (f)
                              (rename-file f (string-append s "/" (basename f))))
-                           (find-files "." "\\.a$")))
-               #t)))
+                           (find-files "." "\\.a$"))))))
          (add-after 'install 'check
            (assoc-ref %standard-phases 'check))
          (add-before 'patch-source-shebangs 'autoconf
@@ -844,8 +837,7 @@ your calls and messages.")
                ;; Disable the pjnath and pjsua tests, which require an actual
                ;; network and an actual sound card, respectively.
                (("pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "pjmedia-test pjsip-test"))
-             #t)))))
+                "pjmedia-test pjsip-test")))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-- 
2.31.1





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

* [bug#47513] [PATCH 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (4 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
                     ` (4 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=yes, Size: 6127 bytes --]

The custom pjproject package used by Jami is updated with the latest patches
found in the 20210326.1.cfba013 release of Jami.

* gnu/packages/jami.scm (%jami-version): Update to 20210326.1.cfba013.
(jami-source) [snippet]: Update comment.  Add client-electron and client-ios
to the list of deleted directories.  Remove client-windows from the list, as
it no longer exists.
(jami-apply-dependency-patches): Update comment.  Ignore whitespace
when applying patches, otherwise the pjproject patches would not apply.
(pjproject-jami): Add comment.
[source]: Define the source; the parent pjproject package was
updated was updated to 2.11, but the patches only apply against 2.10.
[phases] <apply-patches>: Update the list of patches used with those found in
the release tarball.
---
 gnu/packages/jami.scm | 52 ++++++++++++++++++++++++++++++-------------
 1 file changed, 36 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 3773c1ab0a..35d84bb37b 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,7 +63,7 @@
   #:use-module (guix utils)
   #:use-module (srfi srfi-1))
 
-(define %jami-version "20200710.1.6bd18d2")
+(define %jami-version "20210326.1.cfba013")
 
 (define* (jami-source #:key keep-contrib-patches?)
   "Return an origin object of the tarball release sources archive of Jami.
@@ -78,7 +78,7 @@ of Jami."
     (modules '((guix build utils)))
     (snippet
      `(begin
-        ;; Delete over 200 MiB of bundled tarballs.  The contrib directory
+        ;; Delete multiple MiBs of bundled tarballs.  The contrib directory
         ;; contains the custom patches for pjproject and other libraries used
         ;; by Savoir-faire Linux.
         (if ,keep-contrib-patches?
@@ -86,21 +86,21 @@ of Jami."
             (delete-file-recursively "daemon/contrib"))
         ;; Remove code from unused Jami clients.
         (for-each delete-file-recursively '("client-android"
+                                            "client-electron"
+                                            "client-ios"
                                             "client-macosx"
-                                            "client-uwp"
-                                            "client-windows"))
-        #t))
+                                            "client-uwp"))))
     (sha256
      (base32
-      "0lg61jv39x7kc9lq30by246xb6gcgp1rzj49ak7ff8nqpfzyfvva"))))
+      "1h0avma8bdzyznkz39crjyv2888bii4f49md15jg7970dyp5pdyz"))))
 
 (define %sfl-patches (jami-source #:keep-contrib-patches? #t))
 
 (define %jami-sources (jami-source))
 
-;; Savoir-faire Linux modifies many libraries to add features
-;; to Jami. This procedure makes applying patches to a given
-;; package easy.
+;; Savoir-faire Linux maintains a set of patches for some key dependencies
+;; (currently pjproject and ffmpeg) of Jami that haven't yet been integrated
+;; upstream.  This procedure simplifies the process of applying these patches.x
 (define jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
      (let ((patches-directory "sfl-patches"))
@@ -112,15 +112,30 @@ of Jami."
                               dep-name))
        (for-each
         (lambda (file)
-          (invoke "patch" "--force" "-p1" "-i"
+          (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
                   (string-append patches-directory "/"
                                  file ".patch")))
         patches))))
 
+;;; Jami maintains pjproject patches that add the ability to do ICE over TCP,
+;;; among other things.  The patches are currently based on pjproject 2.10.
 (define-public pjproject-jami
   (package
     (inherit pjproject)
     (name "pjproject-jami")
+    (version "2.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pjsip/pjproject")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+              (patches (search-patches
+                        "pjproject-correct-the-cflags-field.patch"
+                        "pjproject-fix-pkg-config-ldflags.patch"))))
     (native-inputs
      `(("sfl-patches" ,%sfl-patches)
        ,@(package-native-inputs pjproject)))
@@ -140,14 +155,19 @@ of Jami."
                   "0004-multiple_listeners"
                   "0005-fix_ebusy_turn"
                   "0006-ignore_ipv6_on_transport_check"
-                  "0007-pj_ice_sess"
+                  "0007-upnp-srflx-nat-assisted-cand"
                   "0008-fix_ioqueue_ipv6_sendto"
                   "0009-add-config-site"
-                  ;; Note: The base pjproject is already patched with
-                  ;; "0010-fix-pkgconfig".
+                  ;; Already taken care of via the origin patches.
+                  ;;"0010-fix-pkgconfig"
                   "0011-fix-tcp-death-detection"
-                  "0012-fix-turn-shutdown-crash"))
-               #t))))))))
+                  "0012-fix-turn-shutdown-crash"
+                  "0013-Assign-unique-local-preferences-for-candidates-with-"
+                  "0014-Add-new-compile-time-setting-PJ_ICE_ST_USE_TURN_PERM"
+                  "0015-update-local-preference-for-peer-reflexive-candidate"
+                  "0016-use-addrinfo-instead-CFHOST"
+                  "0017-CVE-2020-15260"
+                  "0018-CVE-2021-21375"))))))))))
 
 ;; The following variables are configure flags used by ffmpeg-jami.  They're
 ;; from the ring-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
-- 
2.31.1





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

* [bug#47513] [PATCH 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (5 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
                     ` (3 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/jami.scm (ffmpeg-jami): Remove trailing #t.
[phases] <apply-patches>: Add libopusdec-enable-FEC and
libopusenc-enable-FEC to the list of patches to apply.
---
 gnu/packages/jami.scm | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 35d84bb37b..9d5d00c60c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -403,21 +403,22 @@ of Jami."
          `(modify-phases ,phases
             (add-after 'unpack 'make-git-checkout-writable
               (lambda _
-                (for-each make-file-writable (find-files "."))
-                #t))
+                (for-each make-file-writable (find-files "."))))
             (add-after 'unpack 'apply-patches
               (lambda* (#:key inputs #:allow-other-keys)
                 (let ((jami-apply-dependency-patches
                        ,jami-apply-dependency-patches))
                   ;; These patches come from:
                   ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
-                  (jami-apply-dependency-patches #:inputs inputs
-                                                 #:dep-name "ffmpeg"
-                                                 #:patches
-                                                 '("remove-mjpeg-log"
-                                                   "change-RTCP-ratio"
-                                                   "rtp_ext_abs_send_time"))
-                  #t))))))))))
+                  (jami-apply-dependency-patches
+                   #:inputs inputs
+                   #:dep-name "ffmpeg"
+                   #:patches
+                   '("remove-mjpeg-log"
+                     "change-RTCP-ratio"
+                     "rtp_ext_abs_send_time"
+                     "libopusdec-enable-FEC"
+                     "libopusenc-enable-FEC"))))))))))))
 
 (define-public libring
   (package
-- 
2.31.1





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

* [bug#47513] [PATCH 09/12] gnu: libring: Update to 20210326.1.cfba013.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (6 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 10/12] gnu: libringclient: " Maxim Cournoyer
                     ` (2 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/jami.scm (libring): Update to 20210326.1.cfba013.  Remove
trailing #t.
[inputs]: Remove boost, flac, gmp, gsm, libogg, libva, opus, pcre,
libsamplerate, libsndfile, libvorbis, libx264, libvdpau, zlib, python,
python-wrapper, restinio, and libx11.  Add webrtc-audio-processing.
[native-inputs]: Remove cppunit.  Add gcc-8.
[make-flags]: Add the V=1 flag.
[synopsis]: More explicitly describe what this component is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 61 ++++++++++++++-----------------------------
 1 file changed, 20 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 9d5d00c60c..ddb4b35349 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -428,71 +429,49 @@ of Jami."
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
+       ("asio" ,asio)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
        ("ffmpeg" ,ffmpeg-jami)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsm" ,gsm)
        ("jack" ,jack-1)
        ("jsoncpp" ,jsoncpp)
        ("libarchive" ,libarchive)
        ("libnatpmp" ,libnatpmp)
-       ("libogg" ,libogg)
-       ("libva" ,libva)
+       ("libsecp256k1" ,libsecp256k1)
+       ("libupnp" ,libupnp)
        ("opendht" ,opendht)
-       ("opus" ,opus)
-       ("pcre" ,pcre)
+       ("openssl" ,openssl)
+       ("pjproject" ,pjproject-jami)
        ("pulseaudio" ,pulseaudio)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
        ("speex" ,speex)
        ("speexdsp" ,speexdsp)
-       ("libupnp" ,libupnp)
-       ("libvorbis" ,libvorbis)
-       ("libx264" ,libx264)
-       ("libvdpau" ,libvdpau)
-       ("yaml-cpp" ,yaml-cpp)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("libsecp256k1" ,libsecp256k1)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("restinio" ,restinio)
-       ("libx11" ,libx11)
-       ("asio" ,asio)
-       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
-       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
-       ("pjproject" ,pjproject-jami)))
+       ("webrtc-audio-processing" ,webrtc-audio-processing)
+       ("yaml-cpp" ,yaml-cpp)))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
+       ("gcc" ,gcc-8)                   ;charconv requires GCC 8.1+
        ("libtool" ,libtool)
+       ("perl" ,perl)                   ;to generate manpages with pod2man
        ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("cppunit" ,cppunit)
-       ("perl" ,perl)))                 ; Needed for documentation.
+       ("which" ,which)))
     (arguments
      `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:make-flags '("V=1")            ;build verbosely
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "daemon")
-             #t))
+             (chdir "daemon")))
          (add-before 'build 'add-lib-dir
            (lambda _
-             (mkdir-p "src/lib")
-             #t)))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
+             (mkdir-p "src/lib"))))))
+    (synopsis "Jami core library and daemon")
+    (description "This package provides a library and daemon implementing the
+Jami core functionality.  Jami is a secure and distributed voice, video and
+chat communication platform that requires no centralized server and leaves the
+power of privacy in the hands of the user.  It supports the SIP and IAX
+protocols, as well as decentralized calling using P2P-DHT.")
     (home-page "https://jami.net/")
     (license license:gpl3+)))
 
-- 
2.31.1





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

* [bug#47513] [PATCH 10/12] gnu: libringclient: Update to 20210326.1.cfba013.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (7 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
  2021-03-31  5:23   ` [bug#47513] [PATCH 12/12] gnu: Add jami-qt Maxim Cournoyer
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/jami.scm (libringclient): Update to 20210326.1.cfba013.  Remove
trailing #t.  Do not inherit from libring.
[version, source]: Specify fields.
[propagated-inputs]: Remove qttools.  Move libring to ...
[inputs]: ... here.  Add network-manager.
[configure-flags] Define the RING_XML_INTERFACES_DIR variable.
[phases]{fix-dbus-interfaces-path}: Delete.
[synopsis]: More explicitly describe what this component is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index ddb4b35349..41fa69dd48 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -477,37 +477,33 @@ protocols, as well as decentralized calling using P2P-DHT.")
 
 (define-public libringclient
   (package
-    (inherit libring)
     (name "libringclient")
+    (version %jami-version)
+    (source %jami-sources)
     (build-system cmake-build-system)
+    (inputs
+     `(("libring" ,libring)
+       ("network-manager" ,network-manager)))
     (propagated-inputs
-     `(("libring" ,libring)     ; For 'dring'.
-       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
-       ("qttools" ,qttools)))
+     `(("qtbase" ,qtbase)))     ; Qt is included in several installed headers.
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:configure-flags
-       (list (string-append "-DRING_BUILD_DIR="
-                            (assoc-ref %build-inputs "libring") "/include"))
+       (let ((libring (assoc-ref %build-inputs "libring")))
+         (list (string-append "-DRING_XML_INTERFACES_DIR="
+                              libring "/share/dbus-1/interfaces")
+               (string-append "-DRING_BUILD_DIR=" libring "/include")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "lrc")
-             #t))
-         (add-before 'configure 'fix-dbus-interfaces-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
-                (string-append (assoc-ref inputs "libring")
-                               dbus-interfaces-path-suffix))))))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
+             (chdir "lrc"))))))
+    (synopsis "Jami client library")
+    (description "This package provides a library common to all Jami clients.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user.  It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
 
-- 
2.31.1





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

* [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (8 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 10/12] gnu: libringclient: " Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  2021-03-31  6:08     ` Jack Hill
  2021-03-31  5:23   ` [bug#47513] [PATCH 12/12] gnu: Add jami-qt Maxim Cournoyer
  10 siblings, 1 reply; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/jami.scm (jami): Update to 20210326.1.cfba013.  Rename to ...
(jami-gnome):  In prevision of the soon released Jami Qt client.
(jami): Define as obsoleted by jami-gnome.
[inputs]: Sort lexico-graphically.  Add libappindicator and network-manager.
[native-inputs]: Add a comment and fix a typo.  Remove doxygen.
[propagated-inputs]: Remove evolution-data-server.
[synopsis]: More explicitly describe what this package is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 53 +++++++++++++++++++++++--------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 41fa69dd48..79dbb39f5a 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -507,44 +508,48 @@ decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
 
-(define-public jami
+(define-public jami-gnome
   (package
-    (inherit libring)
-    (name "jami")
+    (name "jami-gnome")
+    (version %jami-version)
+    (source %jami-sources)
     (build-system cmake-build-system)
     (inputs
-     `(("libringclient" ,libringclient)
-       ("gtk+" ,gtk+)
-       ("qrencode" ,qrencode)
-       ("libnotify" ,libnotify)
-       ("clutter" ,clutter)
+     `(("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
+       ("gtk+" ,gtk+)
        ("libcanberra" ,libcanberra)
-       ("webkitgtk" ,webkitgtk)
-       ("sqlite" ,sqlite)))
+       ("libappindicator" ,libappindicator)
+       ("libnotify" ,libnotify)
+       ("libringclient" ,libringclient)
+       ("network-manager" ,network-manager)
+       ("qrencode" ,qrencode)
+       ("sqlite" ,sqlite)
+       ("webkitgtk" ,webkitgtk)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("doxygen" ,doxygen)))
+       ("glib:bin" ,glib "bin")))       ;for glib-compile-resources
     (propagated-inputs
-     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("evolution-data-server" ,evolution-data-server)))
+     `(("libring" ,libring) ; Contains 'dring', the daemon, which is
+                            ; automatically started by DBus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)))
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "client-gnome")
-             #t)))))
-    (synopsis "Distributed, privacy-respecting communication program")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides the Jami client for the GNOME desktop.")
+             (chdir "client-gnome"))))))
+    (synopsis "Jami client for GNOME")
+    (description "This package provides a Jami client for the GNOME desktop.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user.  It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
+
+;;; Keep this until the Qt client matures enough to become the
+;;; main 'jami' client.
+(deprecated-package jami jami-gnome)
-- 
2.31.1





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

* [bug#47513] [PATCH 12/12] gnu: Add jami-qt.
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (9 preceding siblings ...)
  2021-03-31  5:23   ` [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
@ 2021-03-31  5:23   ` Maxim Cournoyer
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31  5:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

* gnu/packages/jami.scm (jami-qt): New variable.
---
 gnu/packages/jami.scm | 66 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 79dbb39f5a..67befe63a2 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
@@ -59,6 +60,7 @@
   #:use-module (gnu packages)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system qt)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -553,3 +555,67 @@ decentralized calling using P2P-DHT.")
 ;;; Keep this until the Qt client matures enough to become the
 ;;; main 'jami' client.
 (deprecated-package jami jami-gnome)
+
+(define-public jami-qt
+  (package
+    (name "jami-qt")                    ;to be renamed 'jami' at some point
+    (version %jami-version)
+    ;; The Qt client code is not yet part of the release tarball; fetch it
+    ;; from git for now.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.jami.net/savoirfairelinux/jami-client-qt.git")
+                    (commit "ae21c17da5e8f730ae3895ccbc4da8047e3be1eb")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1rf3lpk8c4qc12pi6pn4rdp7i8b83xv64yqr0q47rzv9s518qyjp"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:phases
+       (modify-phases %standard-phases
+         ;; TODO: Uncomment after switching back to the tarball source.
+         ;;   (add-after 'unpack 'change-directory
+         ;;     (lambda _
+         ;;       (chdir "client-qt")))
+         (add-after 'install 'wrap
+           ;; The program fails to find the QtWebEngineProcess program, so we
+           ;; set QTWEBENGINEPROCESS_PATH to help it.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                   (qtwebengineprocess (string-append
+                                        (assoc-ref inputs "qtwebengine")
+                                        "/lib/qt5/libexec/QtWebEngineProcess")))
+               (for-each (lambda (program)
+                           (wrap-program program
+                             `("QTWEBENGINEPROCESS_PATH" =
+                               (,qtwebengineprocess))))
+                         (find-files bin ".*"))))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
+       ("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)))
+    (inputs
+     `(("network-manager" ,network-manager)
+       ("qrencode" ,qrencode)
+       ("qtsvg" ,qtsvg)
+       ("qtwebengine" ,qtwebengine)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtquickcontrols2" ,qtquickcontrols2)))
+    (propagated-inputs
+     `(("libringclient" ,libringclient)))
+    (home-page "https://jami.net")
+    (synopsis "Qt Jami client")
+    (description "This package provides the Jami Qt client.  Jami is a secure
+and distributed voice, video and chat communication platform that requires no
+centralized server and leaves the power of privacy in the hands of the user.
+It supports the SIP and IAX protocols, as well as decentralized calling using
+P2P-DHT.")
+    (license license:gpl3+)))
-- 
2.31.1





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

* [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31  5:23   ` [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
@ 2021-03-31  6:08     ` Jack Hill
  2021-03-31 15:21       ` Jack Hill
  0 siblings, 1 reply; 35+ messages in thread
From: Jack Hill @ 2021-03-31  6:08 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 47513

Thanks for working on these patches. I'm excited to try out the new Jami 
version.

On Wed, 31 Mar 2021, Maxim Cournoyer wrote:

> * gnu/packages/jami.scm (jami): Update to 20210326.1.cfba013.  Rename to ...
> (jami-gnome):  In prevision of the soon released Jami Qt client.
> (jami): Define as obsoleted by jami-gnome.

However, I wonder if something has gone wrong with the renaming. I applied 
the whole series on top of fea1eea452e9659b79f88fa80a45ca7c03cded1f. 
However, running make in the Guix checkout now fails as follows. I did 
re-run ./bootstrap and ./configure for good measure:

```
jackhill@alperton ~/repos/guix [env]$ make
make  all-recursive
make[1]: Entering directory '/home/jackhill/repos/guix'
Making all in po/guix
make[2]: Entering directory '/home/jackhill/repos/guix/po/guix'
make[2]: Leaving directory '/home/jackhill/repos/guix/po/guix'
Making all in po/packages
make[2]: Entering directory '/home/jackhill/repos/guix/po/packages'
make[2]: Leaving directory '/home/jackhill/repos/guix/po/packages'
make[2]: Entering directory '/home/jackhill/repos/guix'
Compiling Scheme modules...
[  8%] LOAD     gnu/packages/build-tools.scm
;;; note: source file ./gnu/packages/build-tools.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/build-tools.go
;;; note: source file ./gnu/packages/build-tools.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/build-tools.go
;;; note: source file ./gnu/packages/networking.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/networking.go
;;; note: source file ./gnu/packages/networking.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/networking.go
;;; note: source file ./gnu/packages/nettle.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/nettle.go
;;; note: source file ./gnu/packages/nettle.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/nettle.go
;;; note: source file ./gnu/packages/telephony.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/telephony.go
;;; note: source file ./gnu/packages/telephony.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/telephony.go
[ 17%] LOAD     gnu/packages/emulators.scm
;;; note: source file ./gnu/packages/emulators.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/emulators.go
;;; note: source file ./gnu/packages/emulators.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/emulators.go
[ 25%] LOAD     gnu/packages/jami.scm
;;; note: source file ./gnu/packages/jami.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/jami.go
;;; note: source file ./gnu/packages/jami.scm
;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/jami.go
ice-9/eval.scm:293:34: error: jami: unbound variable
hint: Did you forget a `use-modules' form?

make[2]: *** [Makefile:6318: make-go] Error 1
make[2]: Leaving directory '/home/jackhill/repos/guix'
make[1]: *** [Makefile:5366: all-recursive] Error 1
make[1]: Leaving directory '/home/jackhill/repos/guix'
make: *** [Makefile:3697: all] Error 2
```

Unfortunately, I don't see any place the old binding is referenced.

Best,
Jack




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

* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
  2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
@ 2021-03-31  6:49 ` Maxime Devos
  2021-03-31 13:23 ` Maxime Devos
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 35+ messages in thread
From: Maxime Devos @ 2021-03-31  6:49 UTC (permalink / raw)
  To: Maxim Cournoyer, 47513

[-- Attachment #1: Type: text/plain, Size: 420 bytes --]

On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
> Hello!
> 
> I've finally picked up the packaging of Jami, which was becoming quite
> outdated in Guix.  I haven't had much time to test the result yet, but a
> priori it seems to function as intended.
> 
> Let me know how it works for you!

I read through the patch set and don't see any obvious problems.
Now I'll test this.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

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

* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
  2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
  2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-03-31  6:49 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
@ 2021-03-31 13:23 ` Maxime Devos
  2021-03-31 16:57   ` Maxim Cournoyer
  2021-03-31 17:23   ` Maxim Cournoyer
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-04-01 11:10 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
  4 siblings, 2 replies; 35+ messages in thread
From: Maxime Devos @ 2021-03-31 13:23 UTC (permalink / raw)
  To: Maxim Cournoyer, 47513

[-- Attachment #1: Type: text/plain, Size: 1016 bytes --]

On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
> Hello!
> 
> I've finally picked up the packaging of Jami, which was becoming quite
> outdated in Guix.  I haven't had much time to test the result yet, but a
> priori it seems to function as intended.
> 
> Let me know how it works for you!
> 
> Maxim

Something went wrong with sending the patch.
Snipped from first patch from
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47513#5>:

<start snip>
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 47513@debbugs.gnu.org
Subject: [PATCH 01/12] gnu: asio: Update to 1.18.1.
Date: Wed, 31 Mar 2021 01:23:37 -0400
Message-Id: <20210331052348.5164-1-maxim.cournoyer@gmail.com>
X-Mailer: git-send-email 2.31.1
MIME-Version: 1.0
Content-Type: text/plain; charset=yes
Content-Transfer-Encoding: 8bit
<end snip>

What character encoding is 'yes'?
I manually changed 'yes' to 'utf-8' and only then the
patch series applied.

Now trying to build jami-gnome.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

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

* [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31  6:08     ` Jack Hill
@ 2021-03-31 15:21       ` Jack Hill
  2021-03-31 15:23         ` Jack Hill
  0 siblings, 1 reply; 35+ messages in thread
From: Jack Hill @ 2021-03-31 15:21 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

> [ 25%] LOAD     gnu/packages/jami.scm
> ;;; note: source file ./gnu/packages/jami.scm
> ;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/jami.go
> ;;; note: source file ./gnu/packages/jami.scm
> ;;;       newer than compiled /home/jackhill/repos/guix/gnu/packages/jami.go
> ice-9/eval.scm:293:34: error: jami: unbound variable
> hint: Did you forget a `use-modules' form?
>
> make[2]: *** [Makefile:6318: make-go] Error 1
> make[2]: Leaving directory '/home/jackhill/repos/guix'
> make[1]: *** [Makefile:5366: all-recursive] Error 1
> make[1]: Leaving directory '/home/jackhill/repos/guix'
> make: *** [Makefile:3697: all] Error 2
> ```
>
> Unfortunately, I don't see any place the old binding is referenced.

Oops, this seems be be my mistake. A `make clean-go` fixed it. Sorry for 
the noise.

Best,
Jack




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

* [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31 15:21       ` Jack Hill
@ 2021-03-31 15:23         ` Jack Hill
  2021-03-31 17:26           ` Maxim Cournoyer
  0 siblings, 1 reply; 35+ messages in thread
From: Jack Hill @ 2021-03-31 15:23 UTC (permalink / raw)
  To: 47513; +Cc: Maxim Cournoyer

On Wed, 31 Mar 2021, Jack Hill wrote:

>> [ 25%] LOAD     gnu/packages/jami.scm
>> ;;; note: source file ./gnu/packages/jami.scm
>> ;;;       newer than compiled 
>> /home/jackhill/repos/guix/gnu/packages/jami.go
>> ;;; note: source file ./gnu/packages/jami.scm
>> ;;;       newer than compiled 
>> /home/jackhill/repos/guix/gnu/packages/jami.go
>> ice-9/eval.scm:293:34: error: jami: unbound variable
>> hint: Did you forget a `use-modules' form?
>> 
>> make[2]: *** [Makefile:6318: make-go] Error 1
>> make[2]: Leaving directory '/home/jackhill/repos/guix'
>> make[1]: *** [Makefile:5366: all-recursive] Error 1
>> make[1]: Leaving directory '/home/jackhill/repos/guix'
>> make: *** [Makefile:3697: all] Error 2
>> ```
>> 
>> Unfortunately, I don't see any place the old binding is referenced.
>
> Oops, this seems be be my mistake. A `make clean-go` fixed it. Sorry for the 
> noise.

Oops again. It seems like a spoke too soon. I'm still having the problem 
after a clean-go (I had forgotten that I was looking at something else in 
my guix repository and didn't have these patches applied at the moment).




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

* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
  2021-03-31 13:23 ` Maxime Devos
@ 2021-03-31 16:57   ` Maxim Cournoyer
  2021-03-31 17:23   ` Maxim Cournoyer
  1 sibling, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 16:57 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 47513

Hi!

Maxime Devos <maximedevos@telenet.be> writes:

> On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
>> Hello!
>> 
>> I've finally picked up the packaging of Jami, which was becoming quite
>> outdated in Guix.  I haven't had much time to test the result yet, but a
>> priori it seems to function as intended.
>> 
>> Let me know how it works for you!
>> 
>> Maxim
>
> Something went wrong with sending the patch.
> Snipped from first patch from
> <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47513#5>:
>
> <start snip>
> From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
> To: 47513@debbugs.gnu.org
> Subject: [PATCH 01/12] gnu: asio: Update to 1.18.1.
> Date: Wed, 31 Mar 2021 01:23:37 -0400
> Message-Id: <20210331052348.5164-1-maxim.cournoyer@gmail.com>
> X-Mailer: git-send-email 2.31.1
> MIME-Version: 1.0
> Content-Type: text/plain; charset=yes
> Content-Transfer-Encoding: 8bit
> <end snip>
>
> What character encoding is 'yes'?
> I manually changed 'yes' to 'utf-8' and only then the
> patch series applied.

Oh, sorry about this!  I'm not sure what happened, as I generated the
series with 'git format-patch', and send it via 'git send-email',
without specifying any special options for the encoding.

I guess I simply replied 'yes' without reading through the questions git
send-email asked me (it was late :-)).

I'll resend the series now to spare anyone else the trouble of figuring
that out.

Thanks for letting me know!

> Now trying to build jami-gnome.

And for testing it!

Maxim




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

* [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1.
  2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
                   ` (2 preceding siblings ...)
  2021-03-31 13:23 ` Maxime Devos
@ 2021-03-31 17:22 ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
                     ` (10 more replies)
  2021-04-01 11:10 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
  4 siblings, 11 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/networking.scm (asio): Update to 1.18.1.
(asio-1.12): New variable.
* gnu/packages/emulators.scm (mame)[inputs]: Use asio-1.12, otherwise it fails
to build.
---
 gnu/packages/emulators.scm  |  2 +-
 gnu/packages/networking.scm | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 1cd23c3e6c..cfe909b3a6 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1743,7 +1743,7 @@ This is a part of the TiLP project.")
        ("texinfo" ,texinfo)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("asio" ,asio)
+       ("asio" ,asio-1.12)              ;the bundled copy is at 1.11
        ("expat" ,expat)
        ("flac" ,flac)
        ("fontconfig" ,fontconfig)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 7dd484fa94..efbcb68e23 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@@ -3027,7 +3027,8 @@ eight bytes) tools
     ;; Either BSD-3 or GPL-2 can be used.
     (license (list license:bsd-3 license:gpl2))))
 
-(define-public asio
+;;; This is an old version required by rested.
+(define-public asio-1.12
   (package
     (name "asio")
     (version "1.12.2")
@@ -3054,6 +3055,18 @@ low-level I/O programming that provides developers with a consistent
 asynchronous model using a modern C++ approach.")
     (license license:boost1.0)))
 
+(define-public asio
+  (package
+    (inherit asio-1.12)
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/asio/asio/"
+                           version " (Stable)/asio-" version ".tar.bz2"))
+       (sha256
+        (base32 "04wi69d72l1p5c7d63z1dz06zn8pdqsbgx1if98dszs9ymfqgyaa"))))))
+
 (define-public shadowsocks
   ;; There are some security fixes after the last release.
   (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
-- 
2.31.1





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

* [bug#47513] [PATCH v2 02/12] gnu: restbed: Update to 4.7.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/networking.scm (restbed): Update to 4.7.
---
 gnu/packages/networking.scm | 97 ++++++++++++++++++-------------------
 1 file changed, 48 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index efbcb68e23..f114e65d17 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3332,57 +3332,56 @@ never see any machines other than the one Dante is running on.")
     (license (license:non-copyleft "file://LICENSE"))))
 
 (define-public restbed
-  (let ((commit "6eb385fa9051203f28bf96cc1844bbb5a9a6481f"))
-    (package
-      (name "restbed")
-      (version (git-version "4.6" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/Corvusoft/restbed/")
-               (commit commit)))
-         (file-name (string-append name "-" version ".tar.gz"))
-         (sha256
-          (base32 "0k60i5drklqqrb4khb25fzkgz9y0sncxf1sp6lh2bm1m0gh0661n"))))
-      (build-system cmake-build-system)
-      (inputs
-       `(("asio" ,asio)
-         ("catch" ,catch-framework)
-         ("openssl" ,openssl)))
-      (arguments
-       `(#:tests? #f
-         #:configure-flags
-         '("-DBUILD_TESTS=NO"
-           "-DBUILD_EXAMPLES=NO"
-           "-DBUILD_SSL=NO"
-           "-DBUILD_SHARED=NO")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'apply-patches-and-fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((asio (assoc-ref inputs "asio"))
-                     (catch (assoc-ref inputs "catch"))
-                     (openssl (assoc-ref inputs "openssl")))
-                 (substitute* "cmake/Findasio.cmake"
-                   (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
-                    (string-append begin " \"" asio "/include\" )")))
-                 (substitute* "cmake/Findcatch.cmake"
-                   (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
-                    (string-append begin " \"" catch "/include\" )")))
-                 (substitute* "cmake/Findopenssl.cmake"
-                   (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/lib\" )"))
-                   (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/lib\" )"))
-                   (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
-                    (string-append begin " \"" openssl "/include\" )")))))))))
-      (synopsis "Asynchronous RESTful functionality to C++11 applications")
-      (description "Restbed is a comprehensive and consistent programming
+  (package
+    (name "restbed")
+    (version "4.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Corvusoft/restbed/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "055qicb773a599dsqbcz5xf0xj1wpk33mdrkyi0fsmyjmn8d2p9d"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("asio" ,asio-1.12)
+       ("catch" ,catch-framework)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       '("-DBUILD_TESTS=NO"
+         "-DBUILD_EXAMPLES=NO"
+         "-DBUILD_SSL=NO"
+         "-DBUILD_SHARED=NO")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'apply-patches-and-fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((asio (assoc-ref inputs "asio"))
+                   (catch (assoc-ref inputs "catch"))
+                   (openssl (assoc-ref inputs "openssl")))
+               (substitute* "cmake/Findasio.cmake"
+                 (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
+                  (string-append begin " \"" asio "/include\" )")))
+               (substitute* "cmake/Findcatch.cmake"
+                 (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
+                  (string-append begin " \"" catch "/include\" )")))
+               (substitute* "cmake/Findopenssl.cmake"
+                 (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/lib\" )"))
+                 (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/lib\" )"))
+                 (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
+                  (string-append begin " \"" openssl "/include\" )")))))))))
+    (synopsis "Asynchronous RESTful functionality to C++11 applications")
+    (description "Restbed is a comprehensive and consistent programming
 model for building applications that require seamless and secure
 communication over HTTP.")
-      (home-page "https://github.com/Corvusoft/restbed")
-      (license license:agpl3+))))
+    (home-page "https://github.com/Corvusoft/restbed")
+    (license license:agpl3+)))
 
 (define-public restinio
   (package
-- 
2.31.1





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

* [bug#47513] [PATCH v2 03/12] gnu: restinio: Update to 0.6.13.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
                     ` (8 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/networking.scm (restinio): Update to 0.6.13.
---
 gnu/packages/networking.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f114e65d17..bd6201bcbf 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3386,7 +3386,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.1.1")
+    (version "0.6.13")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3395,7 +3395,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
+                "0gb0yc88hdzwm08zdiviay6s08q427za33kfbygib7bdzp2wr2dm"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      `(("zlib" ,zlib)
-- 
2.31.1





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

* [bug#47513] [PATCH v2 04/12] gnu: Add nettle-3.7.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
                     ` (7 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

While nettle cannot be upgraded wholesale on the master branch, we can at
least also offer the latest version available.

* gnu/packages/nettle.scm (nettle-3.5, nettle-3.7): New variables.
(nettle): Redefine as a binding to nettle-3.5, which is the current version.
---
 gnu/packages/nettle.scm | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm
index f5e7188ff0..753e2d6e7e 100644
--- a/gnu/packages/nettle.scm
+++ b/gnu/packages/nettle.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,7 +72,7 @@ cryptographic toolkits for object-oriented languages or in applications
 themselves.")
     (license gpl2+)))
 
-(define-public nettle
+(define-public nettle-3.5
   ;; This version is not API-compatible with version 2.  In particular, lsh
   ;; cannot use it yet.  So keep it separate.
   (package (inherit nettle-2)
@@ -89,3 +90,17 @@ themselves.")
         ;; Build "fat" binaries where the right implementation is chosen
         ;; at run time based on CPU features (starting from 3.1.)
         `(cons "--enable-fat" ,flags))))))
+
+(define-public nettle-3.7
+  (package (inherit nettle-3.5)
+    (version "3.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/nettle/nettle-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0qpi1qp3bcvqdsaxy2pzg530db95x8qjahkynxgwvr6dy5760ald"))))))
+
+;;; Upgrading Nettle on master would cause 10000+ packages to be rebuilt.
+(define-public nettle nettle-3.5)
-- 
2.31.1





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

* [bug#47513] [PATCH v2 05/12] gnu: opendht: Update to 2.2.0rc4.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (2 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
                     ` (6 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/patches/opendht-fix-jami.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Un-register it.
* gnu/packages/networking.scm (opendht): Update to 2.2.0rc4.
[patches]: Remove field.
[inputs]: Use nettle-3.7.
[native-inputs]: Move restinio to...
[propagated-inputs]: ... here.
---
 gnu/local.mk                                |  1 -
 gnu/packages/networking.scm                 | 13 ++++----
 gnu/packages/patches/opendht-fix-jami.patch | 33 ---------------------
 3 files changed, 6 insertions(+), 41 deletions(-)
 delete mode 100644 gnu/packages/patches/opendht-fix-jami.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d8c548b0eb..bfb7cd80b7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1469,7 +1469,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
   %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch	\
-  %D%/packages/patches/opendht-fix-jami.patch			\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index bd6201bcbf..f4f2532583 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3428,40 +3428,39 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
 (define-public opendht
   (package
     (name "opendht")
-    (version "2.1.4")
+    (version "2.2.0rc4")                ;jami requires >= 2.2.0
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/savoirfairelinux/opendht")
                     (commit version)))
               (file-name (git-file-name name version))
-              (patches (search-patches "opendht-fix-jami.patch"))
               (sha256
                (base32
-                "1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal"))))
+                "1wc0f6cnvnlmhxnx64nxqgsx93k4g7ljdaqjl40ml74jg3nqrzcl"))))
     ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
     (build-system cmake-build-system)
     (inputs
      `(("argon2" ,argon2)
-       ("nettle" ,nettle)
+       ("nettle" ,nettle-3.7)
        ("readline" ,readline)
        ("jsoncpp" ,jsoncpp)
        ("openssl" ,openssl)             ;required for the DHT proxy
        ("fmt" ,fmt)))
     (propagated-inputs
      `(("gnutls" ,gnutls)               ;included in opendht/crypto.h
-       ("msgpack" ,msgpack)))           ;included in several installed headers
+       ("msgpack" ,msgpack)             ;included in several installed headers
+       ("restinio" ,restinio)))         ;included in opendht/http.h
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
-       ("restinio" ,restinio)           ;headers only library
        ("libtool" ,libtool)
        ("cppunit" ,cppunit)))
     (arguments
      `(#:tests? #f                      ; Tests require network connection.
        #:configure-flags
-       '(;; "-DOPENDHT_TESTS=on"
+       '(;;"-DOPENDHT_TESTS=on"
          "-DOPENDHT_TOOLS=off"
          "-DOPENDHT_PYTHON=off"
          "-DOPENDHT_PROXY_SERVER=on"
diff --git a/gnu/packages/patches/opendht-fix-jami.patch b/gnu/packages/patches/opendht-fix-jami.patch
deleted file mode 100644
index 9718a84a41..0000000000
--- a/gnu/packages/patches/opendht-fix-jami.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e2b39dd3a0742853e00f9c3e8c46c911da20bed7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
-Date: Tue, 30 Jun 2020 10:42:49 -0400
-Subject: [PATCH 1/4] http/request: make terminate public
-
----
- include/opendht/http.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/include/opendht/http.h b/include/opendht/http.h
-index cc8d5f9..46b722c 100644
---- a/include/opendht/http.h
-+++ b/include/opendht/http.h
-@@ -294,6 +294,7 @@ public:
-      * User action to cancel the Request and call the completion callbacks.
-      */
-     void cancel();
-+    void terminate(const asio::error_code& ec);
- 
- private:
-     using OnCompleteCb = std::function<void()>;
-@@ -320,8 +321,6 @@ private:
- 
-     void connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb = {});
- 
--    void terminate(const asio::error_code& ec);
--
-     void post();
- 
-     void handle_request(const asio::error_code& ec);
--- 
-2.27.0
-
-- 
2.31.1





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

* [bug#47513] [PATCH v2 06/12] gnu: pjproject: Update to 2.11.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (3 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
                     ` (5 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/telephony.scm (pjproject): Update to 2.11.  Remove trailing #t.
[patches]: Delete field.  The patches are preserved because pjproject-jami
still needs them.
---
 gnu/packages/telephony.scm | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 5c8d247e68..af7148bf84 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;;
@@ -723,7 +723,7 @@ your calls and messages.")
 (define-public pjproject
   (package
     (name "pjproject")
-    (version "2.10")
+    (version "2.11")
     (source
      (origin
        (method git-fetch)
@@ -733,12 +733,8 @@ your calls and messages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+         "1kn9g1x1vmh4130ghph8mldz5m89gsjs4vpdzlzm98m3808gk5an"))
        (modules '((guix build utils)))
-       ;; The patches upstream status can be tracked at:
-       ;; https://github.com/pjsip/pjproject/pull/2501.
-       (patches (search-patches "pjproject-correct-the-cflags-field.patch"
-                                "pjproject-fix-pkg-config-ldflags.patch"))
        (snippet
         '(begin
            ;; Remove bundled libraries.
@@ -746,8 +742,7 @@ your calls and messages.")
            (substitute* "aconfigure.ac"
              (("third_party/build/os-auto.mak") ""))
            (substitute* "Makefile"
-             (("third_party/build") ""))
-           #t))))
+             (("third_party/build") ""))))))
     (build-system gnu-build-system)
     (outputs '("out" "debug" "static"))
     (arguments
@@ -785,8 +780,7 @@ your calls and messages.")
            ;; Make all the files writable to prevent the following error:
            ;; "autom4te: cannot open aconfigure: Permission denied".
            (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (for-each make-file-writable (find-files "."))))
          (add-before 'build 'build-dep
            (lambda _ (invoke "make" "dep")))
          ;; The check phases is moved after the install phase so to
@@ -800,8 +794,7 @@ your calls and messages.")
                (with-directory-excursion out
                  (for-each (lambda (f)
                              (rename-file f (string-append s "/" (basename f))))
-                           (find-files "." "\\.a$")))
-               #t)))
+                           (find-files "." "\\.a$"))))))
          (add-after 'install 'check
            (assoc-ref %standard-phases 'check))
          (add-before 'patch-source-shebangs 'autoconf
@@ -844,8 +837,7 @@ your calls and messages.")
                ;; Disable the pjnath and pjsua tests, which require an actual
                ;; network and an actual sound card, respectively.
                (("pjnath-test pjmedia-test pjsip-test pjsua-test")
-                "pjmedia-test pjsip-test"))
-             #t)))))
+                "pjmedia-test pjsip-test")))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
-- 
2.31.1





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

* [bug#47513] [PATCH v2 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (4 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
                     ` (4 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

The custom pjproject package used by Jami is updated with the latest patches
found in the 20210326.1.cfba013 release of Jami.

* gnu/packages/jami.scm (%jami-version): Update to 20210326.1.cfba013.
(jami-source) [snippet]: Update comment.  Add client-electron and client-ios
to the list of deleted directories.  Remove client-windows from the list, as
it no longer exists.
(jami-apply-dependency-patches): Update comment.  Ignore whitespace
when applying patches, otherwise the pjproject patches would not apply.
(pjproject-jami): Add comment.
[source]: Define the source; the parent pjproject package was
updated was updated to 2.11, but the patches only apply against 2.10.
[phases] <apply-patches>: Update the list of patches used with those found in
the release tarball.
---
 gnu/packages/jami.scm | 52 ++++++++++++++++++++++++++++++-------------
 1 file changed, 36 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 3773c1ab0a..35d84bb37b 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,7 +63,7 @@
   #:use-module (guix utils)
   #:use-module (srfi srfi-1))
 
-(define %jami-version "20200710.1.6bd18d2")
+(define %jami-version "20210326.1.cfba013")
 
 (define* (jami-source #:key keep-contrib-patches?)
   "Return an origin object of the tarball release sources archive of Jami.
@@ -78,7 +78,7 @@ of Jami."
     (modules '((guix build utils)))
     (snippet
      `(begin
-        ;; Delete over 200 MiB of bundled tarballs.  The contrib directory
+        ;; Delete multiple MiBs of bundled tarballs.  The contrib directory
         ;; contains the custom patches for pjproject and other libraries used
         ;; by Savoir-faire Linux.
         (if ,keep-contrib-patches?
@@ -86,21 +86,21 @@ of Jami."
             (delete-file-recursively "daemon/contrib"))
         ;; Remove code from unused Jami clients.
         (for-each delete-file-recursively '("client-android"
+                                            "client-electron"
+                                            "client-ios"
                                             "client-macosx"
-                                            "client-uwp"
-                                            "client-windows"))
-        #t))
+                                            "client-uwp"))))
     (sha256
      (base32
-      "0lg61jv39x7kc9lq30by246xb6gcgp1rzj49ak7ff8nqpfzyfvva"))))
+      "1h0avma8bdzyznkz39crjyv2888bii4f49md15jg7970dyp5pdyz"))))
 
 (define %sfl-patches (jami-source #:keep-contrib-patches? #t))
 
 (define %jami-sources (jami-source))
 
-;; Savoir-faire Linux modifies many libraries to add features
-;; to Jami. This procedure makes applying patches to a given
-;; package easy.
+;; Savoir-faire Linux maintains a set of patches for some key dependencies
+;; (currently pjproject and ffmpeg) of Jami that haven't yet been integrated
+;; upstream.  This procedure simplifies the process of applying these patches.x
 (define jami-apply-dependency-patches
   '(lambda* (#:key inputs dep-name patches)
      (let ((patches-directory "sfl-patches"))
@@ -112,15 +112,30 @@ of Jami."
                               dep-name))
        (for-each
         (lambda (file)
-          (invoke "patch" "--force" "-p1" "-i"
+          (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
                   (string-append patches-directory "/"
                                  file ".patch")))
         patches))))
 
+;;; Jami maintains pjproject patches that add the ability to do ICE over TCP,
+;;; among other things.  The patches are currently based on pjproject 2.10.
 (define-public pjproject-jami
   (package
     (inherit pjproject)
     (name "pjproject-jami")
+    (version "2.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pjsip/pjproject")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+              (patches (search-patches
+                        "pjproject-correct-the-cflags-field.patch"
+                        "pjproject-fix-pkg-config-ldflags.patch"))))
     (native-inputs
      `(("sfl-patches" ,%sfl-patches)
        ,@(package-native-inputs pjproject)))
@@ -140,14 +155,19 @@ of Jami."
                   "0004-multiple_listeners"
                   "0005-fix_ebusy_turn"
                   "0006-ignore_ipv6_on_transport_check"
-                  "0007-pj_ice_sess"
+                  "0007-upnp-srflx-nat-assisted-cand"
                   "0008-fix_ioqueue_ipv6_sendto"
                   "0009-add-config-site"
-                  ;; Note: The base pjproject is already patched with
-                  ;; "0010-fix-pkgconfig".
+                  ;; Already taken care of via the origin patches.
+                  ;;"0010-fix-pkgconfig"
                   "0011-fix-tcp-death-detection"
-                  "0012-fix-turn-shutdown-crash"))
-               #t))))))))
+                  "0012-fix-turn-shutdown-crash"
+                  "0013-Assign-unique-local-preferences-for-candidates-with-"
+                  "0014-Add-new-compile-time-setting-PJ_ICE_ST_USE_TURN_PERM"
+                  "0015-update-local-preference-for-peer-reflexive-candidate"
+                  "0016-use-addrinfo-instead-CFHOST"
+                  "0017-CVE-2020-15260"
+                  "0018-CVE-2021-21375"))))))))))
 
 ;; The following variables are configure flags used by ffmpeg-jami.  They're
 ;; from the ring-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
-- 
2.31.1





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

* [bug#47513] [PATCH v2 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (5 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
                     ` (3 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/jami.scm (ffmpeg-jami): Remove trailing #t.
[phases] <apply-patches>: Add libopusdec-enable-FEC and
libopusenc-enable-FEC to the list of patches to apply.
---
 gnu/packages/jami.scm | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 35d84bb37b..9d5d00c60c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -403,21 +403,22 @@ of Jami."
          `(modify-phases ,phases
             (add-after 'unpack 'make-git-checkout-writable
               (lambda _
-                (for-each make-file-writable (find-files "."))
-                #t))
+                (for-each make-file-writable (find-files "."))))
             (add-after 'unpack 'apply-patches
               (lambda* (#:key inputs #:allow-other-keys)
                 (let ((jami-apply-dependency-patches
                        ,jami-apply-dependency-patches))
                   ;; These patches come from:
                   ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
-                  (jami-apply-dependency-patches #:inputs inputs
-                                                 #:dep-name "ffmpeg"
-                                                 #:patches
-                                                 '("remove-mjpeg-log"
-                                                   "change-RTCP-ratio"
-                                                   "rtp_ext_abs_send_time"))
-                  #t))))))))))
+                  (jami-apply-dependency-patches
+                   #:inputs inputs
+                   #:dep-name "ffmpeg"
+                   #:patches
+                   '("remove-mjpeg-log"
+                     "change-RTCP-ratio"
+                     "rtp_ext_abs_send_time"
+                     "libopusdec-enable-FEC"
+                     "libopusenc-enable-FEC"))))))))))))
 
 (define-public libring
   (package
-- 
2.31.1





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

* [bug#47513] [PATCH v2 09/12] gnu: libring: Update to 20210326.1.cfba013.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (6 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 10/12] gnu: libringclient: " Maxim Cournoyer
                     ` (2 subsequent siblings)
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/jami.scm (libring): Update to 20210326.1.cfba013.  Remove
trailing #t.
[inputs]: Remove boost, flac, gmp, gsm, libogg, libva, opus, pcre,
libsamplerate, libsndfile, libvorbis, libx264, libvdpau, zlib, python,
python-wrapper, restinio, and libx11.  Add webrtc-audio-processing.
[native-inputs]: Remove cppunit.  Add gcc-8.
[make-flags]: Add the V=1 flag.
[synopsis]: More explicitly describe what this component is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 61 ++++++++++++++-----------------------------
 1 file changed, 20 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 9d5d00c60c..ddb4b35349 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -428,71 +429,49 @@ of Jami."
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
+       ("asio" ,asio)
        ("dbus-c++" ,dbus-c++)
        ("eudev" ,eudev)
        ("ffmpeg" ,ffmpeg-jami)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsm" ,gsm)
        ("jack" ,jack-1)
        ("jsoncpp" ,jsoncpp)
        ("libarchive" ,libarchive)
        ("libnatpmp" ,libnatpmp)
-       ("libogg" ,libogg)
-       ("libva" ,libva)
+       ("libsecp256k1" ,libsecp256k1)
+       ("libupnp" ,libupnp)
        ("opendht" ,opendht)
-       ("opus" ,opus)
-       ("pcre" ,pcre)
+       ("openssl" ,openssl)
+       ("pjproject" ,pjproject-jami)
        ("pulseaudio" ,pulseaudio)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
        ("speex" ,speex)
        ("speexdsp" ,speexdsp)
-       ("libupnp" ,libupnp)
-       ("libvorbis" ,libvorbis)
-       ("libx264" ,libx264)
-       ("libvdpau" ,libvdpau)
-       ("yaml-cpp" ,yaml-cpp)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("libsecp256k1" ,libsecp256k1)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("restinio" ,restinio)
-       ("libx11" ,libx11)
-       ("asio" ,asio)
-       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
-       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
-       ("pjproject" ,pjproject-jami)))
+       ("webrtc-audio-processing" ,webrtc-audio-processing)
+       ("yaml-cpp" ,yaml-cpp)))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
+       ("gcc" ,gcc-8)                   ;charconv requires GCC 8.1+
        ("libtool" ,libtool)
+       ("perl" ,perl)                   ;to generate manpages with pod2man
        ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("cppunit" ,cppunit)
-       ("perl" ,perl)))                 ; Needed for documentation.
+       ("which" ,which)))
     (arguments
      `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:make-flags '("V=1")            ;build verbosely
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "daemon")
-             #t))
+             (chdir "daemon")))
          (add-before 'build 'add-lib-dir
            (lambda _
-             (mkdir-p "src/lib")
-             #t)))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
+             (mkdir-p "src/lib"))))))
+    (synopsis "Jami core library and daemon")
+    (description "This package provides a library and daemon implementing the
+Jami core functionality.  Jami is a secure and distributed voice, video and
+chat communication platform that requires no centralized server and leaves the
+power of privacy in the hands of the user.  It supports the SIP and IAX
+protocols, as well as decentralized calling using P2P-DHT.")
     (home-page "https://jami.net/")
     (license license:gpl3+)))
 
-- 
2.31.1





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

* [bug#47513] [PATCH v2 10/12] gnu: libringclient: Update to 20210326.1.cfba013.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (7 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 12/12] gnu: Add jami-qt Maxim Cournoyer
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/jami.scm (libringclient): Update to 20210326.1.cfba013.  Remove
trailing #t.  Do not inherit from libring.
[version, source]: Specify fields.
[propagated-inputs]: Remove qttools.  Move libring to ...
[inputs]: ... here.  Add network-manager.
[configure-flags] Define the RING_XML_INTERFACES_DIR variable.
[phases]{fix-dbus-interfaces-path}: Delete.
[synopsis]: More explicitly describe what this component is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index ddb4b35349..41fa69dd48 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -477,37 +477,33 @@ protocols, as well as decentralized calling using P2P-DHT.")
 
 (define-public libringclient
   (package
-    (inherit libring)
     (name "libringclient")
+    (version %jami-version)
+    (source %jami-sources)
     (build-system cmake-build-system)
+    (inputs
+     `(("libring" ,libring)
+       ("network-manager" ,network-manager)))
     (propagated-inputs
-     `(("libring" ,libring)     ; For 'dring'.
-       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
-       ("qttools" ,qttools)))
+     `(("qtbase" ,qtbase)))     ; Qt is included in several installed headers.
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:configure-flags
-       (list (string-append "-DRING_BUILD_DIR="
-                            (assoc-ref %build-inputs "libring") "/include"))
+       (let ((libring (assoc-ref %build-inputs "libring")))
+         (list (string-append "-DRING_XML_INTERFACES_DIR="
+                              libring "/share/dbus-1/interfaces")
+               (string-append "-DRING_BUILD_DIR=" libring "/include")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "lrc")
-             #t))
-         (add-before 'configure 'fix-dbus-interfaces-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
-                (string-append (assoc-ref inputs "libring")
-                               dbus-interfaces-path-suffix))))))))
-    (synopsis "Distributed multimedia communications platform")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
+             (chdir "lrc"))))))
+    (synopsis "Jami client library")
+    (description "This package provides a library common to all Jami clients.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user.  It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
 
-- 
2.31.1





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

* [bug#47513] [PATCH v2 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (8 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 10/12] gnu: libringclient: " Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 12/12] gnu: Add jami-qt Maxim Cournoyer
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/jami.scm (jami): Update to 20210326.1.cfba013.  Rename to ...
(jami-gnome):  In prevision of the soon released Jami Qt client.
(jami): Define as obsoleted by jami-gnome.
[inputs]: Sort lexico-graphically.  Add libappindicator and network-manager.
[native-inputs]: Add a comment and fix a typo.  Remove doxygen.
[propagated-inputs]: Remove evolution-data-server.
[synopsis]: More explicitly describe what this package is.
[description]: Describe the specifics before the generalities.
---
 gnu/packages/jami.scm | 54 ++++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 41fa69dd48..1b6a2a2ed5 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -507,44 +508,49 @@ decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
 
-(define-public jami
+(define-public jami-gnome
   (package
-    (inherit libring)
-    (name "jami")
+    (name "jami-gnome")
+    (version %jami-version)
+    (source %jami-sources)
     (build-system cmake-build-system)
     (inputs
-     `(("libringclient" ,libringclient)
-       ("gtk+" ,gtk+)
-       ("qrencode" ,qrencode)
-       ("libnotify" ,libnotify)
-       ("clutter" ,clutter)
+     `(("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
+       ("gtk+" ,gtk+)
        ("libcanberra" ,libcanberra)
-       ("webkitgtk" ,webkitgtk)
-       ("sqlite" ,sqlite)))
+       ("libappindicator" ,libappindicator)
+       ("libnotify" ,libnotify)
+       ("libringclient" ,libringclient)
+       ("network-manager" ,network-manager)
+       ("qrencode" ,qrencode)
+       ("sqlite" ,sqlite)
+       ("webkitgtk" ,webkitgtk)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("doxygen" ,doxygen)))
+       ("glib:bin" ,glib "bin")))       ;for glib-compile-resources
     (propagated-inputs
-     `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("evolution-data-server" ,evolution-data-server)))
+     `(("libring" ,libring) ; Contains 'dring', the daemon, which is
+                            ; automatically started by DBus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)))
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "client-gnome")
-             #t)))))
-    (synopsis "Distributed, privacy-respecting communication program")
-    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user.  It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides the Jami client for the GNOME desktop.")
+             (chdir "client-gnome"))))))
+    (synopsis "Jami client for GNOME")
+    (description "This package provides a Jami client for the GNOME desktop.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user.  It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
     (home-page "https://jami.net")
     (license license:gpl3+)))
+
+;;; Keep this until the Qt client matures enough to become the
+;;; main 'jami' client.
+(define-public jami
+  (deprecated-package "jami" jami-gnome))
-- 
2.31.1





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

* [bug#47513] [PATCH v2 12/12] gnu: Add jami-qt.
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
                     ` (9 preceding siblings ...)
  2021-03-31 17:22   ` [bug#47513] [PATCH v2 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
@ 2021-03-31 17:22   ` Maxim Cournoyer
  10 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:22 UTC (permalink / raw)
  To: 47513; +Cc: Jack Hill, Maxime Devos, Maxim Cournoyer

* gnu/packages/jami.scm (jami-qt): New variable.
---
 gnu/packages/jami.scm | 66 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 1b6a2a2ed5..ddfe6a2770 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
@@ -59,6 +60,7 @@
   #:use-module (gnu packages)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system qt)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -554,3 +556,67 @@ decentralized calling using P2P-DHT.")
 ;;; main 'jami' client.
 (define-public jami
   (deprecated-package "jami" jami-gnome))
+
+(define-public jami-qt
+  (package
+    (name "jami-qt")                    ;to be renamed 'jami' at some point
+    (version %jami-version)
+    ;; The Qt client code is not yet part of the release tarball; fetch it
+    ;; from git for now.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.jami.net/savoirfairelinux/jami-client-qt.git")
+                    (commit "ae21c17da5e8f730ae3895ccbc4da8047e3be1eb")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1rf3lpk8c4qc12pi6pn4rdp7i8b83xv64yqr0q47rzv9s518qyjp"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:phases
+       (modify-phases %standard-phases
+         ;; TODO: Uncomment after switching back to the tarball source.
+         ;;   (add-after 'unpack 'change-directory
+         ;;     (lambda _
+         ;;       (chdir "client-qt")))
+         (add-after 'install 'wrap
+           ;; The program fails to find the QtWebEngineProcess program, so we
+           ;; set QTWEBENGINEPROCESS_PATH to help it.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                   (qtwebengineprocess (string-append
+                                        (assoc-ref inputs "qtwebengine")
+                                        "/lib/qt5/libexec/QtWebEngineProcess")))
+               (for-each (lambda (program)
+                           (wrap-program program
+                             `("QTWEBENGINEPROCESS_PATH" =
+                               (,qtwebengineprocess))))
+                         (find-files bin ".*"))))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
+       ("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)))
+    (inputs
+     `(("network-manager" ,network-manager)
+       ("qrencode" ,qrencode)
+       ("qtsvg" ,qtsvg)
+       ("qtwebengine" ,qtwebengine)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtquickcontrols2" ,qtquickcontrols2)))
+    (propagated-inputs
+     `(("libringclient" ,libringclient)))
+    (home-page "https://jami.net")
+    (synopsis "Qt Jami client")
+    (description "This package provides the Jami Qt client.  Jami is a secure
+and distributed voice, video and chat communication platform that requires no
+centralized server and leaves the power of privacy in the hands of the user.
+It supports the SIP and IAX protocols, as well as decentralized calling using
+P2P-DHT.")
+    (license license:gpl3+)))
-- 
2.31.1





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

* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
  2021-03-31 13:23 ` Maxime Devos
  2021-03-31 16:57   ` Maxim Cournoyer
@ 2021-03-31 17:23   ` Maxim Cournoyer
  1 sibling, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:23 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 47513

Hi again,

Maxime Devos <maximedevos@telenet.be> writes:

> On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
>> Hello!
>> 
>> I've finally picked up the packaging of Jami, which was becoming quite
>> outdated in Guix.  I haven't had much time to test the result yet, but a
>> priori it seems to function as intended.
>> 
>> Let me know how it works for you!
>> 
>> Maxim
>
> Something went wrong with sending the patch.
> Snipped from first patch from
> <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47513#5>:
>
> <start snip>
> From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
> To: 47513@debbugs.gnu.org
> Subject: [PATCH 01/12] gnu: asio: Update to 1.18.1.
> Date: Wed, 31 Mar 2021 01:23:37 -0400
> Message-Id: <20210331052348.5164-1-maxim.cournoyer@gmail.com>
> X-Mailer: git-send-email 2.31.1
> MIME-Version: 1.0
> Content-Type: text/plain; charset=yes
> Content-Transfer-Encoding: 8bit
> <end snip>
>
> What character encoding is 'yes'?
> I manually changed 'yes' to 'utf-8' and only then the
> patch series applied.

Actually, retrying with the following command:

$ git send-email --to='47513@debbugs.gnu.org' [...] -v2 origin/master

again produces:

X-Mailer: git-send-email 2.31.1
MIME-Version: 1.0
Content-Type: text/plain; charset=yes
Content-Transfer-Encoding: 8bit

It had to do with:

$ git config sendemail.assume8bitEncoding
yes

I assumed this flag was a boolean but apparently it takes the encoding
type such as 'UTF-8'

After making this change:

--8<---------------cut here---------------start------------->8---
modified   git/.gitconfig
-	assume8bitEncoding = yes
+	assume8bitEncoding = utf-8
--8<---------------cut here---------------end--------------->8---

It shows up as utf-8, and hopefully will work better on your side!  I
just sent a v2.

Thanks for allowing me to realize this mistake of mine.

Maxim




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

* [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome.
  2021-03-31 15:23         ` Jack Hill
@ 2021-03-31 17:26           ` Maxim Cournoyer
  0 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-03-31 17:26 UTC (permalink / raw)
  To: Jack Hill; +Cc: 47513

Hi Jack!

Jack Hill <jackhill@jackhill.us> writes:

> On Wed, 31 Mar 2021, Jack Hill wrote:
>
>>> [ 25%] LOAD     gnu/packages/jami.scm
>>> ;;; note: source file ./gnu/packages/jami.scm
>>> ;;;       newer than compiled
>>> /home/jackhill/repos/guix/gnu/packages/jami.go
>>> ;;; note: source file ./gnu/packages/jami.scm
>>> ;;;       newer than compiled
>>> /home/jackhill/repos/guix/gnu/packages/jami.go
>>> ice-9/eval.scm:293:34: error: jami: unbound variable
>>> hint: Did you forget a `use-modules' form?
>>> make[2]: *** [Makefile:6318: make-go] Error 1
>>> make[2]: Leaving directory '/home/jackhill/repos/guix'
>>> make[1]: *** [Makefile:5366: all-recursive] Error 1
>>> make[1]: Leaving directory '/home/jackhill/repos/guix'
>>> make: *** [Makefile:3697: all] Error 2
>>> ```
>>> Unfortunately, I don't see any place the old binding is referenced.
>>
>> Oops, this seems be be my mistake. A `make clean-go` fixed it. Sorry
>> for the noise.
>
> Oops again. It seems like a spoke too soon. I'm still having the
> problem after a clean-go (I had forgotten that I was looking at
> something else in my guix repository and didn't have these patches
> applied at the moment).

Sorry, there was a mistake in my git sendemail configuration, where I
had mistakenly set assume8bitEncoding to yes instead of to some valid
value such as 'utf-8'.

I've fixed that along the missing jami variable binding and pushed as
v2.  Let me know if it works better!

Maxim




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

* [bug#47513] [PATCH 00/12] Update jami and add jami-qt
  2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
                   ` (3 preceding siblings ...)
  2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
@ 2021-04-01 11:10 ` Maxime Devos
  2021-04-02 11:52   ` bug#47513: " Maxim Cournoyer
  4 siblings, 1 reply; 35+ messages in thread
From: Maxime Devos @ 2021-04-01 11:10 UTC (permalink / raw)
  To: Maxim Cournoyer, 47513

[-- Attachment #1: Type: text/plain, Size: 1105 bytes --]

On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
> Hello!
> 
> I've finally picked up the packaging of Jami, which was becoming quite
> outdated in Guix.  I haven't had much time to test the result yet, but a
> priori it seems to function as intended.
> 
> Let me know how it works for you!

It seems to work for me, however I needed to make a tiny change:

<start snip>
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 67befe63a2..b73ad027fe 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -554,7 +554,7 @@ decentralized calling using P2P-DHT.")
 
 ;;; Keep this until the Qt client matures enough to become the
 ;;; main 'jami' client.
-(deprecated-package jami jami-gnome)
+#;(deprecated-package jami jami-gnome)
 
 (define-public jami-qt
   (package
<end snip>

Looking at "git grep -F deprecated-package" output, perhaps

 (deprecated-package jami jami-gnome)

should have been

 (deprecated-package "jami" jami-gnome)

? (untested)

Also, I didn't have any opportunity to actually call someone.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

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

* bug#47513: [PATCH 00/12] Update jami and add jami-qt
  2021-04-01 11:10 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
@ 2021-04-02 11:52   ` Maxim Cournoyer
  0 siblings, 0 replies; 35+ messages in thread
From: Maxim Cournoyer @ 2021-04-02 11:52 UTC (permalink / raw)
  To: Maxime Devos; +Cc: Jack Hill, 47513-done

Hi Maxime!

Maxime Devos <maximedevos@telenet.be> writes:

> On Wed, 2021-03-31 at 01:14 -0400, Maxim Cournoyer wrote:
>> Hello!
>> 
>> I've finally picked up the packaging of Jami, which was becoming quite
>> outdated in Guix.  I haven't had much time to test the result yet, but a
>> priori it seems to function as intended.
>> 
>> Let me know how it works for you!
>
> It seems to work for me, however I needed to make a tiny change:
>
> <start snip>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index 67befe63a2..b73ad027fe 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -554,7 +554,7 @@ decentralized calling using P2P-DHT.")
>  
>  ;;; Keep this until the Qt client matures enough to become the
>  ;;; main 'jami' client.
> -(deprecated-package jami jami-gnome)
> +#;(deprecated-package jami jami-gnome)
>  
>  (define-public jami-qt
>    (package
> <end snip>

Jack in the thread made me notice about that as well; deprecated-package
returns a package object, so it needs to be public-define'd the usual
way:

+
+;;; Keep this until the Qt client matures enough to become the
+;;; main 'jami' client.
+(define-public jami
+  (deprecated-package "jami" jami-gnome))

And yes the package name is a string.  I fixed this in a v2 patch series
I sent along a problem propagating libringclient instead of libring for
the jami-qt client (see:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47513#95).  MUMI
(issues.guix.gnu.org) sadly doesn't seem to have picked it up.

[...]

> Also, I didn't have any opportunity to actually call someone.

[...]

OK!  I've tested it on my side with actual calls, so I feel confident it
works fine.  I've made a few last changes (using LIBWRAP when building
libringclient so that it talks directly with libring instead of going
through DBus, which allows to have it work even in a 'guix pack' and
cleaning the list of imports) and pushed to master as
e6b447cf756831e8339e6462647004d88132fa07.

Thanks for the review!

Maxim




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

end of thread, other threads:[~2021-04-02 11:53 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31  5:14 [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxim Cournoyer
2021-03-31  5:23 ` [bug#47513] [PATCH 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 10/12] gnu: libringclient: " Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
2021-03-31  6:08     ` Jack Hill
2021-03-31 15:21       ` Jack Hill
2021-03-31 15:23         ` Jack Hill
2021-03-31 17:26           ` Maxim Cournoyer
2021-03-31  5:23   ` [bug#47513] [PATCH 12/12] gnu: Add jami-qt Maxim Cournoyer
2021-03-31  6:49 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
2021-03-31 13:23 ` Maxime Devos
2021-03-31 16:57   ` Maxim Cournoyer
2021-03-31 17:23   ` Maxim Cournoyer
2021-03-31 17:22 ` [bug#47513] [PATCH v2 01/12] gnu: asio: Update to 1.18.1 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 02/12] gnu: restbed: Update to 4.7 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 03/12] gnu: restinio: Update to 0.6.13 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 04/12] gnu: Add nettle-3.7 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 05/12] gnu: opendht: Update to 2.2.0rc4 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 06/12] gnu: pjproject: Update to 2.11 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 07/12] gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 08/12] ffmpeg-jami: Patch with the patches from Jami 20210326.1.cfba013 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 09/12] gnu: libring: Update to 20210326.1.cfba013 Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 10/12] gnu: libringclient: " Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 11/12] gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome Maxim Cournoyer
2021-03-31 17:22   ` [bug#47513] [PATCH v2 12/12] gnu: Add jami-qt Maxim Cournoyer
2021-04-01 11:10 ` [bug#47513] [PATCH 00/12] Update jami and add jami-qt Maxime Devos
2021-04-02 11:52   ` bug#47513: " Maxim Cournoyer

unofficial mirror of guix-patches@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-patches/1 guix-patches/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-patches guix-patches/ https://yhetil.org/guix-patches \
		guix-patches@gnu.org
	public-inbox-index guix-patches

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.patches


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git