git: 07d4411a922f - main - net-im/telegram-desktop: update to 4.10.2 release

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Mon, 02 Oct 2023 19:40:59 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=07d4411a922f1b65498b8054c193541e196d7d8e

commit 07d4411a922f1b65498b8054c193541e196d7d8e
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2023-10-02 19:39:46 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2023-10-02 19:40:53 +0000

    net-im/telegram-desktop: update to 4.10.2 release
---
 net-im/telegram-desktop/Makefile                   |   2 +-
 net-im/telegram-desktop/distinfo                   |   6 +-
 ...latform_linux_notifications__manager__linux.cpp | 120 +++++++++++++++++++++
 ...se_platform_linux_base__linux__xdp__utilities.h |  20 ++++
 ...w_platform_linux_webview__linux__compositor.cpp |  14 ---
 ...ew_platform_linux_webview__linux__webkitgtk.cpp |  48 ---------
 6 files changed, 144 insertions(+), 66 deletions(-)

diff --git a/net-im/telegram-desktop/Makefile b/net-im/telegram-desktop/Makefile
index d104f840c0a7..e0cd2f60463e 100644
--- a/net-im/telegram-desktop/Makefile
+++ b/net-im/telegram-desktop/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	telegram-desktop
-DISTVERSION=	4.9.8
+DISTVERSION=	4.10.2
 CATEGORIES=	net-im
 MASTER_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/releases/download/v${DISTVERSION}/
 DISTNAME=	tdesktop-${DISTVERSION}-full
