Browse Source

Merge branch 'kcommaille/bump-crates' into 'main'

Upgrade dependencies

See merge request World/fractal!2154
merge-requests/2154/merge
Kévin Commaille 15 hours ago
parent
commit
29e620f366
  1. 514
      Cargo.lock
  2. 45
      Cargo.toml
  3. 4
      build-aux/org.gnome.Fractal.Devel.json
  4. 1
      deny.toml
  5. 2
      src/components/media/animated_image_paintable.rs
  6. 18
      src/login/in_browser_page.rs
  7. 13
      src/session/room/mod.rs
  8. 6
      src/session/room/timeline/event/mod.rs
  9. 22
      src/session_view/room_history/state/content.rs
  10. 10
      src/session_view/room_history/state/creation.rs
  11. 6
      src/user_facing_error.rs

514
Cargo.lock generated

File diff suppressed because it is too large Load Diff

45
Cargo.toml

@ -63,38 +63,49 @@ webp = { version = "0.3", default-features = false }
zeroize = "1"
# gtk-rs project and dependents. These usually need to be updated together.
adw = { version = "0.8", features = ["v1_8"], package = "libadwaita" }
glycin = { git = "https://gitlab.gnome.org/GNOME/glycin", rev = "0865d33a7870a1cb8bf35c89f75d2cfab4129ee8", package = "libglycin-rebind" }
glycin-gtk4 = { git = "https://gitlab.gnome.org/GNOME/glycin", rev = "0865d33a7870a1cb8bf35c89f75d2cfab4129ee8", package = "libglycin-gtk4-rebind" }
gst = { version = "0.24", package = "gstreamer" }
gst_app = { version = "0.24", package = "gstreamer-app" }
gst_pbutils = { version = "0.24", package = "gstreamer-pbutils" }
gst_play = { version = "0.24", package = "gstreamer-play" }
gst_video = { version = "0.24", package = "gstreamer-video" }
gtk = { version = "0.10", features = ["gnome_49"], package = "gtk4" }
shumate = { version = "0.7", features = ["v1_1"], package = "libshumate" }
sourceview = { version = "0.10", package = "sourceview5" }
adw = { version = "0.9", features = ["v1_8"], package = "libadwaita" }
glycin = { version = "0.1", package = "libglycin-rebind" }
glycin-gtk4 = { version = "0.1", package = "libglycin-gtk4-rebind" }
gst = { version = "0.25", package = "gstreamer" }
gst_app = { version = "0.25", package = "gstreamer-app" }
gst_pbutils = { version = "0.25", package = "gstreamer-pbutils" }
gst_play = { version = "0.25", package = "gstreamer-play" }
gst_video = { version = "0.25", package = "gstreamer-video" }
gtk = { version = "0.11", features = ["gnome_49"], package = "gtk4" }
shumate = { version = "0.8", features = ["v1_1"], package = "libshumate" }
sourceview = { version = "0.11", package = "sourceview5" }
[dependencies.matrix-sdk]
# version = "0.14"
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
rev = "029148ef6e45d51e6325a4f5aadcdee7ec9385cc"
features = ["socks", "sso-login", "markdown", "qrcode"]
rev = "74c1044b7dd384cf6436598713c12c915b331d73"
default-features = false
features = [
"automatic-room-key-forwarding",
"e2e-encryption",
"markdown",
"native-tls",
"qrcode",
"socks",
"sqlite",
"sso-login",
]
[dependencies.matrix-sdk-store-encryption]
# version = "0.14"
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
rev = "029148ef6e45d51e6325a4f5aadcdee7ec9385cc"
rev = "74c1044b7dd384cf6436598713c12c915b331d73"
[dependencies.matrix-sdk-ui]
# version = "0.14"
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
rev = "029148ef6e45d51e6325a4f5aadcdee7ec9385cc"
rev = "74c1044b7dd384cf6436598713c12c915b331d73"
default-features = false
[dependencies.ruma]
# version = "0.14"
git = "https://github.com/ruma/ruma.git"
rev = "4a0ae80fbf42d1b759e108d7315537d13583c144"
rev = "2455c71ec8bd16318397865d9c6e231e792cb15e"
features = [
"client-api-c",
"markdown",
@ -111,7 +122,7 @@ features = [
# Linux-only dependencies.
[target.'cfg(target_os = "linux")'.dependencies]
aperture = "0.11"
aperture = "0.12"
ashpd = { version = "0.12", default-features = false, features = [
"tracing",
"tokio",

4
build-aux/org.gnome.Fractal.Devel.json

@ -83,8 +83,8 @@
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/libshumate.git",
"tag": "1.5.0.1",
"commit": "ed5fe31377c050610d5932903a5217e1c7d1d0e4"
"tag": "1.6.0",
"commit": "b4ca104a0bad8682ad51540867a1783f7db47473"
}
]
},

1
deny.toml

@ -28,6 +28,5 @@ required-git-spec = "rev"
allow-git = [
"https://github.com/ruma/ruma",
"https://github.com/matrix-org/matrix-rust-sdk",
"https://gitlab.gnome.org/GNOME/glycin",
]
unused-allowed-source = "allow"

2
src/components/media/animated_image_paintable.rs

@ -75,7 +75,7 @@ mod imp {
}
fn flags(&self) -> gdk::PaintableFlags {
gdk::PaintableFlags::SIZE
gdk::PaintableFlags::STATIC_SIZE
}
fn current_image(&self) -> gdk::Paintable {

18
src/login/in_browser_page.rs

@ -3,8 +3,11 @@ use gettextrs::gettext;
use gtk::glib;
use matrix_sdk::{
Error,
authentication::oauth::{OAuthAuthorizationData, UrlOrQuery},
utils::local_server::{LocalServerRedirectHandle, QueryString},
authentication::oauth::OAuthAuthorizationData,
utils::{
UrlOrQuery,
local_server::{LocalServerRedirectHandle, QueryString},
},
};
use tokio::task::AbortHandle;
use tracing::{error, warn};
@ -130,8 +133,8 @@ mod imp {
match data {
LoginInBrowserData::Oauth(_) => self.finish_oauth_login(query_string).await,
LoginInBrowserData::Matrix(url) => {
self.finish_matrix_login(url, query_string).await;
LoginInBrowserData::Matrix(_) => {
self.finish_matrix_login(query_string).await;
}
}
}
@ -174,7 +177,7 @@ mod imp {
}
/// Finish the Matrix SSO login process.
async fn finish_matrix_login(&self, mut url: Url, query_string: QueryString) {
async fn finish_matrix_login(&self, query_string: QueryString) {
let Some(login) = self.login.upgrade() else {
return;
};
@ -185,12 +188,9 @@ mod imp {
.expect("login client should be constructed");
let matrix_auth = client.matrix_auth();
// We need to rebuild the URL to use the SDK's method.
url.set_query(Some(&query_string.0));
let handle = spawn_tokio!(async move {
matrix_auth
.login_with_sso_callback(url)
.login_with_sso_callback(query_string.into())
.map_err(|error| Error::UnknownError(error.into()))?
.initial_device_display_name(APP_NAME)
.await

13
src/session/room/mod.rs

@ -18,7 +18,7 @@ use matrix_sdk::{
use ruma::{
EventId, MatrixToUri, OwnedEventId, OwnedRoomId, OwnedUserId, RoomId, UserId,
api::client::{
error::{ErrorKind, RetryAfter},
error::{ErrorKind, LimitExceededErrorData, RetryAfter},
receipt::create_receipt::v3::ReceiptType as ApiReceiptType,
},
events::room::{
@ -1573,9 +1573,12 @@ mod imp {
}
let duration = match error.client_api_error_kind() {
Some(ErrorKind::LimitExceeded {
retry_after: Some(retry_after),
}) => match retry_after {
Some(ErrorKind::LimitExceeded(
LimitExceededErrorData {
retry_after: Some(retry_after),
..
},
)) => match retry_after {
RetryAfter::Delay(duration) => Some(*duration),
RetryAfter::DateTime(time) => {
time.duration_since(SystemTime::now()).ok()
@ -1965,7 +1968,7 @@ impl Room {
let handle = spawn_tokio!(async move {
let futures = events_clone
.into_iter()
.map(|(event_id, reason)| matrix_room.report_content(event_id, None, reason));
.map(|(event_id, reason)| matrix_room.report_content(event_id, reason));
futures_util::future::join_all(futures).await
});

6
src/session/room/timeline/event/mod.rs

@ -3,7 +3,7 @@ use std::sync::Arc;
use gtk::{gio, glib, glib::closure_local, prelude::*, subclass::prelude::*};
use indexmap::IndexMap;
use matrix_sdk_ui::timeline::{
AnyOtherFullStateEventContent, EmbeddedEvent, Error as TimelineError, EventSendState,
AnyOtherStateEventContentChange, EmbeddedEvent, Error as TimelineError, EventSendState,
EventTimelineItem, MembershipChange, Message, MsgLikeKind, TimelineDetails,
TimelineEventItemId, TimelineItemContent,
};
@ -666,7 +666,7 @@ impl Event {
// so we do not group it.
!matches!(
other_state.content(),
AnyOtherFullStateEventContent::RoomCreate(_)
AnyOtherStateEventContentChange::RoomCreate(_)
)
}
_ => false,
@ -679,7 +679,7 @@ impl Event {
TimelineItemContent::OtherState(other_state) => {
matches!(
other_state.content(),
AnyOtherFullStateEventContent::RoomCreate(_),
AnyOtherStateEventContentChange::RoomCreate(_),
)
}
_ => false,

22
src/session_view/room_history/state/content.rs

@ -2,12 +2,12 @@ use adw::{prelude::*, subclass::prelude::*};
use gettextrs::gettext;
use gtk::{glib, glib::clone, pango};
use matrix_sdk_ui::timeline::{
AnyOtherFullStateEventContent, MemberProfileChange, MembershipChange, OtherState,
AnyOtherStateEventContentChange, MemberProfileChange, MembershipChange, OtherState,
RoomMembershipChange, TimelineItemContent,
};
use ruma::{
UserId,
events::{FullStateEventContent, room::member::MembershipState},
events::{StateEventContentChange, room::member::MembershipState},
};
use tracing::warn;
@ -93,21 +93,21 @@ mod imp {
/// Update this row with the given [`OtherState`].
fn update_with_other_state(&self, other_state: &OtherState, sender: &Member) {
let widget = match other_state.content() {
AnyOtherFullStateEventContent::RoomCreate(content) => {
AnyOtherStateEventContentChange::RoomCreate(content) => {
WidgetType::Creation(StateCreation::new(content))
}
AnyOtherFullStateEventContent::RoomEncryption(_) => {
AnyOtherStateEventContentChange::RoomEncryption(_) => {
WidgetType::Text(gettext("This room is encrypted from this point on."))
}
AnyOtherFullStateEventContent::RoomThirdPartyInvite(content) => {
AnyOtherStateEventContentChange::RoomThirdPartyInvite(content) => {
let display_name = match content {
FullStateEventContent::Original { content, .. } => {
StateEventContentChange::Original { content, .. } => {
match &content.display_name {
s if s.is_empty() => other_state.state_key(),
s => s,
}
}
FullStateEventContent::Redacted(_) => other_state.state_key(),
StateEventContentChange::Redacted(_) => other_state.state_key(),
};
WidgetType::Text(gettext_f(
// Translators: Do NOT translate the content between '{' and '}', this is a
@ -146,11 +146,11 @@ mod imp {
) {
let sender_display_name = sender.disambiguated_name();
let target_display_name = match membership_change.content() {
FullStateEventContent::Original { content, .. } => content
StateEventContentChange::Original { content, .. } => content
.displayname
.clone()
.unwrap_or_else(|| membership_change.user_id().to_string()),
FullStateEventContent::Redacted(_) => membership_change.user_id().to_string(),
StateEventContentChange::Redacted(_) => membership_change.user_id().to_string(),
};
let supported_membership_change =
@ -294,8 +294,8 @@ mod imp {
MembershipChange::KnockDenied => MembershipChange::KnockDenied,
_ => {
let membership = match membership_change.content() {
FullStateEventContent::Original { content, .. } => &content.membership,
FullStateEventContent::Redacted(content) => &content.membership,
StateEventContentChange::Original { content, .. } => &content.membership,
StateEventContentChange::Redacted(content) => &content.membership,
};
match membership {

10
src/session_view/room_history/state/creation.rs

@ -2,7 +2,7 @@ use adw::{prelude::*, subclass::prelude::*};
use gettextrs::gettext;
use gtk::glib;
use matrix_sdk::ruma::events::room::create::RoomCreateEventContent;
use ruma::events::FullStateEventContent;
use ruma::events::StateEventContentChange;
mod imp {
use glib::subclass::InitializingObject;
@ -39,10 +39,10 @@ mod imp {
impl StateCreation {
/// Set the room create state event to display.
pub(super) fn set_event(&self, event: &FullStateEventContent<RoomCreateEventContent>) {
pub(super) fn set_event(&self, event: &StateEventContentChange<RoomCreateEventContent>) {
let predecessor = match event {
FullStateEventContent::Original { content, .. } => content.predecessor.as_ref(),
FullStateEventContent::Redacted(_) => None,
StateEventContentChange::Original { content, .. } => content.predecessor.as_ref(),
StateEventContentChange::Redacted(_) => None,
};
if let Some(predecessor) = &predecessor {
@ -71,7 +71,7 @@ glib::wrapper! {
}
impl StateCreation {
pub fn new(event: &FullStateEventContent<RoomCreateEventContent>) -> Self {
pub fn new(event: &StateEventContentChange<RoomCreateEventContent>) -> Self {
let obj: Self = glib::Object::new();
obj.imp().set_event(event);
obj

6
src/user_facing_error.rs

@ -23,10 +23,10 @@ impl UserFacingError for HttpError {
self.as_client_api_error().map(|error| &error.body)
{
match kind {
ErrorKind::Forbidden { .. } => gettext("Invalid credentials."),
ErrorKind::Forbidden => gettext("Invalid credentials."),
ErrorKind::UserDeactivated => gettext("Account deactivated."),
ErrorKind::LimitExceeded { retry_after } => {
if let Some(retry_after) = retry_after {
ErrorKind::LimitExceeded(limit_exceeded) => {
if let Some(retry_after) = &limit_exceeded.retry_after {
let duration = match retry_after {
RetryAfter::Delay(duration) => *duration,
RetryAfter::DateTime(until) => until

Loading…
Cancel
Save