guix/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch
dan 2b6006fc50
gnu: telegram-desktop: Update to 5.5.5.
* gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch: Update patch file to match upstream changes.
* gnu/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch: Update patch file to match upstream changes.
* gnu/packages/patches/telegram-desktop-unbundle-cppgir.patch: New file.
* gnu/packages/patches/telegram-desktop-unbundle-gsl.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/telegram.scm:
(libyuv-for-telegram-desktop, cmake-helpers-for-telegram-desktop)
(codegen-for-telegram-desktop, lib-base-for-telegram-desktop)
(lib-crl-for-telegram-desktop, lib-lottie-for-telegram-desktop)
(lib-qr-for-telegram-desktop, lib-storage-for-telegram-desktop)
(lib-tl-for-telegram-desktop, lib-webrtc-for-telegram-desktop)
(tgcalls-for-telegram-desktop, webrtc-for-telegram-desktop): Bump to submodule checkout.
(cmake-helpers-for-telegram-desktop)[origin]: Add patches to unbundle gsl and cppgir.
(libprisma-for-telegram-desktop): Use %telegram-version.
(telegram-desktop): Update to 5.5.5.
[:configure-flags]: Add disable jemalloc flag.
[#:phases]<unpack-additional-sources>: Add libprisma-for-telegram-desktop.
<patch-gir-ignore-paths>: New phase.
<use-system-xdg-desktop-portal>: New phase.
<patch-libwebview>: New phase.
[native-inputs]: Add cpp-ada-url-parser, gobject-introspection and xdg-desktop-portal.
[inputs]: Add boost, cppgir-for-telegram-desktop, expected-lite and remove jemalloc.

Change-Id: I0ea3ea5a3e416a9d5b2b5b7b55ca1af679bc3d38
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2024-09-26 14:21:17 +09:00

123 lines
4.4 KiB
Diff

From 322d2c452bf1a4df7b9fe161d4991a347043550c Mon Sep 17 00:00:00 2001
From: Klemens Nanni <klemens@posteo.de>
Date: Wed, 2 Mar 2022 01:07:48 +0100
Subject: [PATCH] Introduce TDESKTOP_DISABLE_LEGACY_TGVOIP
Originally from Alt Linux[0], OpenBSD has so far adapted the removal of
tgvoip in the official net/tdesktop build.
tgcalls provides everything needed for calls; audio/video/desktop
sharing calls have been working fine across different operating systems
and telegram desktop/mobile versions without problems.
0: http://www.sisyphus.ru/cgi-bin/srpm.pl/Sisyphus/telegram-desktop/getpatch/1
---
Telegram/CMakeLists.txt | 6 +++---
Telegram/SourceFiles/calls/calls_call.cpp | 6 ++++++
Telegram/cmake/lib_tgcalls.cmake | 4 ++++
Telegram/cmake/telegram_options.cmake | 8 ++++++++
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
index 008c71b15..291305909 100644
--- a/Telegram/CMakeLists.txt
+++ b/Telegram/CMakeLists.txt
@@ -26,7 +26,9 @@ get_filename_component(res_loc Resources REALPATH)
include(cmake/telegram_options.cmake)
include(cmake/lib_ffmpeg.cmake)
include(cmake/lib_stripe.cmake)
-include(cmake/lib_tgvoip.cmake)
+if (NOT TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ include(cmake/lib_tgvoip.cmake)
+endif()
include(cmake/lib_tgcalls.cmake)
include(cmake/td_export.cmake)
include(cmake/td_mtproto.cmake)
@@ -49,9 +51,7 @@ set_target_properties(Telegram PROPERTIES AUTOMOC ON)
target_link_libraries(Telegram
PRIVATE
- tdesktop::lib_tgcalls_legacy
tdesktop::lib_tgcalls
- tdesktop::lib_tgvoip
# Order in this list defines the order of include paths in command line.
# We need to place desktop-app::external_minizip this early to have its
diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp
index 5fe9ac677..bebf48e70 100644
--- a/Telegram/SourceFiles/calls/calls_call.cpp
+++ b/Telegram/SourceFiles/calls/calls_call.cpp
@@ -39,7 +39,9 @@ class InstanceImpl;
class InstanceV2Impl;
class InstanceV2ReferenceImpl;
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
class InstanceImplLegacy;
void SetLegacyGlobalServerConfig(const std::string &serverConfig);
+#endif
} // namespace tgcalls
namespace Calls {
@@ -56,6 +58,8 @@ const auto Register = tgcalls::Register<tgcalls::InstanceImpl>();
const auto RegisterV2 = tgcalls::Register<tgcalls::InstanceV2Impl>();
const auto RegV2Ref = tgcalls::Register<tgcalls::InstanceV2ReferenceImpl>();
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
const auto RegisterLegacy = tgcalls::Register<tgcalls::InstanceImplLegacy>();
+#endif
[[nodiscard]] base::flat_set<int64> CollectEndpointIds(
const QVector<MTPPhoneConnection> &list) {
@@ -1332,7 +1336,9 @@ Call::~Call() {
}
void UpdateConfig(const std::string &data) {
+#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
tgcalls::SetLegacyGlobalServerConfig(data);
+#endif
}
} // namespace Calls
diff --git a/Telegram/cmake/lib_tgcalls.cmake b/Telegram/cmake/lib_tgcalls.cmake
index 94cfdb856..9ac4fe479 100644
--- a/Telegram/cmake/lib_tgcalls.cmake
+++ b/Telegram/cmake/lib_tgcalls.cmake
@@ -268,6 +268,10 @@ PRIVATE
${tgcalls_loc}
)
+if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ return()
+endif()
+
add_library(lib_tgcalls_legacy STATIC)
init_target(lib_tgcalls_legacy)
diff --git a/Telegram/cmake/telegram_options.cmake b/Telegram/cmake/telegram_options.cmake
index a5a6d9405..2eb9953f2 100644
--- a/Telegram/cmake/telegram_options.cmake
+++ b/Telegram/cmake/telegram_options.cmake
@@ -4,7 +4,9 @@
# For license and copyright information please follow this link:
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+option(TDESKTOP_DISABLE_LEGACY_TGVOIP "Disable legacy tgvoip support." OFF)
option(TDESKTOP_API_TEST "Use test API credentials." OFF)
+
set(TDESKTOP_API_ID "0" CACHE STRING "Provide 'api_id' for the Telegram API access.")
set(TDESKTOP_API_HASH "" CACHE STRING "Provide 'api_hash' for the Telegram API access.")
@@ -36,6 +38,12 @@ if (TDESKTOP_API_ID STREQUAL "0" OR TDESKTOP_API_HASH STREQUAL "")
" ")
endif()
+if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
+ target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_LEGACY_TGVOIP)
+else()
+ target_link_libraries(Telegram PRIVATE tdesktop::lib_tgcalls_legacy tdesktop::lib_tgvoip)
+endif()
+
if (DESKTOP_APP_DISABLE_AUTOUPDATE)
target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_AUTOUPDATE)
endif()
--
2.39.2