diff --git a/net-im/telegram-desktop/distinfo b/net-im/telegram-desktop/distinfo
index 69c861bf77d0..da57f3853eef 100644
--- a/net-im/telegram-desktop/distinfo
+++ b/net-im/telegram-desktop/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1695904525
-SHA256 (tdesktop-4.9.8-full.tar.gz) = af041ecb623ee7603781e0ff2b262e15bb8de2858a9a42982a10396bc9014d53
-SIZE (tdesktop-4.9.8-full.tar.gz) = 73655253
+TIMESTAMP = 1696263386
+SHA256 (tdesktop-4.10.2-full.tar.gz) = 3f7aa12bf421a7fb6e9db9669f63bb6e1351cec2e7567551cef4ff2d936f2a27
+SIZE (tdesktop-4.10.2-full.tar.gz) = 67750091
diff --git a/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_notifications__manager__linux.cpp b/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_notifications__manager__linux.cpp
new file mode 100644
index 000000000000..f0ce20468478
--- /dev/null
+++ b/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_notifications__manager__linux.cpp
@@ -0,0 +1,120 @@
+--- Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp.orig	2023-09-29 15:29:53 UTC
++++ Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp
+@@ -53,6 +53,10 @@ bool ServiceRegistered = false;
+ ServerInformation CurrentServerInformation;
+ std::vector<Glib::ustring> CurrentCapabilities;
+ 
++[[nodiscard]] bool HasCapability(const char *value) {
++	return ranges::contains(CurrentCapabilities, value, &Glib::ustring::raw);
++}
++
+ void Noexcept(Fn<void()> callback, Fn<void()> failed = nullptr) noexcept {
+ 	try {
+ 		callback();
+@@ -446,7 +450,6 @@ bool NotificationData::init(
+ 	}
+ 
+ 	const auto weak = base::make_weak(this);
+-	const auto &capabilities = CurrentCapabilities;
+ 
+ 	const auto signalEmitted = crl::guard(weak, [=](
+ 			const Glib::RefPtr<Gio::DBus::Connection> &connection,
+@@ -496,7 +499,7 @@ bool NotificationData::init(
+ 
+ 	_imageKey = GetImageKey(CurrentServerInformation.specVersion);
+ 
+-	if (ranges::contains(capabilities, "body-markup")) {
++	if (HasCapability("body-markup")) {
+ 		_title = title.toStdString();
+ 
+ 		_body = subtitle.isEmpty()
+@@ -512,7 +515,7 @@ bool NotificationData::init(
+ 		_body = msg.toStdString();
+ 	}
+ 
+-	if (ranges::contains(capabilities, "actions")) {
++	if (HasCapability("actions")) {
+ 		_actions.push_back("default");
+ 		_actions.push_back(tr::lng_open_link(tr::now).toStdString());
+ 
+@@ -523,7 +526,7 @@ bool NotificationData::init(
+ 				tr::lng_context_mark_read(tr::now).toStdString());
+ 		}
+ 
+-		if (ranges::contains(capabilities, "inline-reply")
++		if (HasCapability("inline-reply")
+ 			&& !options.hideReplyButton) {
+ 			_actions.push_back("inline-reply");
+ 			_actions.push_back(
+@@ -553,13 +556,13 @@ bool NotificationData::init(
+ 			kObjectPath);
+ 	}
+ 
+-	if (ranges::contains(capabilities, "action-icons")) {
++	if (HasCapability("action-icons")) {
+ 		_hints["action-icons"] = Glib::create_variant(true);
+ 	}
+ 
+ 	// suppress system sound if telegram sound activated,
+ 	// otherwise use system sound
+-	if (ranges::contains(capabilities, "sound")) {
++	if (HasCapability("sound")) {
+ 		if (Core::App().settings().soundNotify()) {
+ 			_hints["suppress-sound"] = Glib::create_variant(true);
+ 		} else {
+@@ -569,7 +572,7 @@ bool NotificationData::init(
+ 		}
+ 	}
+ 
+-	if (ranges::contains(capabilities, "x-canonical-append")) {
++	if (HasCapability("x-canonical-append")) {
+ 		_hints["x-canonical-append"] = Glib::create_variant(
+ 			Glib::ustring("true"));
+ 	}
+@@ -805,7 +808,7 @@ bool ByDefault() {
+ 
+ 	// A list of capabilities that offer feature parity
+ 	// with custom notifications
+-	return ranges::all_of(std::initializer_list{
++	return ranges::all_of(std::array{
+ 		// To show message content
+ 		"body",
+ 		// To have buttons on notifications
+@@ -816,7 +819,7 @@ bool ByDefault() {
+ 		// (no, using sound capability is not a way)
+ 		"inhibitions",
+ 	}, [](const auto *capability) {
+-		return ranges::contains(CurrentCapabilities, capability);
++		return HasCapability(capability);
+ 	});
+ }
+ 
+@@ -909,7 +912,6 @@ class Manager::Private : public base::has_weak_ptr { (
+ Manager::Private::Private(not_null<Manager*> manager)
+ : _manager(manager) {
+ 	const auto &serverInformation = CurrentServerInformation;
+-	const auto &capabilities = CurrentCapabilities;
+ 
+ 	if (!serverInformation.name.empty()) {
+ 		LOG(("Notification daemon product name: %1")
+@@ -931,17 +933,17 @@ Manager::Private::Private(not_null<Manager*> manager)
+ 			.arg(serverInformation.specVersion.toString()));
+ 	}
+ 
+-	if (!capabilities.empty()) {
++	if (!CurrentCapabilities.empty()) {
+ 		LOG(("Notification daemon capabilities: %1").arg(
+ 			ranges::fold_left(
+-				capabilities,
++				CurrentCapabilities,
+ 				"",
+ 				[](const Glib::ustring &a, const Glib::ustring &b) {
+ 					return a + (a.empty() ? "" : ", ") + b;
+ 				}).c_str()));
+ 	}
+ 
+-	if (ranges::contains(capabilities, "inhibitions")) {
++	if (HasCapability("inhibitions")) {
+ 		Noexcept([&] {
+ 			_dbusConnection = Gio::DBus::Connection::get_sync(
+ 				Gio::DBus::BusType::SESSION);
diff --git a/net-im/telegram-desktop/files/patch-Telegram_lib__base_base_platform_linux_base__linux__xdp__utilities.h b/net-im/telegram-desktop/files/patch-Telegram_lib__base_base_platform_linux_base__linux__xdp__utilities.h
new file mode 100644
index 000000000000..79c5514df801
--- /dev/null
+++ b/net-im/telegram-desktop/files/patch-Telegram_lib__base_base_platform_linux_base__linux__xdp__utilities.h
@@ -0,0 +1,20 @@
+--- Telegram/lib_base/base/platform/linux/base_linux_xdp_utilities.h.orig	2023-10-01 14:40:15 UTC
++++ Telegram/lib_base/base/platform/linux/base_linux_xdp_utilities.h
+@@ -78,7 +78,7 @@ class SettingWatcher { (public)
+ 
+ 	template <typename Callback>
+ 	SettingWatcher(Callback callback)
+-	: SettingWatcher(Fn(callback)) {
++	: SettingWatcher(std::function(callback)) {
+ 	}
+ 
+ 	template <typename ...Args>
+@@ -101,7 +101,7 @@ class SettingWatcher { (public)
+ 		const Glib::ustring &group,
+ 		const Glib::ustring &key,
+ 		Callback callback)
+-	: SettingWatcher(group, key, Fn(callback)) {
++	: SettingWatcher(group, key, std::function(callback)) {
+ 	}
+ 
+ 	~SettingWatcher();
diff --git a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__compositor.cpp b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__compositor.cpp
deleted file mode 100644
index c46fa3c11634..000000000000
--- a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__compositor.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
---- Telegram/lib_webview/webview/platform/linux/webview_linux_compositor.cpp.orig	2023-09-22 07:01:01 UTC
-+++ Telegram/lib_webview/webview/platform/linux/webview_linux_compositor.cpp
-@@ -199,8 +199,9 @@ Compositor::Compositor()
- 		const auto output = new Output(this, xdgSurface);
- 
- 		output->chrome().surfaceCompleted() | rpl::start_with_next([=] {
--			const auto parent = qvariant_cast<Output*>(
--				popup->parentXdgSurface()->property("output"))->window();
-+			const auto parent = (*static_cast<Output * const *>(
-+				popup->parentXdgSurface()->property("output").constData()
-+			))->window();
- 			if (_private->widget
- 					&& parent == _private->widget->quickWindow()) {
- 				output->window()->setTransientParent(
diff --git a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkitgtk.cpp b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkitgtk.cpp
deleted file mode 100644
index 3a97b98103f6..000000000000
--- a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkitgtk.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
---- Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp.orig	2023-09-22 07:01:01 UTC
-+++ Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp
-@@ -33,6 +33,13 @@ constexpr auto kHelperObjectPath = "/org/desktop_app/G
- constexpr auto kMasterObjectPath = "/org/desktop_app/GtkIntegration/Webview/Master";
- constexpr auto kHelperObjectPath = "/org/desktop_app/GtkIntegration/Webview/Helper";
- 
-+void (* const SetGraphicsApi)(QSGRendererInterface::GraphicsApi) =
-+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
-+	QQuickWindow::setGraphicsApi;
-+#else // Qt >= 6.0.0
-+	QQuickWindow::setSceneGraphBackend;
-+#endif // Qt < 6.0.0
-+
- std::string SocketPath;
- 
- inline std::string SocketPathToDBusAddress(const std::string &socketPath) {
-@@ -116,12 +123,10 @@ Instance::Instance(bool remoting)
- 					Ui::GL::CheckCapabilities(nullptr));
- 				switch (backend) {
- 				case Ui::GL::Backend::Raster:
--					QQuickWindow::setGraphicsApi(
--						QSGRendererInterface::Software);
-+					SetGraphicsApi(QSGRendererInterface::Software);
- 					break;
- 				case Ui::GL::Backend::OpenGL:
--					QQuickWindow::setGraphicsApi(
--						QSGRendererInterface::OpenGL);
-+					SetGraphicsApi(QSGRendererInterface::OpenGL);
- 					break;
- 				}
- 				return true;
-@@ -637,11 +642,11 @@ void Instance::setOpaqueBg(QColor opaqueBg) {
- 		return;
- 	}
- 
--	GdkRGBA rgba{
--		opaqueBg.redF(),
--		opaqueBg.greenF(),
--		opaqueBg.blueF(),
--		opaqueBg.alphaF(),
-+	const GdkRGBA rgba{
-+		float(opaqueBg.redF()),
-+		float(opaqueBg.greenF()),
-+		float(opaqueBg.blueF()),
-+		float(opaqueBg.alphaF()),
- 	};
- 	webkit_web_view_set_background_color(
- 		WEBKIT_WEB_VIEW(_webview),