aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-01-12 21:52:07 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-01-13 00:57:52 -0500
commit1ed66d1461d18c97894381bace428b982980d597 (patch)
tree23f29b27ad292c3d2dd3ca186e5013e1ae1d9348
parentf4920f62bd04dbb891d98a01217112e0035bb0ef (diff)
downloadguix-1ed66d1461d18c97894381bace428b982980d597.tar
guix-1ed66d1461d18c97894381bace428b982980d597.tar.gz
gnu: jami: Update to 20211223.2.37be4c3.
* gnu/packages/patches/pjproject-correct-the-cflags-field.patch: Delete file. * gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch: Likewise. * gnu/local.mk (dist_patch_DATA): De-register them. * gnu/packages/jami.scm (%jami-version): Update version string. (%jami-sources): Adjust snippet. (jami-apply-custom-patches): Use G-Exp. (pjproject-jami): Use Savoir-faire Linux's fork and update to 2.11-0.e1f389d. [phases]: Adjust and update accordingly. (%ffmpeg-default-configure-flags): Capitalize and reword comments. (ffmpeg-jami)[native-inputs]: Delete field. [tests?]: Add comment and move into the SUBSTITUTE-KEYWORD-ARGUMENTS use. [phases]: Use G-Exp and update the list of patches. (libring): Deprecate and rename to... (libjami): ... this. Move the arguments field before the inputs. [tests?]: Add explanatory comment. [configure-flags]: Add '--disable-agent', with explanatory comment. [phases]{change-directory}: Rename to... {change-directory/maybe}: ... this, to attempt but not enforce a directory change so as to also support using a Git checkout as source. {add-lib-dir}: Remove phase. [inputs]: Use new style. [native-inputs]: Add cppunit. (libringclient): Deprecate and rename to... {jami-libclient}: ... this. [configure-flags]: Enable LIBWRAP. [phases]{change-directory/maybe}: Renamed from change-directory, for reasons described above. [inputs]: Adjust accordingly. (jami-gnome): Move the input fields below the arguments field. [phases]{change-directory/maybe}: Renamed from change-directory, for reasons described above. [inputs]: Rename libringclient to jami-libclient and use new style. [native-inputs]: Use new style. [propagated-inputs]: Delete field. (jami-qt): Deprecate and rename to... (jami): ... this. [phases]{change-directory/maybe}: Renamed from change-directory, for reasons described above. [native-inputs]: Add python. [inputs]: Adjust accordingly. [propagated-inputs]: Delete field.
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/jami.scm399
-rw-r--r--gnu/packages/patches/pjproject-correct-the-cflags-field.patch121
-rw-r--r--gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch79
4 files changed, 196 insertions, 405 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 6a9c1b87f9..ef73f9237a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1628,8 +1628,6 @@ dist_patch_DATA = \
%D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pipewire-0.2.7-fno-common.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \
- %D%/packages/patches/pjproject-correct-the-cflags-field.patch \
- %D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \
%D%/packages/patches/plink-1.07-unclobber-i.patch \
%D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plib-CVE-2011-4620.patch \
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 804e3196c0..21f8c07934 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, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +26,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
+ #:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
@@ -34,6 +35,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
@@ -57,11 +59,12 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system qt)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils))
-(define %jami-version "20210606.1.e2f9490")
+(define %jami-version "20211223.2.37be4c3")
(define %jami-sources
;; Return an origin object of the tarball release sources archive of the
@@ -80,94 +83,73 @@
(delete-file-recursively "daemon/contrib/tarballs")
;; Remove the git submodule directories of unused Jami clients.
(for-each delete-file-recursively '("client-android"
- "client-electron"
"client-ios"
"client-macosx"
"client-uwp"))))
(sha256
(base32
- "1vpxv2dk3l9cahv6mxd2754pxs9mzrid5bgwvl6k1byzpq8y4smr"))))
+ "12h4a0nj3gh05w64gkywrrb64agrhn6y3q4b9cqnhvr1vdkzlj0h"))))
;; Jami 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 them.
(define jami-apply-custom-patches
- '(lambda* (#:key inputs dep-name patches)
- (let ((patches-directory "patches"))
- (mkdir-p patches-directory)
- (invoke "tar" "-xvf" (assoc-ref inputs "jami-sources")
- "-C" patches-directory
- "--strip-components=5"
- (string-append "ring-project/daemon/contrib/src/"
- dep-name))
- (for-each
- (lambda (file)
- (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
- (string-append patches-directory "/"
- file ".patch")))
- patches))))
+ #~(lambda* (#:key dep-name patches)
+ (let ((patches-directory "patches"))
+ (mkdir-p patches-directory)
+ (invoke "tar" "-xvf" #$%jami-sources
+ "-C" patches-directory
+ "--strip-components=5"
+ (string-append "ring-project/daemon/contrib/src/"
+ dep-name))
+ (for-each
+ (lambda (file)
+ (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
- `(("jami-sources" ,%jami-sources)
- ,@(package-native-inputs pjproject)))
- (arguments
- (substitute-keyword-arguments (package-arguments pjproject)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'make-source-files-writable 'apply-patches
- (lambda* (#:key inputs #:allow-other-keys)
- (,jami-apply-custom-patches
- #:inputs inputs
- #:dep-name "pjproject"
- #:patches
- '("0001-rfc6544"
- "0002-rfc2466"
- "0003-add-tcp-keep-alive"
- "0004-multiple_listeners"
- "0005-fix_ebusy_turn"
- "0006-ignore_ipv6_on_transport_check"
- "0007-upnp-srflx-nat-assisted-cand"
- "0008-fix_ioqueue_ipv6_sendto"
- "0009-add-config-site"
- ;; Already taken care of via the origin patches.
- ;;"0010-fix-pkgconfig"
- "0011-fix-tcp-death-detection"
- "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"
- "0019-ignore-down-interfaces"))))))))))
+ (let ((commit "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a")
+ (revision "0"))
+ (package
+ (inherit pjproject)
+ (name "pjproject-jami")
+ (version (git-version "2.11" revision commit))
+ (source (origin
+ (inherit (package-source pjproject))
+ ;; The Jami development team regularly issues patches to
+ ;; pjproject to extend the its functionality and fix bugs;
+ ;; they are submitted for inclusion upstream but larger
+ ;; patches take time to be reviewed and merged, hence this
+ ;; forked repository.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/savoirfairelinux/pjproject")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments pjproject)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'apply-patches
+ (lambda _
+ (#$jami-apply-custom-patches
+ #:dep-name "pjproject"
+ #:patches
+ ;; This adds a config_site.h configuration file that sets
+ ;; constants such as PJ_ICE_MAX_CAND that cannot be
+ ;; configured at build time.
+ '("0009-add-config-site")))))))))))
;; 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
+;; from the jami-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
;; keep it as close to the official Jami package as possible, to provide all
-;; the codecs and extra features that are expected.
-;;
-;; See:
-;; https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak
-
+;; the codecs and extra features that are expected (see:
+;; https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak)
(define %ffmpeg-default-configure-flags
'("--disable-everything"
"--enable-zlib"
@@ -187,7 +169,7 @@
"--enable-protocol=unix"
"--enable-protocol=pipe"
- ;; enable muxers/demuxers
+ ;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
@@ -195,6 +177,7 @@
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
+; "--enable-muxer=matroska"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
@@ -223,7 +206,7 @@
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
- ;; enable parsers
+ ;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
@@ -232,7 +215,7 @@
"--enable-parser=vp9"
"--enable-parser=opus"
- ;; encoders/decoders
+ ;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=rawvideo"
@@ -263,7 +246,7 @@
"--enable-encoder=libopus"
"--enable-decoder=libopus"
- ;; decoders for ringtones and audio streaming
+ ;; Decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
@@ -298,7 +281,7 @@
"--enable-decoder=pcm_u16be"
"--enable-decoder=pcm_u16le"
- ;; encoders/decoders for images
+ ;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
@@ -312,7 +295,7 @@
"--enable-encoder=tiff"
"--enable-decoder=tiff"
- ;; filters
+ ;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
@@ -346,8 +329,8 @@
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi"))
-;; ffnvcodec is not supported on ARM then we enable it here for i386 and
-;; x86_64 architectures.
+;; ffnvcodec is not supported on ARM; enable it only for the i386 and x86_64
+;; architectures.
(define %ffmpeg-linux-x86-configure-flags
'("--arch=x86"
"--enable-cuvid"
@@ -378,81 +361,89 @@
(define-public ffmpeg-jami
(package/inherit ffmpeg
(name "ffmpeg-jami")
- (native-inputs
- `(("jami-sources" ,%jami-sources)
- ("libiconv" ,libiconv)
- ,@(package-native-inputs ffmpeg)))
- (supported-systems '("x86_64-linux" "i686-linux"
- "aarch64-linux" "armhf-linux"))
(arguments
- (append
- '(#:tests? #f)
- (substitute-keyword-arguments (package-arguments ffmpeg)
- ((#:configure-flags '())
- (ffmpeg-compose-configure-flags))
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'make-git-checkout-writable
- (lambda _
- (for-each make-file-writable (find-files "."))))
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:tests? _ #f)
+ ;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint'
+ ;; test to fail (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685).
+ ;; TODO: Try to disable just this test.
+ #f)
+ ((#:configure-flags '())
+ (ffmpeg-compose-configure-flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
(add-after 'unpack 'apply-patches
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda _
;; These patches come from:
- ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
- (,jami-apply-custom-patches
- #:inputs inputs #:dep-name "ffmpeg"
+ ;; "jami-project/daemon/contrib/src/ffmpeg/rules.mak".
+ (#$jami-apply-custom-patches
+ #:dep-name "ffmpeg"
#:patches '("remove-mjpeg-log"
"change-RTCP-ratio"
"rtp_ext_abs_send_time"
"libopusdec-enable-FEC"
- "libopusenc-enable-FEC")))))))))))
+ "libopusenc-enable-FEC"
+ "screen-sharing-x11-fix"))))))))))
-(define-public libring
+(define-public libjami
(package
- (name "libring")
+ (name "libjami")
(version %jami-version)
(source %jami-sources)
- (build-system gnu-build-system)
(outputs '("out" "debug"))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ ;; The test suite fails to link when building libjami as a shared library:
+ ;; "testAccount_factory.cpp:(.text+0xc52): undefined reference to
+ ;; `jami::AccountFactory::AccountFactory()'.
+ #:tests? #f
+ ;; The agent links the daemon binary with libguile, which enables the
+ ;; execution of test plans described in Scheme. It may be useful in
+ ;; user scripts too, until more generalized Scheme bindings are made
+ ;; (see: test/agent/README.md).
+ ;; FIXME: Fails to link when building libjami as a shared library:
+ ;; bindings.cpp:(.text+0x24): undefined reference to `jami::Logger::log
+ ;; [...].
+ #:configure-flags #~(list "--disable-agent")
+ #:make-flags #~(list "V=1") ;build verbosely
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "daemon")))))))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("asio" ,asio)
- ("dbus-c++" ,dbus-c++)
- ("eudev" ,eudev)
- ("ffmpeg" ,ffmpeg-jami)
- ("jack" ,jack-1)
- ("jsoncpp" ,jsoncpp)
- ("libarchive" ,libarchive)
- ("libgit2" ,libgit2)
- ("libnatpmp" ,libnatpmp)
- ("libsecp256k1" ,libsecp256k1)
- ("libupnp" ,libupnp)
- ("opendht" ,opendht)
- ("openssl" ,openssl)
- ("pjproject" ,pjproject-jami)
- ("pulseaudio" ,pulseaudio)
- ("speex" ,speex)
- ("speexdsp" ,speexdsp)
- ("webrtc-audio-processing" ,webrtc-audio-processing)
- ("yaml-cpp" ,yaml-cpp)))
+ (list alsa-lib
+ asio
+ dbus-c++
+ eudev
+ ffmpeg-jami
+ guile-3.0
+ jack-1
+ jsoncpp
+ libarchive
+ libgit2
+ libnatpmp
+ libsecp256k1
+ libupnp
+ opendht
+ openssl
+ pjproject-jami
+ pulseaudio
+ speex
+ speexdsp
+ webrtc-audio-processing
+ yaml-cpp))
(native-inputs
(list autoconf
automake
+ cppunit
libtool
- perl ;to generate manpages with pod2man
+ perl ;to generate manpages with pod2man
pkg-config
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")))
- (add-before 'build 'add-lib-dir
- (lambda _
- (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
@@ -462,39 +453,42 @@ protocols, as well as decentralized calling using P2P-DHT.")
(home-page "https://jami.net/")
(license license:gpl3+)))
-(define-public libringclient
+;;; Remove when 2023 comes.
+(define-public libring
+ (deprecated-package "libring" libjami))
+
+;;; Note: this package will eventually be absorbed into jami itself (the Qt
+;;; client).
+(define-public jami-libclient
(package
- (name "libringclient")
+ (name "jami-libclient")
(version %jami-version)
(source %jami-sources)
(build-system cmake-build-system)
(outputs '("out" "debug"))
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags
+ #~(list (string-append "-DRING_XML_INTERFACES_DIR="
+ #$(this-package-input "libjami")
+ "/share/dbus-1/interfaces")
+ (string-append "-DRING_BUILD_DIR="
+ #$(this-package-input "libjami")
+ "/include")
+ ;; Call to the libraries directly instead of going through DBus
+ ;; to avoid issues (see: https://issues.guix.gnu.org/48538).
+ "-DENABLE_LIBWRAP=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "lrc")))))))
(inputs
- (list libring network-manager))
+ (list libjami network-manager))
(propagated-inputs
- (list qtbase-5)) ; Qt is included in several installed headers.
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:configure-flags
- (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.
-
- ;; 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
- (lambda _
- (chdir "lrc"))))))
+ (list qtbase-5)) ;Qt is included in several installed headers
(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
@@ -504,33 +498,17 @@ decentralized calling using P2P-DHT.")
(home-page "https://jami.net")
(license license:gpl3+)))
+;;; Remove when 2023 comes.
+(define-public libringclient
+ (deprecated-package "libringclient" jami-libclient))
+
(define-public jami-gnome
(package
(name "jami-gnome")
(version %jami-version)
(source %jami-sources)
- (build-system cmake-build-system)
(outputs '("out" "debug"))
- (inputs
- (list clutter
- clutter-gtk
- gtk+
- libcanberra
- libappindicator
- libnotify
- libringclient
- network-manager
- qrencode
- sqlite
- webkitgtk))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin"))) ;for glib-compile-resources
- (propagated-inputs
- (list libring ; Contains 'dring', the daemon, which is
- ; automatically started by DBus.
- adwaita-icon-theme))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test suite
#:imported-modules (,@%cmake-build-system-modules
@@ -540,10 +518,11 @@ decentralized calling using P2P-DHT.")
(guix build utils))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
+ (add-after 'unpack 'change-directory/maybe
(lambda _
- (chdir "client-gnome")))
- (add-after 'change-directory 'fix-webkit-detection
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "client-gnome"))))
+ (add-after 'change-directory/maybe 'fix-webkit-detection
(lambda _
(substitute* "CMakeLists.txt"
(("WEBKIT webkit2gtk-4.0")
@@ -552,6 +531,22 @@ decentralized calling using P2P-DHT.")
(assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs
+ (list clutter
+ clutter-gtk
+ gtk+
+ jami-libclient
+ libcanberra
+ libappindicator
+ libnotify
+ network-manager
+ qrencode
+ sqlite
+ webkitgtk))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ `(,glib "bin"))) ;for glib-compile-resources
(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
@@ -561,14 +556,9 @@ 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))
-
-(define-public jami-qt
(package
- (name "jami-qt") ;to be renamed 'jami' at some point
+ (name "jami")
(version %jami-version)
(source %jami-sources)
(build-system qt-build-system)
@@ -577,14 +567,15 @@ decentralized calling using P2P-DHT.")
`(#:tests? #f ;no test suite
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "client-qt"))))))
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "client-qt")))))))
(native-inputs
- (list pkg-config qttools doxygen graphviz))
+ (list pkg-config python qttools doxygen graphviz))
(inputs
- (list libnotify
- libringclient
+ (list jami-libclient
+ libnotify
network-manager
qrencode
qtsvg
@@ -595,8 +586,6 @@ decentralized calling using P2P-DHT.")
qtgraphicaleffects
qtquickcontrols
qtquickcontrols2))
- (propagated-inputs
- (list libring)) ;for dring
(home-page "https://jami.net")
(synopsis "Qt Jami client")
(description "This package provides the Jami Qt client. Jami is a secure
@@ -605,3 +594,7 @@ 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+)))
+
+;;; Remove when 2023 comes.
+(define-public jami-qt
+ (deprecated-package "jami-qt" jami))
diff --git a/gnu/packages/patches/pjproject-correct-the-cflags-field.patch b/gnu/packages/patches/pjproject-correct-the-cflags-field.patch
deleted file mode 100644
index 8bc503580d..0000000000
--- a/gnu/packages/patches/pjproject-correct-the-cflags-field.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 44f8f6c1c71bec6bf00269b075a2dc801ae6fd45 Mon Sep 17 00:00:00 2001
-From: Vladimir Stoiakin <VStoiakin@lavabit.com>
-Date: Thu, 23 Apr 2020 14:06:40 +0300
-Subject: [PATCH 1/2] libpjproject.pc: correct the field 'cflags'
-
----
- Makefile | 6 ++----
- aconfigure | 4 ++++
- aconfigure.ac | 3 +++
- build.mak.in | 7 +++----
- libpjproject.pc.in | 4 ++--
- 5 files changed, 14 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ffaf638dd..3fd5cab40 100644
---- a/Makefile
-+++ b/Makefile
-@@ -132,10 +132,8 @@ install:
- sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
- sed -e "s!@LIBDIR@!$(libdir)!" | \
- sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
-- sed -e "s!@PJ_LDLIBS@!!" | \
-- sed -e "s!@PJ_LDXXLIBS@!$(PJ_LDXXLIBS)!" | \
-- sed -e "s!@PJ_INSTALL_CFLAGS@!!" | \
-- sed -e "s!@PJ_INSTALL_CXXFLAGS@!$(PJ_INSTALL_CXXFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-+ sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
-+ sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-
- uninstall:
- $(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
-diff --git a/aconfigure b/aconfigure
-index 2abbcf533..1ab932bda 100755
---- a/aconfigure
-+++ b/aconfigure
-@@ -706,6 +706,7 @@ GREP
- CPP
- ac_cross_compile
- ac_shlib_suffix
-+ac_cflags
- ac_build_mak_vars
- ac_pjdir
- CC_CFLAGS
-@@ -3952,6 +3953,7 @@ if test "$CC_CFLAGS" = ""; then CC_CFLAGS="-Wall"; fi
-
-
-
-+
- case $host in
- *mingw* | *cygw* | *win32* | *w32* )
- if pwd -W 2&> /dev/null; then
-@@ -5138,8 +5140,10 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
- if test "x$ac_cv_c_bigendian" = "xyes"; then
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
- else
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
- fi
-
-
-diff --git a/aconfigure.ac b/aconfigure.ac
-index 83d3559ed..b1d493c08 100644
---- a/aconfigure.ac
-+++ b/aconfigure.ac
-@@ -71,6 +71,7 @@ AC_SUBST(CC_CFLAGS)
-
- AC_SUBST(ac_pjdir)
- AC_SUBST(ac_build_mak_vars)
-+AC_SUBST(ac_cflags)
-
- case $host in
- *mingw* | *cygw* | *win32* | *w32* )
-@@ -144,8 +145,10 @@ AC_C_BIGENDIAN
-
- if test "x$ac_cv_c_bigendian" = "xyes"; then
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
- else
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
- fi
-
- dnl
-diff --git a/build.mak.in b/build.mak.in
-index abc0c4fa0..a9078bb25 100644
---- a/build.mak.in
-+++ b/build.mak.in
-@@ -299,7 +299,7 @@ export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
- -lstdc++ \
- $(APP_LDLIBS)
-
--# Here are the variabels to use if application is using the library
-+# Here are the variables to use if application is using the library
- # from within the source distribution
- export PJ_CC := $(APP_CC)
- export PJ_CXX := $(APP_CXX)
-@@ -317,6 +317,5 @@ export PJ_LIBXX_FILES := $(APP_LIBXX_FILES)
- export PJ_INSTALL_DIR := @prefix@
- export PJ_INSTALL_INC_DIR := @includedir@
- export PJ_INSTALL_LIB_DIR := @libdir@
--export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @CFLAGS@
--export PJ_INSTALL_CXXFLAGS := @CXXFLAGS@ $(PJ_INSTALL_CFLAGS)
--export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDLIBS)
-+export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
-+export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS)
-diff --git a/libpjproject.pc.in b/libpjproject.pc.in
-index fa8d39114..30ea05c07 100644
---- a/libpjproject.pc.in
-+++ b/libpjproject.pc.in
-@@ -9,5 +9,5 @@ Name: libpjproject
- Description: Multimedia communication library
- URL: http://www.pjsip.org
- Version: @PJ_VERSION@
--Libs: -L${libdir} @PJ_LDXXLIBS@
--Cflags: -I${includedir} @PJ_INSTALL_CXXFLAGS@
-+Libs: @PJ_INSTALL_LDFLAGS@
-+Cflags: @PJ_INSTALL_CFLAGS@
---
-2.27.0
-
diff --git a/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch b/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch
deleted file mode 100644
index 1199d82f1e..0000000000
--- a/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 9bcba7fb28055550961b134e517b695a8cd05b2a Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Mon, 3 Aug 2020 17:43:19 -0400
-Subject: [PATCH] libpjproject.pc: Move external libraries to Libs.private.
-
-This is done so users of a shared pjproject library do not get link
-directives (provided via pkg-config file of pjproject) to link against
-pjproject's own library dependencies.
-
-Static linking with pjproject is preserved by moving the external
-libraries link directives to the Libs.private field, which is
-specifically intended for this purpose, via for example:
-
- $ pkg-config --static --libs libpjproject
-
-* build.mak.in (PJ_INSTALL_LDFLAGS_PRIVATE): New variable.
-(PJ_INSTALL_LDFLAGS): Filter out PJ_INSTALL_LDFLAGS_PRIVATE entries.
-* libpjproject.pc.in (Libs.private): New field.
-* Makefile: Substitute PJ_INSTALL_LDFLAGS_PRIVATE as the value for the
-Libs.private field.
----
- Makefile | 5 +++--
- build.mak.in | 3 ++-
- libpjproject.pc.in | 1 +
- 3 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 3fd5cab40..d67badfa4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -54,14 +54,14 @@ doc:
- exit 1; \
- fi; \
- done
--
-+
- LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
- pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
- pjnath/lib/libpjnath-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
-- pjsip/lib/libpjsip-$(TARGET_NAME).a \
-+ pjsip/lib/libpjsip-$(TARGET_NAME).a \
- pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
- pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
- pjsip/lib/libpjsua-$(TARGET_NAME).a
-@@ -133,6 +133,7 @@ install:
- sed -e "s!@LIBDIR@!$(libdir)!" | \
- sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
- sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
-+ sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \
- sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-
- uninstall:
-diff --git a/build.mak.in b/build.mak.in
-index a9078bb25..1a18a8513 100644
---- a/build.mak.in
-+++ b/build.mak.in
-@@ -318,4 +318,5 @@ export PJ_INSTALL_DIR := @prefix@
- export PJ_INSTALL_INC_DIR := @includedir@
- export PJ_INSTALL_LIB_DIR := @libdir@
- export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
--export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS)
-+export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@
-+export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS))
-diff --git a/libpjproject.pc.in b/libpjproject.pc.in
-index 30ea05c07..4372d5016 100644
---- a/libpjproject.pc.in
-+++ b/libpjproject.pc.in
-@@ -10,4 +10,5 @@ Description: Multimedia communication library
- URL: http://www.pjsip.org
- Version: @PJ_VERSION@
- Libs: @PJ_INSTALL_LDFLAGS@
-+Libs.private: @PJ_INSTALL_LDFLAGS_PRIVATE@
- Cflags: @PJ_INSTALL_CFLAGS@
---
-2.27.0
-