diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/Makefile ./Makefile --- /usr/ports/net-im/telegram-desktop/Makefile 2019-07-27 22:05:08.433223000 -0400 +++ ./Makefile 2019-07-27 23:38:17.929129000 -0400 @@ -1,9 +1,8 @@ -# $FreeBSD: head/net-im/telegram-desktop/Makefile 507372 2019-07-26 20:46:53Z gerald $ +# $FreeBSD: head/net-im/telegram-desktop/Makefile 484686 2018-11-11 11:45:19Z makc $ PORTNAME= telegram-desktop DISTVERSIONPREFIX= v -DISTVERSION= 1.6.7 -PORTREVISION= 2 +DISTVERSION= 1.7.14 CATEGORIES= net-im MAINTAINER= henry.hu.sh@gmail.com @@ -34,9 +33,11 @@ GH_TUPLE= catchorg:Catch2:5ca44b68:catch/Telegram/ThirdParty/Catch \ mapbox:variant:550ac2f:variant/Telegram/ThirdParty/variant \ Microsoft:GSL:d846fe5:gsl/Telegram/ThirdParty/GSL \ - telegramdesktop:libtgvoip:e701050:libtgvoip/Telegram/ThirdParty/libtgvoip \ - telegramdesktop:crl:84072fb:crl/Telegram/ThirdParty/crl \ - Cyan4973:xxHash:7cc9639:xxhash/Telegram/ThirdParty/xxHash + telegramdesktop:libtgvoip:0e92a22:libtgvoip/Telegram/ThirdParty/libtgvoip \ + telegramdesktop:crl:9ea8700:crl/Telegram/ThirdParty/crl \ + Cyan4973:xxHash:7cc9639:xxhash/Telegram/ThirdParty/xxHash \ + john-preston:rlottie:302b7f9:rlottie/Telegram/ThirdParty/rlottie \ + lz4:lz4:9a2a9f2:lz4/Telegram/ThirdParty/lz4 USE_GNOME= glib20 USE_QT= core gui imageformats network widgets buildtools_build qmake_build dbus USE_XORG= x11 xcb diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/distinfo ./distinfo --- /usr/ports/net-im/telegram-desktop/distinfo 2019-07-27 22:05:08.424908000 -0400 +++ ./distinfo 2019-07-27 23:38:22.209911000 -0400 @@ -1,15 +1,19 @@ -TIMESTAMP = 1555805465 -SHA256 (telegramdesktop-tdesktop-v1.6.7_GH0.tar.gz) = 77f4cf6507d1ebc26eaef472aa4817cc57a77c5e3065f6b2afa294530f0633a1 -SIZE (telegramdesktop-tdesktop-v1.6.7_GH0.tar.gz) = 14323106 +TIMESTAMP = 1564285102 +SHA256 (telegramdesktop-tdesktop-v1.7.14_GH0.tar.gz) = a52ab6efb4dc7579f05543df3fc3814baa09c0644e00ca30e37a9c6f99a5d164 +SIZE (telegramdesktop-tdesktop-v1.7.14_GH0.tar.gz) = 14296012 SHA256 (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 8cdf2a345897bda1aaabffd4496dffe263768cef3e4254e74ae63545c8e12cc2 SIZE (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 375264 SHA256 (mapbox-variant-550ac2f_GH0.tar.gz) = 7ab3aa7c9fa672027f13721584df5f7ec09c0ecca499d374c6ac76e147ef7354 SIZE (mapbox-variant-550ac2f_GH0.tar.gz) = 108686 SHA256 (Microsoft-GSL-d846fe5_GH0.tar.gz) = 4c463f93ca3b1dcb0b8d73b54309c1d31145761c457f1a6fd53554a6d469b468 SIZE (Microsoft-GSL-d846fe5_GH0.tar.gz) = 58930 -SHA256 (telegramdesktop-libtgvoip-e701050_GH0.tar.gz) = 16cb5f4588f4a35877aacc5f39bb93e9c0ac5fca1ddfc4dabda841131c29d3d5 -SIZE (telegramdesktop-libtgvoip-e701050_GH0.tar.gz) = 1484741 -SHA256 (telegramdesktop-crl-84072fb_GH0.tar.gz) = 0d1c5a08b94c90ef213fadfdfb1f4587a23c01474195931c67bc98fb7fd01936 -SIZE (telegramdesktop-crl-84072fb_GH0.tar.gz) = 21681 +SHA256 (telegramdesktop-libtgvoip-0e92a22_GH0.tar.gz) = 179c780bf199ff41984756d1b0b96287edf0fa1490f76a31eb9cbdc572ecce6f +SIZE (telegramdesktop-libtgvoip-0e92a22_GH0.tar.gz) = 1484785 +SHA256 (telegramdesktop-crl-9ea8700_GH0.tar.gz) = 68011a83a139d68bed4fd13b946c1aea6f7bea8bffc702a4795f2c0e23f9efd4 +SIZE (telegramdesktop-crl-9ea8700_GH0.tar.gz) = 21873 SHA256 (Cyan4973-xxHash-7cc9639_GH0.tar.gz) = f40801820e885f92bbe3d2434efeb39aa18eeaf878341982e8525b538468e3ed SIZE (Cyan4973-xxHash-7cc9639_GH0.tar.gz) = 37534 +SHA256 (john-preston-rlottie-302b7f9_GH0.tar.gz) = ade35b77c10c2a733ecccbca261222c36755bbd0f0d03f2e2772bd7cc0ad3d2b +SIZE (john-preston-rlottie-302b7f9_GH0.tar.gz) = 7896441 +SHA256 (lz4-lz4-9a2a9f2_GH0.tar.gz) = 437827e1a1a0eec752777d29ef7ac78b195c805438448fe08154d9b5b181b8ea +SIZE (lz4-lz4-9a2a9f2_GH0.tar.gz) = 293999 diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/gyp-patches ./files/gyp-patches --- /usr/ports/net-im/telegram-desktop/files/gyp-patches 2019-07-27 22:05:08.393253000 -0400 +++ ./files/gyp-patches 2019-07-27 23:19:19.035294000 -0400 @@ -1,4 +1,4 @@ ---- Telegram/gyp/codegen_rules.gypi.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/codegen_rules.gypi.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/codegen_rules.gypi @@ -15,7 +15,7 @@ '<(SHARED_INTERMEDIATE_DIR)/update_dependent_styles.timestamp', @@ -25,7 +25,7 @@ '-o', '<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp', '<@(qrc_files)', ], ---- Telegram/gyp/lib_export.gyp.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/lib_export.gyp.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/lib_export.gyp @@ -46,7 +46,7 @@ 'include_dirs': [ @@ -36,7 +36,7 @@ '<(submodules_loc)/GSL/include', '<(submodules_loc)/variant/include', '<(submodules_loc)/crl/src', ---- Telegram/gyp/lib_scheme.gyp.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/lib_scheme.gyp.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/lib_scheme.gyp @@ -48,7 +48,7 @@ '<(SHARED_INTERMEDIATE_DIR)/scheme.h', @@ -47,9 +47,9 @@ '-o', '<(SHARED_INTERMEDIATE_DIR)', '<(res_loc)/scheme.tl', ], 'message': 'codegen_scheme-ing scheme.tl..', ---- Telegram/gyp/qt_moc.gypi.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/qt_moc.gypi.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/qt_moc.gypi -@@ -12,12 +12,12 @@ +@@ -15,12 +15,12 @@ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp', ], 'action': [ @@ -64,7 +64,7 @@ # '= QT_VERSION_CHECK(5, 7, 0) ++#elif (defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) + QApplication::setDesktopFileName(qsl("telegramdesktop.desktop")); + #endif -#ifndef OS_MAC_OLD +#if !defined(Q_OS_MAC) && QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + // Retina display support is working fine, others are not. @@ -22,25 +26,15 @@ initHook(); } -@@ -228,6 +231,11 @@ int Launcher::exec() { +@@ -268,6 +271,11 @@ int Launcher::exec() { + // both are finished in Sandbox::closeApplication Logs::start(this); // must be started before Platform is started Platform::start(); // must be started before Sandbox is created - ++ + // I don't know why path is not in QT_PLUGIN_PATH by default + QCoreApplication::addLibraryPath(FREEBSD_QT_PLUGINDIR); + // Telegram doesn't start when extraordinary theme is set, see launchpad.net/bugs/1680943 + unsetenv("QT_QPA_PLATFORMTHEME"); -+ - auto result = executeApplication(); - DEBUG_LOG(("Telegram finished, result: %1").arg(result)); -@@ -329,6 +337,9 @@ void Launcher::prepareSettings() { - break; - case dbipLinux32: - gPlatformString = qsl("Linux32bit"); -+ break; -+ case dbipFreeBSD: -+ gPlatformString = qsl("FreeBSD"); - break; - } + auto result = executeApplication(); diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_core_update__checker.cpp ./files/patch-Telegram_SourceFiles_core_update__checker.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_core_update__checker.cpp 2019-07-27 22:05:08.464401000 -0400 +++ ./files/patch-Telegram_SourceFiles_core_update__checker.cpp 2019-07-27 23:19:18.808899000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/core/update_checker.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/core/update_checker.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/core/update_checker.cpp -@@ -1456,6 +1456,9 @@ int UpdateChecker::size() const { +@@ -1461,6 +1461,9 @@ int UpdateChecker::size() const { //} bool checkReadyUpdate() { @@ -10,7 +10,7 @@ QString readyFilePath = cWorkingDir() + qsl("tupdates/temp/ready"), readyPath = cWorkingDir() + qsl("tupdates/temp"); if (!QFile(readyFilePath).exists() || cExeName().isEmpty()) { if (QDir(cWorkingDir() + qsl("tupdates/ready")).exists() || QDir(cWorkingDir() + qsl("tupdates/temp")).exists()) { -@@ -1508,6 +1511,9 @@ bool checkReadyUpdate() { +@@ -1513,6 +1516,9 @@ bool checkReadyUpdate() { #elif defined Q_OS_LINUX // Q_OS_MAC QString curUpdater = (cExeDir() + qsl("Updater")); QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Updater")); diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_core_utils.h ./files/patch-Telegram_SourceFiles_core_utils.h --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_core_utils.h 2019-07-27 22:05:08.433619000 -0400 +++ ./files/patch-Telegram_SourceFiles_core_utils.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,10 +0,0 @@ ---- Telegram/SourceFiles/core/utils.h.orig 2019-04-13 06:46:58 UTC -+++ Telegram/SourceFiles/core/utils.h -@@ -347,6 +347,7 @@ enum DBIPlatform { - dbipLinux64 = 2, - dbipLinux32 = 3, - dbipMacOld = 4, -+ dbipFreeBSD = 5, - }; - - enum DBIPeerReportSpamStatus { diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_data_data__document.cpp ./files/patch-Telegram_SourceFiles_data_data__document.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_data_data__document.cpp 2019-07-27 22:05:08.425181000 -0400 +++ ./files/patch-Telegram_SourceFiles_data_data__document.cpp 2019-07-27 23:19:18.809897000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/data/data_document.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/data/data_document.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/data/data_document.cpp -@@ -133,7 +133,7 @@ QString FileNameUnsafe( +@@ -138,7 +138,7 @@ QString FileNameUnsafe( name = name.replace(QRegularExpression(qsl("[\\\\\\/\\:\\*\\?\\\"\\<\\>\\|]")), qsl("_")); #elif defined Q_OS_MAC name = name.replace(QRegularExpression(qsl("[\\:]")), qsl("_")); diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_export_data_export__data__types.cpp ./files/patch-Telegram_SourceFiles_export_data_export__data__types.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_export_data_export__data__types.cpp 2019-07-27 22:05:08.393529000 -0400 +++ ./files/patch-Telegram_SourceFiles_export_data_export__data__types.cpp 2019-07-27 23:19:18.810901000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/export/data/export_data_types.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/export/data/export_data_types.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/export/data/export_data_types.cpp -@@ -353,9 +353,9 @@ QString CleanDocumentName(QString name) { +@@ -360,9 +360,9 @@ QString CleanDocumentName(QString name) { '|', #elif defined Q_OS_MAC // Q_OS_WIN ':', diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_admin__log_history__admin__log__inner.cpp ./files/patch-Telegram_SourceFiles_history_admin__log_history__admin__log__inner.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_admin__log_history__admin__log__inner.cpp 2019-07-27 22:05:08.464725000 -0400 +++ ./files/patch-Telegram_SourceFiles_history_admin__log_history__admin__log__inner.cpp 2019-07-27 23:19:18.811937000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp -@@ -1392,13 +1392,13 @@ void InnerWidget::mouseActionFinish(const QPoint &scre +@@ -1411,13 +1411,13 @@ void InnerWidget::mouseActionFinish(const QPoint &scre _mouseSelectType = TextSelectType::Letters; //_widget->noSelectingScroll(); // TODO diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp ./files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp 2019-07-27 22:05:08.434016000 -0400 +++ ./files/patch-Telegram_SourceFiles_history_history__inner__widget.cpp 2019-07-27 23:19:18.812955000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/history/history_inner_widget.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/history/history_inner_widget.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/history/history_inner_widget.cpp -@@ -1376,7 +1376,7 @@ void HistoryInner::mouseActionFinish( +@@ -1382,7 +1382,7 @@ void HistoryInner::mouseActionFinish( _widget->noSelectingScroll(); _widget->updateTopBarSelection(); @@ -9,7 +9,7 @@ if (!_selected.empty() && _selected.cbegin()->second != FullSelection) { const auto [item, selection] = *_selected.cbegin(); if (const auto view = item->mainView()) { -@@ -1385,7 +1385,7 @@ void HistoryInner::mouseActionFinish( +@@ -1391,7 +1391,7 @@ void HistoryInner::mouseActionFinish( QClipboard::Selection); } } diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp ./files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp 2019-07-27 22:05:08.425457000 -0400 +++ ./files/patch-Telegram_SourceFiles_history_view_history__view__list__widget.cpp 2019-07-27 23:19:18.813956000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/history/view/history_view_list_widget.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/history/view/history_view_list_widget.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/history/view/history_view_list_widget.cpp -@@ -2031,7 +2031,7 @@ void ListWidget::mouseActionFinish( +@@ -2042,7 +2042,7 @@ void ListWidget::mouseActionFinish( _mouseSelectType = TextSelectType::Letters; //_widget->noSelectingScroll(); // #TODO select scroll @@ -9,7 +9,7 @@ if (_selectedTextItem && _selectedTextRange.from != _selectedTextRange.to) { if (const auto view = viewForItem(_selectedTextItem)) { -@@ -2040,7 +2040,7 @@ void ListWidget::mouseActionFinish( +@@ -2051,7 +2051,7 @@ void ListWidget::mouseActionFinish( QClipboard::Selection); } } diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp ./files/patch-Telegram_SourceFiles_logs.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp 2019-04-20 20:19:00.037886000 -0400 +++ ./files/patch-Telegram_SourceFiles_logs.cpp 2019-07-27 23:19:18.814985000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/logs.cpp.orig 2019-02-01 12:51:46 UTC +--- Telegram/SourceFiles/logs.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/logs.cpp -@@ -333,7 +333,7 @@ void start(not_null launcher) { +@@ -338,7 +338,7 @@ void start(not_null launcher) { if (cAlphaVersion()) { workingDirChosen = true; @@ -9,7 +9,7 @@ } else { if (!cWorkingDir().isEmpty()) { // This value must come from TelegramForcePortable -@@ -348,16 +348,16 @@ void start(not_null launcher) { +@@ -353,16 +353,16 @@ void start(not_null launcher) { } workingDirChosen = true; @@ -30,7 +30,7 @@ #ifdef _DEBUG cForceWorkingDir(cExeDir()); #else // _DEBUG -@@ -374,7 +374,7 @@ void start(not_null launcher) { +@@ -379,7 +379,7 @@ void start(not_null launcher) { workingDirChosen = true; } diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.cpp ./files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.cpp 1969-12-31 19:00:00.000000000 -0500 +++ ./files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.cpp 2019-07-27 23:19:18.816007000 -0400 @@ -0,0 +1,38 @@ +--- Telegram/SourceFiles/platform/freebsd/info_freebsd.cpp.orig 2019-07-28 03:19:18 UTC ++++ Telegram/SourceFiles/platform/freebsd/info_freebsd.cpp +@@ -0,0 +1,35 @@ ++/* ++This file is part of Telegram Desktop, ++the official desktop application for the Telegram messaging service. ++ ++For license and copyright information please follow this link: ++https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL ++*/ ++#include "platform/freebsd/info_freebsd.h" ++ ++namespace Platform { ++ ++QString DeviceModelPretty() { ++ return "FreeBSD"; ++} ++ ++QString SystemVersionPretty() { ++ const auto result = getenv("XDG_CURRENT_DESKTOP"); ++ const auto value = result ? QString::fromLatin1(result) : QString(); ++ const auto list = value.split(':', QString::SkipEmptyParts); ++ return list.isEmpty() ? "FreeBSD" : "FreeBSD " + list[0]; ++} ++ ++QString SystemCountry() { ++ return QString(); ++} ++ ++QString SystemLanguage() { ++ return QString(); ++} ++ ++QDate WhenSystemBecomesOutdated() { ++ return QDate(); ++} ++ ++} // namespace Platform diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.h ./files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.h --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.h 1969-12-31 19:00:00.000000000 -0500 +++ ./files/patch-Telegram_SourceFiles_platform_freebsd_info__freebsd.h 2019-07-27 23:19:18.817023000 -0400 @@ -0,0 +1,59 @@ +--- Telegram/SourceFiles/platform/freebsd/info_freebsd.h.orig 2019-07-28 03:19:18 UTC ++++ Telegram/SourceFiles/platform/freebsd/info_freebsd.h +@@ -0,0 +1,56 @@ ++/* ++This file is part of Telegram Desktop, ++the official desktop application for the Telegram messaging service. ++ ++For license and copyright information please follow this link: ++https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL ++*/ ++#pragma once ++ ++#include "platform/platform_info.h" ++ ++namespace Platform { ++ ++inline constexpr bool IsLinux() { ++ return true; ++} ++ ++inline constexpr bool IsLinux32Bit() { ++#ifdef Q_OS_LINUX32 ++ return true; ++#else // Q_OS_LINUX32 ++ return false; ++#endif // Q_OS_LINUX32 ++} ++ ++inline constexpr bool IsLinux64Bit() { ++#ifdef Q_OS_LINUX64 ++ return true; ++#else // Q_OS_LINUX64 ++ return false; ++#endif // Q_OS_LINUX64 ++} ++ ++inline constexpr bool IsWindows() { return false; } ++inline constexpr bool IsWindowsStoreBuild() { return false; } ++inline bool IsWindowsXPOrGreater() { return false; } ++inline bool IsWindowsVistaOrGreater() { return false; } ++inline bool IsWindows7OrGreater() { return false; } ++inline bool IsWindows8OrGreater() { return false; } ++inline bool IsWindows8Point1OrGreater() { return false; } ++inline bool IsWindows10OrGreater() { return false; } ++inline constexpr bool IsMac() { return false; } ++inline constexpr bool IsMacOldBuild() { return false; } ++inline constexpr bool IsMacStoreBuild() { return false; } ++inline bool IsMac10_6OrGreater() { return false; } ++inline bool IsMac10_7OrGreater() { return false; } ++inline bool IsMac10_8OrGreater() { return false; } ++inline bool IsMac10_9OrGreater() { return false; } ++inline bool IsMac10_10OrGreater() { return false; } ++inline bool IsMac10_11OrGreater() { return false; } ++inline bool IsMac10_12OrGreater() { return false; } ++inline bool IsMac10_13OrGreater() { return false; } ++inline bool IsMac10_14OrGreater() { return false; } ++ ++} // namespace Platform ++ diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp ./files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp 2019-07-27 22:05:08.393804000 -0400 +++ ./files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp 2019-07-27 23:19:18.820146000 -0400 @@ -1,4 +1,4 @@ ---- Telegram/SourceFiles/platform/linux/main_window_linux.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/platform/linux/main_window_linux.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -25,7 +25,9 @@ bool noQtTrayIcon = false, tryAppIndicator = false; bool useGtkBase = false, useAppIndicator = false, useStatusIcon = false, trayIconChecked = false, useUnityCount = false; @@ -10,7 +10,7 @@ GtkStatusIcon *_trayIcon = 0; GtkWidget *_trayMenu = 0; GdkPixbuf *_trayPixbuf = 0; -@@ -290,7 +292,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { +@@ -291,7 +293,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { if (noQtTrayIcon) { #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION if (useAppIndicator) { @@ -20,7 +20,7 @@ } else if (useStatusIcon) { Libs::gtk_status_icon_set_visible(_trayIcon, false); } -@@ -306,7 +310,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { +@@ -307,7 +311,9 @@ void MainWindow::workmodeUpdated(DBIWorkMode mode) { if (noQtTrayIcon) { #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION if (useAppIndicator) { @@ -30,7 +30,7 @@ } else if (useStatusIcon) { Libs::gtk_status_icon_set_visible(_trayIcon, true); } -@@ -325,7 +331,9 @@ void MainWindow::psUpdateIndicator() { +@@ -326,7 +332,9 @@ void MainWindow::psUpdateIndicator() { if (iconFile.exists()) { QByteArray path = QFile::encodeName(iconFile.absoluteFilePath()), name = QFile::encodeName(iconFile.fileName()); name = name.mid(0, name.size() - 4); @@ -40,7 +40,7 @@ } else { useAppIndicator = false; } -@@ -422,11 +430,15 @@ void MainWindow::LibsLoaded() { +@@ -423,11 +431,15 @@ void MainWindow::LibsLoaded() { && (Libs::g_object_ref_sink != nullptr) && (Libs::g_object_unref != nullptr); @@ -56,7 +56,7 @@ if (tryAppIndicator && useGtkBase && useAppIndicator) { noQtTrayIcon = true; -@@ -462,6 +474,7 @@ void MainWindow::psCreateTrayIcon() { +@@ -463,6 +475,7 @@ void MainWindow::psCreateTrayIcon() { } #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION @@ -64,7 +64,7 @@ if (useAppIndicator) { DEBUG_LOG(("Trying to create AppIndicator")); _trayMenu = Libs::gtk_menu_new(); -@@ -492,6 +505,7 @@ void MainWindow::psCreateTrayIcon() { +@@ -493,6 +506,7 @@ void MainWindow::psCreateTrayIcon() { useAppIndicator = false; } } @@ -72,7 +72,7 @@ if (useStatusIcon) { if (Libs::gdk_init_check(0, 0)) { if (!_trayMenu) _trayMenu = Libs::gtk_menu_new(); -@@ -616,10 +630,12 @@ MainWindow::~MainWindow() { +@@ -617,10 +631,12 @@ MainWindow::~MainWindow() { Libs::g_object_unref(_trayMenu); _trayMenu = nullptr; } diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__info.h ./files/patch-Telegram_SourceFiles_platform_platform__info.h --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__info.h 1969-12-31 19:00:00.000000000 -0500 +++ ./files/patch-Telegram_SourceFiles_platform_platform__info.h 2019-07-27 23:19:18.823258000 -0400 @@ -0,0 +1,10 @@ +--- Telegram/SourceFiles/platform/platform_info.h.orig 2019-07-07 13:34:35 UTC ++++ Telegram/SourceFiles/platform/platform_info.h +@@ -49,4 +49,6 @@ namespace Platform { + #include "platform/linux/info_linux.h" + #elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX + #include "platform/win/info_win.h" +-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN ++#elif defined Q_OS_FREEBSD // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN ++#include "platform/freebsd/info_freebsd.h" ++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN || Q_OS_FREEBSD diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_settings.cpp ./files/patch-Telegram_SourceFiles_settings.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_settings.cpp 2019-02-03 01:13:50.865558000 -0500 +++ ./files/patch-Telegram_SourceFiles_settings.cpp 1969-12-31 19:00:00.000000000 -0500 @@ -1,11 +0,0 @@ ---- Telegram/SourceFiles/settings.cpp.orig 2018-12-24 08:16:05 UTC -+++ Telegram/SourceFiles/settings.cpp -@@ -77,6 +77,8 @@ DBIPlatform gPlatform = dbipMac; - DBIPlatform gPlatform = dbipLinux64; - #elif defined Q_OS_LINUX32 - DBIPlatform gPlatform = dbipLinux32; -+#elif defined Q_OS_FREEBSD -+DBIPlatform gPlatform = dbipFreeBSD; - #else - #error Unknown platform - #endif diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp ./files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp 2019-07-27 22:05:08.434390000 -0400 +++ ./files/patch-Telegram_SourceFiles_settings_settings__notifications.cpp 2019-07-27 23:19:18.831437000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/settings/settings_notifications.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/settings/settings_notifications.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/settings/settings_notifications.cpp -@@ -479,11 +479,11 @@ void NotificationsCount::SampleWidget::destroyDelayed( +@@ -480,11 +480,11 @@ void NotificationsCount::SampleWidget::destroyDelayed( _deleted = true; // Ubuntu has a lag if deleteLater() called immediately. diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp ./files/patch-Telegram_SourceFiles_ui_text_text.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp 2019-07-27 22:05:08.465846000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_text_text.cpp 2019-07-27 23:19:18.833476000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/text/text.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/ui/text/text.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/ui/text/text.cpp -@@ -1762,11 +1762,11 @@ class TextPainter { (private) +@@ -2016,11 +2016,11 @@ class Renderer { (private) if (item == -1) return; diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp ./files/patch-Telegram_SourceFiles_ui_text_text__block.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp 2019-04-20 20:19:00.250760000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_text_text__block.cpp 2019-07-27 23:19:18.834507000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/text/text_block.cpp.orig 2019-02-01 12:51:46 UTC +--- Telegram/SourceFiles/ui/text/text_block.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/ui/text/text_block.cpp -@@ -332,6 +332,9 @@ TextBlock::TextBlock(const style::font &font, const QS +@@ -335,6 +335,9 @@ TextBlock::TextBlock(const style::font &font, const QS QStackTextEngine engine(part, blockFont->f); BlockParser parser(&engine, this, minResizeWidth, _from, part); diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp ./files/patch-Telegram_SourceFiles_ui_twidget.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp 2019-07-27 22:05:08.465268000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_twidget.cpp 2019-07-27 23:19:18.835544000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/twidget.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/ui/twidget.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/ui/twidget.cpp -@@ -249,9 +249,9 @@ void sendSynteticMouseEvent(QWidget *widget, QEvent::T +@@ -270,9 +270,9 @@ void sendSynteticMouseEvent(QWidget *widget, QEvent::T , button , QGuiApplication::mouseButtons() | button , QGuiApplication::keyboardModifiers() diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_widgets_labels.cpp ./files/patch-Telegram_SourceFiles_ui_widgets_labels.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_widgets_labels.cpp 2019-07-27 22:05:08.466685000 -0400 +++ ./files/patch-Telegram_SourceFiles_ui_widgets_labels.cpp 2019-07-27 23:19:18.836554000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/ui/widgets/labels.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/ui/widgets/labels.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/ui/widgets/labels.cpp -@@ -361,11 +361,11 @@ Text::StateResult FlatLabel::dragActionFinish(const QP +@@ -391,11 +391,11 @@ Ui::Text::StateResult FlatLabel::dragActionFinish(cons } } diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_window_main__window.cpp ./files/patch-Telegram_SourceFiles_window_main__window.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_window_main__window.cpp 2019-07-27 22:05:08.466383000 -0400 +++ ./files/patch-Telegram_SourceFiles_window_main__window.cpp 2019-07-27 23:19:18.837576000 -0400 @@ -1,6 +1,6 @@ ---- Telegram/SourceFiles/window/main_window.cpp.orig 2019-04-13 06:46:58 UTC +--- Telegram/SourceFiles/window/main_window.cpp.orig 2019-07-07 13:34:35 UTC +++ Telegram/SourceFiles/window/main_window.cpp -@@ -521,7 +521,7 @@ bool MainWindow::minimizeToTray() { +@@ -565,7 +565,7 @@ bool MainWindow::minimizeToTray() { } void MainWindow::reActivateWindow() { @@ -9,7 +9,7 @@ const auto reActivate = [=] { if (const auto w = App::wnd()) { if (auto f = QApplication::focusWidget()) { -@@ -536,7 +536,7 @@ void MainWindow::reActivateWindow() { +@@ -580,7 +580,7 @@ void MainWindow::reActivateWindow() { }; crl::on_main(this, reActivate); App::CallDelayed(200, this, reActivate); diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp ./files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp 2019-07-27 22:05:08.466115000 -0400 +++ ./files/patch-Telegram_ThirdParty_libtgvoip_VoIPController.cpp 2019-07-27 23:19:18.838595000 -0400 @@ -1,5 +1,16 @@ ---- Telegram/ThirdParty/libtgvoip/VoIPController.cpp.orig 2019-04-03 18:20:00 UTC +--- Telegram/ThirdParty/libtgvoip/VoIPController.cpp.orig 2019-06-24 11:42:33 UTC +++ Telegram/ThirdParty/libtgvoip/VoIPController.cpp +@@ -2389,8 +2389,8 @@ simpleAudioBlock random_id:long random_bytes:string ra + stm->decoder=NULL; + }else if(stm->type==STREAM_TYPE_VIDEO){ + if(!stm->packetReassembler){ +- stm->packetReassembler=make_shared(); +- stm->packetReassembler->SetCallback(bind(&VoIPController::ProcessIncomingVideoFrame, this, placeholders::_1, placeholders::_2, placeholders::_3)); ++ //stm->packetReassembler=make_shared(); ++ //stm->packetReassembler->SetCallback(bind(&VoIPController::ProcessIncomingVideoFrame, this, placeholders::_1, placeholders::_2, placeholders::_3)); + } + }else{ + LOGW("Unknown incoming stream type: %d", stm->type); @@ -3048,7 +3048,7 @@ static void initMachTimestart() { #endif diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake ./files/patch-Telegram_gyp_PrecompiledHeader.cmake --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake 2019-04-20 20:19:00.039242000 -0400 +++ ./files/patch-Telegram_gyp_PrecompiledHeader.cmake 2019-07-27 23:19:18.851787000 -0400 @@ -1,14 +1,5 @@ ---- Telegram/gyp/PrecompiledHeader.cmake.orig 2019-02-01 12:51:46 UTC +--- Telegram/gyp/PrecompiledHeader.cmake.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/PrecompiledHeader.cmake -@@ -81,7 +81,7 @@ function(export_all_flags _filename _source_name_for_f - endfunction() - - function(add_precompiled_header _target _input) -- if(CMAKE_COMPILER_IS_GNUCXX) -+ if(CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) - get_filename_component(_name ${_input} NAME) - set(_pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${_input}") - set(_pch_binary_dir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch") @@ -114,7 +114,7 @@ function(add_precompiled_header _target _input) set(_compiler_FLAGS "@${_pch_c_flags_file}") add_custom_command( @@ -27,10 +18,3 @@ DEPENDS "${_pchfile}" "${_pch_cpp_flags_file}" IMPLICIT_DEPENDS CXX "${_pch_header}" COMMENT "Precompiling header ${_name} for ${_target} (C++)") -@@ -163,5 +163,5 @@ function(add_precompiled_header _target _input) - OBJECT_DEPENDS "${_object_depends}") - endif() - endforeach() -- endif(CMAKE_COMPILER_IS_GNUCXX) -+ endif(CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) - endfunction() diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi ./files/patch-Telegram_gyp_settings__linux.gypi --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi 2019-07-27 22:05:09.987312000 -0400 +++ ./files/patch-Telegram_gyp_settings__linux.gypi 2019-07-27 23:19:18.860947000 -0400 @@ -1,4 +1,4 @@ ---- Telegram/gyp/settings_linux.gypi.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/settings_linux.gypi.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/settings_linux.gypi @@ -11,7 +11,6 @@ 'linux_common_flags': [ @@ -8,7 +8,7 @@ '-W', '-fPIC', '-Wno-unused-variable', -@@ -26,7 +25,7 @@ +@@ -28,7 +27,7 @@ ], }, 'conditions': [ @@ -17,7 +17,7 @@ 'defines': [ 'Q_OS_LINUX64', ], -@@ -61,7 +60,6 @@ +@@ -63,7 +62,6 @@ ], 'defines': [ '_REENTRANT', @@ -25,7 +25,7 @@ 'QT_PLUGIN', ], 'cflags_c': [ -@@ -74,9 +72,6 @@ +@@ -76,9 +74,6 @@ '-Wno-register', ], 'make_global_settings': [ diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt ./files/patch-Telegram_gyp_telegram__sources.txt --- /usr/ports/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt 2019-07-27 22:05:09.347036000 -0400 +++ ./files/patch-Telegram_gyp_telegram__sources.txt 2019-07-27 23:19:18.863027000 -0400 @@ -1,6 +1,17 @@ ---- Telegram/gyp/telegram_sources.txt.orig 2019-04-13 06:46:58 UTC +--- Telegram/gyp/telegram_sources.txt.orig 2019-07-07 13:34:35 UTC +++ Telegram/gyp/telegram_sources.txt -@@ -857,14 +857,7 @@ +@@ -577,8 +577,8 @@ + <(src_loc)/platform/linux/linux_libs.h + <(src_loc)/platform/linux/file_utilities_linux.cpp + <(src_loc)/platform/linux/file_utilities_linux.h +-<(src_loc)/platform/linux/info_linux.cpp +-<(src_loc)/platform/linux/info_linux.h ++<(src_loc)/platform/freebsd/info_freebsd.cpp ++<(src_loc)/platform/freebsd/info_freebsd.h + <(src_loc)/platform/linux/launcher_linux.cpp + <(src_loc)/platform/linux/launcher_linux.h + <(src_loc)/platform/linux/main_window_linux.cpp +@@ -894,14 +894,7 @@ <(emoji_suggestions_loc)/emoji_suggestions.cpp <(emoji_suggestions_loc)/emoji_suggestions.h diff -ruN -x work -x sync-patch.sh -x gen-patch.sh -x update.txt -x check-diff.py -x files.bak /usr/ports/net-im/telegram-desktop/files/patch-issue6219 ./files/patch-issue6219 --- /usr/ports/net-im/telegram-desktop/files/patch-issue6219 1969-12-31 19:00:00.000000000 -0500 +++ ./files/patch-issue6219 2019-07-27 23:19:31.737167000 -0400 @@ -0,0 +1,172 @@ +From 0710dde4d5526454318b2748331e887c01ecfdce Mon Sep 17 00:00:00 2001 +From: John Preston +Date: Tue, 9 Jul 2019 13:43:57 +0200 +Subject: [PATCH] Use private Qt color API only in official build. + +Fixes #6219. +--- + .../SourceFiles/ffmpeg/ffmpeg_utility.cpp | 100 ++++++++++++------ + Telegram/gyp/lib_ffmpeg.gyp | 6 +- + 2 files changed, 71 insertions(+), 35 deletions(-) + +diff --git a/Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp b/Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp +index 5d0e50926..3775f7503 100644 +--- Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp ++++ Telegram/SourceFiles/ffmpeg/ffmpeg_utility.cpp +@@ -11,7 +11,10 @@ For license and copyright information please follow this link: + #include "logs.h" + + #include ++ ++#ifdef TDESKTOP_OFFICIAL_TARGET + #include ++#endif // TDESKTOP_OFFICIAL_TARGET + + extern "C" { + #include +@@ -44,6 +47,58 @@ void AlignedImageBufferCleanupHandler(void* data) { + && !(image.bytesPerLine() % kAlignImageBy); + } + ++void UnPremultiplyLine(uchar *dst, const uchar *src, int intsCount) { ++#ifdef TDESKTOP_OFFICIAL_TARGET ++ const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; ++ const auto convert = layout->convertFromARGB32PM; ++#else // TDESKTOP_OFFICIAL_TARGET ++ const auto layout = nullptr; ++ const auto convert = []( ++ uint *dst, ++ const uint *src, ++ int count, ++ std::nullptr_t, ++ std::nullptr_t) { ++ for (auto i = 0; i != count; ++i) { ++ dst[i] = qUnpremultiply(src[i]); ++ } ++ }; ++#endif // TDESKTOP_OFFICIAL_TARGET ++ ++ convert( ++ reinterpret_cast(dst), ++ reinterpret_cast(src), ++ intsCount, ++ layout, ++ nullptr); ++} ++ ++void PremultiplyLine(uchar *dst, const uchar *src, int intsCount) { ++#ifdef TDESKTOP_OFFICIAL_TARGET ++ const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; ++ const auto convert = layout->convertToARGB32PM; ++#else // TDESKTOP_OFFICIAL_TARGET ++ const auto layout = nullptr; ++ const auto convert = []( ++ uint *dst, ++ const uint *src, ++ int count, ++ std::nullptr_t, ++ std::nullptr_t) { ++ for (auto i = 0; i != count; ++i) { ++ dst[i] = qPremultiply(src[i]); ++ } ++ }; ++#endif // TDESKTOP_OFFICIAL_TARGET ++ ++ convert( ++ reinterpret_cast(dst), ++ reinterpret_cast(src), ++ intsCount, ++ layout, ++ nullptr); ++} ++ + } // namespace + + IOPointer MakeIOPointer( +@@ -360,58 +415,35 @@ void UnPremultiply(QImage &to, const QImage &from) { + if (!GoodStorageForFrame(to, from.size())) { + to = CreateFrameStorage(from.size()); + } +- +- const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; +- const auto convert = layout->convertFromARGB32PM; + const auto fromPerLine = from.bytesPerLine(); + const auto toPerLine = to.bytesPerLine(); + const auto width = from.width(); ++ const auto height = from.height(); ++ auto fromBytes = from.bits(); ++ auto toBytes = to.bits(); + if (fromPerLine != width * 4 || toPerLine != width * 4) { +- auto fromBytes = from.bits(); +- auto toBytes = to.bits(); +- for (auto i = 0; i != to.height(); ++i) { +- convert( +- reinterpret_cast(toBytes), +- reinterpret_cast(fromBytes), +- width, +- layout, +- nullptr); ++ for (auto i = 0; i != height; ++i) { ++ UnPremultiplyLine(toBytes, fromBytes, width); + fromBytes += fromPerLine; + toBytes += toPerLine; + } + } else { +- convert( +- reinterpret_cast(to.bits()), +- reinterpret_cast(from.bits()), +- from.width() * from.height(), +- layout, +- nullptr); ++ UnPremultiplyLine(toBytes, fromBytes, width * height); + } + } + + void PremultiplyInplace(QImage &image) { +- const auto layout = &qPixelLayouts[QImage::Format_ARGB32]; +- const auto convert = layout->convertToARGB32PM; + const auto perLine = image.bytesPerLine(); + const auto width = image.width(); ++ const auto height = image.height(); ++ auto bytes = image.bits(); + if (perLine != width * 4) { +- auto bytes = image.bits(); +- for (auto i = 0; i != image.height(); ++i) { +- convert( +- reinterpret_cast(bytes), +- reinterpret_cast(bytes), +- width, +- layout, +- nullptr); ++ for (auto i = 0; i != height; ++i) { ++ PremultiplyLine(bytes, bytes, width); + bytes += perLine; + } + } else { +- convert( +- reinterpret_cast(image.bits()), +- reinterpret_cast(image.bits()), +- image.width() * image.height(), +- layout, +- nullptr); ++ PremultiplyLine(bytes, bytes, width * height); + } + } + +diff --git a/Telegram/gyp/lib_ffmpeg.gyp b/Telegram/gyp/lib_ffmpeg.gyp +index 9971d76ae..b9ada5362 100644 +--- Telegram/gyp/lib_ffmpeg.gyp ++++ Telegram/gyp/lib_ffmpeg.gyp +@@ -46,7 +46,11 @@ + '<(src_loc)/ffmpeg/ffmpeg_utility.cpp', + '<(src_loc)/ffmpeg/ffmpeg_utility.h', + ], +- 'conditions': [[ 'build_macold', { ++ 'conditions': [[ '"<(official_build_target)" != ""', { ++ 'defines': [ ++ 'TDESKTOP_OFFICIAL_TARGET=<(official_build_target)', ++ ], ++ }], [ 'build_macold', { + 'xcode_settings': { + 'OTHER_CPLUSPLUSFLAGS': [ '-nostdinc++' ], + },