From 3d913c1ed80470fde408a6f4509e8ae1277f40fb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 1 Aug 2020 15:05:09 -0400 Subject: gnu: pjproject-jami: Fix CVE-2020-15260 and CVE-2021-21375. 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] : 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(-) (limited to 'gnu/packages/jami.scm') 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 ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2019, 2020 Jan Wielkiewicz -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; ;;; 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 -- cgit v1.2.3 From 3f742c77ef26d38bce0ce99619491ade8686a77f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 30 Mar 2021 16:57:54 -0400 Subject: ffmpeg-jami: Apply patches from Jami 20210326.1.cfba013. * gnu/packages/jami.scm (ffmpeg-jami): Remove trailing #t. [phases] : 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(-) (limited to 'gnu/packages/jami.scm') 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 -- cgit v1.2.3 From 2cfd4770afca54382de3ddd04dedd15303ad38ec Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 30 Mar 2021 17:02:30 -0400 Subject: gnu: libring: Update to 20210326.1.cfba013. * 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 libgit2 and 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 | 71 +++++++++++++++++---------------------------------- 1 file changed, 23 insertions(+), 48 deletions(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 9d5d00c60c..768039a9ea 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -26,20 +26,16 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) - #:use-module (gnu packages boost) - #:use-module (gnu packages check) - #: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) #:use-module (gnu packages gtk) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) - #:use-module (gnu packages multiprecision) #:use-module (gnu packages networking) - #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) @@ -50,6 +46,7 @@ #:use-module (gnu packages telephony) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) + #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages webkit) #:use-module (gnu packages xiph) @@ -60,8 +57,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) - #:use-module (guix utils) - #:use-module (srfi srfi-1)) + #:use-module (guix utils)) (define %jami-version "20210326.1.cfba013") @@ -428,71 +424,50 @@ 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) + ("libgit2" ,libgit2) ("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+))) -- cgit v1.2.3 From 40a5f7904a482500840332b18917a22163750785 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 30 Mar 2021 21:03:16 -0400 Subject: gnu: libringclient: Update to 20210326.1.cfba013. * 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 and LIBWRAP variables. [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 | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 768039a9ea..2d52b4bb6a 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -473,37 +473,39 @@ 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") + ;; Use LIBWRAP, which removes the requirement on DBus. Qt + ;; links with the dbus library in Guix, which expects to find + ;; its configuration under /etc rather than /usr/share/dbus-1, + ;; which is perhaps the reason the auto-launching of dring + ;; doesn't work on foreign distributions. + "-DENABLE_LIBWRAP=true")) #: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+))) -- cgit v1.2.3 From 60e64e28f3a5d8eaf5659b655af9b027eb396f1f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 30 Mar 2021 22:45:34 -0400 Subject: gnu: jami: Update to 20210326.1.cfba013 and rename to jami-gnome. * gnu/packages/jami.scm (jami): Update to 20210326.1.cfba013. Rename to ... (jami-gnome): ... this, in prevision to 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(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 2d52b4bb6a..e65e477b79 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -28,6 +28,7 @@ #:use-module (gnu packages base) #: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) @@ -509,44 +510,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)) -- cgit v1.2.3 From e6b447cf756831e8339e6462647004d88132fa07 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 31 Mar 2021 01:13:57 -0400 Subject: gnu: Add jami-qt. * gnu/packages/jami.scm (jami-qt): New variable. --- gnu/packages/jami.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index e65e477b79..e1f6d412be 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -33,6 +33,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) @@ -55,6 +56,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) @@ -556,3 +558,68 @@ 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 + `(("libringclient" ,libringclient) + ("network-manager" ,network-manager) + ("qrencode" ,qrencode) + ("qtsvg" ,qtsvg) + ("qtwebengine" ,qtwebengine) + ("qtwebchannel" ,qtwebchannel) + ("qtmultimedia" ,qtmultimedia) + ("qtdeclarative" ,qtdeclarative) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("libring" ,libring))) ;for dring + (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+))) -- cgit v1.2.3 From 532c0e745aa81b5ac5ed8cb2b4f9b02aa720d9a9 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 2 Apr 2021 11:47:17 -0400 Subject: gnu: libringclient: Disable the libwrap feature. As it causes video calls to segfault. * gnu/packages/jami.scm (libringclient): Set -DENABLE_LIBWRAP to false for the time being. --- gnu/packages/jami.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index e1f6d412be..0ba293ca93 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -497,7 +497,11 @@ protocols, as well as decentralized calling using P2P-DHT.") ;; its configuration under /etc rather than /usr/share/dbus-1, ;; which is perhaps the reason the auto-launching of dring ;; doesn't work on foreign distributions. - "-DENABLE_LIBWRAP=true")) + + ;; FIXME: Disabled for now, as it causes a segfault when + ;; attempting video calls (see: + ;; https://git.jami.net/savoirfairelinux/ring-lrc/-/issues/466). + "-DENABLE_LIBWRAP=false")) #:phases (modify-phases %standard-phases (add-after 'unpack 'change-directory -- cgit v1.2.3 From 591c930337556f1a242fc8f7a891a4409d18da84 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 2 Apr 2021 12:38:29 -0400 Subject: gnu: jami: Add debug outputs. * gnu/packages/jami.scm (libring, libringclient, jami-gnome, jami-qt): Add a "debug" output. --- gnu/packages/jami.scm | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 0ba293ca93..42b15cee9b 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -425,6 +425,7 @@ of Jami." (version %jami-version) (source %jami-sources) (build-system gnu-build-system) + (outputs '("out" "debug")) (inputs `(("alsa-lib" ,alsa-lib) ("asio" ,asio) @@ -480,6 +481,7 @@ protocols, as well as decentralized calling using P2P-DHT.") (version %jami-version) (source %jami-sources) (build-system cmake-build-system) + (outputs '("out" "debug")) (inputs `(("libring" ,libring) ("network-manager" ,network-manager))) @@ -522,6 +524,7 @@ decentralized calling using P2P-DHT.") (version %jami-version) (source %jami-sources) (build-system cmake-build-system) + (outputs '("out" "debug")) (inputs `(("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) @@ -579,6 +582,7 @@ decentralized calling using P2P-DHT.") (base32 "1rf3lpk8c4qc12pi6pn4rdp7i8b83xv64yqr0q47rzv9s518qyjp")))) (build-system qt-build-system) + (outputs '("out" "debug")) (arguments `(#:tests? #f ;no test suite #:phases -- cgit v1.2.3 From 59134f1e02dbde6d82e6204b51ca49347b8037d9 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 9 Apr 2021 23:20:18 -0400 Subject: gnu: jami-qt: Remove the custom wrap phase. Commit 06eb21856f made it necessary, since it is now handled by the Qt build system itself. * gnu/packages/jami.scm (jami-qt)[phases]{wrap}: Remove phase. --- gnu/packages/jami.scm | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 42b15cee9b..0adc3ed81e 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -585,25 +585,13 @@ decentralized calling using P2P-DHT.") (outputs '("out" "debug")) (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 ".*")))))))) + ;; TODO: Uncomment after switching back to the tarball source. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (add-after 'unpack 'change-directory + ;; (lambda _ + ;; (chdir "client-qt")))) + )) (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools) -- cgit v1.2.3