Telegram: bump version

This commit is contained in:
Gerasim Troeglazov
2025-09-30 21:29:51 +10:00
parent 2c4413f0ab
commit cfb3f6c77b
3 changed files with 888 additions and 508 deletions

View File

@@ -1,6 +1,6 @@
From 277500df532293e8f3e39f16103b19ee62a11a9c Mon Sep 17 00:00:00 2001
From 9c5eb4b270664645cb2bf80ced7785f2b5114fd6 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Thu, 5 Jun 2025 19:15:51 +1000
Date: Tue, 30 Sep 2025 08:36:00 +1000
Subject: Add haiku support
@@ -138,10 +138,10 @@ index 0000000..e5f8b64
+
+resource("BEOS:default_shortcut") "S";
diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
index 3184b11..01764b9 100644
index 96fc51d..fbf5997 100644
--- a/Telegram/CMakeLists.txt
+++ b/Telegram/CMakeLists.txt
@@ -96,6 +96,15 @@ PRIVATE
@@ -94,6 +94,15 @@ PRIVATE
desktop-app::external_xxhash
)
@@ -157,7 +157,7 @@ index 3184b11..01764b9 100644
target_precompile_headers(Telegram PRIVATE $<$<COMPILE_LANGUAGE:CXX,OBJCXX>:${src_loc}/stdafx.h>)
nice_target_sources(Telegram ${src_loc}
PRIVATE
@@ -1699,6 +1708,16 @@ if (NOT build_winstore)
@@ -1741,6 +1750,16 @@ if (NOT build_winstore)
)
endif()
@@ -195,10 +195,10 @@ index b41dac6..cea1794 100644
if (const auto strong = weak.get()) {
showBox(Box(SettingsBox, strong));
diff --git a/Telegram/SourceFiles/core/core_settings.h b/Telegram/SourceFiles/core/core_settings.h
index 8ce8d72..a116d04 100644
index 9ee26fe..98f480a 100644
--- a/Telegram/SourceFiles/core/core_settings.h
+++ b/Telegram/SourceFiles/core/core_settings.h
@@ -1037,7 +1037,7 @@ private:
@@ -1044,7 +1044,7 @@ private:
rpl::variable<float64> _dialogsNoChatWidthRatio; // per-window
rpl::variable<int> _thirdColumnWidth = kDefaultThirdColumnWidth; // p-w
bool _notifyFromAll = true;
@@ -246,7 +246,7 @@ index 4188882..0e0b448 100644
const QStringList &lst(cSendPaths());
for (QStringList::const_iterator i = lst.cbegin(), e = lst.cend(); i != e; ++i) {
diff --git a/Telegram/SourceFiles/iv/iv_controller.cpp b/Telegram/SourceFiles/iv/iv_controller.cpp
index 87befe5..d35cd84 100644
index c73b063..f58cc14 100644
--- a/Telegram/SourceFiles/iv/iv_controller.cpp
+++ b/Telegram/SourceFiles/iv/iv_controller.cpp
@@ -50,7 +50,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
@@ -327,10 +327,10 @@ index f314fb0..331db8a 100644
}
diff --git a/Telegram/SourceFiles/platform/linux/integration_linux.cpp b/Telegram/SourceFiles/platform/linux/integration_linux.cpp
index e3e331c..c92886b 100644
index 0bb06f5..1d927db 100644
--- a/Telegram/SourceFiles/platform/linux/integration_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/integration_linux.cpp
@@ -19,12 +19,18 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
@@ -19,8 +19,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <QtCore/QAbstractEventDispatcher>
@@ -339,9 +339,13 @@ index e3e331c..c92886b 100644
#include <xdpinhibit/xdpinhibit.hpp>
+#endif
#ifdef __GLIBC__
#include <malloc.h>
@@ -28,7 +30,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Platform {
namespace {
-
+#ifdef Q_OS_HAIKU
+class LinuxIntegration final : public Integration {
+};
@@ -349,7 +353,7 @@ index e3e331c..c92886b 100644
using namespace gi::repository;
namespace GObject = gi::repository::GObject;
@@ -237,7 +243,7 @@ void LinuxIntegration::initInhibit() {
@@ -260,7 +265,7 @@ void LinuxIntegration::initInhibit() {
}),
nullptr);
}
@@ -359,7 +363,7 @@ index e3e331c..c92886b 100644
std::unique_ptr<Integration> CreateIntegration() {
diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
index 7b17fcc..8dd2d6f 100644
index f70a895..43cd9c7 100644
--- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp
@@ -35,6 +35,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
@@ -402,10 +406,10 @@ index 4ef98ba..ee8b3ad 100644
void updateWindowIcon() override;
diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_haiku.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_haiku.cpp
new file mode 100644
index 0000000..cc5e0f3
index 0000000..055b95d
--- /dev/null
+++ b/Telegram/SourceFiles/platform/linux/notifications_manager_haiku.cpp
@@ -0,0 +1,275 @@
@@ -0,0 +1,279 @@
+/*
+This file is part of Telegram Desktop for Haiku,
+
@@ -512,6 +516,10 @@ index 0000000..cc5e0f3
+ flashBounce();
+}
+
+bool VolumeSupported() {
+ return false;
+}
+
+void Create(Window::Notifications::System *system) {
+ if (Core::App().settings().nativeNotifications() && Supported()) {
+ system->setManager([=] {
@@ -682,7 +690,7 @@ index 0000000..cc5e0f3
+} // namespace Notifications
+} // namespace Platform
diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
index 1710805..86ddacf 100644
index 60985f8..5490098 100644
--- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp
@@ -27,6 +27,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
@@ -730,6 +738,24 @@ index 1710805..86ddacf 100644
using namespace gi::repository;
namespace GObject = gi::repository::GObject;
@@ -446,7 +477,7 @@ bool GenerateServiceFile(bool silent = false) {
targetPath,
md5Hash));
}
-
+#ifndef Q_OS_HAIKU
XdgDBus::DBusProxy::new_for_bus(
Gio::BusType::SESSION_,
Gio::DBusProxyFlags::NONE_,
@@ -462,7 +493,7 @@ bool GenerateServiceFile(bool silent = false) {
interface.call_reload_config(nullptr);
});
-
+#endif
return true;
}
@@ -572,6 +603,10 @@ bool AutostartSupported() {
}
@@ -761,7 +787,7 @@ index 1710805..86ddacf 100644
}
void psDoCleanup() {
@@ -749,6 +789,7 @@ bool OpenSystemSettings(SystemSettingsType type) {
@@ -748,6 +788,7 @@ bool OpenSystemSettings(SystemSettingsType type) {
}
options.push_back(std::move(command));
};
@@ -769,7 +795,7 @@ index 1710805..86ddacf 100644
add("unity-control-center", "sound");
add("kcmshell6", "kcm_pulseaudio");
add("kcmshell5", "kcm_pulseaudio");
@@ -758,7 +799,7 @@ bool OpenSystemSettings(SystemSettingsType type) {
@@ -757,7 +798,7 @@ bool OpenSystemSettings(SystemSettingsType type) {
add("mate-volume-control");
add("pavucontrol-qt");
add("pavucontrol");
@@ -779,10 +805,26 @@ index 1710805..86ddacf 100644
return QProcess::startDetached(
command.command,
diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.cpp b/Telegram/SourceFiles/platform/linux/tray_linux.cpp
index e15c297..8e559fa 100644
index e15c297..7db6ab8 100644
--- a/Telegram/SourceFiles/platform/linux/tray_linux.cpp
+++ b/Telegram/SourceFiles/platform/linux/tray_linux.cpp
@@ -341,10 +341,12 @@ void Tray::createMenu() {
@@ -256,6 +256,7 @@ rpl::producer<> TrayEventFilter::contextMenuFilters() const {
}
Tray::Tray() {
+#ifndef Q_OS_HAIKU
auto connection = Gio::bus_get_sync(Gio::BusType::SESSION_, nullptr);
if (connection) {
_sniWatcher = std::make_unique<base::Platform::DBus::ServiceWatcher>(
@@ -273,6 +274,7 @@ Tray::Tray() {
});
});
}
+#endif
}
void Tray::createIcon() {
@@ -341,10 +343,12 @@ void Tray::createMenu() {
if (!_menu) {
_menu = base::make_unique_q<QMenu>(nullptr);
}
@@ -795,6 +837,20 @@ index e15c297..8e559fa 100644
}
void Tray::destroyMenu() {
diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.h b/Telegram/SourceFiles/platform/linux/tray_linux.h
index 181de22..a897c02 100644
--- a/Telegram/SourceFiles/platform/linux/tray_linux.h
+++ b/Telegram/SourceFiles/platform/linux/tray_linux.h
@@ -55,7 +55,9 @@ public:
[[nodiscard]] rpl::lifetime &lifetime();
private:
+#ifndef Q_OS_HAIKU
std::unique_ptr<base::Platform::DBus::ServiceWatcher> _sniWatcher;
+#endif
std::unique_ptr<IconGraphic> _iconGraphic;
base::unique_qptr<QSystemTrayIcon> _icon;
diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/MediaManager.cpp b/Telegram/ThirdParty/tgcalls/tgcalls/MediaManager.cpp
index 9ee2939..8c75330 100644
--- a/Telegram/ThirdParty/tgcalls/tgcalls/MediaManager.cpp
@@ -809,10 +865,10 @@ index 9ee2939..8c75330 100644
SetAudioInputDeviceById(_audioDeviceModule.get(), id);
#endif
diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/group/GroupInstanceCustomImpl.cpp b/Telegram/ThirdParty/tgcalls/tgcalls/group/GroupInstanceCustomImpl.cpp
index b490027..8f72033 100644
index 6159a82..40b8c5f 100644
--- a/Telegram/ThirdParty/tgcalls/tgcalls/group/GroupInstanceCustomImpl.cpp
+++ b/Telegram/ThirdParty/tgcalls/tgcalls/group/GroupInstanceCustomImpl.cpp
@@ -3628,7 +3628,7 @@ public:
@@ -3799,7 +3799,7 @@ public:
}
void setAudioOutputDevice(const std::string &id) {
@@ -821,7 +877,7 @@ index b490027..8f72033 100644
_threads->getWorkerThread()->BlockingCall([&] {
SetAudioOutputDeviceById(_audioDeviceModule.get(), id);
});
@@ -3636,7 +3636,7 @@ public:
@@ -3807,7 +3807,7 @@ public:
}
void setAudioInputDevice(const std::string &id) {
@@ -992,7 +1048,7 @@ index 29e18ee..2b24705 100644
} // namespace base::Platform
diff --git a/Telegram/lib_base/base/platform/linux/base_info_linux.cpp b/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
index d368c5e..4fb2eb1 100644
index efef041..b1b2d98 100644
--- a/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
+++ b/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
@@ -314,6 +314,7 @@ bool IsX11() {
@@ -1051,6 +1107,44 @@ index 9a52714..9bd332a 100644
#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION
const auto xcbResult = XCBLastUserInputTime();
if (xcbResult.has_value()) {
diff --git a/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.cpp b/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.cpp
index 86316e9..ef0c8d5 100644
--- a/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.cpp
+++ b/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.cpp
@@ -6,6 +6,8 @@
//
#include "base/platform/linux/base_linux_dbus_utilities.h"
+#ifndef Q_OS_HAIKU
+
#include <xdgdbus/xdgdbus.hpp>
namespace base::Platform::DBus {
@@ -150,3 +152,5 @@ ServiceWatcher::ServiceWatcher(
ServiceWatcher::~ServiceWatcher() = default;
} // namespace base::Platform::DBus
+
+#endif
diff --git a/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.h b/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.h
index fc8e694..43adaa1 100644
--- a/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.h
+++ b/Telegram/lib_base/base/platform/linux/base_linux_dbus_utilities.h
@@ -9,6 +9,8 @@
#include "base/expected.h"
#include "base/weak_ptr.h"
+#ifndef Q_OS_HAIKU
+
typedef struct _GDBusConnection GDBusConnection;
namespace base::Platform::DBus {
@@ -59,3 +61,5 @@ private:
};
} // namespace base::Platform::DBus
+
+#endif
diff --git a/Telegram/lib_base/base/platform/linux/base_linux_xdp_utilities.cpp b/Telegram/lib_base/base/platform/linux/base_linux_xdp_utilities.cpp
index 6b781fb..c0dd69f 100644
--- a/Telegram/lib_base/base/platform/linux/base_linux_xdp_utilities.cpp
@@ -1173,8 +1267,21 @@ index d4c3f30..22fb3d6 100644
#include "webrtc/webrtc_audio_input_tester.h"
#include "webrtc/webrtc_device_common.h"
diff --git a/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp b/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp
index 5027a4c..3d84dd4 100644
--- a/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp
+++ b/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk.cpp
@@ -716,7 +716,7 @@ void Instance::dataRequest(
socket->write("HTTP/1.1 ");
socket->write(partial ? "206 Partial Content\r\n" : "200 OK\r\n");
- const auto mime = QByteArray(stream->mime());
+ const auto mime = QByteArray(stream->mime().c_str());
socket->write("Content-Type: " + mime + "\r\n");
socket->write("Accept-Ranges: bytes\r\n");
socket->write("Cache-Control: no-store\r\n");
diff --git a/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp b/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp
index 009c732..4752f25 100644
index 2e58c78..c1678ec 100644
--- a/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp
+++ b/Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp
@@ -8,6 +8,10 @@
@@ -1188,39 +1295,8 @@ index 009c732..4752f25 100644
namespace Webview::WebKitGTK::Library {
ResolveResult Resolve(bool wayland) {
diff --git a/Telegram/lib_webview/webview/webview_data_stream_memory.cpp b/Telegram/lib_webview/webview/webview_data_stream_memory.cpp
index efe587e..b9d3509 100644
--- a/Telegram/lib_webview/webview/webview_data_stream_memory.cpp
+++ b/Telegram/lib_webview/webview/webview_data_stream_memory.cpp
@@ -6,7 +6,7 @@
//
#include "webview/webview_data_stream_memory.h"
-#if !defined Q_OS_WIN && !defined Q_OS_MAC
+#if !defined Q_OS_WIN && !defined Q_OS_MAC && !defined Q_OS_HAIKU
#include <sys/mman.h>
#endif // !Q_OS_WIN && !Q_OS_MAC
@@ -17,7 +17,7 @@ DataStreamFromMemory::DataStreamFromMemory(
std::string mime)
: _data(data)
, _mime(mime) {
-#if !defined Q_OS_WIN && !defined Q_OS_MAC
+#if !defined Q_OS_WIN && !defined Q_OS_MAC && !defined Q_OS_HAIKU
const auto handle = memfd_create("webview-data-stream", MFD_CLOEXEC);
if (handle == -1) {
return;
@@ -44,7 +44,7 @@ DataStreamFromMemory::DataStreamFromMemory(
}
DataStreamFromMemory::~DataStreamFromMemory() {
-#if !defined Q_OS_WIN && !defined Q_OS_MAC
+#if !defined Q_OS_WIN && !defined Q_OS_MAC && !defined Q_OS_HAIKU
if (_handle) {
munmap((void*)_data.constData(), _data.size());
close(_handle);
diff --git a/cmake/external/CMakeLists.txt b/cmake/external/CMakeLists.txt
index 4ce3907..03f8459 100644
index d370526..7224f6b 100644
--- a/cmake/external/CMakeLists.txt
+++ b/cmake/external/CMakeLists.txt
@@ -11,7 +11,7 @@ macro(add_checked_subdirectory name)
@@ -1258,5 +1334,5 @@ index fdbc4b0..4aab9ea 100644
set(protobuf_lib protobuf::libprotobuf-lite)
elseif (WIN32)
--
2.48.1
2.50.1

View File

@@ -3,9 +3,9 @@ DESCRIPTION="Unofficial build of the original Telegram client for Haiku."
HOMEPAGE="https://www.telegram.org/"
COPYRIGHT="2013-2025 Telegram"
LICENSE="GNU GPL v3"
REVISION="2"
REVISION="1"
SOURCE_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v$portVersion/tdesktop-$portVersion-full.tar.gz"
CHECKSUM_SHA256="3705dc2ecf51e9290a565b7a06dcdfc5ecbac13ec536afe582f3411653ad50d9"
CHECKSUM_SHA256="1c6a531abf106d5f4b6d9179fc802f93cb8ab62630cc07e73d64688780125869"
SOURCE_FILENAME="tdesktop-$portVersion-full.tar.gz"
SOURCE_DIR="tdesktop-$portVersion-full"
SOURCE_URI_2="https://github.com/ada-url/ada/releases/download/v2.9.0/singleheader.zip"
@@ -200,6 +200,7 @@ BUILD()
-DCMAKE_CXX_FLAGS_RELEASE="$CXX_FLAGS_RELEASE" \
-DCMAKE_EXE_LINKER_FLAGS="-lnetwork -lbe -lmedia" \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=$DISABLE_PRECOMPILE_HEADERS \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DBoost_USE_STATIC_LIBS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DTDESKTOP_API_TEST=OFF \
@@ -225,6 +226,7 @@ BUILD()
# hack for info_profile_actions.cpp file (fix OOM error)
if [ $targetArchitecture == x86_gcc2 ]; then
sed -i -e '/info_profile_actions\.cpp\.o:/,/^$/{ /^[[:space:]]*FLAGS[[:space:]]*=/s/-O1/-Os/ }' $sourceDir/build/build.ninja
sed -i -e '/history_widget\.cpp\.o:/,/^$/{ /^[[:space:]]*FLAGS[[:space:]]*=/s/-O1/-O0/ }' $sourceDir/build/build.ninja
fi
ninja -C build -v $jobArgs