mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 14:28:15 -05:00
gnu: libjami: Update to 20220726.1515.da8d1da.
* gnu/packages/patches/jami-fix-crash-on-quit.patch: Delete file. * gnu/packages/patches/jami-images-loading.patch: Likewise. * gnu/packages/patches/jami-libclient-audio-managers.patch: Likewise. * gnu/packages/patches/jami-memory-usage.patch: Likewise. * gnu/local.mk (dist_patch_DATA): De-register removed patches. * gnu/packages/jami.scm (%jami-version): Update to 20220726.1515.da8d1da. (libjami)[configure-flags]: Add '--disable-static'. (jami-apply-custom-patches): Adjust for top directory renaming. (%ffmpeg-default-configure-flags): Add muxer support for g726 and g726le. Add demuxer support for g723_1, g726 and g726le. Add encoder/decoder support for g726, g726le and g723_1. Add decoder support for g729. (ffmpeg-jami)[patches]: Add 'libopusenc-reload-packet-loss-at-encode'. (jami-libclient)[native-inputs]: New field. [inputs]: Add ffmpeg-jami and libxkbcommon. [propagated-inputs]: Replace qtbase-5 with qtbase.
This commit is contained in:
parent
1f466ed6be
commit
bdf0fce88e
6 changed files with 29 additions and 302 deletions
|
@ -1307,10 +1307,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
|
||||
%D%/packages/patches/jami-fix-crash-on-quit.patch \
|
||||
%D%/packages/patches/jami-images-loading.patch \
|
||||
%D%/packages/patches/jami-memory-usage.patch \
|
||||
%D%/packages/patches/jami-libclient-audio-managers.patch \
|
||||
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
|
||||
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
|
||||
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
|
||||
|
|
|
@ -51,7 +51,9 @@ (define-module (gnu packages jami)
|
|||
#:use-module (gnu packages upnp)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages vulkan)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
|
@ -64,7 +66,7 @@ (define-module (gnu packages jami)
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define %jami-version "20211223.2.37be4c3")
|
||||
(define %jami-version "20220726.1515.da8d1da")
|
||||
|
||||
(define %jami-sources
|
||||
;; Return an origin object of the tarball release sources archive of the
|
||||
|
@ -85,14 +87,10 @@ (define %jami-sources
|
|||
(for-each delete-file-recursively '("client-android"
|
||||
"client-ios"
|
||||
"client-macosx"
|
||||
"client-uwp"))))
|
||||
(patches (search-patches "jami-libclient-audio-managers.patch"
|
||||
"jami-fix-crash-on-quit.patch"
|
||||
"jami-images-loading.patch"
|
||||
"jami-memory-usage.patch"))
|
||||
"plugins"))))
|
||||
(sha256
|
||||
(base32
|
||||
"12h4a0nj3gh05w64gkywrrb64agrhn6y3q4b9cqnhvr1vdkzlj0h"))))
|
||||
"1zx0i9aw8jsba3bjc5r4pkkybm8c0lyz420ciq89vsswd48gfdhg"))))
|
||||
|
||||
;; Jami maintains a set of patches for some key dependencies (currently
|
||||
;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
|
||||
|
@ -104,7 +102,7 @@ (define jami-apply-custom-patches
|
|||
(invoke "tar" "-xvf" #$%jami-sources
|
||||
"-C" patches-directory
|
||||
"--strip-components=5"
|
||||
(string-append "ring-project/daemon/contrib/src/"
|
||||
(string-append "jami-project/daemon/contrib/src/"
|
||||
dep-name))
|
||||
(for-each
|
||||
(lambda (file)
|
||||
|
@ -178,6 +176,8 @@ (define %ffmpeg-default-configure-flags
|
|||
"--disable-muxers"
|
||||
"--enable-muxer=rtp"
|
||||
"--enable-muxer=g722"
|
||||
"--enable-muxer=g726"
|
||||
"--enable-muxer=g726le"
|
||||
"--enable-muxer=h263"
|
||||
"--enable-muxer=h264"
|
||||
"--enable-muxer=hevc"
|
||||
|
@ -202,6 +202,9 @@ (define %ffmpeg-default-configure-flags
|
|||
"--enable-demuxer=wav"
|
||||
"--enable-demuxer=ac3"
|
||||
"--enable-demuxer=g722"
|
||||
"--enable-demuxer=g723_1"
|
||||
"--enable-demuxer=g726"
|
||||
"--enable-demuxer=g726le"
|
||||
"--enable-demuxer=pcm_mulaw"
|
||||
"--enable-demuxer=pcm_alaw"
|
||||
"--enable-demuxer=pcm_s16be"
|
||||
|
@ -222,6 +225,13 @@ (define %ffmpeg-default-configure-flags
|
|||
;; Encoders/decoders.
|
||||
"--enable-encoder=adpcm_g722"
|
||||
"--enable-decoder=adpcm_g722"
|
||||
"--enable-encoder=adpcm_g726"
|
||||
"--enable-decoder=adpcm_g726"
|
||||
"--enable-encoder=adpcm_g726le"
|
||||
"--enable-decoder=adpcm_g726le"
|
||||
"--enable-decoder=g729"
|
||||
"--enable-encoder=g723_1"
|
||||
"--enable-decoder=g723_1"
|
||||
"--enable-encoder=rawvideo"
|
||||
"--enable-decoder=rawvideo"
|
||||
"--enable-encoder=libx264"
|
||||
|
@ -387,7 +397,7 @@ (define-public ffmpeg-jami
|
|||
"change-RTCP-ratio"
|
||||
"rtp_ext_abs_send_time"
|
||||
"libopusdec-enable-FEC"
|
||||
"libopusenc-enable-FEC"
|
||||
"libopusenc-reload-packet-loss-at-encode"
|
||||
"screen-sharing-x11-fix"))))))))))
|
||||
|
||||
(define-public libjami
|
||||
|
@ -405,12 +415,13 @@ (define-public libjami
|
|||
#: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" "--enable-debug")
|
||||
;; user scripts too, until more general purpose Scheme bindings are made
|
||||
;; available (see: test/agent/README.md).
|
||||
#:configure-flags #~(list "--disable-agent"
|
||||
"--enable-debug"
|
||||
;; Disable static libraries to avoid
|
||||
;; installing a 98 MiB archive.
|
||||
"--disable-static")
|
||||
#:make-flags #~(list "V=1") ;build verbosely
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
|
@ -489,10 +500,9 @@ (define-public jami-libclient
|
|||
(lambda _
|
||||
;; Allow building from the tarball or a git checkout.
|
||||
(false-if-exception (chdir "lrc")))))))
|
||||
(inputs
|
||||
(list libjami network-manager))
|
||||
(propagated-inputs
|
||||
(list qtbase-5)) ;Qt is included in several installed headers
|
||||
(native-inputs (list qttools vulkan-headers))
|
||||
(inputs (list ffmpeg-jami libjami libxkbcommon network-manager))
|
||||
(propagated-inputs (list qtbase)) ;qt 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
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
Retrieved from:
|
||||
https://git.jami.net/savoirfairelinux/jami-client-qt/-/commit/83f68573324a453a6d26e025fd6439f175a79d1b.diff.
|
||||
|
||||
With the 'client-qt' prefix added to match the file hierarchy of the release tarball.
|
||||
|
||||
diff --git a/client-qt/src/mainapplication.cpp b/client-qt/src/mainapplication.cpp
|
||||
index 0c3209fc6fa7c528bec197f1cf9332758170441c..278f19287b86dd2c916935ab0930cbe0abb35d26 100644
|
||||
--- a/client-qt/src/mainapplication.cpp
|
||||
+++ b/client-qt/src/mainapplication.cpp
|
||||
@@ -155,7 +155,11 @@ MainApplication::MainApplication(int& argc, char** argv)
|
||||
QObject::connect(this, &QApplication::aboutToQuit, [this] { cleanup(); });
|
||||
}
|
||||
|
||||
-MainApplication::~MainApplication() {}
|
||||
+MainApplication::~MainApplication()
|
||||
+{
|
||||
+ engine_.reset();
|
||||
+ lrcInstance_.reset();
|
||||
+}
|
||||
|
||||
bool
|
||||
MainApplication::init()
|
||||
diff --git a/src/mainapplication.h b/src/mainapplication.h
|
||||
index 51306be829478b9fbc1c61a08aeb96938be26dac..4047e3abb3cfd3e6250387a37fa5a896e9bc4161 100644
|
||||
--- a/client-qt/src/mainapplication.h
|
||||
+++ b/client-qt/src/mainapplication.h
|
||||
@@ -80,7 +80,6 @@ private:
|
||||
private:
|
||||
QScopedPointer<QFile> debugFile_;
|
||||
QScopedPointer<QQmlApplicationEngine> engine_;
|
||||
-
|
||||
QScopedPointer<LRCInstance> lrcInstance_;
|
||||
|
||||
QScopedPointer<ConnectivityMonitor> connectivityMonitor_;
|
|
@ -1,152 +0,0 @@
|
|||
From be9dd0d0d8cb4556cd930edd783c0a1699565ac0 Mon Sep 17 00:00:00 2001
|
||||
From: kkostiuk <kateryna.kostiuk@savoirfairelinux.com>
|
||||
Date: Mon, 1 Nov 2021 17:39:23 -0400
|
||||
Subject: [PATCH] conversation: fix long loading time for images
|
||||
|
||||
Change-Id: Id88cfbd571f4b504f258758bd13b4e4a91bf1b49
|
||||
---
|
||||
.../DataTransferMessageDelegate.qml | 52 +++++++++++++++++--
|
||||
src/messagesadapter.cpp | 20 +++++--
|
||||
src/messagesadapter.h | 2 +-
|
||||
3 files changed, 66 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml b/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
index 7875e01..2e7dcc0 100644
|
||||
--- a/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
+++ b/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
@@ -252,10 +252,11 @@ Loader {
|
||||
Loader {
|
||||
id: localMediaCompLoader
|
||||
anchors.right: isOutgoing ? parent.right : undefined
|
||||
+ asynchronous: true
|
||||
width: sourceComponent.width
|
||||
height: sourceComponent.height
|
||||
sourceComponent: mediaInfo.isImage !== undefined ?
|
||||
- imageComp :
|
||||
+ imageComp : mediaInfo.isAnimatedImage !== undefined ? animatedImageComp :
|
||||
avComp
|
||||
Component {
|
||||
id: avComp
|
||||
@@ -302,9 +303,9 @@ Loader {
|
||||
}
|
||||
}
|
||||
Component {
|
||||
- id: imageComp
|
||||
+ id: animatedImageComp
|
||||
AnimatedImage {
|
||||
- id: img
|
||||
+ id: animatedImg
|
||||
anchors.right: isOutgoing ? parent.right : undefined
|
||||
property real minSize: 192
|
||||
property real maxSize: 256
|
||||
@@ -327,6 +328,51 @@ Loader {
|
||||
anchors.fill: parent
|
||||
}
|
||||
layer.enabled: true
|
||||
+ layer.effect: OpacityMask {
|
||||
+ maskSource: MessageBubble {
|
||||
+ out: isOutgoing
|
||||
+ type: seq
|
||||
+ width: animatedImg.width
|
||||
+ height: animatedImg.height
|
||||
+ radius: msgRadius
|
||||
+ }
|
||||
+ }
|
||||
+ HoverHandler {
|
||||
+ target : parent
|
||||
+ onHoveredChanged: {
|
||||
+ localMediaMsgItem.hoveredLink = hovered ? animatedImg.source : ""
|
||||
+ }
|
||||
+ cursorShape: Qt.PointingHandCursor
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ Component {
|
||||
+ id: imageComp
|
||||
+ Image {
|
||||
+ id: img
|
||||
+ anchors.right: isOutgoing ? parent.right : undefined
|
||||
+ property real minSize: 192
|
||||
+ property real maxSize: 256
|
||||
+ cache: true
|
||||
+ fillMode: Image.PreserveAspectCrop
|
||||
+ mipmap: true
|
||||
+ antialiasing: true
|
||||
+ autoTransform: false
|
||||
+ asynchronous: true
|
||||
+ source: "file:///" + Body
|
||||
+ property real aspectRatio: implicitWidth / implicitHeight
|
||||
+ property real adjustedWidth: Math.min(maxSize,
|
||||
+ Math.max(minSize,
|
||||
+ innerContent.width - senderMargin))
|
||||
+ width: adjustedWidth
|
||||
+ height: Math.ceil(adjustedWidth / aspectRatio)
|
||||
+ Rectangle {
|
||||
+ color: JamiTheme.previewImageBackgroundColor
|
||||
+ z: -1
|
||||
+ anchors.fill: parent
|
||||
+ }
|
||||
+ layer.enabled: true
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: MessageBubble {
|
||||
out: isOutgoing
|
||||
diff --git a/client-qt/src/messagesadapter.cpp b/client-qt/src/messagesadapter.cpp
|
||||
index 91f8eed..ba38e53 100644
|
||||
--- a/client-qt/src/messagesadapter.cpp
|
||||
+++ b/client-qt/src/messagesadapter.cpp
|
||||
@@ -458,13 +458,24 @@ MessagesAdapter::conversationTypersUrlToName(const QSet<QString>& typersSet)
|
||||
return nameList;
|
||||
}
|
||||
|
||||
-bool
|
||||
+QVariantMap
|
||||
MessagesAdapter::isLocalImage(const QString& msg)
|
||||
{
|
||||
QImageReader reader;
|
||||
reader.setDecideFormatFromContent(true);
|
||||
reader.setFileName(msg);
|
||||
- return !reader.read().isNull();
|
||||
+ QByteArray fileFormat = reader.format();
|
||||
+ if (fileFormat == "gif") {
|
||||
+ return {{"isAnimatedImage", true}};
|
||||
+ }
|
||||
+ QList<QByteArray> supportedFormats = reader.supportedImageFormats();
|
||||
+ auto iterator = std::find_if(supportedFormats.begin(),
|
||||
+ supportedFormats.end(),
|
||||
+ [fileFormat](QByteArray format) { return format == fileFormat; });
|
||||
+ if (iterator != supportedFormats.end()) {
|
||||
+ return {{"isImage", true}};
|
||||
+ }
|
||||
+ return {{"isImage", false}};
|
||||
}
|
||||
|
||||
QVariantMap
|
||||
@@ -476,8 +487,9 @@ MessagesAdapter::getMediaInfo(const QString& msg)
|
||||
"<%1 style='width:100%;height:%2;outline:none;background-color:#f1f3f4;"
|
||||
"object-fit:cover;' "
|
||||
"controls controlsList='nodownload' src='file://%3' type='%4'/></body>";
|
||||
- if (isLocalImage(msg)) {
|
||||
- return {{"isImage", true}};
|
||||
+ QVariantMap fileInfo = isLocalImage(msg);
|
||||
+ if (fileInfo["isImage"].toBool() || fileInfo["isAnimatedImage"].toBool()) {
|
||||
+ return fileInfo;
|
||||
}
|
||||
QRegularExpression vPattern("[^\\s]+(.*?)\\.(avi|mov|webm|webp|rmvb)$",
|
||||
QRegularExpression::CaseInsensitiveOption);
|
||||
diff --git a/client-qt/src/messagesadapter.h b/client-qt/src/messagesadapter.h
|
||||
index bfa4e62..1965c5e 100644
|
||||
--- a/client-qt/src/messagesadapter.h
|
||||
+++ b/client-qt/src/messagesadapter.h
|
||||
@@ -101,7 +101,7 @@ protected:
|
||||
Q_INVOKABLE void deleteInteraction(const QString& interactionId);
|
||||
Q_INVOKABLE void copyToDownloads(const QString& interactionId, const QString& displayName);
|
||||
Q_INVOKABLE void userIsComposing(bool isComposing);
|
||||
- Q_INVOKABLE bool isLocalImage(const QString& msg);
|
||||
+ Q_INVOKABLE QVariantMap isLocalImage(const QString& msg);
|
||||
Q_INVOKABLE QVariantMap getMediaInfo(const QString& msg);
|
||||
Q_INVOKABLE bool isRemoteImage(const QString& msg);
|
||||
Q_INVOKABLE QString getFormattedTime(const quint64 timestamp);
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
From f5e4619d02526d961c14012a6cae1a091aa149d4 Mon Sep 17 00:00:00 2001
|
||||
From: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
|
||||
Date: Thu, 27 Jan 2022 13:48:32 -0500
|
||||
Subject: [PATCH] misc: link getSupportedAudioManagers
|
||||
q
|
||||
Change-Id: I897e49cd131d3cbffef9fb1d5c9be3c0bc9bcb3f
|
||||
GitLab: #495
|
||||
---
|
||||
|
||||
diff --git a/lrc/src/qtwrapper/configurationmanager_wrap.h b/lrc/src/qtwrapper/configurationmanager_wrap.h
|
||||
index a680138..2807f8a 100644
|
||||
--- a/lrc/src/qtwrapper/configurationmanager_wrap.h
|
||||
+++ b/lrc/src/qtwrapper/configurationmanager_wrap.h
|
||||
@@ -526,8 +526,7 @@
|
||||
|
||||
QStringList getSupportedAudioManagers()
|
||||
{
|
||||
- QStringList temp;
|
||||
- return temp;
|
||||
+ return convertStringList(DRing::getSupportedAudioManagers());
|
||||
}
|
||||
|
||||
QStringList getSupportedTlsMethod()
|
|
@ -1,70 +0,0 @@
|
|||
From e796b3325d95b5ddd6162b5513c8325210f41fc5 Mon Sep 17 00:00:00 2001
|
||||
From: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
|
||||
Date: Wed, 26 Jan 2022 11:37:07 -0500
|
||||
Subject: [PATCH] datatransferimage: improve memory usage
|
||||
|
||||
+ Reduce listview caching' size by 50%
|
||||
+ use sourceSize to compress images and speedup loading
|
||||
+ use autoTransform: true to rotate images when needed
|
||||
|
||||
Change-Id: Idf1babdc73f43aa6a79b89428c25c5d06856c0ef
|
||||
GitLab: #649
|
||||
---
|
||||
|
||||
diff --git a/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml b/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
index d017c03..ca5913e 100644
|
||||
--- a/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
+++ b/client-qt/src/commoncomponents/DataTransferMessageDelegate.qml
|
||||
@@ -255,9 +255,13 @@
|
||||
asynchronous: true
|
||||
width: sourceComponent.width
|
||||
height: sourceComponent.height
|
||||
- sourceComponent: mediaInfo.isImage !== undefined ?
|
||||
- imageComp : mediaInfo.isAnimatedImage !== undefined ? animatedImageComp :
|
||||
- avComp
|
||||
+ sourceComponent: {
|
||||
+ if (mediaInfo.isImage)
|
||||
+ return imageComp
|
||||
+ if (mediaInfo.isAnimatedImage)
|
||||
+ return animatedImageComp
|
||||
+ return avComp
|
||||
+ }
|
||||
Component {
|
||||
id: avComp
|
||||
WebEngineView {
|
||||
@@ -316,7 +320,7 @@
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
mipmap: true
|
||||
antialiasing: true
|
||||
- autoTransform: false
|
||||
+ autoTransform: true
|
||||
asynchronous: true
|
||||
source: "file:///" + Body
|
||||
property real aspectRatio: implicitWidth / implicitHeight
|
||||
@@ -361,8 +365,10 @@
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
mipmap: true
|
||||
antialiasing: true
|
||||
- autoTransform: false
|
||||
+ autoTransform: true
|
||||
asynchronous: true
|
||||
+ sourceSize.width: width
|
||||
+ sourceSize.height: height
|
||||
source: "file:///" + Body
|
||||
property real aspectRatio: implicitWidth / implicitHeight
|
||||
property real adjustedWidth: Math.min(maxSize,
|
||||
diff --git a/client-qt/src/mainview/components/MessageListView.qml b/client-qt/src/mainview/components/MessageListView.qml
|
||||
index 2b7c326..f65e67b 100644
|
||||
--- a/client-qt/src/mainview/components/MessageListView.qml
|
||||
+++ b/client-qt/src/mainview/components/MessageListView.qml
|
||||
@@ -174,8 +174,8 @@
|
||||
width: parent.width
|
||||
// this offscreen caching is pretty huge
|
||||
// displayMarginEnd may be removed
|
||||
- displayMarginBeginning: 4096
|
||||
- displayMarginEnd: 4096
|
||||
+ displayMarginBeginning: 2048
|
||||
+ displayMarginEnd: 2048
|
||||
maximumFlickVelocity: 2048
|
||||
verticalLayoutDirection: ListView.BottomToTop
|
||||
boundsBehavior: Flickable.StopAtBounds
|
Loading…
Reference in a new issue